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:




Day by Day

(EN google-translate)

(PL google-translate)

Verzeichnis der im Verlauf des Semesters behandelten Themen

siehe auch day_by_day von 2019: 62_Regelungssysteme/01_day_by_day

Dienstag 24.11.2020

  • Praktikum: Haben Sie dort mit Regelungskreisen zu tun gehabt?
  • Der Fliehkraftregler nach James Watts
  • Was ist Kybernetik? / Norbert Wiener
  • Hundskurve
  • Regelkreise in Biologie und Technik
  • Das so genannte Übertragungsverhalten
  • Aufbau eines Regelkresies / Grundbegriffe
  • Die Bedeutung von Eigenwerten bei Regelkreisen
  • Die Laplacetransformation / Lineare Differentialgleichungssysteme
  • ---
  • Wiederholung / Einführung in Scilab
  • Wiederholung Eigenwerte
  • Eigenwerte mit Hilfe der Laplace-Transformierten
  • Eigenwerte mit Scilab
  • Wiederholung
Einführung in Scilab
37_Scilab
50_Simulationstechnik/01_Systemtheorie/07_scilab
Einführung in Regelungstechnik
62_Regelungssysteme/02_Heizregelkreis
62_Regelungssysteme/03_Verzoegerungsglieder
62_Regelungssysteme/04_Laplace
//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
G = syslin('c',[1],[1+2*s+s^2]);
t=[0:0.01:10]; 
u=ones(1,1001);
y=csim(u,t,G);
plot2d(t,y);
//plzr(G);

Code 0-1: Übertragungsfunktionen beschreiben und auswerten mit Scilab.

Fliehkraftregler bei Dampfmaschine -- https://www.youtube.com/watch?v=nnPImWZ1O2s
Dampfmaschine nach James Watt (2) - Rueff -- https://www.youtube.com/watch?v=n6B4ogz3sic
Norbert Wiener - Wiener Today (1981) -- https://www.youtube.com/watch?v=cdu16JAzgw8
Übung 1
  • Aufgabe 1: Aus welchen Elementen besteht ein Regelkreis? -- Gehen Sie die Bezeichnungen durch.

$ \left[\begin{array}{cc}3 & 2 \\ 5 & 1\end{array}\right] \cdot \left[\begin{array}{cc}x \\ v\end{array}\right] = \left[\begin{array}{cc}-1 \\ 3\end{array}\right] $

Formel 0-1: Aufgabe 2: Lösen Sie obiges Gleichungssystem erst von hand und dann mit Hilfe von Scilab.


Aufgabe 3: Ein linearer Feder-Masse-Schwinger habe die Masse 1kg und die Federkonstante C = 1 N/m. Wie muß die Dämpfung gewählt werden, damit die Eingefrequenz 1Hz beträgt?


Beachte: Die Eigen-Kreisfrequenz(en) entspricht/entsprechen dem imaginären Anteil der Eigenwerte in einem linearen Differentialgleichungssystem (LDGLS).



clear;
function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    f(1,1) =         v; 
    f(2,1) = -x-1.56*v; 
endfunction

t = 0:0.1:100;
y0 = [1,0]';
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

plot(t,y(1,:)',t,y(2,:)');

Code 0-2: Scilab-Code zur Simulation des Systems von Übung1, Aufgabe 3.

clear;
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
G = syslin('c',[1],[1+1.56*s+s^2]);
t=[0:0.01:100]; 
u=ones(1,10001);
y=csim(u,t,G);
plot2d(t,y);

Code 0-3: Scilab-Code zur Simulation des Systems von Übung1, Aufgabe 3 im Laplacebereich.

Übung 2
  • Aufgabe 0: Schreiben Sie das Scilab-Skript zu Übung1, Aufg.3 so um, dass in rechteSeite(..) die Systemmatrix verwendet wird.
siehe 54_Kinetik/01_Newton/04_ODE
  • Aufgabe 1: Überlegen Sie sich, wo Regelkreise zum Einsatz kommen.
  • Aufgabe 2: Überlegen Sie sich weitere Beispiele für Regelstrecken mit und ohne Ausgleich.
Hinweise zu Regelstrecken mit und ohne Ausgleich, sowie PT2-Übertragungsglied: 62_Regelungssysteme/03_Verzoegerungsglieder

