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:




Analyse nichtlinearer Regelungssysteme

(EN google-translate)

(PL google-translate)

  • Für die Beschreibung und Stabilitätsbeurteilung nichtlinearer Regelungssysteme steht wesentlich weniger Theorie zur Verfügung, als zur Beurteilung linearer Systeme.
  • Alle mathematischen Werkzeuge, die auf die Verwendung von Eigenwerten basieren können beispielsweise bei nichtlinearen Systemen nicht verwendet werden.
  • Eine Möglichkeit, "lineare Theorie" auf nichtlineare Probleme anzuwenden, besteht darin, die nichtlinearen Systeme um einen wichtigen oder kritischen Bereich herum zu linearisieren.
  • Oft sind auch nur Teile des Gesamtsystems nichtlinear und die Linearisierung beschränkt sich auf einen kleinen Bereich.
  • Ein Beispiel für ein Regelungssystem, das sich aus einem linearen und einen nichtlinearen Teil zusammensetzt, ist eine lineare Strecke, der eine nichtlineare Kennlinie vorangeschaltet ist, die als Regler fungiert:
Beispiele für Regler mit nichtlinearen Kennlinien.

Bild 0-1: Beispiele für Regler mit nichtlinearen Kennlinien.

  • Stabile nichtlineare Systeme gehen häufig nicht in einen stationären Zustand über, sondern in einen Grenzzyklus.
  • Bereits bei Totzeitgliedern wurde gezeigt, dass Nichtlinearitäten Phasendrehungen beim zurückgeführten Signal verursachen können.
  • Bei einem stabilen Grenzzyklus verbleibt das System dabei aber in einem begrenzten Zustandsgebiet.

Simulationsexperiment:

  • PT3-Strecke mit P-Glied im Vergleich mit einem Zweipunktglied.
Entstehung eines Grenzzyklus.

Bild 0-2: Entstehung eines Grenzzyklus.

//P-Regler:
function f = rechteSeite(t,y)
    u=0.7-y(1,1);
    f(1,1)=y(2,1);
    f(2,1)=y(3,1);
    f(3,1)=-y(2,1)-2*y(3,1)+u;
endfunction

//Zweipunkt-Regler:
function f = rechteSeite2(t,y)
    u=0.2;
    if(y(1,1)>0.7)
         u=-0.2;
    end
    f(1,1)=y(2,1);
    f(2,1)=y(3,1);
    f(3,1)=-y(2,1)-2*y(3,1)+u;
endfunction


t = 0:0.005:90;
y0 = [0,0,0]';
t0 = 0;
y   = ode("fix",y0,t0,t,rechteSeite);
y2  = ode("fix",y0,t0,t,rechteSeite2);

plot(t,y(1,:),'blu',t,y2(1,:),'red');
a = gca();
a.x_label.text = 't/s';
a.y_label.text = 'y';
a.title.text = 'Grenzzyklus';
hl=legend(['P-Regler';'Zweipunktregler'],a=1);

Code 0-1: Scilab-Skript zum Simulationsexperiment.

Stabilitätsüberprüfung bei einem Grenzzyklus


Ein Grenzzyklus ist stabil, wenn das System aus einer Umgebung um den Grenzzyklus immer in diesen zurückkehrt.


Übung

Die Übung soll vorbereiten auf die Stabilitätsuntersuchung.

  • Geben Sie die Übertragungsfunktion obiger (linearer) Regelstrecke aus dem Scilab-Skript an.
  • Wo liegen die Grenzen des Grenzzyklus?
  • Welche Werte nimmt in diesen Bereichen jeweils die nichtlineare Kennlinie an?
  • Ist obiger Grenzzyklus stabil, so sollten Start-Zustände in seiner unmittelbaren Umgebung in ihn übergehen.
  • In einem genügend kleinen Gebiet kann zudem das System liearisiert simuliert werden.
  • Im konkreten Fall hier kann für einen Startwert unterhalb der unteren Amplitudengrenze des Grenzzyklus, z.B. y<0.4 für u der feste Wert u=0.2 gesetzt werden.
  • Oberhalbhalb der oberen Amplitudengrenze des Grenzzyklus, z.B. y>1.0 kann für u der feste Wert u=-0.2 gesetzt werden.
