kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Day by Day

(EN google-translate)

(PL google-translate)

Nachfolgend wird chronologisch verzeichnet, welche Inhalte in den Einzellehrveranstaltungen im Fach Regelungstechnik für den Bachelor Maschinenbau im Wintersemester 2021/22 behandelt wurden.


#1 Montag 26.09.2021

Teil 1: Grundbegriffe in der Regelungstechnik

Was ist Kybernetik? -- youtube
Norbert Wiener Wikipedia
Norbert Wiener - Men, Machines, and the World About Them (1950), siehe 18'20'' -- youtube
Norbert Wiener - Anti-Aircraft Gun ... mit Filmmaterial -- youtube
Grey Walter's tortoises
62_Regelungssysteme/02_Heizregelkreis

Beispiele für Regelkreise

Unterschied - Regelung Steuerung erklärt anhand von zwei Beispielen
15_Einachser -- Einachser auf kramann.info
Elektrokutsche, Personenkutschfahrt auf kramann.info
Dampfmaschine mit Drehzahlregler Modell (Fliehkraftventil) -- youtube
Echte Dampfmaschine im Betrieb mit Fliehkraftregler -- youtube
Autopilot -- youtube
Antiblockiersystem beim Auto (ABS), ab 4'33'' -- youtube

Regelstrecken mit und ohne Ausgleich

Regelstrecken MIT Ausgleich -- youtube
Regelstrecken OHNE Ausgleich -- youtube

Teil 2: Einführung in die Mikrocontroller-Programmierung mit dem Arduino-Micro -- Übersicht

02_WS2021_22/01_RTS/99_Material -- Material (Entwurf) für die Laborversuche.
https://store.arduino.cc/products/arduino-micro
Arduino IDE Download (Entwicklungsumgebung)
96_Arduino -- Arduino Micro auf kramann.info
45_Mikro17 -- Teilweise auf Arduino Micro abgestimmte Mikrocontroller-Vorlesung auf kramann.info
40_Mikrocontroller/06_UART -- serielle Schnittstelle
40_Mikrocontroller/04_PWM -- Darstellung, was ein PWM-Signal ist, wie es erzeugt und wie es programmiert wird.

Teil 3: CAE (Computer Aided Engineering) Werkzeug "Scilab" (ähnlich zu Matlab)

https://www.scilab.org/download/6.1.1 -- Scilab Download
37_Scilab -- Scilab Einführung auf kramann.info
54_Kinetik/01_Newton/04_ODE -- Numerische Simulation eines linearen dynamischen Systems mit Scilab

#2 Montag 04.10.2021

Teil 1: WIEDERHOLUNGEN und Ergänzungen

  1. Grundbegriffe in der Regelungstechnik
  2. Scilab (mit Ergänzungen)
62_Regelungssysteme/02_Heizregelkreis
37_Scilab
50_Simulationstechnik/01_Systemtheorie/07_scilab (Verwendung von Schleifen in Scilab)

Teil 2: Das Verzögerungsglied erster Ordnung (PT1-Übertragungsglied)


Tafelrechnung heute: Untere Integrationsgrenze des linken Integrals gleich Null, liefert aber etwas ungleich Null. Das wurde von mir übersehen, darum nachfolgende korrigierte Fassung:


Geschlossene Lösung der linearen Differentialgleichung eines PT1-Übertragungsgliedes für eine Sprungantwort mit u=u0=const.>0. a1,a0 sind konstante positive Parameter.

Bild 0-1: Geschlossene Lösung der linearen Differentialgleichung eines PT1-Übertragungsgliedes für eine Sprungantwort mit u=u0=const.>0. a1,a0 sind konstante positive Parameter.

62_Regelungssysteme/03_Verzoegerungsglieder
  1. Differentialgleichung des Verzögerungsgliedes erster Ordnung
  2. Geschlossene Lösung der Differentialgleichung für eine Konstante als Inhomogenität (Sprungantwort)
  3. Neuer Begriff: Regelstrecken mit und ohne Ausgleich
  4. Darstellung verschiedener Varianten des PT1 mit Hilfe von Scilab
  5. Numerische Integration des PT1 mittels Euler-Integrationsverfahren mit Hilfe von Scilab und Vergleich mit der geschlossenen Lösung
  6. Einbau eines Zweipunktreglers bei einer Regelstrecke, die PT1-Verhalten aufweist
50_Simulationstechnik/01_Systemtheorie/05_Eulerintegration

Teil 3: Demonstration der Ausstattung für das Heimlabor

  • Aufbau und Demonstration eines Zweipunktreglers mit Hilfe eines Widerstandes als Heizung, eines Temperatursensors und eines Mikrocontrollers als Regler.
  • Aufbau und Demonstration eines ebenen Gimbals.
#3 Montag 11.10.2021