Aufgabe 3: Ein linearer Schwinger (m=1kg, C=1N/m) ohne Dämpfungselement wird mit einem aktiven Dämpfer ausgerüstet, also einem D-Element. Die Regeldifferenz zum Sollwert Null m/s wird mit Faktor 10 als äußere Kraft auf das System gegeben.

  • Aufgabe 3a: Formulieren Sie die Beschriebene Situation in Form von Differentialgleichungen im Zeitbereich.
  • Aufgabe 3b: Formulieren Sie die Beschriebene Situation in Form von Differentialgleichungen im Laplace-Bereich.
  • Aufgabe 3c: Weisen Sie durch Rücktransformation in den Zeitbereich nach, dass die Formulierungen von a und b genau das gleiche System beschreiben.
  • Aufgabe 3d: Simulieren Sie die Regelstrecke ohne Regler mit Scilab im Zeitbereich.
  • Aufgabe 3e: Simulieren Sie die Regelstrecke ohne Regler mit Scilab im Laplace-Bereich unter Vorgabe eines Sprungs am Eingang.
  • Aufgabe 3f: Simulieren Sie das Gesamtsystem mit Scilab im Zeitbereich.
  • Aufgabe 3g: Simulieren Sie das Gesamtsystem mit Scilab im Laplace-Bereich unter Aufschalten eines kurzen Kraftstoßes als Störgröße.
Hinweise zu Laplace Transformationsregeln: 62_Regelungssysteme/04_Laplace
Während der Vorlesung entstandene Videos:
Modellerstellung und Simulation mit Scilab im Zeitbereich: 2020-11-24_11-05-30_RTS_Eulerintegration_ode.mp4
LDGLS in Übertragungsfunktion umwandeln und in Scilab simulieren: 2020-11-24_11-35-40_RTS_Uebertragungsfunktion_simulieren.mp4
Themen im letzten Teil:
  • Wiederholung: Abstraktion von den physikalischen Größen, auf denen der Regler agiert.
  • Wiederholung der Laplace-Transformationsregeln.
  • Besprechung der Übung 2.
  • Eigenwertberechnung aufgrund der Systemmatrix
  • Eigenwertberechnung mit Scilab
  • Hinzufügen eines P-Anteils bei Übung 2, Aufgabe 3, getrennt betrachteter Verstärkungsfaktor 100.
Methoden zur Eigenwertberechung: 62_Regelungssysteme/04_Laplace/01_Eigenwerte
Klassische Darstellung eines PID-Reglers: 62_Regelungssysteme/04_Laplace/04_Scilab
Plots mit Achsenbezeichnungen und Überschrift: 50_Simulationstechnik/01_Systemtheorie/07_scilab
Gesamtübertragungsverhalten geschlossener Regelkreis (Laplace): 62_Regelungssysteme/04_Laplace/03_PRegler

Dienstag 01.12.2020

Themen

TEIL 1

  • Nachtrag zu Übung 2, Aufgabe 3 von letzter Woche
  • Klassische Darstellung eines PID-Reglers
  • Ergänzung eines Integral-Anteils im Zeitbereich
  • Implementierung von Totzeitverhalten im Zeitbereich
  • 1. Verfahren zur Regler-Auslegung nach Ziegler und Nichols

TEIL 2

  • Herleitung eines invertierenden Pendels als realistisches Beispiel einer Regelstrecke
  • Simulation des invertierenden Pendels mit Hilfe von Scilab
  • Linearisierung des Modells des invertierenden Pendels
  • Eigenwerte des linearisierten Modells des invertierenden Pendels
Zu Übung 2, Aufgabe 3 von letzter Woche:

Um eine exakte Entsprechung zwischen der Simulation der Variante im Zeitbereich und der im Laplacebereich zu erzielen, müssen w und dw/dt in beiden Varianten gleich sein. Bei Vorgabe eines Sprungs ist das nicht gewährleistet, da dw/dt nicht eindeutig bestimmt ist. Darum wird die Aufgabe etwas angepaßt und w=sin(t)*exp(-t), bzw. dw/dt=cos(t)*exp(-t)-sin(t)*exp(-t) gesetzt:

$ \ddot x + x = u $

Formel 0-2: System im Zeitbereich.


$ u = P \cdot \left(w-x\right) + D \cdot \left(\dot w - \dot x\right) $

Formel 0-3: Regler im Zeitbereich.


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

Formel 0-4: System im Laplace-Bereich \left(y/u\right).


$ R\left(s\right)= \frac {P+s \cdot D}{1} $

Formel 0-5: Regler im Laplace-Bereich \left(u/e\right).


$ Q\left(s\right)= \frac {P+s \cdot D}{s^2+1} $

Formel 0-6: Offener Regelkreis im Laplace-Bereich \left(y/e\right).


$ H\left(s\right)= \frac {P+s \cdot D}{s^2+s \cdot D+P+1} $

Formel 0-7: \left(Geschlossener\right) Regelkreis im Laplace-Bereich \left(y/w\right).


clear;
P = 10.0;
D = 1.0;

