kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Regelungs- und Steuerungs- und Simulationstechnik 4EIT 4MT WING im Sommersemester 2023

(EN google-translate)

(PL google-translate)

  • Angaben zu Veranstaltungszeiten und Räumen dieser Lehrveranstaltung finden Sie auf der Startseite kramann.info dieses Portals.
  • Hier bei "day by day" werden chronologisch im Verlauf des Semesters die behandelten Inhalte vermerkt.
  • Meistens werden Links innerhalb von kramann.info angegeben, wo der jeweils behandelte Stoff dargestellt wird.
  • Zur Orientierung finden Sie auf kramann.info auch noch das "day by day" der gleichen Lehrveranstaltung vom vorangehenden Jahr.
  • Die Prüfung in diesem Fach ist eine Klausur in elektronischer Form (E-Test)
  • Die folgenden vorab angegebenen Links stellen Quellen dar, aus denen die hier behandelten Inhalte genommen werden:

kramann.info -- Angaben zu Veranstaltungszeiten und Räumen dieser Lehrveranstaltung
62_Regelungssysteme
54_Kinetik
50_Simulationstechnik
37_Scilab
95_ETEST -- Hinweise zu der elektronischen Prüfungsform "E-Test"

#1 Do 23.03.2023

Motivation

Wir sind umgeben von komplexen dynamischen Systemen

12_Technologie/03_Lottka_Volterra -- Lottka-Volterra-Modell (Räuber/Beute)
12_Technologie/10_Start2019/04_Anthropozaen

Steuerungen

  • Speicher programmierbare Steuerung (SPS) in der Produktion
  • Industrieroboter
  • Werkzeugmaschinen
  • 3D-Drucker
  • Haushaltsgeräte wie Waschmaschinen oder Spülmaschinen
  • Automatische Nachführung bei Teleskopen

Geregelte technische Geräte und Komponenten

  • Heizregelung
  • Antiblockiersystem ABS
  • Elektronisches Stabilisierungsprogramm (ESP)
  • Fahrassistenzsysteme wie Spurhalteassistent oder Tempomat
  • Autopilot
  • Autofokus bei der Kamera

Was bedeutet Regelung im Vergleich zu Steuerung? -- Beispiele aus der Technik

esp32AV -- Linienverfolgung mit PID-Regler
Personenkutschfahrt
15_Einachser

Autonomes Fahren Level 1 bis 5

Autonomes Fahren: Die fünf Level

Regelkreise in lebenden Systemen

  • Herz-Kreislaufsystem
  • Iris beim Auge
  • Greifen nach einem Objekt
  • Balancieren / Gehen / Laufen
  • Hautbräunung

Warum wird ein CAE-Tool (Computer added engineering) eingesetzt (Scilab)?


...und brandneu: Was bringt die Kombination mit ChatGPT?


Aufgabe für ChatGPT: Die Differentialgleichung dx/dt=x soll numerisch mit Hilfe des Euler-Integrationsverfahrens integriert werden. Es gelte: x(t=0s)=1. Es sollen 10 Integrationsschritte in einer Schrittweite von 0,1s durchgeführt werden. Damit wäre die Integrationszeit nach dem 10. Schritt bei 1,0 Sekunden. Schreiben Sie ein Scilab-Programm, das diese Aufgabe erledigt.

//Hier ist das Scilab-Programm, das die Differentialgleichung numerisch mit dem Euler-Integrationsverfahren löst:

// Set the initial condition
x0 = 1;

// Set the number of integration steps and the step size
n = 10;
dt = 0.1;

// Create arrays to store the time and solution values
t = 0:dt:dt*n;
x = zeros(1, n+1);
x(1) = x0;

// Perform the Euler integration
for i = 1:n
    x(i+1) = x(i) + dt * x(i);
end

// Plot the results
plot(t, x)
xtitle('Numerical Solution of dx/dt = x', 'Time (s)', 'x')
//Das Programm gibt das Ergebnis als Grafik aus, die die numerische Lösung von x(t) gegen die Zeit t darstellt.

Code 0-1: Antwort von ChatGPT

Teil 1: Behandlung einführender Fragestellungen
  1. Woher stammt die Regelungstechnik?
  2. Was bedeutet der Begriff Simulationstechnik?
  3. Warum werden dynamische Systeme modelliert und simuliert, anstatt sie einfach aufzubauen?
Fliehkraftregler nach James Watt -- https://www.youtube.com/watch?v=nnPImWZ1O2s
Dampfmaschine nach James Watt -- https://www.youtube.com/watch?v=n6B4ogz3sic
Norbert Wiener - Anti-Aircraft Gun 1950
Motivation / Diskussion ... Grey Walter's tortoises 1949
SYSTEM -- 50_Simulationstechnik/01_Systemtheorie/01_System
MODELL -- 50_Simulationstechnik/01_Systemtheorie/02_Modell

Hinweis auf die besondere Bedeutung und Notwendigkeit der Visualisierung, wenn es um das Verstehen von Simulationsergebnissen geht.

VERIFIKATION -- 50_Simulationstechnik/01_Systemtheorie/03_Verifikation
Teil 2: Einführung in Scilab
Scilab, erste Schritte -- 37_Scilab/01_Erste_Schritte
Scilab, Skripte -- 37_Scilab/02_Skripte
Scilab, Funktionen -- 37_Scilab/03_Funktionen
Teil 3: Scilab und ein erstes Simulationsmodell
Seerosenteich -- 50_Simulationstechnik/01_Systemtheorie/04_Seerosen
Euler-Integration -- 50_Simulationstechnik/01_Systemtheorie/05_Eulerintegration
Saalübung -- 50_Simulationstechnik/01_Systemtheorie/06_Saaluebung
Umsetzung mit Scilab -- 50_Simulationstechnik/01_Systemtheorie/07_scilab
esp32AV -- Linienverfolgung mit PID-Regler
Personenkutschfahrt
Einachser
62_Regelungssysteme/02_Heizregelkreis -- Der Regelkreis
Übung mit Scilab

Die Methode inv(...) ermöglicht es Matrizen zu invertieren und so lineare Gleichungssysteme zu lösen.

Beispielsweise kann folgendes LGS wie folgt mit Scilab gelöst werden:

$ \left[\begin{array}{cc}19 \\ 43\end{array}\right] = \left[\begin{array}{cc}1 & 2 \\ 3 & 4\end{array}\right] \cdot \left[\begin{array}{cc}x \\ y\end{array}\right] $

Formel 0-1: Lösung wäre: x=5 & y=7.



A=[1,2;3,4];
b=[19;43];

xy = inv(A)*b


Code 0-2: Lösung mit Hilfe von Scilab.

Lösen Sie folgende LGS mit Hilfe von Scilab:

$ \left[\begin{array}{cc}-26 \\ -12\end{array}\right] = \left[\begin{array}{cc}-1 & 2 \\ 3 & 4\end{array}\right] \cdot \left[\begin{array}{cc}x \\ y\end{array}\right] $

Formel 0-2: LGS2


$ \left[\begin{array}{cc}26 \\ 62 \\ 98\end{array}\right] = \left[\begin{array}{cc}1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\end{array}\right] \cdot \left[\begin{array}{cc}x \\ y\end{array}\right] $

Formel 0-3: LGS2


#2 Do 30.03.2023

Themen
  1. Wiederholung: Grundelemente eines Regelkreises
  2. Wiederholung: Matrizenoperationen mit Scilab
  3. Systemtheorie -- Die Begriffe System, Modell und Modell-Verifikation
  4. Scilab und ein erstes Simulationsmodell
  5. Übungen
1. Wiederholung: Grundelemente eines Regelkreises
62_Regelungssysteme/02_Heizregelkreis -- Der Regelkreis
2. Wiederholung: Matrizenoperationen mit Scilab
Scilab, erste Schritte -- 37_Scilab/01_Erste_Schritte
Scilab, Skripte -- 37_Scilab/02_Skripte
Scilab, Funktionen -- 37_Scilab/03_Funktionen
3. Systemtheorie -- Die Begriffe System, Modell und Modell-Verifikation
SYSTEM -- 50_Simulationstechnik/01_Systemtheorie/01_System
MODELL -- 50_Simulationstechnik/01_Systemtheorie/02_Modell
VERIFIKATION -- 50_Simulationstechnik/01_Systemtheorie/03_Verifikation
4. Scilab und ein erstes Simulationsmodell
Seerosenteich -- 50_Simulationstechnik/01_Systemtheorie/04_Seerosen
Euler-Integration -- 50_Simulationstechnik/01_Systemtheorie/05_Eulerintegration
Saalübung -- 50_Simulationstechnik/01_Systemtheorie/06_Saaluebung
Im Unterricht entstandene Lösungen zur numerischen Integration der DGL des Seerosenteiches
clc;
clear;
mode(0);
n=604800;
m=n+1;
t=0:1:n;

y=zeros(1,m);
for i=1:m
    y(i)=exp((1/872542)*(i-1));
end
//-----------------------
y1=zeros(1,m);
y1(1)=1;
for i=(2:m)
    y1(i)=y1(i-1)+(1/872542)*y1(i-1);
end

plot(t,y1)

plot(t,y,'re--')


Code 0-3: Studentische Lösung

clear;

dt = 60;

woche = 7*24*60*60

tmax = woche*9 //Simulationsdauer in Sekunden

schritte = floor(tmax/dt);

t = 0:dt:tmax;
k = 1/872542;
y = exp(t*k);

plot(t,y)

A = 1;
Aerg = zeros(1,1);
Aerg(1,1) = A; //A0
ii=2;
for i=dt:dt:tmax
   Aneu = A + k*A*dt;
   Aerg(1,ii) = Aneu;
   A = Aneu;
   ii=ii+1;
end

plot(t,Aerg,'re--')

Code 0-4: Variante

5. Übungen

Die Übungen werden in die Entwicklung des Seerosenteichmodells mit eingeflochten:

  • Selbstständige analytische Lösung der Differentialgleichung zum Seerosenteich.
  • Übereinanderlegen eines Plots der numerischen und der analytischen Lösung des Seerosenteiches in Scilab.
  • Übtragen der Lösung auf ein C-Programm, um sich noch einmal das Euler-Integrationsverfahren zu vergegenwärtigen.
  • Beauftragung und Analyse aller vorangehenden Übungsaufgaben mit ChatGPT.

#3 Do 13.04.2023

Themen:

  1. Wiederholung Euler-Integrationsverfahren
  2. Einführung des Newtonschen Gesetzes als theoretische Grundlage für die Modellierung dynmaischer mechanischer Systeme
  3. Einführung des Feder-Masse-Dämpfer-Schwingers
  4. Einführung des in Scilab verfügbaren Integrators ODE.

1. Wiederholung Euler-Integrationsverfahren

Siehe Übung 1

2. Einführung des Newtonschen Gesetzes als theoretische Grundlage für die Modellierung dynmaischer mechanischer Systeme

54_Kinetik/01_Newton

In Worten: "Die Impulsänderung eines starren Körpers ergibt sich aus der Summe der an ihn angreifenden äußeren Kräfte."


3. Einführung des Feder-Masse-Dämpfer-Schwingers

und 4. Einführung des in Scilab verfügbaren Integrators ODE

54_Kinetik/01_Newton/01_LinearSchwinger
54_Kinetik/01_Newton/02_Daempfung
54_Kinetik/01_Newton/04_ODE
//  mx.. = -cx -Dx.
//
//   dx/dt = v
//   dv/dt = (-C/m)*x + (-D/m)*v

//1. gespeicherte Variablen löschen
clear;

//2. Parameter definieren

m = 1; //kg
C = 1; // N/m
D = 0.2; // Ns/m

//3. Anfangsbedingungen setzen:

x0 = 1; // m
v0 = 0; // m/s

//4. Zeitschrittweite und Anfangszeit festlegen

dt = 0.01; // s

t0 = 0; // s

tend = 3; // s

//5. Arrays vorbereiten, um die Daten Zeitschritt für Zeitschritt zu sammeln:

t_sammel(1) = t0;
x_sammel(1) = x0;
v_sammel(1) = v0; 

//6. Iteratives Euler-Integrations-Verfahren

x_alt = x0;
v_alt = v0;
i=1;
for t=dt:dt:tend
   x_neu = x_alt + v_alt*dt;
   v_neu = v_alt + ((-C/m)*x_alt + (-D/m)*v_alt)*dt;
   i=i+1;

   t_sammel(i) = t;   //Daten speichern
   x_sammel(i) = x_neu;
   v_sammel(i) = v_neu; 
   
   x_alt = x_neu;
   v_alt = v_neu;
end

plot(t_sammel,x_sammel,t_sammel,v_sammel);

Code 0-5: Simulationsprogramm für den Feder-Masse-Dämpfer-Schwinger.

//  mx.. = -cx -Dx.
//
//   dx/dt = v
//   dv/dt = (-C/m)*x + (-D/m)*v

//1. gespeicherte Variablen löschen
clear;

//2. Parameter definieren

m = 1; //kg
C = 1; // N/m
D = 0.2; // Ns/m

//3. Anfangsbedingungen setzen:

x0 = 1; // m
v0 = 0; // m/s

//4. Zeitschrittweite und Anfangszeit festlegen

dt = 0.01; // s

t0 = 0; // s