Zu heute sollten Sie alle die Boxen mit dem Equipment für die Laborversuche und einem Laptop mit der Arduino IDE und Scilab dabei haben (1 Satz pro Zweiergruppe reicht).


  • Grundidee: Der Zweipunktregler auf Mikrocontroller soll verstanden und nachgebaut werden.
  • Dazu werden aufeinander aufbauende Versuche nacheinander durchgeführt, die darauf hin führen.
  • Der letzte Versuch in dieser Reihe ist dann der Zweipunktregler.
Hinweise zum praktischen Teil dieser Lehrveranstaltung:
  • Sie sollten versuchen, innerhalb der Lehrveranstaltung am Montag die Versuche alle nacheinander durchzuführen.
  • Was Sie nicht schaffen, sollten Sie zu Hause vervollständigen und dort auch etwas Zeit investieren, um Routine zu bekommen.
  • Gibt es Probleme, die Sie weder in der Montagsveranstaltung, noch zu Hause bewältigt bekommen, so kann Sie Donnerstags Herr Bräunlich unterstützen.
  • BITTE KÜNDIGEN SIE HERRN BRÄUNLICH IHREN BEDARF PER E-MAIL VORHER AN: braeunlich@th-brandenburg.de ... er sagt Ihnen dann auch, wo Sie ihn treffen können, i.d.R. IWZ214.
  • Einige der Versuche werde ich innerhalb der Montagsveranstaltung testieren.
  • Diese Testate sind die Voraussetzung dafür, dass Sie die erfolgreiche Teilnahme am Labor anerkannt bekommen.
  • Aber die ersten Versuche werden nicht testiert und Sie sollten Sie entspannt angehen.
  • Sie dienen dem Ziel, dass alle den gleichen Fertigkeits- und Wissensstand erlangen.
  • Darum ist es wichtig, dass Sie sich alle auch wirklich um die erfolgreiche Durchführung der Versuche bemühen.
  • Der Versuche finden Sie hier unterhalb von 01_RTS in ihrer natürlichen Reihenfolge.
  • Sie werden wie day_by_day im Verlauf des Semesters immer weiter ergänzt werden.

Vorschau zu den nächsten Themen, die behandelt werden:

  • Montag 11.10.: Durchführen der ersten Versuche bis hin zum Mikrocontroller basierten Zweipunktregler
  • Donnerstag 14.10.: Je nach Bedarf und nach Absprache Probleme lösen mit Unterstützung von Herrn Bräunlich
  • Montag 18.11.: Erstellen eines Simulationsprogramms für ein PT1-Übertragungsgliedes in Kombination mit einer Zweipunktregelung mit Hilfe von Scilab

Versuch #1: Installation der Arduino IDE auf dem eigenen Laptop

Versuch #1 steht an dieser Stelle. Alle weiteren Versuche folgen hier nachfolgend als Unterkapitel hinter day_by_day.

Bitte laden Sie die aktuelle Version der Arduino-Entwicklungsumgebung (Arduino IDE) unter nachfolgendem Link für Ihr Betriebssystem herunter und folgen Sie den Installationsanweisungen, bzw. verfahren Sie wie üblich:

https://www.arduino.cc/en/software

Bereits in früheren Lehrveranstaltungen habe ich Videos erstellt, in denen die notwendigen ersten Schritte gezeigt werden:


Es folgen die Videos (als "nicht gelistet" auf youtube hochgealden und mit OBS-Studio erstellt):


Teil1 Um was geht es in den Videos?: https://youtu.be/hirAbmhThvA

Teil2 Download und Installation der Arduino IDE: https://youtu.be/BxzIk0RVjCc

Teil3 Erstellen, kompilieren und übertragen eines ersten Programms: https://youtu.be/s9a2o1YyruY

Installieren Sie vorbereitend auf nachfolgende Lehrveranstaltungen gleich auch Scilab:

https://www.scilab.org/download/6.1.1

Bringen Sie Ihren Laptop mit der installierten Arduino IDE und die Box mit dem Versuchsequipment mit in die Lehrveranstaltung am Montag den 11.10.





#4 Montag 18.10.2021


Teil 1: Numerische Integration der Differentialgleichung eines PT1-Übertragungsgliedes

Im allgemeinen ist es nicht möglich Differentialgleichungen geschlossen zu lösen, die im Zusammenhang regelungstechnischer Systeme auftauchen.

Jedoch ist es meistens möglich Differentialgleichungen numerisch zu lösen.

Ausgehend von einer Anfangsbedingung y0 zum Zeitpunkt t0 wird dann mit Hilfe der durch die DGL repräsentierten Steigung der Wert von y nach einem endlichen aber kleinen Zeitschritt Dt bestimmt, also der Wert y(t0+Dt). Dieser ist dann wieder Ausgangspunkt für den nächsten Schritt und so weiter.