s = poly(0,"s"); 
//Übertragungsfunktion definieren:
G = syslin('c',[1],[1+s^2]); // Regelstrecke
R = syslin('c',[P+s*D],[1]); // PD-Regler
Q = R*G;  //Übertragungsv. offener Rk.
H = Q/(1+Q); //Übertrv. geschl. Rk.
t=[0:0.01:15]; 
u=sin(t).*exp(-t);
y=csim(u,t,H);
plot(t,y,"r");
//plzr(G);

Code 0-4: Simulation des PD-geregelten linearen Schwingers bei Darstellung des Modells im Laplacebereich.

clear;
P = 10.0;
D = 1.0;
function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    w = sin(t)*exp(-t);
    derw =  cos(t)*exp(-t) - sin(t)*exp(-t);
    u    = P*(w-x) + D*(derw-v);
    f(1,1) =         v; 
    f(2,1) = -x+u; 
endfunction

t = 0:0.01:15;
y0 = [0,0]';
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);
plot(t,y(1,:),"b--");

Code 0-5: Simulation des PD-geregelten linearen Schwingers bei Darstellung des Modells im Zeitbereich.

Nachtrag: Wie man einen I-Anteil ergänzen kann:
clear;
P = 10.0;
D = 1.0;
I = 2.0;
function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    e_integral = y(3,1);
    w = sin(t)*exp(-t);
    derw =  cos(t)*exp(-t) - sin(t)*exp(-t);
    u    = P*(w-x) + D*(derw-v) + I*(e_integral);
    f(1,1) =         v; 
    f(2,1) = -x+u; 
    f(3,1) = w-x;
endfunction

t = 0:0.01:15;
y0 = [0,0,0]';
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);
plot(t,y(1,:),"b--");

Code 0-6: I-Anteil als Dummy-Systemzustand ergänzt.

Aus den beiden vorangehenden Simulationen resultierende übereinanderliegende Plots.

Bild 0-1: Aus den beiden vorangehenden Simulationen resultierende übereinanderliegende Plots.

Links zu den Inhalten der Lehrveranstaltung

Workaround zur Darstellung von Totzeit mit Hilfe von Scilab im Zeitbereich: 62_Regelungssysteme/07_Einstellregeln/01_Totzeit

Methode 1 zur Reglerauslegung nach Ziegler und Nichols / Klassische Darstellung des PID-Reglers 62_Regelungssysteme/07_Einstellregeln/02_Methode1

Übung 1

Welche der Aufgaben (Übung 5, ganz unten auf Webseite, Link nachfolgend) läßt sich nach der 1. Methode nach Ziegler und Nichols lösen?. Setzen Sie diese Lösungen für P, PI und PID-Regler um.

Übung zur Methode nach Ziegler und Nichols: 62_Regelungssysteme/07_Einstellregeln/04_Scilab
clear();

xtot=0;

function f=modell(y,t,dt)
x=y(1,1);
v=y(2,1);

Kkrit = 19.75;
xsoll = 1.0;
//e = xsoll - x;
e = xsoll - xtot;
u=Kkrit*e;

f(1,1)=v;
f(2,1)=-x-2*v+u;
endfunction

function yneu=ruku(y,t,dt)
k1=modell(y,t,dt);
k2=modell(y+0.5.*dt.*k1,t+0.5*dt);
k3=modell(y+0.5.*dt.*k2,t+0.5*dt);
k4=modell(y+dt.*k3,t+dt);
yneu=y+dt.*(k1+2.*k2+2.*k3+k4)./6;
endfunction

tmax = 20.0;
dt = 0.01;
schritte = ceil(tmax/dt);

yalt = [0,0]';
ysim = yalt;
t=0.0;
tt=t;

Ttot = 0.1;
anztot = round(Ttot/dt)
xtotarr = zeros(anztot,1);

for i=1:1:schritte
yneu=ruku(yalt,t,dt);
yalt=yneu;
ysim=[ysim,yalt];
tt =[tt,t];
t=t+dt;

xtot = xtotarr(modulo((i-1),anztot)+1);
xtotarr(modulo((i-1),anztot)+1)=yneu(1);
end

plot(tt,ysim(1,:));

Code 0-7: Studentische Lösung für die erste Übertragungsfunktion G(s) = exp(-0.1s)/(s^2+2s+1) ergibt: K_krit=19,75; T_Krit=1,45s

  • P-Regler: K=0,875
  • PI-Regler: K=8,8875 T_N=1,2325
  • PID-Regler: K=11,85 T_N=0,725 T_V=0,174