tend = 3; // s

//5. RECHTE SEITE FUNKTION DERFINIEREN:

//t_sammel(1) = t0;
//x_sammel(1) = x0;
//v_sammel(1) = v0; 

function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    f(1,1) = v;
    f(2,1) = -(C/m)*x-(D/m)*v;
endfunction

//6. Aufruf des ode-Integrators

t = 0:dt:tend;
y0 = [x0;v0];
y  = ode(y0,t0,t,rechteSeite);

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

Code 0-6: Gleiche Simulation, jedoch unter Verwendung des ODE-Integrators von Scilab.

Übung 1: Numerische Integration mit dem Euler-Verfahren am Beispiel des Räuber-Beute-Modells

Unter nachfolgendem Link finden Sie eine Beispielimplementierung des Räuber-Beute-Modells nach Lottka und Voltera in Java/C-Syntax. Übertragen Sie dieses System mit den dort vorfindlichen Parametern und erzeugen Sie auch einen Plot des Simulationsverlaufes.

12_Technologie/03_Lottka_Volterra
clear; 
//vorgegeben
a = 0.1;
b = 0.01;
c = 0.01;
d = 0.1;

//anzahl beute und jäger
B = 8;
R = 2;

dt = 0.01; 
tend = 300;

i=1;

//arrays
beute(1) = B;
raeuber(1) = R;
time(1) = 0; 

for t=dt:dt:tend
    
    Rneu = R + (- R*d  + B*R*c)*dt;
    Bneu = B + (B*a  - B*R*b)*dt;

    i = i+1; 
    
    beute(i) = Bneu;
    raeuber(i) = Rneu;
    time(i) = t;
    
    
    B = Bneu;
    R = Rneu;
    
end

plot(time,beute,time,raeuber);

Code 0-7: studentische Lösung (Parameter optimiert: dt, tend)

Plot dazu.

Bild 0-1: Plot dazu.

Hinweise:

  • Die zugrundeliegende zeitliche Einheit sei hier 1Tag und nicht 1Sekunde.
  • Ein Zeitschritt dt sei hier 0.1Tage.
  • Die Werte für die Parameter sollen in Ihrer Simulation sein: a=0.1, b=0.01, c=0.01, d=0.1.
Übung 2

a) Analysieren Sie die Varianten zum linearen Feder-Masse-Dämpfer-Schwinger mit Euler-Integrationsverfahren und ODE.

b) Schreiben Sie ein Simulationsprogramm mit Scilab für ein Masse-Dämpfer-System (OHNE Feder). Es soll das Euler-Integrationsverfahren verwendet werden. Anfangsauslenkung soll x=1m sein, dt=0.01s. Die Parameter sind: m=2kg, D=0.1Ns/m.

// Gleichungen mx..=-cx-Dx.
//dx/dt=v
//dv/dt=(-C/m)*x+(-D/m)*V

//Löschen aller evtl. belegten Variablen

clear; 

//Parameter definieren

m = 2; //kg
C = 0; //N/m
D = 1; //Ns/m

//Anfangsbedingung setzten für x. und v

x0 = 0; //m wir starten bei einem Meter- Die Feder ist bereits gestreckt
v0 = 1; //m/s

//Zeitschrittweite festlegen

dt = 0.001; //s 
t0 = 0; //s
tend = 20; //s

//Arrays vorbereiten um, die Daten zu sammeln t, x und v

t_sammel(1) = t0;
x_sammel(1) = x0; 
v_sammel(1) = v0; 
i=1;


//Anwendung des Euler-Integrations-Verfahren
x_alt=x0; 
v_alt=v0;

for t=dt:dt:tend //von dt, in dt schritten bis tend
    x_neu = x_alt + v_alt *dt; 
    v_neu = v_alt + ((-C/m)*x_alt +(-D/m )*v_alt)*dt;
    
    i=i+1; 
    t_sammel(i) = t;    //Daten speichern
    x_sammel(i) = x_neu; 
    v_sammel(i) = v_neu;
    
    x_alt = x_neu; //im nächsten Durchlauf wird der aktuelle Wert eingesetz
    v_alt = v_neu; 
end

plot(t_sammel, x_sammel,t_sammel,v_sammel)

Code 0-8: studentische Lösung

c) Schreiben Sie das Simulationsprogramm von b) so um, dass nun der ODE-Integrator in Scilab benutzt wird.

//  mx.. = -cx -Dx.
//
//   dx/dt = v
//   dv/dt = (-C/m)*x + (-D/m)*v

//1. gespeicherte Variablen löschen
clear;

//2. Parameter definieren

m = 2; //kg
C = 0; // N/m
D = 1; // Ns/m

//3. Anfangsbedingungen setzen:

x0 = 0; // m
v0 = 1; // m/s

//4. Zeitschrittweite und Anfangszeit festlegen

dt = 0.01; // s

t0 = 0; // s

tend = 20; // s

//5. RECHTE SEITE FUNKTION DERFINIEREN:

//t_sammel(1) = t0;
//x_sammel(1) = x0;
//v_sammel(1) = v0; 

function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    f(1,1) = v;
    f(2,1) = -(C/m)*x-(D/m)*v;
endfunction

//6. Aufruf des ode-Integrators

t = 0:dt:tend;
y0 = [x0;v0];
y  = ode(y0,t0,t,rechteSeite);

plot(t,y(1,:),'red--',t,y(2,:),'gre--');

Code 0-9: studentische Lösung

#4 Do 20.04.2023

Themen
  1. Wiederholung: Euler-Integrationsverfahren / Newtonsches Gesetz
  2. Eigenwerte
  3. Saalübung: P-Regler, PD-Regler
  4. Zustandsregler
1. Wiederholung: Euler-Integrationsverfahren / Newtonsches Gesetz
2. Eigenwerte

Die Lage der Eigenwerte linearer Differentialgleichungssysteme geben Auskunft über die Systemeigenschaften Stabilität und Schwingungsfähigkeit.

Ihre Bestimmung stellt eines der wichtigsten Hilfsmittel bei der Analyse und Auslegung technischer und regelungstechnischer Systeme dar.

50_Simulationstechnik/02_Eigenwerte
Übung zu Eigenwerten

Bestimmen Sie die Eigenwerte folgender linearer Differentialgleichungen zweiten zweiten Grades und überprüfen Sie im Anschluß Ihr Ergebnis auf Richtigkeit mittels spec(...) mit Hilfe von Scilab:

$ \ddot x = -x $

Formel 0-4: DGL. Nr.1


$ \ddot x = -x - \dot x $

Formel 0-5: DGL. Nr.2


$ \ddot x=x - \dot x $

Formel 0-6: DGL. Nr.3


$ 4 \ddot x =-2 \cdot x - \dot x $