Da hier im Prinzip die Sekandetensteigung benutzt wird, gibt es einen kumulativen numerischen Fehler, der durch den Einsatz mehr oder weniger geschickter numerischer Verfahren einmal größer und einmal kleiner ausfallen kann.

Die einfachste numerische Integrationsmethode, aber auch die schlechteste, wasn den numerischen Fehler anbelangt, ist das Eulersche Integrationsverfahren.

Dieses soll im folgenden auf die Differetialgleichung eines PT1-Übertragungsgliedes angewendet werden und der Verlauf der sich ergebenden Kurve mit der der geschlossenen Lösung vergleichen werden.

Die theoretische Herleitung folgt hier. Die praktische Umsetzung erfolgt dann mit Scilab.


Ist eine Differentialgleichung so darstellbar, dass links alleine die erste Ableitung der Zustandsgröße steht und rechts eine beliebige stetig differenzierbare Funktion von y und der Zeit t (s.u.), so läßt sich das Euler-Integrationsverfahren anwenden:

$ \dot y=f\left(y & t\right) \\ $

Formel 0-1: Differentialgleichung ersten Grades. \left(Das &-Zeichen ist ein Formatierungsfehler. Dort müßte ein Komma stehen\right)


Hierzu wird für das Differential links der Differenzenquotient ersertzt:

$ \frac {y\left(t+ \Delta t\right)-y\left(t\right)}{ \Delta t}=f\left(y & t\right) \\ $

Formel 0-2: Differential durch Differenzenquotient ersetzt. \left(Das &-Zeichen ist ein Formatierungsfehler. Dort müßte ein Komma stehen\right)


Nun kann nach y zum Zeitpunkt t+Dt aufgelöst werden und schon erhält man das Grundschema des Eulerschen Integrationsverfahrens, bei dem der Neue Wert sich immer aus dem alten plus Dt mal der aktuellen Steigung ergibt.

$ y\left(t+ \Delta t\right)=y\left(t\right)+f\left(y\left(t\right) & t\right) \cdot \Delta t \\ $

Formel 0-3: Grundschema für das Euler-Integrationsverfahren.



Dies soll für den Spezialfall eines PT1-Übertragungsgliedes angewendet werden, bei dem zunächst einfach alle Parameter auf 1 gesetzt sind:

$ \dot y + y = 1 $

Formel 0-4: Beispiel-Differentialgleichung


$ \frac {y\left(t+ \Delta t\right)-y\left(t\right)}{ \Delta t}=1-y \\ $

Formel 0-5: Differential durch Differenzenquotient ersetzt.


$ y\left(t+ \Delta t\right)=y\left(t\right)+\left(1-y\left(t\right)\right) \cdot \Delta t \\ $

Formel 0-6: Nach dem neuen y-Wert aufgelöst.


Spielen wir das Ganze zunächst von Hand durch:


vorgegebene Anfangsbedingungen:
t0 = 0
DT = 0.1s

y(t0) = 0

-------------------------------
ERSTER Integrationsschritt
y(t0 + 1*DT) = y(t0) + (1-y(t0))*DT
             =   0   + (1-0)*0.1
             =   0.1
-------------------------------
ZWEITER Integrationsschritt
y(t0 + 2*DT) = y(t0+1*DT) + (1-y(t0+1*DT))*DT
             =   0.1      + (1-0.1)*0.1
             =   0.19
usw.

Code 0-1: Numerische Integration obiger DGL von Hand.

ÜBUNG: Bestimmen Sie den dritten Integrationsschritt.

Nun soll ein Scilab-Programm geschrieben werden, das uns die Arbeit abnimmt und noch einen Plot erzeugt:

clear

t0 = 0;
Dt = 0.1;
y0 = 0;
y_alt  = y0;

//Zum Daten sammeln:
TT = t0;
YY = y0;


for t=Dt:Dt:10
    y_neu = y_alt + (1-y_alt)*Dt;

    YY = [YY,y_neu];
    TT = [TT,t]; 

    //Vorbereitung für den nächsten Integrationschritt:
    //Aus dem jetzigen y_neu wird im nächsten Schtritt
    //das y_alt:
    y_alt = y_neu;
end

plot(TT,YY);
//siehe help axes_properties
a = gca();
a.x_label.text = 't/s';
a.y_label.text = 'T/GradCelsius (Beispiel)';
a.title.text = 'PT1-Übertragungsglied numerisch integriert';

Code 0-2: Scilab-Programm, das die Euler-Integration durchführt, die Daten sammelt und danach plottet.

Diesen Plot liefert obiges Programm.

Bild 0-2: Diesen Plot liefert obiges Programm.

Übung

Bei realen Systemen ist es oft notwendig, Modellparameter aus einem Plot zu ermitteln, bei dem die Zustandsgröße über die Zeit dargestellt ist.