Teil 2 entfällt. Aufgabe bis 14Uhr: Bei obigem G(s) = exp(-0.1s)/(s^2+2s+1) und bei dem zweiten System G(s) = exp(-s)/((s+1)*(s+2)) den PID-Regler nach Ziegler-Nichols auslegen und insbesondere den I-Anteil so wie weiter oben gezeigt ergänzen. Das heißt: Das System mit dem fertigen PID-Regler soll simuliert werden.


Uebung_Totzeit.zip -- Studentische Lösung zu PID für G(s) = exp(-0.1s)/(s^2+2s+1) und G(s) = exp(-s)/((s+1)*(s+2)) nach der 1. methode nach Ziegler und Nichols.
  • Studentische Lösung zu G(s) = exp(-s)/((s+1)*(s+2)):
  • K_Krit=4,52 T_Krit=4,15s
  • P: K=2,26
  • PI: K=2,034 T_N=3,5275
  • PID: K=2,712 T_N=2,075 T_V=0,498
Übung 2
Material zum invertierenden Pendel: 62_Regelungssysteme/16_Inverses_Pendel
Invertierendes Pendel, siehe "9 -- Dienstag 21.05.2019" und "10-- Dienstag 28.05.2019 " 62_Regelungssysteme/01_day_by_day

Dienstag 08.12.2020

  • Teil 1: Invertierendes Pendel
  • Teil 2: Polvorgabe zur Reglerauslegung
  • (An weiteren Terminen: Zustandsregler mit Beobachter)
Teil 1: Invertierendes Pendel
Material zum invertierenden Pendel: 62_Regelungssysteme/16_Inverses_Pendel
Invertierendes Pendel, siehe "9 -- Dienstag 21.05.2019" und "10-- Dienstag 28.05.2019 " 62_Regelungssysteme/01_day_by_day
  • Herleitung eines invertierenden Pendels als realistisches Beispiel einer Regelstrecke
  • Simulation des invertierenden Pendels mit Hilfe von Scilab
  • Linearisierung des Modells des invertierenden Pendels
  • Eigenwerte des linearisierten Modells des invertierenden Pendels

Übungen wurden in den Chat geschrieben.


clear;

dt=0.1;
t = 0:dt:100;

zs = size(t);
zeilen = zs(1);
spalten = zs(2);

// Punkt A: [x;y] zeitlicher Verlauf == [0;0]
pA = zeros(2,spalten);

// Punkt B: [x;y] zeitlicher Verlauf == [sin(...);1]
pB = [sin(2*%pi*0.2*t);ones(1,spalten)];

//Eine Animation soll eine Verbindungslinie von pA mit pB im zeitlichen Verlauf darstellen:
isoview;
clf;
// ABBRUCH MIT CTR C !!
for i=1:spalten
   clf;
   plot([-2,-1.999,1.999,2],[0,2,2,0]);  //Rahmen, um Skalierung konstant zu halten
   plot([pA(1,i),pB(1,i)],[pA(2,i),pB(2,i)]);
   sleep(1000*dt); // "Echtzeit"
end

Code 0-8: Einfache Möglichkeit, mit Scilab eine Animation zu erzeugen: Mehrfach plotten mit sleep() dazwischen.


Übung 2 im Chat: Es sollte das inverse Pendel mit Scilab simuliert werden und auch eine Version umgesetzt werden, um Ziegler und Nichols anzuwenden.


Dabei hat sich gezeigt, dass nur durch Hinzufügen eines Dämpfungsterms die Methode nach Ziegler und Nichols anwendbar ist. Die während der LV entstandenen Skripte finden sich nachfolgend als zip-File:

inverspendel.zip
Teil 2: Polvorgabe zur Reglerauslegung
80_Robuste_Systemintegration/01_Grundlagen/08_Polvorgabe

Dienstag 15.12.2020

Themen:
  1. Zustandsregler
  2. Polvorgabe
  3. "Technisch stabil"
  4. Zustandstransformation in den Nullpunkt
  5. Polvorgabe für das inverse Pendel