Formel 0-7: DGL. Nr.4


3. Saalübung: P-Regler, PD-Regler
  • Ein linearer Schwinger, Masse 1kg, Federkonstante C=1N/m, keine Dämpfung, soll durch einen P und durch einen PD-Regler beruhigt werden.
  • Die Stellgröße u ist hier eine Stellkraft F, die dem System abhängig von x und v zugeführt wird: F = P*(xsoll-x)+D*(vsoll-v).
  • Für P=1N/m und D=1Ns/m wird die Veränderung der Eigenwerte des Gesamtsystems untersucht.
Zusatzübung: beide Systeme (mit und ohne Regler) simulieren:
m = 1.0;
C = 1.0;
P=1;
D=1;
xsoll = 0;
vsoll = 0;
tend = 10;
x0=1;
v0=0;
y0=[x0;v0];
t0=0;

function f = rechteSeite(t,y)
    x = y(1,1);
    v = y(2,1);
    FR = P*(xsoll-x)+D*(vsoll-v);
    f(1,1) = v;
    f(2,1) = -(C/m)*x+FR/m;
endfunction
dt=0.01;
t = 0:dt:tend;
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

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

Code 0-10: beide Systeme (mit und ohne Regler) simulieren

System mit PD-Regler.

Bild 0-2: System mit PD-Regler.

4. Zustandsregler
  • Eine Methode einen Regler so zu designen, dass die Eigenwerte des geregelten Systems eine ganz bestimmte Lage haben, stellt der Zustandsregler dar.
  • Er heißt so, weil die Stellgröße u gebildet wird, indem der Systemzustand y (Vektor) mit Linearfaktoren auf das System zurück gegeben wird.
  • Im Allgemeinen regelt ein Zustandsregler auf den Zustand y=0. Jedoch kann das über Koordinatentransformationen geändert werden.
64_Regelungssysteme/08_Polvorgabe
Übung zum Zustandsregler

Versehen Sie nachfolgendes dynamisches System mit einem Zustandsregler, der die Eigenwerte des Gesamtsystems nach -1+i und -1-i verschiebt.

Als Stellgröße gilt hier die externe Kraft F.

$ m \cdot \ddot x = -Cx + F $

Formel 0-8: mit m=1kg & C=1m/s & F ist die Stellkraft.


#5 Do 27.04.2023

Themen

  1. Quiz: Eigenwerte, Reglkreisauslegung
  2. Zustandsregler
  3. Übung

Quiz: Eigenwerte, Reglkreisauslegung

  • Was ist ein Eigenvektor?
  • Wie berechnet man Eigenwerte?
  • Welche Bedeutung haben Eigenwerte in der Theorie der Regelungstechnik?
  • Wieviele Eigenwerte hat ein dynamisches System zweiter Ordnung?
  • Wieviele Eigenwerte hat ein dynamisches System erster Ordnung?
  • Wieviele Eigenwerte hat "der Seerosenteich"?
  • Wo liegen der oder die Eigenwerte beim "Seerosenteich"?
  • Wo liegen die Eigenwerte, damit ein System stabil ist?
  • Was bedeutet "stabil" hier?
  • Was ist die Vorraussetzung bei den Eigenwerten, damit ein System schwingungsfähig ist?
  • Ist der "Seerosenteich" schwingungsfähig?

Zustandsregler

64_Regelungssysteme/08_Polvorgabe
Übung 1 zum Zustandsregler

Versehen Sie nachfolgendes dynamisches System mit einem Zustandsregler, der die Eigenwerte des Gesamtsystems nach -1+i und -1-i verschiebt.

Als Stellgröße gilt hier die externe Kraft F.

$ m \cdot \ddot x = -Cx + F $

Formel 0-9: mit m=1kg & C=1m/s & F ist die Stellkraft.


Übung 2 zum Zustandsregler

$ \ddot x = -x -v $

Formel 0-10: Zu regelndes System \left(Regelstrecke\right)


Für oben stehendes System ist ein Zustandsregler so zu finden, dass die EW liegen bei: Lambda 1/2 = -1 +/- i*sqrt(3)/2

Übung 3 zum Zustandsregler

Gegeben sei ein lineares Feder-Masse-Dämpfer-System mit folgenden Parametern: m=2kg, C=1N/m, D=0Ns/m.

  • Leiten Sie die Modellgleichung des Systems mit Hilfe der Newton-Gleichung her.
  • Geben Sie die Lage der Eigenwerte des Systems an (Bitte von Hand berechnen und mit Scilab überprüfen).

Über eine zusätzlich auf den starren Körper einwirkende Stellkraft F, soll nun ein Zustandsregler umgesetzt werden. Die beiden Eigenwerte des geregelten Systems sollen beide bei -2 liegen. Das heißt, die haben keinen Imaginärteil. Hinweis: Man nennt so etwas eine doppelte Polstelle.

  • Stellen Sie die Modellgleichungen für das um den Zustandsregler ergänzten System auf.
  • Bestimmen Sie die Komponenten r1 und r2 der Regelmatrix, wenn die gewünschten Eigenwerte beim geregelten System gelten sollen.
  • Überprüfen Sie Ihr Ergebnis mit Hilfe von ppol mit Scilab.
Zusatzaufgaben

Bestimmen Sie für nachfolgende Systemmatrizen die Eigenwerte von Hand und überprüfen Ihre Ergebnisse mit Hilfe von Scilab. Geben Sie außerdem jeweils an, ob das entsprechende System stabil, instabil, oder grenzstabil ist und ob es schwingungsfähig ist, oder nicht:

$ A=\left[\begin{array}{cc}0 & 1 \\ -2 & 0\end{array}\right] $

Formel 0-11: Systemmatrix 1.


$ A=\left[\begin{array}{cc}0 & 1 \\ 2 & 0\end{array}\right] $

Formel 0-12: Systemmatrix 2.


$ A=\left[\begin{array}{cc}0 & 1 \\ 2 & -2\end{array}\right] $

Formel 0-13: Systemmatrix 3.


$ A=\left[\begin{array}{cc}0 & 1 \\ -2 & -2\end{array}\right] $

Formel 0-14: Systemmatrix 4.


#6 Do 04.05.2023

Invertierendes Pendel (Herleitung an der Tafel)

clear


m=1; // in kg
r=0.1; // in m 
h=1; // in m

J=0.25*m*r*r + 1/12*m*h*h;
F_A=0; 
g=9.81; //in m*s^-2

phi0 = 0.2;
w0 = 0; 
t0 = 0; 
dt = 0.1;
tend = 3;

