kramann.info
© Guido Kramann

Login: Passwort:










13.2 Analyse nichtlinearer Regelungssysteme

13.2 Analysis of nonlinear control systems (EN google-translate)

13.2 Analiza nieliniowych układów sterowania (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 13.2-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:

Simulationsexperiment:

Simulationsexperiment:

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

Bild 13.2-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 13.2-1: Scilab-Skript zum Simulationsexperiment.

Stabilitätsüberprüfung bei einem Grenzzyklus

Stability check at a limit cycle

Kontrola stabilności w cyklu granicznym


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


Übung
exercise
ćwiczenie

Die Übung soll vorbereiten auf die Stabilitätsuntersuchung.

The exercise should prepare for the stability study.

Ćwiczenie powinno przygotować się do badania stabilności.

  • 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 13.2-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 13.2-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 13.2-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 13.2-2: Scilab-Script zu nichtlinear2c.

Übung
exercise
ćwiczenie
  • 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 13.2-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 13.2-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 13.2-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
solution
rozwiązanie
//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 13.2-3: Vektorplot und drei unterschiedliche AB für nicht linearen Regler.

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

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

Phasenraum Beispiele

Phase space examples

Przykłady przestrzeni fazowej

  • 1. Lineare Systeme
Grenzstabiler linearer Schwinger.

Bild 13.2-8: Grenzstabiler linearer Schwinger.

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

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

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

Bild 13.2-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 13.2-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 13.2-4: Stabiler Grenzzyklus mit globalem Einzugsbereich bei linearem System mit Zweipunkt-Kennlinie als Regler.

Nichtlineares grenzstabiles System.

Bild 13.2-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 13.2-5: Nichtlineares grenzstabiles System.

Zweipunktregler in gedämpftem System.

Bild 13.2-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 13.2-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 13.2-14: Hochfrequente Schaltvorgänge bei Zweipunktregler in gedämpftem System.

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

Bild 13.2-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 13.2-7: Einführung einer Unempfindlichkeitszone, damit Dreipunktregler.

Weitere Möglichkeiten nichtlinearer Regelungssysteme

Further possibilities of non-linear control systems

Dalsze możliwości nieliniowych systemów sterowania

  • Semistabile Grenzzyklen
  • Instabile Grenzzyklen
  • Chaos
Übung
exercise
ćwiczenie
  • 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?