1. Zustandsregler, 2. Polvorgabe, 4. Zustandstransformation in den Nullpunkt
62_Regelungssysteme/08_Polvorgabe
siehe auch: 62_Regelungssysteme/12_Adaptiv/06_Zustandsregler
siehe auch (Bezeichnungen für die verschiedenen Matrizen): 80_Robuste_Systemintegration/01_Grundlagen/07_Zustandsregler
(siehe später: 80_Robuste_Systemintegration/01_Grundlagen/09_Beobachter)
3. Dämpfungsgrad / "Technisch stabil"
62_Regelungssysteme/07_Einstellregeln/05_Daempfungsgrad
4. Zustandstransformation in den Nullpunkt
(wieder) 62_Regelungssysteme/08_Polvorgabe
Übung 1: Polvorgabe für x.. = -x
Übung 1b: Polvorgabe für x.. = -x, aber Regelung zum Punkt x=1, v=0.
ÜBUNG 2: 5. Polvorgabe für das inverse Pendel
  • Diese Aufgabe sollten Sie versuchen, bis Dienstag, den 05.01.2021 (KORRIGIERT!) zu lösen
  • Gehen Sie schrittweise vor: erst Polvorgabe für linearisiertes System 2. Grades (nur phi..=...), dann für das linearisierte Gesamtsystem (auch x..=...).
  • Stellen Sie gerne noch einmal Verständnisfragen am Donnerstag, 17.12. (in IE)
  • Die Musterlösungen zu der Übung werden am 05.01. (KORRIGIERT!) besprochen und auch die Prüfungsmodalitäten abgestimmt.
  • Bitte berücksichtigen Sie die nachfolgenden Videos aus dem Unterricht.
Videos aus der LV (Zustandsregler)
VIDEO_2020_12_15_08_54_10.mp4
VIDEO_2020_12_15_08_58_50.mp4
VIDEO_2020_12_15_09_04_23.mp4
VIDEO_2020_12_15_09_15_07.mp4
VIDEO_2020_12_15_09_29_12.mp4

Beispiellösung / Anderer Sollwert, als Nullvektor:

VIDEO_2020_12_15_11_10_40.mp4
VIDEO_2020_12_15_11_22_56.mp4
VIDEO_2020_12_15_11_28_09.mp4

Dienstag 05.01.2021

Themen
  • Musterlösung zu Übung 2 vom 15.12.2020
  • Hinweise zur Vorbereitung und zum Ablauf der Prüfung
  • Theoretische Behandlung des Zustandsreglers mit Beobachter
  • Wiederholung einzelner Themen gemäß Ihren Wünschen
Musterlösung zu Übung 2 vom 15.12.2020
  • Für das Modell des inversen Pendels sollte mittels Polvorgabe ein Zustandsregler entworfen werden.
  • Nach der Linearisierung wird zuerst nur der Modellteil in Betracht gezogen, der für die Lage von phi (Verkippen) verantwortlich ist.
  • Dann wird ein Zustandsregler für das Gesamtsystem entwickelt, der auch die Position x berücksichtigt.
  • Getestet werden beide Regler im nicht linearisierten Modell. Dies gibt Aufschluß darüber, ob das gewählte Vorgehen gerechtfertigt ist.

Modell des invertierenden Pendels:

Herleitung zum invertierenden Pendel, Teil 1.

Bild 0-2: Herleitung zum invertierenden Pendel, Teil 1.

Herleitung zum invertierenden Pendel, Teil 2.

Bild 0-3: Herleitung zum invertierenden Pendel, Teil 2.

Invertierendes Pendel, siehe auch "9 -- Dienstag 21.05.2019" und "10-- Dienstag 28.05.2019 " 62_Regelungssysteme/01_day_by_day

$ \ddot \phi = \frac {-m \cdot h^2 \cdot \dot \phi ^2 \cdot \sin \phi \cdot \cos \phi + h \cdot m \cdot g \cdot \sin \phi + h \cdot \cos \phi \cdot F_A}{J+m \cdot h^2 \cdot \left( \sin \phi \right)^2} $

Formel 0-8: Modellteil des invertierenden Pendels für die Verkippung \phi .


$ \ddot x = \frac {F_A}{m} $

Formel 0-9: Modellteil des invertierenden Pendels für die Position x auf der Schiene.


  • Linearisierung

$ \ddot \phi = \frac {h \cdot m \cdot g \cdot \phi + h \cdot F_A}{J} $

Formel 0-10: Erster Modellteil nach der Linearisierung.


Hier tritt deutlich die In- bzw. Grenzstabilität des Ausgangssystems zutage: kein negatives Vorzeichen vor dem Termin mit phi.


Quadratische Terme entfallen, phi statt sin(phi), 1 statt cos(phi) gemäß Taylor-Entwicklung.


$ \ddot x = \frac {F_A}{m} $

Formel 0-11: Der zweite Modellteil ist bereits linear.


  • Zustandsregler für ersten Modellteil

$ \dot \vec y = A \cdot \vec y + B \cdot \vec u $

Formel 0-12: Allgemeine Form eines linearen Systems mit Zus \tan dsmatrix A und Eingriffsmatrix B.


$ \dot \vec y = A \cdot \vec y - B \cdot R \cdot \vec y $

Formel 0-13: Allgemeine Form des Zus \tan dsreglers.


u wird ersetzt durch -Ry.