function f = rechteSeite(t,y)
    phi = y(1,1); 
    w = y(2,1);
    s=sin(phi);
    c=cos(phi);

    F_A = -29.43*phi   -2.595419*w;
 
    f(1,1) = w; 
    f(2,1) = (0.5*c*F_A+0.5*m*g*s-0.25*m*h*h*w*w*s*c)/(J+0.25*m*h*h*s*s);
    
endfunction

t = 0:dt:tend; 
y0 = [phi0;w0]; 
y  = ode(y0,t0,t,rechteSeite);
plot(t,y(1,:),t,y(2,:),'red');

a = (m*g*h)/(2*J)
b = h/(2*J);

A = [0,1;a,0]
B = [0;b]

EW = spec(A)

//    7.5594729 + 0.i
//   -7.5594729 + 0.i

RR = real(EW(1));

EWsoll = [-RR+RR*%i,-RR-RR*%i];

RRRR = ppol(A,B,EWsoll)
//RRRR  =  29.43   2.595419


Code 0-11: Studentische Lösung für die Simulation.

#7 Do 11.05.2023


Beginn: 12Uhr!


Themen

  1. Zustandsregelung für den gesamten Zustand des invertierenden Pendels: phi, omega, x, v
  2. Vorbesprechung zu einer möglichen Animation des geregelten Systems mit Scilab
  3. Übungen zur Konsilidierung der bisherigen Inhalte

Dynamische Gleichungen zum invertierenden Pendel:

$ \ddot \phi = \frac {0.5 \cos \left( \phi \right)F_A+0.5mgh \cdot \sin \left( \phi \right)-0.25mh^2 \cdot \dot \phi ^2 \cdot \sin \left( \phi \right) \cdot \cos \left( \phi \right)}{J+0.25mh^2 \cdot \sin ^2\left( \phi \right)} $

Formel 0-15: Euler-Gleichung.


$ m \cdot \ddot x=F_A $

Formel 0-16: Newton-Gleichung für die x-Richtung.


$ \ddot \phi = \frac {h}{2J} \cdot F_A+ \frac {mgh}{2J} \cdot \phi $

Formel 0-17: Linearisierte Euler-Gleichung.


Übung

Aufgabe 0:

Animation des geregelten Einachsers mit Scilab.

Aufgabe 1:

Versehen Sie nachfolgendes dynamisches System mit einem Zustandsregler, der die Eigenwerte des Gesamtsystems nach -1+i und -1-i verschiebt.

Als Stellgröße gilt hier die externe Kraft F.

$ m \cdot \ddot x = -Cx + F $

Formel 0-18: mit m=1kg & C=1m/s & F ist die Stellkraft.


Aufgabe 2:

Bestimmen Sie für nachfolgende Systemmatrizen die Eigenwerte von Hand und überprüfen Ihre Ergebnisse mit Hilfe von Scilab. Geben Sie außerdem jeweils an, ob das entsprechende System stabil, instabil, oder grenzstabil ist und ob es schwingungsfähig ist, oder nicht:

$ A=\left[\begin{array}{cc}0 & 1 \\ -2 & 0\end{array}\right] $

Formel 0-19: Systemmatrix 1.


$ A=\left[\begin{array}{cc}0 & 1 \\ 2 & 0\end{array}\right] $

Formel 0-20: Systemmatrix 2.


$ A=\left[\begin{array}{cc}0 & 1 \\ 2 & -2\end{array}\right] $

Formel 0-21: Systemmatrix 3.


$ A=\left[\begin{array}{cc}0 & 1 \\ -2 & -2\end{array}\right] $

Formel 0-22: Systemmatrix 4.


Aufgabe 3:

Gegeben sei ein lineares Feder-Masse-Dämpfer-System mit folgenden Parametern: m=2kg, C=1N/m, D=0Ns/m.

  • Leiten Sie die Modellgleichung des Systems mit Hilfe der Newton-Gleichung her.
  • Geben Sie die Lage der Eigenwerte des Systems an (Bitte von Hand berechnen und mit Scilab überprüfen).

Über eine zusätzlich auf den starren Körper einwirkende Stellkraft F, soll nun ein Zustandsregler umgesetzt werden. Die beiden Eigenwerte des geregelten Systems sollen beide bei -2 liegen. Das heißt, die haben keinen Imaginärteil. Hinweis: Man nennt so etwas eine doppelte Polstelle.

  • Stellen Sie die Modellgleichungen für das um den Zustandsregler ergänzten System auf.
  • Bestimmen Sie die Komponenten r1 und r2 der Regelmatrix, wenn die gewünschten Eigenwerte beim geregelten System gelten sollen.
  • Überprüfen Sie Ihr Ergebnis mit Hilfe von ppol mit Scilab.

Aufgabe 4: Modellierung und Regelung eines hängenden Pendels

Ein homogener zylindrischer Stab, Länge 1m, Radius 0.1m, Masse 1kg, sei an einem Ende gelenkig mit einem rotatorischen Freiheitsgrad aufgehangen und der Schwerkraft ausgesetzt.

Die Ruhelage phi=0rad soll im hängenden Zustand sein, eine Drehung gegen den Uhrzeigersinn sei positiv (phi>0).

  • Skizzieren Sie das System.
  • Schneiden Sie das System frei.
  • Stellen Sie die dynamischen Gleichungen auf.
  • Erstellen und testen Sie ein Simulationsmodell mit Scilab (AB!=0).
  • Linearisieren Sie nun die dynamische Gleichung, und legen damit einen Zustandsregler für das System mittels ppol aus.
  • Simulieren (testen) Sie den gefundenen Zustandsregler gemeinsam mit dem nicht linearisierten Modell.
  • Versuchen Sie den gleichen Zustandsregler von Hand (Handrechnung ohne ppol) auszulegen.
  • #h
  • Im Unterricht entstandener Code:
clear


m=1; // in kg
r=0.1; // in m 
h=1; // in m

J=0.25*m*r*r + 1/12*m*h*h;
F_A=0; 
g=9.81; //in m*s^-2

phi0 = 0.4;
w0 = 0; 
x0 = 0;
v0 = 0; 
t0 = 0; 
dt = 0.1;
tend = 3;

a = (m*g*h)/(2*J)
b = h/(2*J);

function f = rechteSeite(t,y)    
    phi = y(1,1); 
    w = y(2,1);
    x = y(3,1);
    v = y(4,1);
    s=sin(phi);
    c=cos(phi);

    //F_A = -29.43*phi   -2.595419*w;  //nur PHI regeln.
    R = [63.764999,   7.7862571,  -57.14563,  -22.678418];
    F_A = -R*y; 

    f(1,1) = w; 
    f(2,1) = (0.5*c*F_A+0.5*m*g*s-0.25*m*h*h*w*w*s*c)/(J+0.25*m*h*h*s*s);
    f(3,1) = v;
    f(4,1) = (1/m)*F_A;