Nehmen Sie einmal an, Sie erhalten obigen Plot und gehen davon aus, dass es das Ergebnis ist, das sich für y im zeitlichen Verlauf ergibt, wenn man an den Eingang für u einen Einheitssprung setzt, also u=const.=1 setzt. Was sich dann ergibt, ist die so genannte Sprungantwort des Systems.

Wir gehen hier davon aus, dass ein PT1-Übertragungsglied vorliegt. Und das hat die allgemeine Form:

$ \frac {T}{K}\doty+ \frac {1}{K}y=u $

Formel 0-7: Differentialgleichung \left(DGL\right) des PT1-Übertragungsgliedes.



Die Parameter sind hier anders als in unserer vorangehenden Berechnung zu K und T substituiert.


  • In der folgenden Schreibweise ist T ein Maß für die Zeitverzögerung des Übertragungsgliedes.
  • K ist der Wert, gegen den y asymptotisch strebt.
  • Beides sind natürlich Konstanten, die immer konstant für ein bestimmtes PT1-Übertragungsglied sind.

Und wir wissen auch bereits, dass die geschlossene Lösung bei einem Sprung am Eingang als Inhomogenität die folgende geschlossene Lösung liefert:

$ y\left(t\right)=u_0 \cdot K \cdot \left(1-e^\left(-t/T\right)\right) \\ $

Formel 0-8: Geschlossene Lösung obiger DGL & wenn u=u0=const. gilt.


Ferner können in einem Plot dann die Parameter K und T einfach abgelesen werden. Hier sieht man wie:

Ablesemöglichkeit der Parameter K und T.

Bild 0-3: Ablesemöglichkeit der Parameter K und T.

  • Versuchen Sie mit Hilfe dieser Angaben nun aus dem Plot auf die richtigen Parameter zu kommen.
  • Lassen Sie sich zur Hilfe noch von Scilab die Horizontale bei 0.95*K einzeichnen.
  • Überprüfen Sie Ihr Ergebnis, indem Sie es mit der (hier ja bekannten) tatsächlichen Gleichung vergleichen.
  • Erzeugen Sie schließlich einen zweiten Plot, der über die numerische Lösung die geschlossene Kurve legt.
Teil 2: Vorbesprechung des ersten Testats

Mit Hilfe der in Teil 1 gewonnenen Informationen soll nun unter der Annahme, dass auch unsere Regelstrecke auf dem Mikrocontroller einem PT1-Übertragungsglied entspricht, hierfür die Parameter T und K ermittelt werden.

Was sollen Sie tuen?:

Gehen Sie dazu bitte folgendermaßen vor:

  • Das plötzliche Einschalten des Heizwiderstends soll als Einheitsprung genommen werden.
  • Die Starttemperatur wird von der Folge der Meßdaten der Temperatur als Offset abgezogen.
  • Das Ihnen vorliegende Programm wird von Ihnen so verändert, dass es den Einheitssprung durchführt und auf dem seriellen Monitor in Zeitschritten von einer Sekunde den Verlauf der aktuellen Temperatur ausgibt.
  • Die seriellen Daten werden kopiert und in ein Scilab-Skript hinein kopiert. Es macht Sinn, dazu zuvor die serielle Ausgabe zu vereinfachen und anzupassen.
  • Mit den so gewonnenen Daten wird in Scilab dann ein Plot der Temperatur über die Zeit erzeugt.
  • Schließlich wird wie oben K und T aus dem Plot bestimmt.
Wie erfolgt die Abgabe des Testats?
  • Sie laden ein .zip-File bei Moodle hoch. Eine entsprechende Abgabe für das Testat ist dort bereits vorbereitet worden.

Das .zip-File soll ein Datenblatt, ein Video und alle Scilab-Skripte und Berechnungen enthalten, die Sie generiert haben.



Späteste Abgabe ist ein Tag vor der übernächsten Veranstaltung, also Sonntag, 31.10. 00:00Uhr.


Das Datenblatt soll eine Zusammenfassung ihrer Ergebnisse enthalten und Sie identifizieren. Darum soll es folgende Daten enthalten:

  1. Namen und Matrikelnummern der Mitglieder Ihrer Zweiergruppe.
  2. Den Temperatur-Offset, also die Temperatur, die angezeigt wird, wenn nicht geheizt wird (das ist natürlich bei jedem Zimmer, jeder Gruppe, jedem Sensor ein anderer Wert).
  3. Den Parameter K, den Sie bestimmt haben
  4. Den Parameter T, den Sie bestimmt haben.
  5. Den Scilab-Plot, in dem die Kurve des Einheitssprungs zu sehen ist und K und T eingezeichnet sind, wie Sie sie bestimmt haben.

