Simulink für Dummies
Von: Def_Seien
Datum: Fr. 24. Februar 2006 15:03:52
Thema: Tools







Simulink für Dummies


Einleitung
Ich habe diesen Artikel aus folgendem Grund geschrieben:
In der letzten Zeit sind immer wieder Fragen zu Simulink aufgetaucht. Weil ich denke - und auch hoffe - dass in Zukunft vermehrt Fragen dieser Art im Forum gestellt werden, habe ich diese kleine Einführung geschrieben. Sie ist dafür gedacht, Neulingen, welche (fast) keine Ahnung von Simulink haben, eine kleine Starthilfe zur Verfügung zu stellen. Da ich von Berufes wegen viel mit Matlab/Simulink zu tun habe, teile ich dieses Wissen (oder besser gesagt einen Teil davon) mit Euch.
Let's get started!
Nun, wie wärs denn mit ein oder zwei Beispielen? Zugegeben, auf
so simple und erklärende Beispiele trifft man im Alltag selten, aber wir wollen
ja nicht mit der Tür ins Haus fallen. Ich habe deshalb einige gute Beispiele
ausgewählt:

1. DC-Motor mit Drehzahlregelung
2. Masse-Feder-System
3. Jogger-Dog-Problem

Im ersten Beispiel werden wir zusammen kurz die DGL eines DC-Motors mit
Permanenterregung herleiten, um diese dann in Simulink nachzubauen und zu
simulieren. Danach entwerfen wir einen Regler, welcher die Drehzahl des Motors
genau einstellen soll.

Im zweiten Beispiel versuchen wir, die sicherlich allseits bekannte DGL eines
einfachen Masse-Feder-Systems zu simulieren.

Das dritte Beispiel ist eine Abwandlung der bekannten Thematik "Verfolgungskurven".