endfunction

t = 0:dt:tend; 
y0 = [phi0;w0;x0;v0]; 
y  = ode(y0,t0,t,rechteSeite);
plot(t,y(1,:),'blk',t,y(2,:),'red',t,y(3,:),'blu',t,y(4,:),'gre');

//a = (m*g*h)/(2*J)
//b = h/(2*J); // siehe oben !

A = [0,1;a,0]
B = [0;b]

EW = spec(A)

//    7.5594729 + 0.i
//   -7.5594729 + 0.i

RR = real(EW(1));

EWsoll = [-RR+RR*%i,-RR-RR*%i];

RRRR = ppol(A,B,EWsoll)

//--------------------------------
//Gesamtsystem regeln:

A = [0,1,0,0
     a,0,0,0
     0,0,0,1
     0,0,0,0];

B = [0
     b
     0
     1/m];

spec(A)

q=7.5594729;

//Wunscheigenwerte:
EW = [-q+%i*q,-q-%i*q,  (-q+%i*q)/2,(-q-%i*q)/2];

R = ppol(A,B,EW)

Code 0-12: Regelung des Gesamtszustandes phi, omega, x, vx.

...mit Animation:

clear


m=1; // in kg
r=0.1; // in m 
h=1; // in m

J=0.25*m*r*r + 1/12*m*h*h;
F_A=0; 
g=9.81; //in m*s^-2

phi0 = 0.43;
w0 = 0; 
x0 = 0;
v0 = 0; 
t0 = 0; 
dt = 0.001;
tend = 3;

a = (m*g*h)/(2*J)
b = h/(2*J);

//--------------------------------
//Gesamtsystem regeln:

A = [0,1,0,0
     a,0,0,0
     0,0,0,1
     0,0,0,0];

B = [0
     b
     0
     1/m];

spec(A)

q=7.5594729;

//Wunscheigenwerte:
EW = [-q+%i*q,-q-%i*q,  (-q+%i*q)/2,(-q-%i*q)/2];

R = ppol(A,B,EW)




function f = rechteSeite(t,y)    
    phi = y(1,1); 
    w = y(2,1);
    x = y(3,1);
    v = y(4,1);
    s=sin(phi);
    c=cos(phi);

    //F_A = -29.43*phi   -2.595419*w;  //nur PHI regeln.
    F_A = -R*y; 

    f(1,1) = w; 
    f(2,1) = (0.5*c*F_A+0.5*m*g*s-0.25*m*h*h*w*w*s*c)/(J+0.25*m*h*h*s*s);
    f(3,1) = v;
    f(4,1) = (1/m)*F_A;
endfunction

t = 0:dt:tend; 
y0 = [phi0;w0;x0;v0]; 
y  = ode(y0,t0,t,rechteSeite);
//plot(t,y(1,:),'blk',t,y(2,:),'red',t,y(3,:),'blu',t,y(4,:),'gre');

// phi omega x v

//1. ys ? (Schwerpunktskoordinate von y)

//  ys = 0.5*h*cos(phi)
yS = 0.5*h*cos(y(1,:));

//2. pA unterer Endpunkt des Stabes

//
//   pA = pS + rSA
//         [sin phi   ]
//   rSA = [          ] * 0.5*h
//         [-cos phi  ]
//pAx = xS + 0.5*h*sin(phi)
//pAy = yS - 0.5*h*cos(phi)

pAx = y(3,:) + 0.5*h*sin(y(1,:));
pAy = yS - 0.5*h*cos(y(1,:))

//3. pB oberer Endpunkt des Stabes

//
//   pB = pS - rSA
//         [-sin phi  ]
//   rSA = [          ] * 0.5*h
//         [cos phi   ]
//pAx = xS - 0.5*h*sin(phi)
//pAy = yS + 0.5*h*cos(phi)

pBx = y(3,:) - 0.5*h*sin(y(1,:));
pBy = yS + 0.5*h*cos(y(1,:))

zs = size(yS);
spalten = zs(2);
p=1.5;
for i=1:spalten
xWerte = [p,p,-p,-p,  pAx(1,i),pBx(1,i)];
yWerte = [0,p, p, 0,  pAy(1,i),pBy(1,i)];
plot(xWerte,yWerte);
clf;
end

Code 0-13: Voll ausgeregeltes invertierendes Pendel mit Animation.

#8 Do 25.05.2023


Wir beginnen bereits um 12:30Uhr!


Themen

  1. Einführung in die klassische Regelungstechnik auf Grundlage der Laplacetransformation
  2. Die Laplacetransformation
  3. Übertragungsglieder
  4. Regler in Laplace-Darstellung

1. Einführung in die klassische Regelungstechnik auf Grundlage der Laplacetransformation

Zustandsregler sind Stand der Technik und günstig bei der Simulation am Computer. In der klassischen Regelungstechnik wird aber die s.g. Laplace-Darstellung regelungstechnischer Systeme verwendet. Diese erlaubt es, Systeme einfacher zu klassifizieren und zudem m.E. Regler aufgrund von Messdaten mit Stift und Papier auszulegen.

62_Regelungssysteme/04_Laplace

2. Die Laplacetransformation

62_Regelungssysteme/04_Laplace

Eigenwerte können auch über Nullstellen des Nenner einer Übertragungsfunktion bestimmt werden.


Einige Übertragungsfunktionen im Zeitbereich als Grundlage für Übungen

Übung 1

$ \ddot x + 3 x = 4 u $

Formel 0-23: a\right)


$ \dot x - x = u $

Formel 0-24: b\right)


$ 3 \ddot x + \dot x = u $

Formel 0-25: c\right)


$ \ddot x + x = u $

Formel 0-26: d\right)


$ \dot x + 2 x = u $

Formel 0-27: e\right)


$ \dot x - 3 x = u $

Formel 0-28: f\right)


$ \dot x + 5 x = 5 u $

Formel 0-29: g\right)


  • Schalten Sie a) und b) in Reihe und geben die Gesamtübertragungsfunktion im Lapalce-Bereich an.
  • Schalten Sie c) und d) in Reihe und geben die Gesamtübertragungsfunktion im Lapalce-Bereich an.
  • Schalten Sie e), f) und g) in Reihe und geben die Gesamtübertragungsfunktion im Lapalce-Bereich an.

3. Übertragungsglieder

62_Regelungssysteme/04_Laplace/02_PT1

Mit Hilfe der Sprungantwort lassen sich Eigenschaften erkennen, wie:

  • Schwingungsfähigkeit: Kurve schwingt, statt beispielsweise "zu kriechen"
  • Stabilität: Endliche Eingangswerte führen nach endlicher Zeit zu endlichen Ausgangswerten (Einschwingen).
Übung 2