nichtlinear2.sce - Zusätzliche Simulationen der lokal linearisierten Übertragungsglieder mit den Startpunkte [1,0,0] und [0.4,0,0].

Bild 0-3: nichtlinear2.sce - Zusätzliche Simulationen der lokal linearisierten Übertragungsglieder mit den Startpunkte [1,0,0] und [0.4,0,0].

  • Beide Trajektorien streben ins Innere des Grenzzyklus-Bereichs.
  • Man könnte nun schlußfolgern, der Grenzzyklus hätte in seiner Umgebung ein Einzugsgebiet und sei stabil.
  • Jedoch muß hier beachtet werden, dass wir im Moment nur eine von drei Zustandsgrößen des Systems betrachten.
  • Aber auch mit recht weit ab voneinander liegende Anfangsbedingungen streben in den gleichen Grenzzyklus:
nichtlinear2b.sce - Zweipunktregler mit verschiedenen AB simuliert.

Bild 0-4: nichtlinear2b.sce - Zweipunktregler mit verschiedenen AB simuliert.

  • Um sich mehr Klarheit über ein mögliches Einzugsgebiet zu verschaffen, kann man ein Vektorfeld mit den Steigungen des Systemzustandes generieren.
  • Allerdings müßte dies für das vorliegende Beispiel dreidimensional sein.
  • Wir beschränken die Darstellung im folgenden auf die ersten beiden Zustandsgrößen und setzen die dritte auf Null:
Partieller Zustandsraum (Nur y1 und y2, Dimension y3 fehlt) des Zweipunktreglers.

Bild 0-5: Partieller Zustandsraum (Nur y1 und y2, Dimension y3 fehlt) des Zweipunktreglers.

  • Um nachvollziehen zu können, warum bei allen drei Startbedingungen der Grenzzyklus angestrebt wird, reicht die hier dargestellte "Scheibe" aus dem dreidimensionalen Zustandsraum nicht aus.
function f = rechteSeite4(t,y)
    u=0.2;
    if(y(1,1)>0.7)
         u=-0.2;
    end
    f(1,1)=y(2,1);
    f(2,1)=0;
    fffff=-y(2,1)-2*0+u;
endfunction

//Zweipunkt-Regler:
function f = rechteSeite(t,y)
    u=0.2;
    if(y(1,1)>0.7)
         u=-0.2;
    end
    f(1,1)=y(2,1);
    f(2,1)=y(3,1);
    f(3,1)=-y(2,1)-2*y(3,1)+u;
endfunction


t = 0:0.005:20;
y0 = [0.0,0,0]';
t0 = 0;
y   = ode("fix",y0,t0,t,rechteSeite);
y0 = [1.0,1,0]';
y2  = ode("fix",y0,t0,t,rechteSeite);
y0 = [0.4,-1,0]';
y3  = ode("fix",y0,t0,t,rechteSeite);

plot(y(1,:),y(2,:),'blu',y2(1,:),y2(2,:),'red',y3(1,:),y3(2,:),'gre');
a = gca();
a.x_label.text = 't/s';
a.y_label.text = 'y';
a.title.text = 'Grenzzyklus';
hl=legend(['Zweip. AB 0,0,0';'Zweip. AB 1,1,0';'Zweip. AB 0.4,-1.0'],a=1);

fchamp(rechteSeite4,0,linspace(-1.5,3,10),linspace(-1,1,10));

Code 0-2: Scilab-Script zu nichtlinear2c.

Übung
  • Obige Untersuchungen sollen nun mit einem DGLS zweiten Grades durchgeführt werden, da hier der ganze Systemzustand in einer Ebene dargestellt werden kann.
  • Als Regler wird dem folgenden Linearen System eine Dreipunktkennlinie vorgeschaltet und der Regelkreis geschlossen.