Das Video kann einfach mit dem in der Hand gehaltenen Handy gemacht sein. Es dient nur der Bekräftigung der Glaubwürdigkeit, dass Sie in der Gruppe selbstständig gearbeitet haben. Das Video soll ohne Schnitt ablaufen und folgendes enthalten, bzw. so ablaufen:

  1. Sie zeigen Ihre beiden Gesichter in dem Video und erklären, wie Sie vorgegangen sind.
  2. Sie schwenken dann zum Laptop und filmen vom Bildschirm ab, wie der Temperaturverlauf bei der Sprungantwort verläuft.
  3. Sie schwenken auch zum Aufbau (Steckboard).

Bitte nutzen Sie die LV, um ggf. Verständnisschwierigkeiten bzgl. der Aufgabe zu klären.





#5 Montag 25.10.2021



Die heuteige LV findet ohne Boxen in IWZ204 statt, aber die am 01.11. wieder im PC-Pool IWZ140 mit Boxen


Bisher haben Sie als einzigen Reglertyp den Zweipunktregler kennengelernt. Der hat die schlechten Eigenschaften, das er zu Schwingungsverhalten führt und Sprungstellen aufweist. In der klassischen linearen Theorie der Regelungstechnik werden aber lineare Regler bevorzugt eingesetzt und auch die Regelstrecken werden dort linearisiert.

Es ist nicht so einfach, diese linearen Reglertypen ohne Laplace-Transformation zu behandeln, aber Laplace-Transformation zu behandeln ist auch schwierig, darum machen wir beides, aber mit praktischen Beispielen.

Ein ähnliches Dilemma stellt sich ein, wenn man nach einem leicht verständlichen Auslegungsverfahren für eine Regler schaut. Die erste Methode nach Ziegler und Nichols ist zwar einfach, setzt aber Totzeit in der Regelstrecke voraus. Diese ist zwar bei realen Systemen immer gegeben, jedoch ist deren Verwendung in Scilab wieder etwas umständlich. Auch hier werden wir uns der Sache Schritt für Schritt nähern und immer wieder klären, was nun wirklich wichtig ist und was nur notwendige Workarrounds sind.

zieglernichols.zip -- Vom PT1-Übertragungsglied mit Euler zur Methode 1 von Ziegler und Nichols: Aufeinanderaufbauende Scilab-Skripte, die vom Ist-Stand zum ersten Auslegungsverfahren führen.

Thema 1: Funktionen in Scilab

37_Scilab/03_Funktionen
clear;

function y=quadrat(x)
    z = x.*x; //jedes Element wird quadriert.
    y = 2*z;
endfunction

quadrat(9)

u = quadrat([1,2,3,4,5,6,7,8,9])

disp(u);

Code 0-3: Beispiel aus dem Unterricht.

Thema 2: Vergleich zwischen Runge-Kutta-Integrator und Euler-Integrationsverfahren

30_Informatik3/16_Nuetzliches/03_RungeKutta

Thema 3: Numerische Simulation eines PT1-Übertragungsgliedes mittels Runge-Kutta in Scilab

Scilab bietet fertige Integratoren an, die besser sind, als das Euler-Integrationsverfahren, wie die ode-Funktion. Jedoch muß man dafür die zu simulierende Differentialgleichung, oder das zu simulierende Differentialgleichungssystem in die passende Form bringen. Man kann aber auch selber bessere Integrationsverfahren in Scilab formulieren, als das Euler-Verfahren. Diesen Weg nehmen wir zuerst.

Beispiele, wo die ode-Funktion benutzt wird, finden Sie hier:

54_Kinetik/01_Newton/04_ODE
62_Regelungssysteme/07_Einstellregeln/01_Totzeit -- Implementierung und Verwendung des Runge-Kutta-Verfahrens in Scilab.

Thema 3: Was ist Totzeit und wie kann man sie in Scilab behandeln?

62_Regelungssysteme/07_Einstellregeln/01_Totzeit

Thema 4: Erste Regler-Entwurfsmethode nach Ziegler und Nichols

62_Regelungssysteme/07_Einstellregeln/02_Methode1

Thema 5: PT1Tt-Übertragungsglied für das ein P-Regler ausgelegt werden soll.

Übung
  • Analysieren Sie skript006_PT1Tt_mit_P_Regler.sce in zieglernichols.zip
  • Drehen Sie die Verstärkung KK des P-Reglers solange hoch, bis das System in den kritischen Zustand übergeht.
  • Legen Sie aufgrund der sich daraus ergebenden Informationen den P-Regler nach dem Verfahren von Ziegler und Nichols aus.

Thema 6: P-, PD-, PI- und PID-Regler

Wir werden die klassische Form des PID-Reglers aus dem Laplace-Bereich zunächst in den Zeitbereich transformieren und dann versuchen einen Regelkreis mit P, PD, PI und PID-Regler zu modellieren und zu simulieren.