Plotten Sie mit Scilab für folgende Systeme den Einheitssprung. Führen Sie dazu die notwendige Laplace-Transformation aus und finden Sie selber eine sinnvolle Simulationsdauer:

$ \ddot x + \dot x + 3 x = 4 u $

Formel 0-30: a\right)


$ 3 \ddot x + \dot x = u $

Formel 0-31: b\right)


$ \ddot x + x = u $

Formel 0-32: c\right)


$ \dot x + 2 x = u $

Formel 0-33: d\right)


$ \dot x - x = u $

Formel 0-34: e\right)


Beispiellösungen nebst den Plots:
//Formel 0-17:
//   x.. + x. + 3x = 4u
//                 4
//   x/u = ------------------
//             s^2 + s + 3
//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
G = syslin('c',[4],[s*s+s+3]);
t=[0:0.01:10]; 
u=ones(1,1001);
y=csim(u,t,G);
subplot(121);
plot2d(t,y);
subplot(122);
plzr(G);

Code 0-14: zu Formel 0-17

4. Regler in Laplace-Darstellung

62_Regelungssysteme/04_Laplace/03_PRegler
PID-Regler -- 62_Regelungssysteme/04_Laplace/04_Scilab

#9 Do 01.06.2023 Pflichttermin 1 für alle mit Labor im Anschluss


Beginn: 12:30Uhr! Bitte diese Info weiter geben.


Allgemeine Hinweise zum Laborpraktikum

  • Die Aufgaben können in Zweiergruppen bearbeitet werden, oder alleine.
  • Es gibt Gruppenlisten, in die Sie sich am ersten Termin bitte eintragen.
  • Die Aufgaben bestehen in der Regel darin, ein funktionierendes System aufzubauen.
  • Jede Aufgabe wird nach Fertigstellung vom Dozenten testiert, wenn Sie den Dozenten an Ihren Platz holen und ihm das Funktionieren des fertig gestellten Systems präsentieren.
  • Das Laborpraktikum gilt als bestanden, wenn alle drei Labortemine von allen Personen einer Gruppe wahrgenommen wurden und alle Testate an allen Terminen erteilt wurden.

Inhalte des Praktikums

  • Es werden regelungstechnische Systeme mit dem autonomen Vehikel esp32av aufgebaut.
  • Die erfolgreiche Umsetzung dieser Systeme, aber auch die Zwischenschritte dorthin werden als Aufgaben formuliert und bei erfolgreicher Umsetzung testiert.
  • Die Formulierung der Testataufgaben findet sich hier nachfolgend bei day-by-day.
  • Die Inhalte und notwendigen Anleitungen aber befinden sich unter nachfolgend angegebenem Link:
05_esp32AV
  • Auf alle notwendigen Materialien und Anleitungen wird nachfolgend verlinkt.
  • Vor der eigenen praktischen Arbeit gibt es an jedem der drei Termine einen theoretischen Teil, in dem die nötigen Informationen für das Praktikum vom Dozenten dargestellt werden.
Theoretischer Teil zum ersten Termin, Einführung zum esp32av
  1. Arbeitsweise des Gesamtsystems
  2. Vorführung: Flashen eines Programms auf den esp32av
  3. Präsentation des PC-seitigen Objektorientierten Basisprojekts in Java/Processing, ACHTUNG: Neue Software!
Praktischer Teil

Die Testataufgaben bauen aufeinander auf und müssen deshalb in der angegebenen Reihenfolge nacheinander bearbeitet werden.


Testat 1: Blinkende LED
  • Sie erhalten einen esp32av, bei dem alle Steckboardkabel entfernt wurden.
  • Nach und nach sollen Sie sich mit der Funktionalität des Systems vertraut machen, indem Sie kleine Teilsysteme aufbauen und testen.
  • Zunächst soll an das esp32 eine LED angeschlossen und zum Blinken gebracht werden.
  • Folgen Sie dazu der Anleitung unter dem folgenden Link und lassen Sie den Erfolg vom Dozenten testieren, wenn die LED blinkt:
05_esp32AV/01_Bauanleitung/01_Elektronik_und_Software/02_Blinkende_LED
Testat 2: Videostream über Webbrowser
  • Nun soll das System so erweitert werden, dass Videostreaming des Kamerabildes möglich ist.
  • Das gestreamte Kamerabild des esp32 soll bei Erfolg in einem Webbrowser am PC betrachtet werden können.
  • Beachten Sie, dass nun in der Arduino IDE nicht mehr "ESP32 Dev Module", sondern "AI Thinker ESP 32-CAM" verwendet werden muss.
  • Folgen Sie dazu der Anleitung unter dem folgenden Link und lassen Sie den Erfolg vom Dozenten testieren:

Beachten Sie: Um die IP-Adresse des Fahrzeugs am seriellen Monitor zu sehen, wird die Stromversorgung zur esp32-Platine kurz unterbrochen!


05_esp32AV/01_Bauanleitung/01_Elektronik_und_Software/03_Videostream
Testat 3: Motorsteuerung per Tastenbefehle
  • Jetzt und in allen nachfolgenden Aufgaben wird nur noch ein Programm auf dem esp verwendet.
  • Es stellt das Videostream bereit und kann zudem Befehle vom PC empfangen.
  • PC-seitig wird ein bestimmter objektorientierter Processing-Sketch verwendet, der variiert und erweitert wird.
  • Um sich mit diesem Gesamtsystem vertraut zu machen, soll das PC-seitige Programm so erweitert werden, dass die Motoren am Fahrzeug per Knopfdruck getestet werden können.

Beachten Sie: Beim Einschalten des esp32av wird zunächst die Motortreiberplatine herausgezogen!


  • Nachfolgend ist die Anleitung zur Verbindung des Motortreibers beschrieben:

ACHTUNG: Nicht die Software in der nachfolgenden Anleitung verwenden,...


05_esp32AV/01_Bauanleitung/02_Elektromechanik -- UND UNTERKAPITEL!

...sondern die folgende:


CaptureJavaRT2023_015REDUZIERT.zip -- Processing-Sketch für den PC. ACHTUNG: IP-Adresse Ihres esp32av eintragen!!!
esp32_CameraWebServer10temperatur.zip -- esp32-Sketch für Arduino IDE. ACHTUNG: Anmeldedaten bei Hotspot anpassen!!!

wenn die obige Software läuft, kann mit der Leertaste das Videostreaming an und ausgeschaltet werden. Mit den Tasten 7 und 8 kann die Lampe auf dem esp an und ausgeschaltet werden.

  1. Analysieren Sie in der Software, wie die Kopplung zwischen Tasten am PC und Schaltvorgängen am esp umgesetzt wird.
  2. Ergänzen Sie im Processing-Sketch Tastenfunktionen: l=>Linker Motor läuft vorwärts. r=>rechter Motor läuft vorwärts. s=>beide Motore stoppen. LASSEN DAS TESTIEREN (Testat3)!