$ G\left(s\right) = \frac {1}{s^2+1} $

Formel 0-1: Lineares Übertragungsglied. \ &


  • Dreipunktkennlinie:
  • u=0 für 0.6<e<0.8
  • u=1 für e<=0.6
  • u=-1 für e>=0.8
  • Als Vergleich soll noch ein PD-Regler mit simuliert werden:

$ R\left(s\right)=s+1 $

Formel 0-2: PD-Regler.


  • Als weitere Vergleichssimulation soll noch die offene Strecke mitbetrachtet werden.
  • Der folgende Plot silumiert die drei Systeme im Zeitbereich.
  • Bilden Sie ein Scilab-Skript, mit dem sich die Ergebnisse eproduzieren lassen.
  • Als Sollwert im PD-Regler, als auch für u beim offenen Kreis wurde 0.7 gewählt.
Dreipunktregler.

Bild 0-6: Dreipunktregler.

  • Kennen Sie einen linearen Regler, der einen ähnlichen Effekt bei Verschaltung mit der Strecke hervorruft?
  • Erzeugen Sie nun einen Plot mit dem Richtungsvektorfeld der mit dem Dreipunktregler geregelten Strecke.
  • Überlagern Sie die Simulationsergebnisse im Phasenraum.
  • Ersetzen Sie die offene Strecke und die PD-geregelte Strecke durch weitere Simulationen der Dreipunkt geregelten Strecke, jedoch mit anderen AB, und zwar zusätzlich: [1.2,1.2] und [-0.5,-1.5].
  • Beurteilen aufgrund der Ergebnisse, ob das Dreipunkt geregelte System stabil ist, bzw. welche Art von Stabilität vorliegt.
Musterlösung
//Zweipunkt-Regler:
function f = rechteSeite2(t,y)
    u=0.0;
    if(y(1,1)>0.8)
         u=-1;
    elseif(y(1,1)<0.6)
         u=1;
    end
    f(1,1)=y(2,1);
    f(2,1)=-y(1,1)+u;
endfunction

delta=0.2;
uu=-1.5;
oo=1.5;

c=uu:delta:oo
q=size(c);
yy = zeros(q(2),q(2));
vv = zeros(q(2),q(2));
i=1;
k=1;
for a=uu:delta:oo
   k=1;
   for b=uu:delta:oo
      ff=rechteSeite2(0.0,[a;b])
      yy(i,k)=ff(1,1);
      vv(i,k)=ff(2,1);
      k=k+1;
   end
   i=i+1;
end

t = 0:0.005:20;
y0 = [0,0]';
t0 = 0;
y2  = ode("fix",y0,t0,t,rechteSeite2);
y0 = [1.2,1.2]';
y3  = ode("fix",y0,t0,t,rechteSeite2);
y0 = [-0.5,-1.5]';
y4  = ode("fix",y0,t0,t,rechteSeite2);

plot(y2(1,:),y2(2,:),'red',y3(1,:),y3(2,:),'blu',y4(1,:),y4(2,:),'gre');
a = gca();
a.x_label.text = 't/s';
a.y_label.text = 'y';
a.title.text = 'Grenzzyklus';
hl=legend(['Start 0,0','Start 1.2,1.2','Start -0.5,-1.5'],a=1);

fchamp(rechteSeite2,0,linspace(-2.0,2,15),linspace(-1.5,2.5,15));
// using rect as plot boundaries 
//champ(uu:delta:oo,uu:delta:oo,yy,vv,rect=[uu,uu,oo,oo],arfact=2)
// using (x,y) to get boundaries 
//clf()
//champ(-5:5,-5:5,rand(11,11),rand(11,11),2,[-10,-10,10,10],"021")


Code 0-3: Vektorplot und drei unterschiedliche AB für nicht linearen Regler.

Vektorplot und drei unterschiedliche AB für nicht linearen Regler.