62_Regelungssysteme/04_Laplace/04_Scilab -- u.a. klassische Formulierung des PID-Reglers.

Thema 7: Laplace-Transformation (light)

62_Regelungssysteme/04_Laplace



#5 Montag 01.11.2021

Thema 1: Besprechung des Testats

02_WS2021_22/01_RTS/06_Testat1_Loesung

Thema 2: Methode 1 nach Ziegler und Nichols für die Heizregelstrecke aus dem Testat




#6 Montag 08.11.2021


Hinweis 1: Montag 15.11.2021 findet wieder OHNE Boxen in IWZ204 statt.




Hinweis 2: Für Studierende, die die Testate nicht oder unvollständig gemacht haben, biete ich unter der Voraussetzung, dass sie die Klausur bestehen einen Nachtermin an.




Sollten Sie sprachliche Probleme haben, fragen Sie aktiv nach. Ich wiederhole gerne wichtige Teile der Vorlesung auf Englisch.


Desweiteren können Sie Textpassagen hier aus day_by_day oder an anderen Stellen auf kramann.info in Ihre eigene Sprache mit deepL übersetzen lassen:

https://www.deepl.com/de/translator
FORTSETZUNG DER ÜBUNG Methode 1 nach Ziegler und Nichols für die Heizregelstrecke aus dem Testat
Temperatur_ZieglerNichols.zip -- Unvollständiger Zwischenstand, wie er letzte Woche während einer ersten Diskussion des Themas entstanden war.

Ziel der Übung: Anwendung der Methode 1 nach Ziegler und Nichols auf die Heizregelstrecke aus dem ersten Testat.

Nachfolgend finden Sie einige Hinweise zum Vorgehen. Bitte lesen Sie diese Hinweise sorgfältig durch.

Allgemeines
  • Arbeiten Sie in Zweier- oder Dreiergruppen zusammen. (Die Testate finden aber nach wie vor in Einer- oder Zweier"gruppen" statt)
  • Diskutieren Sie Ihr Vorgehen gemeinsam und versuchen Sie gemeinsam zu Lösungen zu kommen.
  • Zögern Sie nicht, bei Verständnisproblemen die Lehrperson anzusprechen.
  • ...Aber machen Sie sich auch die Mühe, Inhalte, die Sie wieder vergessen, oder noch nicht vollständig verstanden haben noch einmal nachzuarbeiten.

Konkrete Hinweise zur Umsetzung der Aufgabe
  • Ein P-Regler hat die Form: u = K*(w-y).
  • Dabei ist w die Führungsgröße, bzw. der Sollwert.
  • y ist der Ist-Wert.
  • K ist der Verstärkungsfaktor für die Regeldifferenz.
  • u ist das Stellsignal, das auf den Eingang der Regelstrecke gegeben wird.

Im Fall des Systems aus dem ersten Testat taucht das spezielle Problem auf, dass wir nicht ohne weiteres ein negatives Stellsignal u erzeugen können. Machen Sie sich dies zunächst in der Gruppe klar und fragen bitte nach, falls Sie das nicht verstehen.


Um diesem Problem zu begegnen, dass keine Kälte, sondern nur Wärme als Stellsignal erzeugt werden kann, wird nun folgender "Trick" angewendet:


Wir verschieben den Arbeitspunkt beim Stellsignal nach oben.


Konkret: Die neutrale Position für u wird nicht mehr damit gleichgesetzt, dass keine Wärme erzeugt wird, sondern sie wird auf einen mittleren Wert der Wärmezufuhr nach oben verlegt. Anstatt also das Stellsignal u mit der mittleren Spannung UU gleichzusetzen, die auf den Heizwiderstand gegeben wird, soll gelten: UU = a*u + b. Dabei sind a und b konstante positive Werte.

Zudem wird das schon im Testat aufgetauchte Vorgehen beibehalten, dass auch die Regelgröße y nicht einfach mit der gemessenen Temperatur TT gleichgesetzt wird, sondern es muß diejenige Raumtemperatur Toffset voher von TT abgezogen werden, die sich ergibt, wenn UU=b ist (vergl. oben). Es soll also gelten: y = TT - Toffset.

Desweiteren gilt es zu beachten: Die Möglichkeit die erzeugte Wärme einzustellen, ist darauf beschränkt, ein so genanntes Pulsweiten moduliertes Signal (PWM) auf den Gate-Eingang des Leistungs-MOSFETs zu geben, das im Zahlenbereich 0 bis 255 liegen kann. Naheliegenderweise wird deshalb nicht mehr die Wärme oder die elektrische Spannung als Stellsignal angesehen, sondern dieses PWM-Signal. Und um damit die Sache mit dem Arbeitspunkt zu realsieren, wie sie weiter oben beschrieben wird, setzt man sinnvollerweise PWM=127 als Arbeitspunktverschiebung, also u = -127...+127, aber PWM = u+127.