Testat 4: Selbst entwickelte Temperaturregelung

Während Testat3 haben Sie etwas Einblick in die Möglichkeit erhalten, Daten vom Fahrzeug abzurufen und Befehle an das Fahrzeug zu schicken.

Aufgabe: Programmieren Sie einen P-Regler, der die Temperatur auf dem esp32 möglichst konstant auf 57 Grad hält. Ergänzen Sie dazu den Processing-Sketch CaptureJavaRT2023_015REDUZIERT.

Hinweise:

  • Speichern Sie dazu eine Kopie des Sketches im Sketchbook ab, bevor Sie anfangen etwas zu verändern.
  • Arbeiten Sie in der Kopie.
  • Bennenen Sie die Kopie beispielsweise: CaptureJavaRT2023_Temperaturregelung_GruppeA.
  • Verwenden Sie die Methoden esp32av.starteKamera(); und esp32av.stoppeKamera(); um die Temperatur auf dem esp32 zu ändern.
  • Nutzen Sie esp32av.holeTemperatur(); um die Temparatur auf dem esp32 zu ermitteln.
  • Umwandlung des Strings in einen double-Wert: double T = Double.parseDouble(esp32av.holeTemperatur());
  • Ihr eigenes Programm steht komplett in der draw()-Methode.
  • Zeigen Sie im Fenster die Temperatur und die Regelabweichung kontinuierlich unter Verwendung der Funktion text(..) an.
  • Nutzen Sie die Referenzen auf processing.org und die installierten Beispiele, um sich Wissen über die Programmierung zu erarbeiten.
  • Zeigen Sie die fertige Temperaturregelung, um sie vom Dozenten als Testat4 testieren zu lassen.

#10 Do 08.06.2023 Pflichttermin 2 für alle mit Labor im Anschluss UND Neue theoretische Inhalte


Beginn DOCH ERST UM 15:00Uhr -- Bitte KORRIGIERTE INFO weiter geben.


Ein Tausch der LVs o.ä. wäre zu kurzfristig, tut mir Leid.

  1. Wiederholungen zu Laplace-Transformation
  2. Erste Methode nach Ziegler und Nichols zur Auslegung eines Regelkreises
  3. Vorbesprechung der Testate 5 und 6.
  4. Fertigstellen der Testate 1 bis 4.
  5. Beginn der Testate 5 und 6.

1. Wiederholungen zu Laplace-Transformation

Übung 1

Plotten Sie mit Scilab für folgende Systeme den Einheitssprung. Führen Sie dazu die notwendige Laplace-Transformation aus und finden Sie selber eine sinnvolle Simulationsdauer:

$ \ddot x + \dot x + 3 x = 4 u $

Formel 0-35: a\right)


$ 3 \ddot x + \dot x = u $

Formel 0-36: b\right)


Beispiellösungen nebst den Plots:
//Formel 0-17:
//   x.. + x. + 3x = 4u
//                 4
//   x/u = ------------------
//             s^2 + s + 3
//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
G = syslin('c',[4],[s*s+s+3]);
t=[0:0.01:10]; 
u=ones(1,1001);
y=csim(u,t,G);
subplot(121);
plot2d(t,y);
subplot(122);
plzr(G);

Code 0-15: zu Formel 0-17

Plot zu obigem Skript.

Bild 0-3: Plot zu obigem Skript.

2. Erste Methode nach Ziegler und Nichols zur Auslegung eines Regelkreises

62_Regelungssysteme/07_Einstellregeln/01_Totzeit
62_Regelungssysteme/07_Einstellregeln/02_Methode1
PID im Zeitbereich und in Embedded Systems -- 62_Regelungssysteme/05_Regleroptimierung/03_Scilab
Windup-Effekt beim I-Anteil -- 62_Regelungssysteme/11_Stabilitaet/03_Windup
K-Krit suchen, Blockschaltbild.

Bild 0-4: K-Krit suchen, Blockschaltbild.

clear();

xtot=0;

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

       Kkrit = 16.35;       
       xsoll = 1.0;
       //e     = xsoll - x;
       e     = xsoll - xtot;
       u=Kkrit*e;
       
       f(1,1)=-x+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 = 10.0;
dt   = 0.0001;
schritte = ceil(tmax/dt);

yalt = [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-16: Beispielsystem

3. Vorbesprechung der Testate 5 und 6.

Testat 5

PC-Seitig soll nun folgender Sketch verwendet werden:

CaptureJavaRT2023_016REGLER.zip
  • Der Sketch ergänzt den vorangehenden um einen P-Regler für die Lenkregelung des Fahrzeugs.
  • Das Fahrzeug ist so in der Lage eine rote Linie zu verfolgen.
  • Gestartet wird der Regler, indem auch die Lampe eigeschaltet wird, Key 7 (aus, stopp Key 8).
  • Das Fahrzeug stoppt auch, wenn "kein rot mehr gesehen wird".

Vergessen Sie nicht beim Einschalten des Fahrzeugs vorher den Motortreiber heraus zu ziehen.



Es ist auch möglich einen Hotspot mit dem Smartphone einzurichten. Bitte anderen Namen wählen, als die bereits Verwendeten.


  • 1. Analysieren und testen Sie das Programm.

2. Mit Hilfe der ersten Methode nach Ziegler und Nichols soll für die Lenkreglung ein PI-Regler ausgelegt werden Führen Sie diese Auslegung durch und dokumentieren Sie diese.


Testat 5: Die Dokumentation auf Papier und die Präsentation des schwingend lenkenden Fahrzeugs werden testiert.



Testat 6: Setzen Sie den PI-Regler für die Lenkreglung des Fahrzeugs mit den Werten nach Ziegler und Nichols um und präsentieren Sie Ihren Quelltext und das fahrende Fahrzeug.



Beginn DOCH ERST UM 15:00Uhr -- Bitte KORRIGIERTE INFO weiter geben.


Ein Tausch der LVs o.ä. wäre zu kurzfristig, tut mir Leid.

#11 Do 15.06.2023 Probe E-Test UND Neue theoretische Inhalte


Beginn 15:15Uhr, Treffpunkt wie immer im Mechatroniklabor


#12 Do 22.06.2023 Pflichttermin 3 für alle mit Labor im Anschluss


Beginn 15:15Uhr im Mechatroniklabor


#13 Do 29.06.2023 E-Test (Semester begleitende Prüfung)


ZEIT: 15:15Uhr | ORT: PC-Pool D.1.02 (wie Probe-E-Test)



Im Anschluss: Laborpraktikum je nach Bedarf.