Bild 0-7: Vektorplot und drei unterschiedliche AB für nicht linearen Regler.

Phasenraum Beispiele

  • 1. Lineare Systeme
Grenzstabiler linearer Schwinger.

Bild 0-8: Grenzstabiler linearer Schwinger.

Stabiler (gedämpfter) linearer Schwinger, D=0.5.

Bild 0-9: Stabiler (gedämpfter) linearer Schwinger, D=0.5.

Instabiler (neativ gedämpfter) linearer Schwinger, D=-0.5.

Bild 0-10: Instabiler (neativ gedämpfter) linearer Schwinger, D=-0.5.

  • 2. Nichtlineare Systeme
Stabiler Grenzzyklus mit globalem Einzugsbereich bei linearem System mit Zweipunkt-Kennlinie als Regler.

Bild 0-11: Stabiler Grenzzyklus mit globalem Einzugsbereich bei linearem System mit Zweipunkt-Kennlinie als Regler.

function f = rechteSeite(t,y)
    u=0.2;
    if(y(1,1)>0.7)
         u=-0.2;
    end
    f(1,1)=y(2,1);
    f(2,1)=y(3,1);
    f(3,1)=-y(2,1)-2*y(3,1)+u;
endfunction

Code 0-4: Stabiler Grenzzyklus mit globalem Einzugsbereich bei linearem System mit Zweipunkt-Kennlinie als Regler.

Nichtlineares grenzstabiles System.

Bild 0-12: Nichtlineares grenzstabiles System.

function f = rechteSeite(t,y)
    u=0.2;
    if y(1,1)>0.7
        u=-5
    end
    f(1,1)=y(2,1);
    f(2,1)=-y(1,1) + u;
endfunction

Code 0-5: Nichtlineares grenzstabiles System.

Zweipunktregler in gedämpftem System.

Bild 0-13: Zweipunktregler in gedämpftem System.

function f = rechteSeite(t,y)
    u=1;
    if y(1,1)>0.0
        u=-1
    end
    f(1,1)=y(2,1);
    f(2,1)=-y(1,1)-y(2,1) + u;
endfunction

Code 0-6: Zweipunktregler in gedämpftem System.

  • Besonderes Problem:
  • Z.B. Mechanische Belastung eines Schaltventils, da es mit zunehmender Frequenz schaltet:
Hochfrequente Schaltvorgänge bei Zweipunktregler in gedämpftem System.

Bild 0-14: Hochfrequente Schaltvorgänge bei Zweipunktregler in gedämpftem System.

  • Abhilfe durch Einführung einer Unempfindlichkeitszone:
Einführung einer Unempfindlichkeitszone, damit Dreipunktregler.

Bild 0-15: Einführung einer Unempfindlichkeitszone, damit Dreipunktregler.

function f = rechteSeite(t,y)
    u=0;
    if y(1,1)>0.1
        u=-1
    elseif y(1,1)<-0.1
        u=1
    end
    f(1,1)=y(2,1);
    f(2,1)=-y(1,1)-y(2,1) + u;
endfunction

Code 0-7: Einführung einer Unempfindlichkeitszone, damit Dreipunktregler.

Weitere Möglichkeiten nichtlinearer Regelungssysteme

  • Semistabile Grenzzyklen
  • Instabile Grenzzyklen
  • Chaos
Übung
  • Verwenden Sie erneut das Modell Fahrzeug10_adaptiv.
  • Ersetzen Sie den PID-Regler durch eine punktsymmetrische nichtlineare Kennline, die abschnittsweise durch Geraden definiert ist und die Differenz zwischen Soll- und Ist-Richtung zurückführt.
  • Überlegen Sie sich eine geeignete Kennlinie und testen Sie sie.
  • Versuchen Sie durch Variation von Hand gute Kennlinien zu finden.
  • Versuchen Sie den Suchvorgang zu automatisieren.
  • Wäre ein solcher Regler mit einer nichtlinearen Kennlinie über ein Fuzzy-System realisierbar und optimierbar?