WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

PI-Regler mit externen Parametern direkt in Simulink

 

dxdkmav
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 24.09.14
Wohnort: ---
Version: R2014a (Education)
     Beitrag Verfasst am: 24.09.2014, 11:05     Titel: PI-Regler mit externen Parametern direkt in Simulink
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2014, 12:08     Titel:
  Antworten mit Zitat      
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...
Private Nachricht senden Benutzer-Profile anzeigen
 
dxdkmav
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 24.09.14
Wohnort: ---
Version: R2014a (Education)
     Beitrag Verfasst am: 24.09.2014, 12:19     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2014, 13:19     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
dxdkmav
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 24.09.14
Wohnort: ---
Version: R2014a (Education)
     Beitrag Verfasst am: 25.09.2014, 09:24     Titel:
  Antworten mit Zitat      
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

Regelkreis.PNG
 Beschreibung:

Download
 Dateiname:  Regelkreis.PNG
 Dateigröße:  11.01 KB
 Heruntergeladen:  969 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
dxdkmav
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 24.09.14
Wohnort: ---
Version: R2014a (Education)
     Beitrag Verfasst am: 25.09.2014, 12:05     Titel:
  Antworten mit Zitat      
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

solution.PNG
 Beschreibung:

Download
 Dateiname:  solution.PNG
 Dateigröße:  15.76 KB
 Heruntergeladen:  860 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.