|
|
PI-Regler mit externen Parametern direkt in Simulink |
|
dxdkmav |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014a (Education)
|
|
|
|
|
|
Verfasst am: 24.09.2014, 11:05
Titel: PI-Regler mit externen Parametern direkt in Simulink
|
|
Hallo zusammen,
ich bearbeite zurzeit fast ohne Vorkenntnisse in MATLAB/Simulink sowie Regelungstechnik eine klassische Nachlaufregelung/Positionsregelung in SIMULINK.
Dabei soll der verwendete Regler (PI-Glied) von außen die Parameter für K und T_i erhalten. Ist diese Umsetzung ohne Zwischenschritt über MATLAB möglich? Ähnlich wie durch "External Reset" usw.?
Grüße,
dX
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2014, 12:08
Titel:
|
|
Du willst die Parameter direkt aus dem Modell vorgeben, willst sie aber nicht in der Maske des Blocks eintragen, richtig?
Da bleibt Dir wohl nichts anderes übrig, als den PI-Regler selbst aus zwei Multiplikatoren und einem Integrator aufzubauen.
Bedenke aber, dass Dein System nicht mehr linear ist, wenn die Parameter sich während des Betriebes verändern. Sprich, die gesamte Theorie der Regelungstechnik gilt nicht mehr, da die auf LTI-Systeme aufbaut...
|
|
|
dxdkmav |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014a (Education)
|
|
|
|
|
|
Verfasst am: 24.09.2014, 12:19
Titel:
|
|
|
|
|
Epfi hat Folgendes geschrieben: |
Du willst die Parameter direkt aus dem Modell vorgeben, willst sie aber nicht in der Maske des Blocks eintragen, richtig? |
Ich habe in meinem Regelkreis einmal die Führungsgröße, der mithilfe des PI-Reglers "gefolgt" werden soll.
Dazu habe ich eine weitere Größe, welche nach einem Tiefpass für die Berechnung der Parameter des PI-Reglers dienen soll. Wenn ich diese direkt in dem PID-Block (abwandelbar zu PI) eingebe sind diese meiner Meinung nach fest und nicht mehr veränderbar.
Epfi hat Folgendes geschrieben: |
Da bleibt Dir wohl nichts anderes übrig, als den PI-Regler selbst aus zwei Multiplikatoren und einem Integrator aufzubauen. |
Daran habe ich auch schon gedacht, wobei ich dort an der nächste Baustelle hängen bleibe, wie diese Parameter berechnet werden können.
Beispiel:
Fahrerloses Auto:
Wenn die Fahrtrichtung stark von der Fahrbahn abweicht, soll schneller (möglichst in den nächsten Sekunden) korrigiert werden, als in dem Fall, dass die Fahrtrichtung von der Fahrbahn nicht so stark abweicht (Korrektur reicht, wenn diese in den nächsten 60 Sekunden stattfindet.
Epfi hat Folgendes geschrieben: |
Bedenke aber, dass Dein System nicht mehr linear ist, wenn die Parameter sich während des Betriebes verändern. Sprich, die gesamte Theorie der Regelungstechnik gilt nicht mehr, da die auf LTI-Systeme aufbaut... |
Dafür bin ich leider zu wenig in der Regelungstechnik, um etwas Gescheites zu kommentieren.
Grüße,
dX
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2014, 13:19
Titel:
|
|
|
|
|
Zitat: |
Dazu habe ich eine weitere Größe, welche nach einem Tiefpass für die Berechnung der Parameter des PI-Reglers dienen soll. Wenn ich diese direkt in dem PID-Block (abwandelbar zu PI) eingebe sind diese meiner Meinung nach fest und nicht mehr veränderbar. |
Das ist richtig. Die Parameter, die Du in der Maske des PI(D)-Blocks eingibst, sind zur Laufzeit nicht mehr veränderbar und für den gesamten Simulationslauf fest.
Zitat: |
Daran habe ich auch schon gedacht, wobei ich dort an der nächste Baustelle hängen bleibe, wie diese Parameter berechnet werden können. |
Das ist dann weniger ein Simulink-Problem, als ein Anwendungsbezogenes :)
Zitat: |
Wenn die Fahrtrichtung stark von der Fahrbahn abweicht, soll schneller (möglichst in den nächsten Sekunden) korrigiert werden, als in dem Fall, dass die Fahrtrichtung von der Fahrbahn nicht so stark abweicht (Korrektur reicht, wenn diese in den nächsten 60 Sekunden stattfindet. |
Ein P-Regler reagiert immer gleich schnell, nämlich sofort. Bei größerer Abweichung vom Sollwert reagiert er aber stärker als bei kleinen Abweichungen. Die Zeit, die er braucht, um einen Fehler wegzuregeln ist unabhängig von der Amplitude des Fehlers. Das erscheint erst mal ungewohnt. Bei großen Abweichungen benötigt er dafür aber auch eine entsprechend große Stell-Leistung, die man ihm dann auch zur Verfügung stellen muss.
Ein I-Regler reagiert dann, wenn Du eine dauerhaft anhaltende Störung hast (z.B. dauerhaftes Gegenlenken bei Seitenwind).
Ein D-Regler reagiert auf die Änderungsgeschwindigkeit einer Störung. Schnellen Änderungen wird stark entgegengewirkt, langsamen Änderungen fast gar nicht. In der Realität habe ich aber noch keinen D-Regler gesehen, der wirklich toll funktioniert hätte, weil die sehr empfindlich auf Messrauschen reagieren. Wenn Du nur simulieren willst aber eine Überlegung wert.
Welches Verhalten Du nun genau willst, musst Du selbst rausfinden. Für den Anfang würde ich aber von umschaltbaren Reglerparametern und -Strukturen erstmal Abstand halten - da fängt man sich nur Ärger ein...
Zitat: |
Dafür bin ich leider zu wenig in der Regelungstechnik, um etwas Gescheites zu kommentieren. |
Über die Sache mit der Linearität wirst Du stolpern, wenn Dich jemand fragt, ob Du bewiesen hast, dass Deine Regelung auch wirklich stabil ist und das Auto nicht irgendwann ohne Vorwarnung im scharfen Bogen in den Graben fährt. Die ganze Theorie dazu baut nämlich auf linearen Systemen auf. Da sind Multiplikationen mit zwei oder mehr nicht-konstanten Faktoren (und viele andere Dinge) nicht erlaubt.
|
|
|
dxdkmav |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014a (Education)
|
|
|
|
|
|
Verfasst am: 25.09.2014, 09:24
Titel:
|
|
Hallo Epfi,
vielen Dank für deine ausführliche Antwort.
Ich werde vorerst auf diese Parameter verzichten und einfach festsetzen.
In dem Falle sollte es also "egal" sein, mit welcher Geschwindigkeit sich das Fahrzeug fortbewegt. Die Verstellgeschwindigkeit soll "fest" sein (es ist ein maximaler Wert gegeben).
Im Endeffekt denke ich, dass es eine ziemliche "einfache" Regelung sein müsste:
Ich habe ein Messgerät, welches die Fahrbahn misst und einen Motor, der stellen soll.
Bis jetzt habe ich zur "Unempfindlichkeit" einen "Dead-Zone"-Block eingefügt. Dabei verbleibt jedoch dann immer eine nicht gewünschte Regeldifferenz.
Frage: Wie kann ich die Regelung unempfindlich für kleine Fehler machen und dabei trotzdem eine Regeldifferenz von Null erreichen?
Grüße,
dX
Beschreibung: |
|
Download |
Dateiname: |
Regelkreis.PNG |
Dateigröße: |
11.01 KB |
Heruntergeladen: |
969 mal |
|
|
|
dxdkmav |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014a (Education)
|
|
|
|
|
|
Verfasst am: 25.09.2014, 12:05
Titel:
|
|
Habe meiner Meinung nach selbst die Lösung unter Verwendung des Dynamic Dead Zone-Blocks gefunden.
Sobald "gelenkt" wird, werden die obere sowie untere Grenze auf Null (leerer Ausgang Switch) gesetzt...wenn nicht gelenkt wird, sind die gewünschten Grenzen gewählt.
Auf dem Scope sieht das wie gewünscht aus; Hochlauf des Motors (Stellglied) bringt mir ein Überschwingen, deshalb habe ich dies erst einmal ausgelassen.
Grüße,
dX
Beschreibung: |
|
Download |
Dateiname: |
solution.PNG |
Dateigröße: |
15.76 KB |
Heruntergeladen: |
860 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|