$ \left[\begin{array}{cc} \dot \phi \\ \dot \omega \end{array}\right] = \left[\begin{array}{cc}0 & 1 \\ \frac {h \cdot m \cdot g}{J} & 0\end{array}\right] \cdot \left[\begin{array}{cc} \phi \\ \omega \end{array}\right] + \left[\begin{array}{cc}0 \\ \frac {h}{J}\end{array}\right] \cdot F_A $

Formel 0-14: Übertragung auf den linearisierten ersten Modellteil. Der Antriebskraft FA entspricht u.


  • Polvorgabe mit Hilfe von Scilab und Simulation mit dem gefundenen Zustandsregler
clear();

m = 1;     //kg
g = 0.91;  // m/s^2
l = 1;     // m
h = l/2;   // m
r = 0.1;   // m

// siehe: http://www.kramann.info/54_Kinetik/02_NewtonEuler/01_Traegheitsmomente
J = 0.25*m*r*r + (1/12)*m*l*l; // kg*m^2 

A = [ 0 , 1  ;  m*g*h/J , 0 ];
B = [ 0 ; h/J ];

spec(A) //Eigenwerte der ursprünglichen Matrix ansehen
// ergibt:
//   2.3023837 + 0.i
//  -2.3023837 + 0.i

// technisch stabil wählen, an vorhandenen Werten orientieren:

EW = [-2.3023837 + %i*2.3023837 , -2.3023837 - %i*2.3023837 ];

R = ppol(A,B,EW)
// ergibt (korrigiert 5.1. wg. verändertem B):
// 2.7299999   0.7904851

//testweise diesen Regler in das nicht linearisierte Modell einbauen und testen:

function f = rechteSeite(t,y)
    phi = y(1,1);
    om  = y(2,1);
    f(1,1) = om;
    FA = -R * [phi;om];
    N = J + m*h*h*sin(phi)*sin(phi);
    f(2,1) = (-m*h*h*om*om*sin(phi)*cos(phi) + h*m*sin(phi)*g + h*cos(phi)*FA )/N;
endfunction

t = linspace(0,20,3000);
y0 = [10.0*%pi/180,0.0]';  //Start in der Nähe der instabilen Ruhelage
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

plot(t,y(1,:)',t,y(2,:)');

Code 0-9: Scilab-Skript zur Bestimmung eines Zustandsreglers durch Polvorgabe und Simulation des nicht linearen Systems unter Verwendung dieses Reglers.

Ergebnis-Plot aus obigem Skript.

Bild 0-4: Ergebnis-Plot aus obigem Skript.

  • Teil 2 der Übung: Regelung des Gesamtsystems mit einem Zustandsregler

$ \left[\begin{array}{cc} \dot \phi \\ \dot \omega \\ \dot x \\ \dot v \end{array}\right] = \left[\begin{array}{cc}0 & 1 & 0 & 0 \\ \frac {h \cdot m \cdot g}{J} & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0\end{array}\right] \cdot \left[\begin{array}{cc} \phi \\ \omega \\ x \\ v\end{array}\right] + \left[\begin{array}{cc}0 \\ \frac {h}{J} \\ 0 \\ \frac {1}{m}\end{array}\right] \cdot F_A $

Formel 0-15: Linearisiertes Gesamtmodell in Matrixschreibweise.


clear();

m = 1;     //kg
g = 0.91;  // m/s^2
l = 1;     // m
h = l/2;   // m
r = 0.1;   // m

// siehe: http://www.kramann.info/54_Kinetik/02_NewtonEuler/01_Traegheitsmomente
J = 0.25*m*r*r + (1/12)*m*l*l; // kg*m^2 

//Vorgehen für Gesamtsystem analog wie beim Teilmodell:

A = [ 0,1,0,0 ;  m*g*h/J,0,0,0 ; 0,0,0,1 ; 0,0,0,0 ];
B = [ 0 ; h/J ; 0 ; 1/m ];



spec(A) //Eigenwerte der ursprünglichen Matrix ansehen
// ergibt:
//   2.3023837 + 0.i
//  -2.3023837 + 0.i
//   0.        + 0.i
//   0.        + 0.i
// technisch stabil wählen, an vorhandenen Werten orientieren:
// Regleranteil für x langsamer machen:
u=2.3023837;
v=1.0;
EW = [-u+%i*u, -u-%i*u, -v+v*%i, -v-v*%i ];

R = ppol(A,B,EW)
// ergibt (korrigiert wg. korrigiertem B 5.1.):
//   5.3409701   2.1187267  -3.9999999  -5.7373297

//testweise diesen Regler in das nicht linearisierte Modell einbauen und testen:

function f = rechteSeite(t,y)
    phi = y(1,1);
    om  = y(2,1);
    x   = y(3,1);
    v   = y(4,1);
    FA = -R * [phi;om;x;v];
    f(1,1) = om;
    N = J + m*h*h*sin(phi)*sin(phi);
    f(2,1) = (-m*h*h*om*om*sin(phi)*cos(phi) + h*m*sin(phi)*g + h*cos(phi)*FA )/N;
    f(3,1) = v;
    f(4,1) = FA/m;
endfunction

t = linspace(0,20,3000);
y0 = [10.0*%pi/180,0.0,0.0,0.0]';  //Start in der Nähe der instabilen Ruhelage
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

plot(t,y(1,:),t,y(2,:),t,y(3,:),t,y(4,:));

Code 0-10: Scilab-Skript, jetzt um das Gesamtsystem zu regeln.

Ergebnis-Plot aus obigem Skript (Gesamtmodell).

Bild 0-5: Ergebnis-Plot aus obigem Skript (Gesamtmodell).

clear();
m = 1;     //kg
g = 0.91;  // m/s^2
l = 1;     // m
h = l/2;   // m
r = 0.1;   // m
J = 0.25*m*r*r + (1/12)*m*l*l; // kg*m^2 

R = [5.3409701,   2.1187267,  -3.9999999,  -5.7373297];

function f = rechteSeite(t,y)
    phi = y(1,1);
    om  = y(2,1);
    x   = y(3,1);
    v   = y(4,1);
    FA = -R * [phi;om;x;v];
    f(1,1) = om;
    N = J + m*h*h*sin(phi)*sin(phi);
    f(2,1) = (-m*h*h*om*om*sin(phi)*cos(phi) + h*m*sin(phi)*g + h*cos(phi)*FA )/N;
    f(3,1) = v;
    f(4,1) = FA/m;
endfunction

t = linspace(0,20,3000);
y0 = [10.0*%pi/180,0.0,0.2,0.0]';  //Start in der Nähe der instabilen Ruhelage
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

x = y(3,:);
phi = y(1,:);
y = h.*cos(phi);

zs = size(t);
spalten = zs(2);

pA = [x + h.*sin(phi);zeros(1,spalten)];
pB = [x - h.*sin(phi);y + h.*cos(phi)];

//Eine Animation soll eine Verbindungslinie von pA mit pB im zeitlichen Verlauf darstellen:
isoview;
clf;
// ABBRUCH MIT CTR C !!
for i=1:spalten
   clf;
   plot([-1.2,-1.1999,1.1999,1.2],[-1.2,1.2,1.2,-1.2]);  //Rahmen, um Skalierung konstant zu halten
   plot([pA(1,i),pB(1,i)],[pA(2,i),pB(2,i)]);
   sleep(10); // "Echtzeit"
end

Code 0-11: Animation der Ergenisse

ÜBUNG 5.1.: Hinzufügen eines integralen Zustandes, um einen I-Anteil im Zustandsregler zu haben:

$ \left[\begin{array}{cc} \dot \phi \\ \dot \omega \\ \dot \alpha \end{array}\right] = \left[\begin{array}{cc}0 & 1 & 0 \\ \frac {h \cdot m \cdot g}{J} & 0 & 0 \\ 1 & 0 & 0\end{array}\right] \cdot \left[\begin{array}{cc} \phi \\ \omega \\ \alpha \end{array}\right] + \left[\begin{array}{cc}0 \\ \frac {h}{J} \\ 0\end{array}\right] \cdot F_A $

Formel 0-16: Übertragung auf den linearisierten ersten Modellteil. Der Antriebskraft FA entspricht u.


...jetzt mit integrativem Zustand alpha = Integral von phi, bzw. d alpha / dt = phi.

clear();

m = 1;     //kg
g = 0.91;  // m/s^2
l = 1;     // m
h = l/2;   // m
r = 0.1;   // m

// siehe: http://www.kramann.info/54_Kinetik/02_NewtonEuler/01_Traegheitsmomente
J = 0.25*m*r*r + (1/12)*m*l*l; // kg*m^2 

//Einführen eines fiktiven Zustandes phi_integ = Integral phi dt,
//oder:   d phi_integ / dt = phi (Die Ableitung dieses Zustandes ergibt phi)

A = [     0   , 1 , 0 ;  
      m*g*h/J , 0 , 0 ; 
          1   , 0 , 0 ];

B = [ 0 ; h/J ; 0 ];

spec(A) //Eigenwerte der ursprünglichen Matrix ansehen
// ergibt:
//   0.        + 0.i
//   2.3023837 + 0.i
//  -2.3023837 + 0.i
// technisch stabil wählen, an vorhandenen Werten orientieren:

// Der dritte Eigenwert kann nur real sein!

EW = [-2.3023837 + %i*2.3023837 , -2.3023837 - %i*2.3023837 , -2.3023837];

R = ppol(A,B,EW)
// 4.5499999   1.1857276   4.1903382

//testweise diesen Regler in das nicht linearisierte Modell einbauen und testen:

function f = rechteSeite(t,y)
    phi = y(1,1);
    om  = y(2,1);
    phi_integ = y(3,1);
    f(1,1) = om;
    FA = -R * [phi;om;phi_integ];
    N = J + m*h*h*sin(phi)*sin(phi);
    f(2,1) = (-m*h*h*om*om*sin(phi)*cos(phi) + h*m*sin(phi)*g + h*cos(phi)*FA )/N;
    f(3,1) = phi;
endfunction

t = linspace(0,20,3000);
y0 = [10.0*%pi/180,0.0,0.0]';  //Start in der Nähe der instabilen Ruhelage
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

plot(t,y(1,:)',t,y(2,:)');

Code 0-12: Musterlösung für das Hinzufügen eines integralen Zustandes phi_integ, der das Integral von phi ist.

Ergebnis-Plot aus obigem Skript (Teilmodell mit zusätzlichem Zustand phi_integ).

Bild 0-6: Ergebnis-Plot aus obigem Skript (Teilmodell mit zusätzlichem Zustand phi_integ).

Hinweise zur Vorbereitung und zum Ablauf der Prüfung
  • ÜBUNGS-E-Test: Dienstag 12.01.2021, TH-Brandenburg, IWZ, Raum 135 (PC-Pool) Gruppe1: 9-10Uhr, Gruppe2: 10:15-11:15Uhr
  • KLAUSUR Regelungstechnik: Dienstag 19.01.2021, TH-Brandenburg, IWZ, Raum 135 (PC-Pool) Gruppe1: 8:30-10Uhr, Gruppe2: 10:30-12Uhr
  • KLAUSUR Informatik-Ergänzungen: Donnerstag 21.01.2021, TH-Brandenburg, IWZ, Raum 135 (PC-Pool) Gruppe1: 8:30-10Uhr, Gruppe2: 10:30-12Uhr
  • Gruppe 1: Erste Hälfte (1-7) der auf Moodle registrierten Studierenden in alphabetischer Reihenfolge der Nachnamen.
  • Gruppe 2: Zweite Hälfte (8-14) der auf Moodle registrierten Studierenden.
  • Im Gebäude muß eine Maske/ein Mund-Nasenschutz getragen werden.
  • Sie werden einzeln an Ihren Platz geleitet.
  • Bitte halten Sie auch im Gang Abstand zueinander.
  • Bitte kommen Sie nicht früher als 5 Minuten vor der verabredeten Zeit.
  • Bitte verspäten Sie sich nicht.
  • Bitte verlassen Sie Ihren Platz nicht für die Dauer der Veranstaltung.
  • Zeigen Sie Fragen oder einen Wunsch zum Verlassen des Raumes durch Handzeichen an.
  • Sie werden auch aus dem Raum hinaus geleitet.
  • Legen Sie Ihren Studierendenausweis während der Prüfung gut sichtbar neben sich am Platz.
  • Sollte die Gebäudetür verschlossen sein, hole ich Sie vor dem Eingang ab.
  • Ziehen Sie sich am besten warm an wegen des Lüftens.

Bitte beachten Sie weitere Hinweise während der Lehrveranstaltung.


CORONA SHUTDOWN-VERORDNUNG LAND BRANDENBURG: https://bravors.brandenburg.de/verordnungen/3__sars_cov_2_eindv

Daraus: § 19 Weitere Bildungs- sowie Aus-, Fort- und Weiterbildungseinrichtungen: (1) Präsenzangebote in Bildungs- sowie Aus-, Fort- und Weiterbildungseinrichtungen, insbesondere in Hochschulen, Musikschulen, Kunstschulen, Volkshochschulen, Fahr-, Flug- und Segelschulen sind nur mit jeweils bis zu fünf Teilnehmerinnen und Teilnehmern zulässig. Die Personengrenze nach Satz 1 gilt nicht für die Durchführung und Vorbereitung von Prüfungen sowie die Abnahme von Prüfungsleistungen.

Theoretische Behandlung des Zustandsreglers mit Beobachter
80_Robuste_Systemintegration/01_Grundlagen/07_Zustandsregler
Wiederholung einzelner Themen gemäß Ihren Wünschen
**** NEW ****
kramann.info/etest -- Anleitung zum E-Test / Instruction for e-test