Praktisch wird das PWM-Signal mit Hilfe der Funktion analogWrite(...) auf den Heizwiderstand gebracht. Wird nun vorausgesetzt, dass PWM einen Wert enthält, der zwischen 0 und 255 liegt, dann steht in der loop-Funktion irgendwo: analogWrite(9,PWM); und damit die LED ebenfalls die aktuelle Höhe des Stellsignals als Helligkeit anzeigt, kann noch ergänzt werden: analogWrite(10,PWM);


Vergewissern Sie sich in Vorversuchen, dass bei PWM=0 die LED nicht leuchtet und der Heizwiderstand nicht warm wird, bzw. das der Fall ist für PWM=255.


Zusammenfassung und Veranschaulichung der besherigen Ausführungen

Die besondere Leistung Norbert Wieners bei der Begründung der modernen Regelungstechnig lag auch in der wichtigen Erkenntnis, dass in ihr nur Beziehungen zwischen Eingangs- und Ausgangssignalen formuliert werden, ohne Rücksicht auf die dahinterstehenden physikalischen Größen.


... und genau dafür finden Sie in dieser Übung nun ein praktisches Beispiel. Anstatt dass wir uns darauf versteifen, in die Regelstrecke Wärme als Stellsignal einzubringen und die Temperatur als Regelgröße anzusetzen, betrachten wir beides als Signale und führen eine Vorverarbeitung dieser Signale durch. Dies geschieht so weit, dass wir am Ende als Stellsignal für die Regelstrecke ein u verwenden, das zwischen -127 und 128 liegt und dem um -127 verschobenen PWM-Signal entspricht. Und anstatt direkt die Temperatur so zu nehmen, wie sie der Sensor liefert, wird ersatzweise ein Wert verwendet, von dem erst noch die Temperatur abgezogen wird, die sich nach einiger Zeit einstellt, wenn man u=0, d.h. PWM=127 setzt. Dies alles wird nachfolgend noch in ein Bild gefasst:

Veransschaulichung zu der vorangehenden Beschreibung

Bild 0-4: Veransschaulichung zu der vorangehenden Beschreibung

Weitere Hilfestellungen
  • Wählen Sie den Sollwert w eher klein, damit die Schwingung wenn sie sich einstellt eine kleinere Frequenzaufweist (und man nicht so lange warten muß, um etwas Konkretes zu sehen).
  • Zu große Kkrit-Werte können zu einer Übersteuerung führen (PWM>255). Wo liegt da die Grenze?
  • Passen Sie die Ausgaben auf dem seriellen Monitor sinnvoll an. Lassen Sie beispielsweise auch das aktuelle Stellsignal u mit anzeigen.
  • Vollständig gelöst ist diese Übungsaufgabe, wenn Sie den P-Regler für das System nach Ziegler- und Nichols ausgelegt und durch Programmieren eingebeit haben.

Greifen Sie auf alle Angaben zur Schaltung und zu Programmiertechniken zurück, die bereits hier ausgeführt wurden:

02_WS2021_22/01_RTS/02_Versuch002
02_WS2021_22/01_RTS/02_Versuch003
02_WS2021_22/01_RTS/02_Versuch004
02_WS2021_22/01_RTS/02_Versuch005
02_WS2021_22/01_RTS/06_Testat1_Loesung

Zusatzaufgabe
  • Legen Sie auch noch einen PI und einen PID-Regler aus und implementieren Sie auch diese konkret.

Zusatzaufgabe 2 / Variante der ganzen Übung hier

Das Einstellen des kritischen Zustandes ist bei dem hier vorliegenden sehr langsamen Prozeß etwas mühselig.

Eine Alternative besteht darin, eine Sprungantwort aufzuzeichnen und das zweite Verfahren nach Ziegler und Nichols zu verwenden.

Gerade weil wir schon gesehen haben, dass die Sprungantwort eine Wendestelle hat, bietet sich dieses zweite Verfahren hier an:

62_Regelungssysteme/07_Einstellregeln/03_Methode2

Beachten Sie dabei:

  • dass alle zuvor eingeführten Vorverarbeitungsschritte beibehalten werden,
  • dass die Kurve der Sprungantwort den Verlauf von y im Verhältnis zum Eingangssprung darstellt, also y/u0.
  • Wird beispielsweise ein Sprung von u=100, d.h. PWM = 227 verwendet, so muß als Kurve y/100 dargestellt werden und dort die Parameter Ks, Tu, Ta abgelesen werden (s. 2.Methode)

Heute sollen Sie sich vor allem das Vorgehen mit der Mikrocontroller-Hardware klarmachen. Kommende Woche werden wir die Daten mit Scilab auswerten.