Diese Probleme habe ich ausgewählt, weil jedem ein etwas anderer Schwerpunkt zugrunde liegt:
  • DGL 1. Ordnung mit Regelung
  • DGL 2. Ordnung
  • 2 gekoppelte DGL, Darstellung mit xy-Scope

    Natürlich existieren weitaus mehr Bibliotheken und Anwendungen derselben in Simulink. Eine umfassende Behandlung würde allerdings den Rahmen dieses Artikels bei Weitem sprengen, er ist deshalb auch nur als Einführung gedacht.

    Nun denn, frisch ans Werk!
    Beispiel 1



    Modell von Beispiel 1


    Ich denke, jeder sollte imstande sein, diese Simulation mit den oben gezeigten Blöcken nachzubauen, da sie allesamt aus der Standardbibliothek stammen. Jeder kann sich die DGLen aus den Signalverbindungen und Blöcken selbst "zusammendenken".

    Der zentrale Block für diese Art von Simulationen ist wohl der kontinuierliche Integrator 1/s, welcher z.B. für die Winkelbeschleunigung der Welle am Eingang das Omega herausgibt. Der Einfachheit halber lassen wir unseren Motor immer von Drehzahl Null aus starten.

    Jetzt wird auch ersichtlich, warum wir die beiden DGLen nach der höchsten Ableitung aufgelöst haben: Für eine DGL in Simulink benötigt man Integratoren (1/s, im Modell hellblau). Die Eingänge jener Integratoren berechnet man nun aus den gegebenen Grössen, aber auch aus der Zustandsgrösse (Grösse, welche aus dem Integrator herauskommt) selbst. Dies führt zu einer Rückkopplung im Modell. Somit schliesst sich der Kreis.

    Im Matlab Workspace definieren wir nun die Parameter für das Modell. Dies kann man alternativ auch mit einem m-File machen. Die Werte sind:






  • Die Klemmenspannung u wird bei t=0 eingeschaltet und beträgt danach konstant 10V.

    Natürlich sind diese Werte so gewählt, dass der Simulations-Output anschaulich wird. Wir müssen nun noch die Simulationsparameter einstellen. Diese erreicht man über das Menu "Simulation, Simulation Parameters". Die Simulation soll 20s laufen, also tragen wir diesen Wert bei "Stop time" ein. Die anderen Parameter können wir getrost sein lassen. Danach klicken wir auf den "Start Simulation" Button (das kleine schwarze Dreieck).

    Wir können nun folgende Grafik plotten (sie ist nicht mit dem "Scope" im Modell gemacht, sondern mit dem "plot" Befehl in Matlab, da dieser ein bisschen mehr Formatierungsmöglichkeiten zulässt):



    Man sieht die beiden Zeitkonstanten: Die mechanische Zeitkonstante (oberer Plot) wird durch das Massenträgheitsmoment bestimmt und ist meist viel grösser als die elektrische Zeitkonstante (unterer Plot, man beachte den steilen Stromanstieg), welche durch den Ankerkreis bestimmt wird. In unserem Beispiel sind die Werte so gewählt, dass beide Zeitkonstanten gut sichtbar sind.

    Charakteristisch für den DC-Motor ist die PT2-Sprungantwort. Weil aber in der Praxis die elektrische Zeitkonstante um Grössenordnungen kleiner ist als die mechanische, ist meistens nur letztere sichtbar.
    Regelung der Drehzahl in Beispiel 1
    Um unserer DC-Maschine eine Regelung zu verpassen, ist es sinnvoll, einen neuen Block aus dem Modell zu machen. Er sollte die Klemmenspannung u als Eingang haben und die mechanische Drehzahl als Ausgang und der vollständigkeit halber den Strom ebenfalls. Man erreicht dies, indem man den gesamten Teil des Modells, den man in einen Block packen möchte, mit der Maus markiert, rechtsklickt und "Create Subsystem" auswählt. Das Modell sieht dann schliesslich so aus:



    Sieht toll aus, nicht wahr? Nun, jetzt brauchen wir noch einen Regler und die Rückkopplung des Regelkreises. In der Praxis müsste die Drehzahl des Motors jetzt irgendwie gemessen werden. Unser virtueller Sensor habe jedoch der Einfachheit halber die Übertragungsfunktion 1, deshalb können wir ihn weglassen. Unser Drehzahl-Regelkreis sieht nun so aus:



    Der PID-Regler befindet sich in der Bibliothek "Simulink-Extras". Nun müssen wir "nur" noch die Reglerparameter einstellen. Alleine darüber könnte man ein ganzes Buch schreiben, deshalb sei an dieser Stelle auf einschlägige Literatur verwiesen. Wir simulieren 2 Fälle, einmal mit und einmal ohne Überschwingen. Die Solldrehzahl betrage zuerst 10, nach 10s 20 1/s. Hier sind die Ergebnisse:



    Man sieht die Überschwinger ganz deutlich. Nach der Ausregelzeit ist die Regelabweichung beinahe verschwunden. Man sieht ebenfalls, dass der Motor viel Strom benötigt, um die gewünschten Drehzahländerungen zu bewerstelligen. Hier wird Gleichung (2) aus Abschnitt "Beispiel 1" deutlich.

    Die zweite Simulation, diesmal mit einem Regler ohne Überschwingen:



    Auch hier ersichtlich sind die Stromspitzen. Der Regler braucht diesmal deutlich weniger Zeit, um die gewünschte Drehzahl zu erreichen.
    Beispiel 2



    In unserem zweiten Beispiel betrachten wir ein Masse-Feder-System. Das Pendel ist in der Skizze in ausgelenktem Zustand gezeichnet.


    Modell von Beispiel 2



    Hier benötigen wir 2 Integratoren, um die Beschleunigung x'' in den Weg x überzuführen. Wieder ist der Vorteil der Form, welche Gleichung (11) hat, ersichtlich, nämlich die Umformung nach der höchsten Ableitung.
    Nun definieren wir noch die Konstanten:




  • Nun müssen wir dem 2. Integrator (x' -> x) noch die Anfangsbedinung aufprägen. Wir möchten die Feder bei x=0.3m starten lassen. Die Anfangsgschwindigkeit soll 0 bleiben. Doppelklick auf den Block und bei "Initial Condition" 0.3 eintragen und schon ist auch dies erledigt. Bei "Max Step Size" tragen wir 0.1ms ein, damit die Kurven schön glatt werden. Noch schnell 20s als Simulationszeit eintragen und dann können wir die Simulation laufen lassen.



    Schön sichtbar ist die exponentielle Abnahme der Amplitude mit zunehmender Zeit t.
    Die violette Linie zeigt die Gleichgewichtslage des Pendels.

    Beispiel 3




    Modell von Beispiel 3



    Das Modell besteht aus 2 Integratoren, je einen für die x- und die y-Komponente des Verfolgers. Im rechten Teil ist die Berechnung der Wurzel aus den Gleichungen (16) und (17) ersichtlich. Die Anfangsbedingungen für den Verfolger befinden sich im grünen Block. Sie werden direkt auf den Integrator geführt. Damit dieser einen zusätzlichen Input für die Anfangsbedingung erhält, muss man auf ihn doppelklicken und bei "Initial condition source" "external" auswählen.

    Die beiden roten Blöcke bestimmen die Kurve des Verfolgten, in unserem Beispiel also einen Kreis um den Nullpunkt mit Radius 1. Dafür verwenden wir zwei "sin" Blöcke, einen mit Phase Null (x1) und einen mit Phase 90° (y1). Der Verfolgte läuft dann im Uhrzeigersinn in einem Kreis.

    Danach starten wir die Simulation und erhalten folgenden Plot:


    Man kann jetzt damit spielen und diese Simulation für beliebige Kurven des Verfolgten bzw. Anfangsbedingungen des Verfolgers durchführen und erhält die verschiedensten Kurven. Dies sei aber dem Leser überlassen.
    Schlusswort

    Mit Simulink kann man extrem viel machen. Deshalb sei hier auch auf die sehr ausführliche Dokumentation und Hilfe verwiesen. Man findet zu beinahe jedem Thema ein Simulink-Modell. Man stöbere nur einmal in den "Matlab-Demos".

    Zum Schluss hoffe ich, dass der Eine oder Andere von diesem Artikel profitieren kann und möchte mich, lieber Leser, für das Durchhalten bis zum Schluss bedanken.

    Daniel.


  • Dieser Artikel kommt von Matroids Matheplanet
    http://matheplanet.com

    Die Url für diesen Artikel ist:
    http://matheplanet.com/default3.html?article=941