kramann.info
© Guido Kramann

Login: Passwort:










Regelungssysteme
1 day_by_day
2 Heizregelkreis
3 Verzoegerungsglieder
4 Laplace
..4.1 Eigenwerte
..4.2 PT1
..4.3 PRegler
..4.4 Scilab
5 Regleroptimierung
..5.1 Guetefunktion
..5.2 Heuristiken
..5.3 Scilab
..5.4 Gradientenverfahren
..5.5 ModifizierteG
..5.6 Gleichstrommotor
..5.7 Stoerverhalten
6 Javaanwendung
..6.1 PIDgeregelterAntrieb
..6.2 RungeKuttaIntegrator
..6.3 Gradientenverfahren
7 Einstellregeln
..7.1 Totzeit
..7.2 Methode1
..7.3 Methode2
..7.4 Scilab
..7.5 Daempfungsgrad
..7.6 Uebung
8 Polvorgabe
9 Beobachter
10 AutonomerHackenprosche
..10.1 Herleitung
..10.2 Scilab
..10.3 Modellerweiterung
..10.4 Scilab
..10.5 Modellgueltigkeit
..10.6 java
11 Stabilitaet
..11.1 Beispiele
..11.2 Nyqusitkriterium
..11.3 Windup
..11.4 Bode
12 Adaptiv
..12.1 Definition
..12.2 Einachser
..12.3 Auswertung
..12.4 Identifikation
..12.5 Regleroptimierung
..12.6 Zustandsregler
..12.7 Beobachter
13 Analyse
..13.1 Linear
..13.2 Nichtlinear
14 Kalmanfilter
15 Ue_04_2014
..15.1 Geschwindigkeit
..15.2 Richtung
..15.3 Gesamtsystem
..15.4 RiccatiUSW
..15.5 TdOT
16 Inverses_Pendel
17 Einachser
..17.1 Mechanik
..17.2 Uebung8
18 Fuzzy
..18.1 Fuzzylogik
..18.2 FuzzyRegler
..18.3 Uebung9
..18.5 Softwareentwicklung
....18.5.1 AgileSoftwareentwicklung
....18.5.2 FuzzyRegler
....18.5.3 Uebung
..18.6 Umsetzung
....18.6.1 FuzzyRegler
....18.6.2 Simulation
....18.6.3 Optimierung
....18.6.4 Uebung
..18.7 Haengependel
....18.7.1 Haengependel
....18.7.2 Simulation
....18.7.3 FuzzyRegler
....18.7.4 Optimierer
....18.7.5 Genetisch
..18.8 Information
..18.9 Energie
21 Beispiel1
98 day_by_day_WS2021_SoSe21
99 day_by_day_SoSe2018
kramann.info
© Guido Kramann

Login: Passwort:




Beispiele für periodisch angeregte Regelsysteme

Beispiel 1 - PT1-Glied mit P-Regler
//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
//PT1-Glied: G0(s)=K/(1+Ts)
//P-Regler:  R(s)=P
//Geschlossener Reglkreis: G(s)=RG/(1+RG)
P=3.0;
K=3.0;
T=10.0;
G = syslin('c',[P*K],[1+P*K+T*s]);
//Zeitbereich für die Simulation festlegen:
t=[0:0.1:50]; 
u=sin(t);
y=csim(u,t,G); 
plot(t,u,'blu--',t,y,'gre');
xtitle("Untersuchung der dynamischen Stabilität zu G(s) ")
a = gca();
a.x_label.text = 't/s';
a.y_label.text = 'u(t),y(t)';
a.title.text = 'Untersuchung der dynamischen Stabilität bei P-Regler für PT1';
hl=legend(['u(t)';'y(t)'],a=1);

Code 0-1: P-geregeltes PT1-Glied mit Sinusanregung

Eingang u und Ausgang y für periodisch angeregte PT1-Strecke mit P-Regler.

Bild 0-1: Eingang u und Ausgang y für periodisch angeregte PT1-Strecke mit P-Regler.

class Modell
{
    public:
        int anzahl_gleichungen;        
        Modell()
        {
            anzahl_gleichungen=1;
        }
        int holeAnzahlGleichungen()
        {
            return anzahl_gleichungen;
        }
        double rechteSeite(double* y,double t, int zeile)
        {
            double P=3.0;
            double K=3.0;
            double T=10.0;
            double u = sin(t);
            switch(zeile)
            {
                //Rechte Seiten des DGLS: 
                case 0:
                     return -((1.0+P*K)/T)*y[0] + (P*K/T)*u;
                break;
            }               
        }
}; 

Code 0-2: Gleiches Beispiel in C++

cpp_pt1_pregler.zip - Download des Beispiels "periodisch angeregte PT1-Strecke mit P-Regler" in C++
Beispiel 2 - PT1Tt-Glied (PT1-Glied mit Totzeit) mit P-Regler
  • Herleitung der Simulationsgleichungen im Zeitbereich durch sukkzessive Substitution aller Zwischengrößen:
PT1Tt-Glied mit P-Regler und eingezeichneten Zwischengrößen

Bild 0-2: PT1Tt-Glied mit P-Regler und eingezeichneten Zwischengrößen

Herleitung der Simulationsgleichungen

Bild 0-3: Herleitung der Simulationsgleichungen

Eingang w und Ausgang x für periodisch angeregte PT1Tt-Strecke mit P-Regler, ta=3s.

Bild 0-4: Eingang w und Ausgang x für periodisch angeregte PT1Tt-Strecke mit P-Regler, ta=3s.

class Modell
{
    public:
        int anzahl_gleichungen;        
        double dt;
        double* y_alt_merker;
        double holeYalt(double talt)
        {
            if(talt<0.0)
                return 0.0;
            int index = (int)(0.5+talt/dt);
            return y_alt_merker[index];
        }
        void setzeYalt(double wert, double takt)
        {
            if(takt<0.0)
                return;
            int index = (int)(0.5+takt/dt);
            y_alt_merker[index] = wert;
        }
        Modell(double dt, double tmax)
        {
            this->dt = dt;
            y_alt_merker = new double[1+(int)(tmax/dt)];
            anzahl_gleichungen=1;
        }
        int holeAnzahlGleichungen()
        {
            return anzahl_gleichungen;
        }
        double rechteSeite(double* y,double t, int zeile)
        {
            double P=3.0;
            double K=3.0;
            double T=10.0;
            double ta = 3.0;
            double w = sin(t);
            double x = holeYalt(t-ta);
            double e = w - x;
            double u = P*e;
            switch(zeile)
            {
                //Rechte Seiten des DGLS: 
                case 0:
                     return -(1.0/T)*y[0] + (K/T)*u;
                break;
                case 1: //Spezialfall zum Auslesen von x:
                     return x;
                break;
            }               
        }
}; 

Code 0-3: Quellcode des Modells zu "periodisch angeregte PT1Tt-Strecke mit P-Regler".

cpp_pt1tt_pregler.zip - Download des Beispiels "periodisch angeregte PT1Tt-Strecke mit P-Regler" in C++