#7 Montag 15.11.2021 (und #8 Montag 22.11., sowie #9 Montag 29.11. mit Scilab in IWZ140)

Teil 1: Ziegler-Nichols mit Heizregelung

02_WS2021_22/01_RTS/07_Ziegler_Nichols
62_Regelungssysteme/07_Einstellregeln/02_Methode1
62_Regelungssysteme/07_Einstellregeln/03_Methode2

Teil 2: Einführung in die Laplace-Transformation

62_Regelungssysteme/04_Laplace
62_Regelungssysteme/04_Laplace/03_PRegler

Fortsetzung Laplace-Transformation

Regeln
  • Regel: Reihenschaltung *
  • Regel: Parallelschaltung +
  • Regel: Offener Regelkreis R*G
  • Regel: Geschlossener Regelkreis H/(1+H) bzw. Zaehler / (Zaehler + Nenner)
Beispiele
  • P-Regler für ein PT1-Übertragungsglied
  • PI-Regler für ein PT1-Übertragungsglied
  • PID-Regler für ein PT1-Übertragungsglied
Wichtig:
  • Die Anfangsbedingungen werden bei den Blockschaltbildern per Konvention auf Null gesetzt.
  • Nach einer Verschaltung von Blöcken, ändert sich auch was Eingang und was Ausgang ist.
PT2-Übertragungsglieder
54_Kinetik/01_Newton/02_Daempfung -- Linearer Feder-Masse-Dämpfer-Schwinger
54_Kinetik/01_Newton/04_ODE -- Modellierung und Simulation im Zeitbereich
62_Regelungssysteme/01_day_by_day -- Modellierung und Simulation unter Angabe der Übertragungsfunktion mit syslin
Eigenwerte == Polstellen der Übertragungsfunktion
62_Regelungssysteme/04_Laplace/01_Eigenwerte -- Eigenwerte des linearen Feder-Masse-Dämpfer-Schwingers
Dämpfungsgrad
62_Regelungssysteme/07_Einstellregeln/05_Daempfungsgrad
Polvorgabe
62_Regelungssysteme/08_Polvorgabe
64_Regelungssysteme/13_Analyse/01_Linear -- Polstellen plotten mit plzr, s.u.
Im Unterricht entstanden:
m = 1.0; // kg
C = 1.0; // N/m
D = 0.1; // Ns/m
FA = 0; // N
//      m*a = -C*x -D*v + FA   , [x]=m, [v]=m/s 

//      x. = v
//      v. =  ( -C*x -D*v + FA )/m

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

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

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


Code 0-4: Linearer Schwinger simuliert.

Anfangsbed. Null, aber FA=1N:
m = 1.0; // kg
C = 1.0; // N/m
D = 0.1; // Ns/m
FA = 1; //  N  ### geändert ### "Einheitssprung"
//      m*a = -C*x -D*v + FA   , [x]=m, [v]=m/s 

//      x. = v
//      v. =  ( -C*x -D*v + FA )/m

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

t = 0:0.01:60;
y0 = [0,0]';  // ### geändert ### 
              //Anfangsbedingungen auf Null gesetzt
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

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

Code 0-5: Anfangsbed. Null, aber FA=1N:

..jetzt durch Angabe der Übertragungsfunktion simuliert:
clear;
m = 1.0; // kg
C = 1.0; // N/m
D = 0.1; // Ns/m
FA = 1; //  N  ### geändert ### "Einheitssprung"
//      m*a = -C*x -D*v + FA   , [x]=m, [v]=m/s 

//      x. = v
//      v. =  ( -C*x -D*v + FA )/m

//s als Argument für ein Polynom definieren:
s = poly(0,"s"); 
//Übertragungsfunktion definieren:
G = syslin('c',[1],[m*s*s + D*s + C]);
t=[0:0.01:60];
zs=size(t) 
u=FA*ones(1,zs(2));
y=csim(u,t,G);
plot2d(t,y);
//plzr(G);

Code 0-6: Schwinger mittels syslin simuliert.

Deckungsgleiche Simulation im Zeitbereich:
m = 1.0; // kg
C = 1.0; // N/m
D = 0.1; // Ns/m
FA = 1; //  N  ### geändert ### "Einheitssprung"
//      m*a = -C*x -D*v + FA   , [x]=m, [v]=m/s 

//      x. = v
//      v. =  ( -C*x -D*v + FA )/m

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

t = 0:0.01:60;
y0 = [0,0]';  // ### geändert ### 
              //Anfangsbedingungen auf Null gesetzt
t0 = 0;
y  = ode(y0,t0,t,rechteSeite);

//plot(t,y(1,:)',t,y(2,:)');
//Nur Auslenkung plotten:
plot(t,y(1,:)','gre--');

Code 0-7: Deckungsgleiche Simulation im Zeitbereich