Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine...

39
Fachbereich Elektrotechnik LG Prozeßsteuerung und Regelungstechnik Prof. Dr.-Ing. H. Hoyer Feithstraße 140 58084 Hagen Telefon 02331/987-1100 Einf ¨ uhrung in M ATLAB /S IMULINK

Transcript of Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine...

Page 1: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

Fachbereich ElektrotechnikLG Prozeßsteuerung und Regelungstechnik

Prof. Dr.-Ing. H. HoyerFeithstraße 14058084 Hagen

Telefon 02331/987-1100

Einf uhrung in M ATLAB /SIMULINK

Page 2: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

INHALTSVERZEICHNIS 1

Inhaltsverzeichnis

1 Einleitung 3

2 Nutzung von MATLAB des Rechenzentrums der FernUniversitat Hagen 42.1 Aufbau einer X-Session mit dem FernUni-Rechnerbonsai . . . . . . . . . . . . . . . . . . . . . 4

2.1.1 Einstellung X-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.2 Verbindung mittels SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.3 Verbindung mittels Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Einfuhrung in M ATLAB 83.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2 Berechnungen mit MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2.1 Einfache Berechnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2.2 Vektoren, Polynome und Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.3 Allgemeine Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3 M-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3.1 Script-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3.2 Functions-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Die Zustandsraumbeschreibung 144.1 Darstellung linearer Systeme im Zustandsraum . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2 Systemgleichungen eines Mehrgroßensystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.3 Systemgleichungen eines Eingroßensystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.4 Vektor-Matrix-Signalflußbild der Systemgleichungen . . . . . . . . . . . . . . . . . . . . . . . . 15

5 Einfuhrung in die Control System TOOLBOX 165.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2 Berechnen von Zustandsregelungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.2.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2.2 ModellkonversionUbertragungsfunktion⇔ Zustandsdarstellung . . . . . . . . . . . . . . 165.2.3 MATLAB - Eingabe einerUbertragungsfunktion . . . . . . . . . . . . . . . . . . . . . . . 165.2.4 Beispiel zur Modellkonversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2.5 Steuerbarkeit eines Zustandsmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.2.6 Beobachtbarkeit eines Zustandsmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.3 Strukturumformungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.3.1 Reihenstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.3.2 Parallelstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.3.3 Die indirekte Gegenkopplung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.3.4 Die direkte Gegenkopplung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.4 Analyse im Zeitbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.4.1 Impulsantwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.4.2 Sprungantwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235.4.3 Rampenantwort und Sinusantwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.5 Analyse im Frequenzbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.5.1 Ubertragungsfunktion und Wurzelortskurve . . . . . . . . . . . . . . . . . . . . . . . . . 245.5.2 Frequenzgang und Ortskurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.5.3 Frequenzgang und BODE-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.5.4 Der LTI - Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Page 3: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

INHALTSVERZEICHNIS 2

6 Einfuhrung in SIMULINK 326.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326.2 Die Konstruktion eines einfachen Modells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

7 Literaturverzeichnis 38

Page 4: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

3

1 Einleitung

In diesem Dokument wird eine Einfuhrung in das Programmpaket MATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt mit der Erweiterung SIMULINK das wohl popularste Werkzeug fur die Simulation und Analysevon linearen und nichtlinearen Systemen dar. Neben der Motivation, durch Experimente auch komplexe Zusam-menhange zu verstehen oder zu vertiefen, bietet MATLAB auch die Moglichkeit der Visualisierung der Ergebnisse.

MATLAB ist ein interaktives Programm dasuber Kommandos mit einem Kommandointerpreter gesteuert wird.Ebenso konnen die Kommandos in einer Datei (M-Files) stehen. Nach Aufruf der Datei von der Kommandozeilene-bene aus werden die Kommandos dann im Batch abgearbeitet. MATLAB ist fur die Systemplattformen UNIX/Linuxund Windows erhaltlich, wobei eine gunstige Student Edition erhaltlich ist. Zu MATLAB gehoren verschiedenenToolboxen, das sind Sammlungen von M-Files. In der Regelungstechnik kommt der Control System Toolbox einespezielle Bedeutung zu. Das Zusatzprogramm SIMULINK , ein grafisches, blockorientiertes System zur Modellie-rung und Simulation dynamischer Systeme, rundet das Programmpaket MATLAB /SIMULINK ab. SIMULINK kanndirekt oderuber M-Files gestartet werden.

Page 5: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

4

2 Nutzung von MATLAB des Rechenzentrums der FernUniversitat Hagen

Auf dem Rechnerbonsai.fernuni-hagen.deist das Programmpaket MATLAB /SIMULINK fur eingeschriebene Stu-dierende der FernUniversitat Hagen nutzbar. Die Nutzung geschiehtuber eine Internetverbindung und einen X-Server auf dem Rechner des Studierenden. X-Sever sind unter Unix/Linux in der regel vorhanden, es sind aber auchverschiedene X-Server als kostenlose Testversionen fur Windows verfugbar (http://www.starnet.com ,http://www.microimages.com ). Voraussetzungen fur eine Nutzung der Software ist ein Account demFernUni-Rechnerbonsai.fernuni-hagen.de. Dieser kannuber das Rechenzentrum (http://www.fernuni-hagen.de/URZ/SESAM) beantragt werden. Studierende bekommen dannublicherweise ihre Matrikelnummer mit vor-angestelltem q als Benutzernamen zugewiesen. Wird ISDN oder ein Modem zur Internetverbindung genutzt, soist jedoch Geduld beim Gebrauch der Software notwendig, da alle Bildschirmdatenuber die Internetverbindungubertragen werden und es so zu Verzogerungen bei jeder Aktion des Benutzers kommt.

2.1 Aufbau einer X-Session mit dem FernUni-Rechnerbonsai

2.1.1 Einstellung X-Server

Unix/Linux-Nutzer brauchen in der Regel keine Einstellungen vorzunehmen, die notwendige Software istublicher-weise vorhanden und konfiguriert. Unter Windows ist der X-Server am besten so einzustellen, dass er die Funktionder Windowmanagersubernimmt. Abbildung 1 zeigt die dazu notwendigen Einstellungen des X-Servers X-Win32von Starnet. Der X-Server ist vor dem Aufbau der Verbindung zumbonsaimittels ssh oder telnet zu starten.

Abbildung 1: Einstellungen X-Server

2.1.2 Verbindung mittels SSH

Die einfachste und sicherste Moglichkeit eine X-Session aufzubauen, ist es sich mittels SSH-Client in den Rech-nerbonsaieinzuloggen. Dies geschieht mitOpenSSHunter Unix/Linux mit dem Befehlssh -X -l <benut-zername> bonsai.fernuni-hagen.de , wobei<benutzername> durch den Account auf dembonsaizu ersetzen ist. Unter Windows ist zuerst ein SSH-Client notwendig (z.B.http://www.ssh.com ). Dieser istdann so einzustellen, dass die X-Session getunnelt wird (Abbildung 2). Mittels des SSH-Clients kann dann eineSSH-Verbindung zumbonsaiaufgebaut werden (Abbildung 3). Nach abgeschlossenen Authentifizierunmg befin-det man sich in einer Unix-Shell auf dem Rechnerbonsai . Die aktuelle Version von MATLAB kann nun direktdurch Eingabe vonmatlab gestartet werden (Abbildung 4). Einealtere Version kann z. B. durchmatlab11.1gestartet werden.

2.1.3 Verbindung mittels Telnet

Steht SSH nicht zur Verfugung kann notfalls auch eine Verbindung mittels telnet durchgefuhrt werden. Telnetubermittelt die Passworter im Klartext und ist deshalb aus Sicherheitsgrunden zu vermeiden. Weiterhin werdenauch die Daten der X-Session unverschlusseltubertragen.

Eine Telnet-Verbindung kann sowohl unter Unix/Linux als auch unter Windows mit dem Aufruf vontel-net bonsai.fernuni-hagen.de erfolgen.Uber den Windows-Desktop geschieht dies durch Anklickender SchaltflacheStart → Ausfuhren. Es offnet sich das Ausfuhrungsfenster von Windows. In das Feldoffnenwird jetzt telnet bonsai.fernuni-hagen.de eingegeben und mit der SchaltflacheOK bestatigt. Der PCstellt jetzt eine Telnetsitzung zumbonsaiher.

Page 6: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

2.1 Aufbau einer X-Session mit dem FernUni-Rechnerbonsai 5

Abbildung 2: X-Tunnel

Abbildung 3: Verbinden mitbonsai

Im Gegensatz zu SSH muss nun manuell die Ausgabe der X-Session auf dembonsai umgeleitet werdenund der lokale X-Server freigegeben werden. Unter Unix/Linux wird dazu in einem lokalen Terminalxhost +bonsai.fernuni-hagen.de eingegeben. Bei X-Win32 geschieht diesuber einen entsprechenden Menuein-trag (Abbildung 6).

Umleitung der X-Session durch Setzen der Bildschirmvariable:Nach dem Einloggen befinden wir uns in einer Unix-Shell auf dembonsai. Im Telnetfenster mußte sich Bonsaimit der Eingabezeile<bonsai>/export/homes/qMatrikelnummer: melden. Durch denexport DISPLAY=rechnername:0.0 wird der Bildschirm auf den Client-Rechner umgeleitet. Falls der Rechnername oder dieeigene IP-Adresse nicht bekannt ist, kann die Information durch Eingabe vonwho -m in die shell auf dembonsaiherausgefunden werden (Abbildung 7). Wie bei SSH auch wird MATLAB durch den Aufruf vonmatlab gestartet.

Page 7: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

2.1 Aufbau einer X-Session mit dem FernUni-Rechnerbonsai 6

Abbildung 4: SSH-Terminal

Abbildung 5: Aufbau einer Telnetsitzung

Abbildung 6: Einstellungen X-Hosts

Page 8: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

2.1 Aufbau einer X-Session mit dem FernUni-Rechnerbonsai 7

Abbildung 7: Umleiten der Bildschirmavariable

Page 9: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

8

Abbildung 8: Matlab Hauptfenster

3 Einfuhrung in M ATLAB

3.1 Allgemeines

MATLAB als Programmsystem fur mathematisch-technische Untersuchungen hat speziell in der Regelungstechnikverschiedene Vorzuge aufzuweisen. Es konnen mathematische Modelle hoherer Ordnung mit wesentlich genauerenErgebnissen als bei der manuellen Berechnung eingesetzt werden. Durch die vielfaltige Grafikausgabe konnenin der Regelungstechnik neben Signalflußplanen Antwortfunktionen, Ortskurven, Wurzelortskurven und BODE-diagramme verwendet werden. Anhand der Grafiken ist sofort ersichtlich, ob das untersuchte Regelsystem dengestellten Anforderungen gerecht wird. In dem Programm MATLAB stehen sehr wirksame, auf regelungstechnischeVerfahren und grafische Darstellungen zugeschnittene Funktionen zur Verfugung. Fur die Regelungstechnik istMATLAB ein Standard-Werkzeug, das sowohl in der Lehre und Forschung als auch in der Industrie eingesetztwird.

3.2 Berechnungen mit MATLAB

MATLAB kann von der Kommandozeilenebene mitmatlab < CR > oder von der grafischen Oberflache mit derRechnermaus gestartet werden. Nach dem Start erscheint auf dem Bildschirm das Hauptfenster mit der Eingabe-aufforderung>> (Abbildung 8).

Da das Programm auf einer interaktiven Betriebsart basiert, werden zeilenweise syntaktisch richtige Benut-zereingaben ausgefuhrt und das Ergebnis auf dem Bildschirm ausgegeben. Mit Hilfe von Script - und Funkti-onsfiles konnen naturlich auch ganze Programmsequenzen aufgerufen werden. Zur besseren Lesbarkeit sind im

Page 10: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

3.2 Berechnungen mit MATLAB 9

Folgenden samtliche Benutzereingaben intypewriter und die MATLAB -AusgabenBoldfacegeschrieben.MATLAB verfugt uber eine online-Hilfe, welche mit der Eingabehelp aktiviert wird. Die Eingabe vonhelphelp gibt Auskunftuber die online-Hilfe selbst. Mithelp Funktionsname wird eine ausfuhrliche Beschrei-bung der angegebenen Funktion angeboten.

Jede Eingabe oder Anweisung im MATLAB Command Window beginnt nach dem Promptzeichen>> undwird durch Betatigen der Return - Taste←↩ abgeschlossen. MATLAB fuhrt sodann sofort die Anweisungen bzw.die Berechnungen aus.

3.2.1 Einfache Berechnungen

Die Eingabe des Ausdruckes

>> 5+4

liefert

ans =9

MATLAB weist der Variablen ans1 das Ergebnis zu. Falls bei der Eingabe ein Ausdruck nicht in eine einzelneZeile geschrieben werden kann, wird die erste Zeile durch drei Punkte abgeschlossen und in der folgenden Zeileweitergeschrieben.

>> y=1+2-3+4-5+6-7+...8-9+10y =

7

fur weitere Hinweise sei auf die online-Hilfe sowie den Literaturhinweisen verwiesen, besonders im Internet gibtes zahlreiche Einfuhrungen in MATLAB .

1Abkurzung fur answer

Page 11: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

3.2 Berechnungen mit MATLAB 10

3.2.2 Vektoren, Polynome und Matrizen

MATLAB besitzt als Datentyp die Matrix und somit Datenstrukturen auf Matrizenbasis und somit auch Polynomewerden als Matrizen mit einer Zeile oder einer Spalte behandelt. Skalare werden in MATLAB ebenso als Matrizenbetrachtet, namlich solche mit genau einem Element. Spaltenvektoren oder Polynome werden erzeugt indem dieElemente in ein Paar eckige Klammern eingeschlossen werden und nach jedem Element ein Semikolon eingegebenwird.

Beispiel:

>> a=[1; 3; 5]

ergibt

a =135

In regelungstechnischen Verfahren des Frequenzbereiches wird mit Polynomen die von den Operatorenjω,s oder zabhangen gearbeitet. Polynome werden wie Vektoren dargestellt, wobei die Polynomkoeffizienten in absteigenderOrdnung die Elemente des Vektors bilden. Die Eingabe wird am Beispiel einer Produktbildung zweier Polynomegezeigt. Die Produktbildung erfolgt mit der Funktionconv(p1,p2) , wobei nur jeweils das Produkt zweierPolynome gebildet werden kann.conv(p1,p2,p...) ist also nicht moglich.

Beispiel: Produkt der Polynomep1(s) = s2 + 2s+ 2

p2(s) = s2 + s− 2

Eingabe und Berechnung mit Matlab

>> p1=[1 1 -2]; 2

>> p2=[1 2 2];>> p=conv(p1,p2)

>> p =1 3 2 -2 -4

Dieses von MATLAB berechnete Polynomprodukt wurde im Klartextp(s) = s4 + 3s3 + 2s2 − 2s− 4 lauten. Mit der Funktionroots()

>> w=roots(p)

liefert MATLAB sofort die Nullstellen des Polynoms

>> w =-2.000-1.000 +1.000i-1.000 -1.000i1.000

2Werden die einzelnen Elemente mit Leerzeichen (Blank) getrennt, so gibt MATLAB einen Zeilenvektor aus. Ein Semikolon nach dereckigen Klammer unterbindet eine sofortige Ausgabe.

Page 12: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

3.3 M-Files 11

Matrizen sind zeilenweise einzugeben, wobei die einzelnen Elemente durch Leerzeichen und die Zeilen durchein Semikolon oder<CR> abgeschlossen werden. Eine eckige Klammer am Anfang und am Ende schließen dieElemente ein.

Beispiel: Die Eingabe der Matrix A:

>> A=[1 2;3 4]

ergibt

>> A =1 23 4

Matrix-Elemente konnen ebenso individuell durch Einschließen der Indizes in eine runde Klammer gezielt adres-siert werden. Mit A(2,2)=1 wird z.B. das zweite Element in der zweiten Zeile mit dem Wert 1 belegt. Mit Einhal-tung der Rechenregeln bei Matrizen3 konnen Matrizen und Vektoren addiert, subtrahiert und multipliziert werden.

3.2.3 Allgemeine Befehle

Das aktuelle Verzeichnis kann mit dem Befehlpwd herausgefunden werden. Der Befehlcd dient dazu, in einanderes Verzeichnis zu wechseln z.B.cd eigenedateien wechselt in das Verzeichniseigenedateien . DieBefehlels oderdir zeigen den Inhalt des aktuellen Verzeichnisses an. Der Befehlwho zeigt alle Variablen imArbeitsspeicher an, wobeiwhos eine erweiterte Ausgabe erzeugt. Mitclear konnen einzelne oder alle Variablenim Arbeitsspeicher geloscht werden.

MAT-Files dienen zum Speichern von Variablen und deren Inhalt. Mitsave name werden alle Variablen mitInhalt in die Dateiname.mat gespeichert. Mitload name werden sie aus der Dateiname.mat wieder in denHauptspeicher eingelesen.

3.3 M-Files

In MATLAB ist neben der interaktiven zeilenweise Eingabe der Anweisungen und deren Abarbeitung durch MAT-LAB auch die Moglichkeit der Eingabe ganzer Algorithmen gegeben. Dazu werden die sogenannten m-Files, diemit einem Text-Editor im ASCII-Format oder mit dem MATLAB -Editor erstellt werden, verwendet. Es werdenzwei Arten von M-Files, Script-Files und Functions-Files verwendet.

Script-Files sind in der Regel meist umfangreichere Programmsequenzen und haben Zugriff auf globale Va-riablen.Functions-Files sind dagegen kurzere Programme, die in einem Functions-File definierten Variablen sindlokale Variablen. Mit den Functions-Files kann der Benutzer eigene Funktionen definieren, also den MATLAB -Funktionsvorrat erweitern. DieUbergabe einzelner Variablen erfolgt wie in anderen Programmiersprachenubereine Parameterliste im Funktionsaufruf.

3.3.1 Script-Files

Script-Files haben die Bezeichnungfilename.m und werden in der MATLAB Arbeitsumgebung durch eintippendes dateinamens ohne den Zusatz.m gestartet. Im folgenden Script-File wird die Ortskurve einerUbertragungs-funktion grafisch ausgegeben. Mit einem vorgestelltem % wird in MATLAB ein Kommentar eingeleitet.

% Matlab Script-File NAME: ortskurve.m% zeichnet die Ortskurve einer Ubertragungsfunktion% die Variable zae ubergibt das Zahlerpolynom

3Ubereinstimmung der jeweiligen Zeilen- bzw. Spaltenzahl

Page 13: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

3.3 M-Files 12

% die Variable nen ubergibt das Nennerpolynomnyquist(zae, nen) % Control-Toolbox-Funktion zur Ortskurvenausgabeaxis([-2 1 -4 4]) % Skalierung [x-Achse, y-Achse]grid % kartesische Gitterlinien

Nach der Eingabe der Variablenzae , nen und Aufruf des Script-Files gibt Matlab die Ortskurve derUbertra-gungsfunktionG(s) = (s+ 2)/s(s+ 1) aus.

>> zae=[1 2];>> nen=[1 1 0];>> ortskurve

3.3.2 Functions-Files

Wie schon beschrieben haben Functions-Files die Aufgabe den MATLAB -Funktionsvorrat zu erweitern und be-nutzerindividuelle Funktionen zu definieren. Aus diesem Grund werden Functions-files wie MATLAB -Funktionenaufgerufen. Die Filebezeichnung muss also gleich dem Funktionsnamen sein. Wie in anderen Programmierspra-chen konnen der Funktion Argumenteubergeben werden, und sie liefert einen Funktionswert zuruck. Am Anfangder Funktion muß der Begrifffunction stehen. Der anschließende Kommentar wird bei dem Aufruf vonhelpFunktionsname angezeigt.

function[db]=betrpt1(kp,w,t)%MATLAB Functionsfile NAME: betrpt1.m%Errechnet den Betrag von F(jw) in db%Eingangsvariablen : kp=Dampfung, w=Kreisfrequenz, t=Zeitkonstantedb=20*log(kp)-20*log(sqrt(1+w*w*t*t));

Nach Eingabe der Parameter in die dafur vorgesehenen Variablen gibt MATLAB nach dem Funktionsaufruf dendb-Wert aus.

>> kp=10;>> w=1;>> t=1;>> db=betrpt1(kp,w,t)

Page 14: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

3.4 Kontrollstrukturen 13

db =39,1202

Mit what werden alle M-Files im aktuellen Verzeichnis angezeigt. Mitwhich name wird der gesamte Pfaddes M-Filesname.m ausgegeben. Die Variablepath enthalt den Suchpfad fur Befehle. Mitaddpath verzkann dieser um das Verzeichnisverz erweitert werden. Werden neue oder eigene m-Files in einem seperatemUnterverzeichnis abgespeichert, so muss MATLAB dieser Pfad bekanntgegeben werden. Mitdelete name.mkann die Dateiname.m geloscht werden.

3.4 Kontrollstrukturen

In MATLAB stehen drei Kontrollstructuren zur Verfugung

• if -Anweisung

• for -Schleife

• while -Bedingung

Fur weitere Erklarungen sei auf die Online-Hilfe verwiesen. Die Online-Hilfe wird in der Kommandozeile mithelp < Funktionsname > aufgerufen. Wird zum Beispiel Hilfe fur die if - Anweisung benotigt so genugt einhelp if in der Eingabezeile und MATLAB zeigt eine ausfuhrliche, mit einem Beispiel untermauerte Hilfe zuder if - Anweisung. Mitlookfor wort wird nach einer Funktion gesucht, in deren Hilfstext das Schlusselwortwort vorkommt. Mitdoc name wird die Dokumentation zu einer Funktion im Web-Browser ausgegeben.

Page 15: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

14

4 Die Zustandsraumbeschreibung

Zur Beschreibung der Bewegung eines System wie zum Beispiel des Kranmodells, werden mehrere Differen-tial- und algebraischen Gleichungen benutzt. Die jeweiligen Variablen der Differentialgleichungen der einzelnenmechanischen Systeme sind somit die Ortskoordinaten4, ihre Ableitungen nach der Zeit die Geschwindigkeitsko-ordinaten des Systems. Diese Koordinaten geben also fur einen bestimmten Zeitpunkt die Lage des betrachtetenSystems im Raum an. Sie beschreiben somit den Zustand des System in Abhangigkeit von der Zeit sowie denanderen auf das System einwirkenden Großen wie Krafte, Momente ... . Von dieser Betrachtungsweise fuhrte auchder NamenZustandsraumbezeichnung her.Die einzelnen Zustandsgroßen werden zu einem Vektor, dem Zustandsvektor zusammengefaßt. Entsprechendesgilt f ur die anderen Großen wie Eingangs- oder Ausgangsgroßen. Die Zustandsraumbeschreibung wird vor allembei der computerunterstutzten Bearbeitung von Regelungsmodellen benotigt, da sich hierauf effiziente Algorith-men aufbauen lassen. Da MATLAB von sich aus schon die Vektor- Matrix-Darstellung verwendet kommt es dieserDarstellung entgegen. Außerdem stellt die Beschreibung von Systemen im Zustandsraum eine wesentliche Erwei-terung zur Beschreibung dynamischer Systeme dar, da (wie spater gezeigt wird) die Zustandsraum-Darstellungdurch einen Satz von Differentialgleichungen 1. Ordnung beschrieben wird.

4.1 Darstellung linearer Systeme im Zustandsraum

Die Beschreibung von Regelkreisgliedern erfolgt in Form von algebraischen Gleichungen und Differentialglei-chungen, in denen die Abhangigkeit der Ausgangsgroße von der Eingangsgroße dargestellt wird. Am Beispieleiner Differentialgleichung 2. Ordnung soll nun die Umformung einer linearen Differentialgleichung in eine Zu-standsdifferentialgleichung gezeigt werden. Werden bei der Differentialgleichung

a2xa + a1xa + a0xa = b0xe (1)

die Substitutionen

x1 = xa (2)

x1 = xa = x2 (3)

durchgefuhrt dann kann die Gleichung 1 zu

xa = x2 =1a2· (−a1xa − a0xa + b0xe) (4)

=1a2· (−a1x2 − a0x1 + b0xe) (5)

umgeformt werden. Die Gleichung 3 und Gleichung 5 konnen nun als Vektordifferentialgleichung 1.Ordnunggeschrieben werden. (

x1

x2

)=(

0 1−a0a2−a1a2

)·(x1

x2

)+(

0b0a2

)· xe (6)

Als Folge der Substitution wird die Differentialgleichung 2. Ordnung in zwei Differentialgleichungen 1. Ord-nung umgeformt. Die Vektordifferentialgleichung 6 kann auch in der allgemeinen Form

x = A · x + b · xe (7)

xa = c T · x (8)

geschrieben werden. In weiterer Folge werden Vektoren mit der Schriftartboldface und Kleinbuchstaben undMatrixen in Großbuchstaben dargestellt.

4Wege- oder Winkelkoordinaten

Page 16: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

4.2 Systemgleichungen eines Mehrgroßensystems 15

4.2 Systemgleichungen eines Mehrgroßensystems

Die Zustandsgleichung eines linearen , zeitinvarianten Systems als Vektor-Matrix-Differenzialgleichung lautet

x(t) = Ax(t) + Bu(t) x(t = 0) = x0 (9)

Die Zustandsgleichung eines linearen , zeitinvarianten Systems als Vektor-Matrix-Gleichung lautet

y(t) = Cx(t) + Du(t) (10)

Bedeutung der einzelnen Vektoren und Matrizen

x(t): (n,1) - Spaltenvektor der ersten Ableitung der n Zustandsgroßenx(t): (n,1) - Spaltenvektor der n Zustandsgroßenx(0): (n,1) - Spaltenvektor der Anfangswerte der n Zustandsgroßenu(t): (m,1) - Spaltenvektor der m Eingangsgroßeny(t): (r,1) - Spaltenvektor der r AusgangsgroßenA: (n,n) - System - oder ZustandsmatrixB: (n,m) - Eingangs - oder SteuerungsmatrixC: (r,n) - Ausgangs - oder BeobachtungsmatrixD: (r,m) - Durchgangsmatrix

4.3 Systemgleichungen eines Eingroßensystems

Bei einem linearen, zeitinvariantenUbertragungssystem mit einem Eingang und einem Ausgang verandern sichdie Matrizen in Vektoren oder Skalare.

B→ b: (n,1) - SpaltenvektorC→ c T : (1,n) - Zeilenvektor5

D→ d: Skalar

Daraus folgen aus den Vektor - Matrix - Gleichungen die Zustandsgleichungen fur ein Eingroßensystem

x(t) = Ax(t) + bu(t) x(t = 0) = X0 (11)

y(t) = c Tx(t) + du(t) (12)

4.4 Vektor-Matrix-Signalflußbild der Systemgleichungen

H�e H�

H�

H�e H�

�H

A�B

∫C

u(t) x(t) x(t) y(t)x0

D

A

-q-

??

Page 17: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

16

5 Einfuhrung in die Control System TOOLBOX

5.1 Allgemeines

MATLAB bietet eine Reihe von speziell fur die Regelungstechnik entwickelte Funktions - und Script - Files, welchein der Control - System - ToolBox gespeichert sind. In den nachsten Kapitel werden nun die wichtigsten Funktionenbesprochen und sollten vom Studierenden, wenn moglich auch gleich durch “Learning by doing“ ausprobiertwerden.

5.2 Berechnen von Zustandsregelungen

5.2.1 Allgemeines

Fur lineare, zeitinvariante Systeme mit einer Eingangs- und einer Ausgangsgroße sogenannten SISO6 - Systemenkann die im Kapitel der Zustandsraumbeschreibung definierte Matrix-Kurzschreibweise mit der SystemmatrixA,der EingangsmatrixB, der AusgangsmatrixC, dem Durchgangsfaktor d sowie dem Zustandsvektorx(t) und derEingangsvariable u(t) verwendet werden.Die meisten Funktionen der Control System Toolbox sind auch fur die Zustandsdarstellung, sowohl fur die SISO -als auch fur die MIMO7 - Systeme gultig. Mit A,B,C, d werden die Zustandsmodelle ein - und ausgegeben.

5.2.2 ModellkonversionUbertragungsfunktion⇔ Zustandsdarstellung

Zur Berechnungen von Zustandsregelungen wird bei gegebenerUbertragungsfunktion (transfer function) der Re-gelstrecke das Zustandsmodell (state space model) der Regelstrecke und umgekehrt auch oft dieUbertragungs-funktion bei gegebenem Zustandsmodell benotigt. Die Control System Toolbox bietet mehrere Funktionen zurModellkonversion zwischen Zeit und Frequenzbereich sowie zwischenUbertragungs - und Zustandsmodell.Die Modellkonversion wird mit folgenden Funktionen durchgefuhrt:

[A,b,c,d ]=tf2ss(num,den) transfer function to state space[num,den ]=ss2tf(A,b,c,d) state space to transfer function[A,b,c,d ]=zp2ss(z,p,k) zero, pole to state space[z,p,k ]=ss2zp(A,b,c,d) state space to zero, pole

Die vier Konversion- Funktionen werden sogleich an einem Beispiel vorgefuhrt, wobei die Funktiontf2ss einegegebeneUbertragungsfunktion in ein Zustandsmodell,ss2tf das Zustandsmodell in eineUbertragungsfunktion,ss2zp liefert die Pol - und Nullstellen eines Zustandsmodells undzp2ss berechnet das Zustandsmodell zubekannten Pol- und Nullstellen.

5.2.3 MATLAB - Eingabe einerUbertragungsfunktion

Da ja MATLAB nur mit Matrixen oder Vektoren arbeitet, mussen auch die Zahler- und Nennerpolynome einerUbertragungsfunktion jeweils in der Form eines Vektors eingegeben werden.

G(s) =ams

m + am−1sm−1 + . . .+ a1s+ a0

bnsn + bn−1sn−1 + . . .+ b1s+ b0=

numerator polynom(s)denominator polynom(s)

=num(s)den(s)

Die als Zeilenvektoren einzugebenden Zahler- und Nennerpolynome werden als num(s) und den(s) bezeichnet. DieElemente der Vektoren sind somit die Polynomkoeffizienten des Laplace-Operators s in absteigender Ordnung.Daraus folgt die Polynomform derUbertragungsfunktion mit

num = [am am−1 . . . a1 a0]6single input - single output (Eingroßensysteme)7multiple input - multiple output (Mehrgroßensysteme)

Page 18: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.2 Berechnen von Zustandsregelungen 17

den = [bn bn−1 . . . b1 b0]

5.2.4 Beispiel zur Modellkonversion

FolgendeUbertragungsfunktion soll mit den oben behandelten Control-System-Toolbox- Funktionen umgewandeltwerden.

G(s) =s2 + 2s+ 2

s · (s2 + 2s+ 5)=

(s+ 1 + i) · (s+ 1− i)s · (s+ 1 + 2i) · (s+ 1− 2i)

Um die Handhabung mit MATLAB und der Control-System-Toolbox zu zeigen, werden die einzelnen Funktionenin einem Scriptfile geschrieben, welches nach der Eingabe vonnum und den gestartet wird. Dem Studierendenuberbleibt es durch Erweitern des Scriptfiles mit weiteren Funktionen den Umgang mit MATLAB und der Control-System-Toolbox zuuben.Zur Eingabe des Scriptfiles wird aus dem MATLAB Command Windowuber die MenuleisteFile New M-file derMATLAB Editor gestartet. Esoffnet sich das Editor/Debugger - Fenster. Nun kann das Script-File geschriebenwerden und am Endeuber die Menuleiste mitFile Save As..unter dem Namenkonver abgespeichert werden.

% konver.m% Modellkonversion mit den Funktionen tf2ss, ss2tf, ss2zp und zp2ss%disp(’Zustandsmodell (controller canonical form’) % Textausgabe in MATLAB

[A,b,c,d]=tf2ss(num,den) % G(s)⇒ Zustandsmodelldisp(’Polynomform der Ubertragungsfunktion:’) % Textausgabe in MATLAB

[num,den]=ss2tf(A,b,c,d); % Zustandsmodell⇒ G(s) in Polynomformprintsys(num,den,’s’) % Zahler- und Nennerpolynom-Ausgabe[nls,pls,k]=ss2zp(A,b,c,d) % Zustandsmodell⇒ Pol-Nullstellenform G(s)disp(’Zustandsmodell in Tabellenform’) % Textausgabe in MATLAB

disp(’companion canonical form’) % Textausgabe in MATLAB

[A,b,c,d,]=ss2zp(nls,pls,k); % Pol-Nullstellenform G(s)⇒ Zustandsmodellprintsys(A,b,c,d) % Ausgabe des Zustandsmodells

Nach dem Speichern des Scriptfileskonver kann wieder zu dem MATLAB -Command-Window Fenster zuruck-gekehrt werden und nach der Wertzuordnung der beiden Variablennumundden das Scriptkonver aufgerufenwerden.

>> num=[1 2 2];>> den=[1 2 5 0];>> konverZustandsmodell (controller canonical form):

A=- 2 - 5 01 0 00 1 0

b=100

c=1 2 2

d=

Page 19: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.2 Berechnen von Zustandsregelungen 18

0Polynomform der Ubertragungsfunktion:

num/den =

1s∧2 + 2s +2- - - - - - - - - - - -s∧3 + 2 s∧2 + 5 s

Nullstellen =

- 1.0000 + 1.0000i- 1.0000 - 1.0000i

Polstellen =

0- 1.0000 + 2.0000i- 1.0000 - 2.0000i

k =1

Zustandsmodell in Tabellenform

(companion canonical form):

a=x1 x2 x3

x1 0 0 0x2 1.00000 -2.00000 -2.23607x3 0 -2.23607 0

b=u1

x1 1.00000x2 0x3 0

c=x1 x2 x3

y1 1.00000 4.44089e-016 -1.34164

d=u1

y1 0

5.2.5 Steuerbarkeit eines Zustandsmodells

Eine Forderung bei der Anwendung der Zustandsregelung ist, daß alle Zustandsvariablen der Regelstrecke durchdie Stellgroße beeinflußt werden konnen. Die Regelstrecke muß also vollstandig steuerbar sein. Dies kann mit dersogenannten SteuerbarkeitsmatrixQS uberpruft werden, welche mit der SystemmatrixA und dem Eingangsvektorb des Zustandsmodells gebildet wird.

QS = [b,A · b,A2 · b, . . . ,An−1 · b]

Ist die Determinantedet(QS) 6= Null, so sind alle Zustandsvariablen steuerbar. Die Determinante vonQS istdann6= Null, wenn der Rang der Steuerbarkeitsmatrix gleich der Systemordnung ist. Zur Berechnung des Rangeseiner Matrix wird die Funktionrank und zur Berechnung der Systemordnung die Funktionlength benutzt. DieDeterminante einer Matrix wird mit der Funktiondet berechnet.Werden die vom vorherigen Beispiel berechneten Werteubernommen und im MATLAB Command Window einge-geben oder vom Workspace8 ubernommen, liefert MATLAB die benotigten Werte.

8ist eine Variable bereits einmal eingegeben worden, verbleibt sie im Workspace von MATLAB

Page 20: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.3 Strukturumformungen 19

>> A=[-2 -5 0;1 0 0;0 1 0];>> b=[1;0;0];>> Systemordnung=length(A)Systemordnung=

3>> QS=ctrb(A,b);>> RangQS=rank(QS)RangQS=

3>> det(QS)ans=

1

Das System hat offenbar die Ordnung9 3. Der Rang der Steuerbarkeitsmatrix lautet 3. Damit ist die Voraussetzungder Steuerbarkeit erfullt. Determinantedet(QS) 6= Null wurde als Aussage zur Steuerbarkeit ebenso genugen.

5.2.6 Beobachtbarkeit eines Zustandsmodells

Die Voraussetzung zur Beobachtbarkeit eines Zustandssystem lautet: Die Regelstrecke ist dann vollstandig beob-achtbar wenn der Zeitverlauf aller Zustandsvariablen durch die Messung der Ausgangsvariablen ermittelt werdenkann. Bedingung dazu ist, daß die Determinante der Beobachtbarkeitsmatrixdet(QB) 6= Null ist. Dann ist derRang vonQB gleich dem Rang der Systemordnung und damit alle Zustandsvariablen beobachtbar. Die Beobacht-barkeitsmatrix berechnet sich mit

QB = [c T , c T ·A, c T ·A2, . . . , c T ·An−1]

Die Control System Toolbox stellt zur Berechnung der Beobachtbarkeitsmatrix die Funktionobsvzur Verfugung.Am Beispiel der Steuerbarkeit angeknupft zeigt die Determinante vonQB = −18 also 6= Null das System istdamit beobachtbar.

>> c=[1 2 2];>> QB=obsv(A,c);>> det(QB)ans=-18

5.3 Strukturumformungen

Zur Umformung von Serien-,Parallel- und Kreisstrukturen sind in der Control-System-Toolbox die Funktionenseries() , parallel() und feedback() vorgesehen. Die Funktionfeedback() wird zum Beispiel beider Entwicklung eines Reglers beimUbergang vom offenen zum geschlossenen Regelkreis benotigt.

5.3.1 Reihenstruktur

Die Funktionseries() erzeugt zwei Zeilenvektoren der resultierendenUbertragungsfunktion G(s).

- - -Xe(s) Xa(s)

G1(s) G2(s) G(s) = Xa(s)Xe(s)

= G1(s) ·G2(s)

9man spricht in diesem Falle auch von einer Modellordnung

Page 21: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.3 Strukturumformungen 20

Als Beispiel wird G(s) mit den beidenUbertragungsfunktionenG1(s) mit G1(s) = s+1s+4 undG2(s) mit G2(s) =

s−1s2+3s−2 berechnet. Mit der Funktionprintsys() wird mit dem Parameter ’s’ dieUbertragungsfunktion fur denLaplace-Operator ausgegeben.

>> num1=[1 1]; % Zahlerpolynom von G1(s)>> den1=[1 4]; % Nennerpolynom von G1(s)>> num2=[1 -1]; % Zahlerpolynom von G2(s)>> den2=[1 3 -2]; % Nennerpolynom von G2(s)>> [num,den]=series(num1,den1,num2,den2); % Berechnet Zahler- und Nennerpolynom von G(s)>> printsys(num,den,’s’) % Ubertragungsfunktion ausgeben

num/den =

s∧2 - 1- - - - - - - - - - - - - - -s∧3 + 7 s∧2 + 10 s - 8

5.3.2 Parallelstruktur

Fur die Berechnung der Parallelstruktur kann die Funktionparallel() benutzt werden.

?

6

-

-

-

q eXe(s) Xa(s)G1(s)

G2(s)G(s) = Xa(s)

Xe(s)= G1(s)−G2(s)

In dem Beispiel wird mitG1 = s+1s+4 undG2 = 3

s+3 die Ubertragungsfunktion G(s) wie folgt berechnet. Eineventuelles negatives Vorzeichen bei dem Summierer ist vor dem jeweiligen Numerator (num) derUbertragungs-funktion in der Parameterangabe der Funktionparallel(num1,den1,-num2,den2) zu setzen (siehe auchim Beispiel).

Page 22: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.3 Strukturumformungen 21

>> num1=[1 1]; % Zahlerpolynom von G1(s)>> den1=[1 4]; % Nennerpolynom von G1(s)>> num2=[0 3]; % Zahlerpolynom von G2(s)>> den2=[1 3]; % Nennerpolynom von G2(s)>> [num,den]=parallel(num1,den1,-num2,den2); % Vorzeichen bei num2 beachten>> printsys(num,den,’s’) % Ubertragungsfunktion ausgeben

num/den =

s∧2 + s - 9- - - - - - - - - - -s∧2 + 7 s + 12

5.3.3 Die indirekte Gegenkopplung

Im folgenden Beispiel wird dieUbertragungsfunktion einer indirekten Gegenkopplung berechnet. Fur dieUbert-ragungsfunktionenG1(s) undG2(s) werden die gleichen Werte wie bei der Parallelstruktur verwendet.

- e - -q6

Xe(s) Xa(s)G1(s)

G2(s)

G(s) = Xa(s)Xe(s)

= G1(s)1±G1(s)·G2(s)

>> num1=[1 1]; % Zahlerpolynom von G1(s)>> den1=[1 4]; % Nennerpolynom von G1(s)>> num2=[0 3]; % Zahlerpolynom von G2(s)>> den2=[1 3]; % Nennerpolynom von G2(s)>> [num,den]=feedback(num1,den1,-num2,den2,-1); % Zahler- und Nennerpolynom von G(s)>> printsys(num,den,’s’) % Ubertragungsfunktion ausgeben

num/den =

s∧2 + 4s + 3- - - - - - - - - - -s∧2 + 10s + 15

Mit dem Parametersign kann das Vorzeichen der Ruckfuhrung eingegeben werden.

[num,den]=feedback(num1,den1,num2,den2,sign)

Wird sign =1 gesetzt ergibt es eine positive Ruckfuhrung,sign =-1 fuhrt zu einer negativen Ruckfuhrung. Wirdder Parametersign nicht eingegeben, so ist die Ruckfuhrung ebenfalls negativ.

5.3.4 Die direkte Gegenkopplung

Zur Berechnung der direkten Gegenkopplung wird ebenfalls die Funktionfeedback() benutzt. Im Unterschiedzu der indirekten Gegenkopplung wird statt den Parameternnum2 undden2 in der Funktion jeweils der Wert 1eingetragen.

Page 23: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.4 Analyse im Zeitbereich 22

- e - -q6

Xe(s) Xa(s)G1(s)

G(s) = Xa(s)Xe(s)

= G1(s)1±G1(s)

>> num1=[1 1]; % Zahlerpolynom von G1(s)>> den1=[1 4]; % Nennerpolynom von G1(s)>> [num,den]=feedback(num1,den1,1,1); % Zahler- und Nennerpolynom von G(s)>> printsys(num,den,’s’) % Ubertragungsfunktion ausgeben

num/den =

s∧2 + 4s + 3- - - - - - - - - - -s∧2 + 10s + 15

Fur die Vorzeichen gilt das gleiche wie bei der indirekten Gegenkopplung. Mit dem Parametersign kann dasVorzeichen der Ruckfuhrung eingegeben werden.

[num,den]=feedback(num1,den1,1,1,sign)

Wird sign =1 gesetzt ergibt es eine positive Ruckfuhrung,sign =-1 fuhrt zu einer negativen Ruckfuhrung. Wirdder Parametersign nicht eingegeben, so ist die Ruckfuhrung ebenfalls negativ.

5.4 Analyse im Zeitbereich

Um Regelungen im Zeitbereich zu untersuchen, werden bestimmte Testfunktionen wie Impuls-, Sprung-, Rampen-funktionen oder harmonische Funktionen (Sinus,Cosinus,...) eingesetzt und deren Antwortfunktion ausgewertet.Die dazu benotigten Funktionen der Control System Toolbox werden in den nachsten Kapiteln vorgestellt.

5.4.1 Impulsantwort

Die Einheitsimpulsfunktion besteht aus einem Nadelimpuls10 δ(t) mit der Flache 1. Die Ausgangsgroße wird alsImpulsantwort oder Gewichtungsfunktion g(t) bezeichnet. Die Funktion welche die Control System Toolbox furdie Impulsantwort bietet, heißtimpulseund wird mit dem Syntax

y = impulse(num, den, t)

aufgerufen, wobei vor dem Aufruf die Polynomvariablennumundden sowie die Variablet mit jeweiligen Wertengesetzt werden mussen. Die Variablet steht fur die Zeitachse und kann mit den Wertent = 0 : 0.4 : 20 belegtwerden. Diese Schreibweise bedeutet, daß die Variable mit den Werten 0 bis 20 im Abstand von 0.4 belegt wird.Ein kleines Beispieluber die Impulsantwort einesPT1-Elementes soll die Funktionimpulse naher erlautern. DieUbertragungsfunktion einesPT1-Elementes lautet:

GPT1 =KP1

1 + sTt=num(s)den(s)

In dem Beispiel wird T=3 undKP1 = 1 gesetzt.10Dirac Impuls

Page 24: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.4 Analyse im Zeitbereich 23

>> num=[0 1]; % Belegen der Variablen num mit dem Wert von KP1

>> den=[3 1]; % Belegen der Variablen den mit dem Wert von KP1

>> t=0:0.4:20; % Festlegung des Zeitrasters>> y=impulse(num,den,t); % PT1 Impulsantwort>> plot(t,y,’.’) % PT1 Impulsantwort plotten

MATLAB gibt nun Abbildung 9 aus. Das Semikolon am Ende jeder Befehlszeile verhindert die sofortige Aus-gabe der Berechnung. Das Zeichen′.′ in der Plot-Funktion ist das Zeichen fur die Ausgabe des Kurvenverlaufs.MATLAB ignoriert alle Zeichen nach dem % - Zeichen.

Abbildung 9: Plotausgabe der Impulsantwort

Die MATLAB -Anweisungen konnen naturlich auch als ein m-Script geschrieben werden und mit einer Eingabe-aufforderung fur jede beliebigeUbertragungsfunktion verallgemeinert werden.

5.4.2 Sprungantwort

Die Sprungfunktion gilt als eine der wichtigsten Testfunktion in der Regeltechnik. Die Eingangsfunktionxe(t)wechselt zum Zeitpunkt t=0 sprunghaft von Null auf einen Wert vonxe0. Der zeitliche Verlauf als Ergebnis derEinheitssprungfunktion wird als Sprungantwort bezeichnet. Die Funktion der Control System Toolbox fur dieSprungantwort lautetstepund wird mit der Syntax

y = step(num, den, t)

aufgerufen. Die Berechnung ist mit der Berechnung von der Impulsantwort identisch, die Vorgehensweise kannvon dortubernommen werden. Sprungantwort am Beispiel einesPT1 Elementes:

Page 25: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 24

>> num=[0 1]; % Belegen der Variablen num mit dem Wert von KP1

>> den=[3 1]; % Belegen der Variablen den mit dem Wert von KP1

>> t=0:0.4:20; % Festlegung des Zeitrasters>> y=step(num,den,t); % PT1 Sprungantwort>> plot(t,y,’.’) % PT1 Sprungantwort plotten

5.4.3 Rampenantwort und Sinusantwort

• RampenantwortLiegt eine Testfunktion mit beliebigem Zeitverlauf vor, so werden die Antwortfunktionen mit der Control- System - Toolbox - Funktionlsim erzeugt. Bei dieser Funktion muß zusatzlich zu den schon bekanntenVariablennum, den , t noch die Einheits-Rampenfunktion mitubergeben werden. Die Syntax von lsim lautetsomit:

y = lsim(num, den, x, t)

>> num=[0 1]; % Belegen der Variablen num mit dem Wert von KP1

>> den=[3 1]; % Belegen der Variablen num mit dem Wert von KP1

>> t=0:0.4:20; % Festlegung des Zeitrasters>> x=t; % Rampenfunktion>> y=lsim(num,den,x,t); % PT1 Rampenantwort>> plot(t,y,’.’) % PT1 Rampenantwort plotten

• SinusantwortWerden harmonische Funktionen wie zum Beispiel die Sinus-funktion als Testfunktion verwendet wird eben-so die Control - System - Toolbox - Funktionlsim zur Erzeugung der Antwortfunktion benutzt. Es gilt diegleiche Vorgangsweise wie bei der Rampenantwort.

>> num=[0 1]; % Belegen der Variablen num mit dem Wert von KP1

>> den=[3 1]; % Belegen der Variablen num mit dem Wert von KP1

>> t=0:0.4:20; % Festlegung des Zeitrasters>> x=sin(t); % Sinusfunktion>> y=lsim(num,den,x,t); % PT1 Sinusantwort>> plot(t,y,’.’) % PT1 Sinusantwort plotten

5.5 Analyse im Frequenzbereich

Die Analyseverfahren im Frequenzbereich wie das Wurzelortsverfahren oder das Ortskurvenverfahren sind einWerkzeug der Regelungstechnik und werden von der Control-Tool-Box mit verschiedenen Funktionen unterstutzt.

5.5.1 Ubertragungsfunktion und Wurzelortskurve

Stabilitat sowie Zeitverhalten vonUbertragungssystemen sind durch die Lage der Polstellen derUbertragungsfunktiondefiniert. Zusatzlich vorhandene Nullstellen beeinflussen das Zeitverhalten derUbertragungsfunktion. Sind diePole des geschlossenen Regelkreises bekannt, so konnenuber die Stabilitat und dynamisches Verhalten einesRegelsystems eindeutige Aussagen gemacht werden. Die Wurzelortskurve ist der geometrische Ort der Pole desgeschlossenen Regelkreises in der s-Ebene in Abhangigkeit eines Regelkreisparameters. Mit derUbertragungs-funktion des offenen Regelkreises

F0(s) = GRS(s) = GR(s) ·Gs(s) =KR · ZR(s) · Zs(s)NR(s) ·Ns(s)

Page 26: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 25

folgt fur die Regelung mit direkter Gegenkopplung dieUbertragungsfunktion des geschlossenen Regelkreises mit

Fw(s) =GRS

1 +GRS(s)=

KR · ZR(s) · ZS(s)KR · ZR(s) · ZS(s) +NR(s) ·NS(s)

Wird das Nennerpolynom vonFw(s) gleich Null gesetzt, erhalt man die charakteristische Gleichung fur Fw(s).

KR · ZR(s) · ZS(s) +NR(s) ·NS(s) = 0

Wird in dieser Gleichung zum Beispiel die ReglerverstarkungKR variiert, so entsteht die Wurzelortskurve, welchefur die Reglerauslegung verwendet werden kann. Mit den Control-Tool-Box-Funktionenrlocus undrlocfindkonnen Grafiken von Wurzelortskurven erstellt und ausgewertet werden, wie das folgende Beispiel zeigen wird.In dem Script-File wok.m wird nachUbergabe der Parameter fur die Nullstellen des Zahlers und die Polstellen desNenners sowie der VerstarkungKR der Regelstrecke die Wurzelortskurve gezeichnet. Nach dem Aufruf des Scriptsoffnet sich ein Ausgabefenster mit der Wurzelortskurve und man wird von MATLAB aufgefordert mit Hilfe einesFadenkreuzes einen Punkt in der Grafik zu selektieren. Das Fadenkreuz dient zur Ermittelung der RegelverstarkungKR und sollte zu dem Schnittpunkt der Wurzelortskurve mit der Linie fur die gewunschte Dampfung gefuhrtwerden. Nach Anklicken des Schnittpunktes gibt MATLAB alle Pole undKR von G(s) aus.

Es soll nun die Wurzelortskurve zum offenen Standart-Regelkreis

F0(s) =K

s(s− 2)(s+ 1)

ermittelt werden. Da das Script-Files allgemein gehalten wurde, kann durch jeweilige Neueingabe der Variablenks , nul , pol und neuerlichen Aufruf vonwok mit verschiedensten Regelstrecken oder Reglern durch hinzufugenvon Nullstellen oder Polstellen experimentiert werden.

Page 27: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 26

% wok.m% Wurzelortskurve fur beliebige Ubertragungsfunktion% Parametrisierung der Variablen K, nul, und pol im MATLAB Command-Fenster% k : Verstarkung der Regelstrecke% nul : Nullstellen der Regler- und Ubertragungsstrecke GRS% pol : Polstellen der Regler- und Ubertragungsstrecke GRS

[numgrs,dengrs]=zp2tf(nul,pol,k) % Ermittelt Zahler und Nennerpolynom von GRS(s)subplot(121),rlocus(numgrs,dengrs) % zeichne Wurzelortskurve in Fenster 1axis([-2,0.5,-2.5,2.5]) % Skalierung von x-Achse und y-Achseaxis(’equal’) % gleicher Skalierungsfaktorsgrid % Gitterlinie fur Dampfung und ω

[KR,polGs]=rlocfind(numgrs,dengrs); % Reglerverstarkung und Pole fur bestimmten Wurzelort

[numg,deng]=zp2tf(nul,polGs,KR*k) % Polynome von G(s)subplot(122),step(numg,deng) % zeichne Sprungantwort in Fenster 2axis([0,20,0,1.5]) % Skalierung von x-Achse und y-Achsegrid % kartesische gitterlinien

Eingabe im MATLAB Command - Fenster

>> k=2;>> nul=[ ];>> pol=[0;−1; 2];>> wok

Abbildung 10: Wurzelortskurve und Impulsantwort

Page 28: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 27

5.5.2 Frequenzgang und Ortskurve

Die Ortskurve ist eine graphische Darstellung der Frequenzgangfunktion, wobei die komplexe ZahlF (jω) ei-ne bestimmte Kreisfrequenzω als Zeiger in der komplexen Zahlenebene darstellt. Die Funktionnyquist zurErmittlung der Ortskurve geht wieder von der Polynomform der Laplace -Ubertragungsfunktion aus. Mit der Ein-gabe vonnum und den als Zahler- und Nennerpolynom derUbertragungsfunktion in Zeilenvektorform werdenMATLAB dieUbertragungsparameterubergeben. Real- und Imaginarteil der Frequenzgangfunktion werden mit derFunktion[re,im,w]=nyquist(num,den) berechnet. Mit linksseitigen Ausgangsvariablen beschrieben wirdder Realteil,Imaginarteil und die zugehorige Kreisfrequenz in den Ausgangsvariablen abgespeichert. Die Ortskur-ve wird nur mit einem zusatzlichen plot-Befehl gezeichnet. Mitnyquist(num,den,w) wird die Ortskurvedirekt auf dem Bildschirm ausgegeben. Die Eingabe der Kreisfrequenzω ist nicht unbedingt notwendig. Das kurzeScript-Fileortsk.m dient zur besseren Darstellung in der Ausgabe.

% ortsk.m% Ortskurve fur beliebige Ubertragungsfunktion% Parametrisierung der Variablen num, und den im MATLAB Command-Fenster

nyquist(num,den) % zeichne Ortskurve fur G(s)grid % kartesische Gitterlinien

Eingabe im MATLAB Command - Fenster

>> num=[0 1];>> den=[0 1 − 2];>> ortsk

MATLAB berechnet immer auch die Ortskurve fur die negative Kreisfrequenzω

5.5.3 Frequenzgang und BODE-Diagramm

Im BODE- oder Frequenzkennlinien-Diagramm werden im Gegensatz zur Ortskurvendarstellung logarithmischeDarstellungen, sogenannte BODE-Diagramme untersucht. Beim BODE-Diagramm werden der Betrag| F (jω) |und die Phaseϕ(ω) des Frequenzgangesuber der Kreisfrequenz aufgetragen. Der dabei verwendete logarithmischeMaßstab laßt einen großen Erfassungsbereich fur den Amplituden- und Frequenzbereich zu. Die Logarithmierungwird zur Basis Zehn (lg) vorgenommen, Betrag und Phase werden im BODE-Diagramm getrennt aufgetragen.Das BODE-Diagramm wird mit der Control System Toolbox - Funktionbode ermittelt. Mit der Eingabe vonnumund den als Zahler- und Nennerpolynom derUbertragungsfunktion in Zeilenvektorform werden MATLAB dieUbertragungsparameterubergeben. Fur die Parametrisierung und Aufruf der Funktion gilt die gleiche Vorgangs-weise wie bei der Ortskurvendarstellung. MATLAB plottet nach dem Funktionsaufrufbode(num,den) einmalden Betrag und einmal die Phase derUbertragungsfunktion.

% bode.m% BODE Diagramm fur beliebige Ubertragungsfunktion% Parametrisierung der Variablen num, und den im MATLAB Command-Fenster

bode(num,den) % zeichne BODE - Diagramm fur G(s)title(’BODE Diagramm fur G(s)’) % Beschriftung des BODE Diagramms

Eingabe im MATLAB Command - Fenster

Page 29: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 28

Abbildung 11: Ortskurve einerUbertragungsfunktion

>> num=[0 1];>> den=[0 1 − 2];>> boded

5.5.4 Der LTI - Viewer

Der LTI-Viewer ist eine spezielle Funktion der Control - System - Toolbox, welche die Anzeige und Weiter-verarbeitung der Plot-Funktionenstep , impulse , bode , nyquist , nichols , pzmap, lsim und initi-al unterstutzt. Vor dem Aufruf des LTI-Viewers muß sich das zu untersuchendeUbertragungssystem bereits imWorkspace 11 (Arbeitsspeicher) von MATLAB befinden. Die Funktiontf (transfer functions) konvertiert mitgn= tf ([ num ],[ den ]) dasUbertragungssystem welches durch das Zahlerpolynomnumund Nennerpo-lynom den definiert ist, in ein fur den LTI-Viewer bearbeitbares Object (Variablegn). Es konnen dabei durchausauch mehrereUbertragungssysteme z.Bsp. g1,g2,g3,... in den Arbeitsspeicher geladen werden. Diese werden dannentsprechend vom Workspace-Browser des LTI-Viewers Abbildung 13 angeboten .Es sollen nun dieUbertragungsfunktionen fur PT1- undPT2- Elemente mit dem LTI-Viewer untersucht werden.

PT1 - Element GPT1(s) = KP11+s·T1

PT2 - Element GPT2(s) = KP2·ω20

s2+2·D·s+ω20

11dasUbertragungssystem muß als Object (Variable) z.Bsp. g1 abgespeichert sein

Page 30: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 29

Abbildung 12: BODE-Diagramm einerUbertragungsfunktion

Eingabe der beiden PT-Elemente in den MATLAB Workspace mit den Parameternω0 = 1, T1 = 4 undD = 0.25.Nach der Eingabe sind in den beiden Variablen gpt1 und gpt2 und somit auch im Workspace von MATLAB diebeidenUbertragungsfunktionen abgespeichert. Mitltiview wird der LTI-Viewer aufgerufen.

>> gpt1 = tf ([1] , [4 1]);>> gpt2 = tf ([1] , [1 0.5 1]);>> ltiview

Nach demOffnen des FenstersLTI Viewer wird uber das Menu File → Import der LTI - Browser ge-startet. Im Fenster des LTI - Browser werden nun die im MATLAB - Workspace gespeicherten Systeme angezeigt.In unserem Falle sind die beiden Systemegpt1 undgpt2 zu markieren12. Nach dem Anklicken derOK- Schalt-flache wird dieStep - Funktion der beiden Systeme mit jeweils unterschiedlichen Farben ausgegeben. DurchDrucken der rechten Maustaste im Anzeigefenster des LTI - Viewersoffnet sich ein weiteres Menu zur EinstellungdesPlot Type (Abbildung 14), in welchem die verschiedenen Funktionen aktiviert werden konnen. Nach demAnwahlen der jeweiligen Funktion fuhrt MATLAB diese sofort aus.

Uber das Menu Tools → Viewer Configuration kann noch die Anzahl und Reihenfolge der zur Anzeige12dies geschieht durch Drucken der Shift Taste und gleichzeitigem Anklicken mit der linken Maustaste

Page 31: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 30

Abbildung 13: LTI-Viewer Laden des Workspace

kommenden Funktionen eingestellt werden. Weiter besteht noch die Moglichkeit uber das Menu Tools → Re-sponce Preferences die Zeit - Frequenz - und Y - Achsen zu parametrisieren.

Es bleibt dem Studierendenuberlassen durch Variation derUbertragungssysteme weitere Untersuchungen mit demLTI-Viewer vorzunehmen und dadurch den Umgang mit MATLAB und der Control - System - Toolbox zuuben.Der LTI-Viewer ermoglicht mit seiner Benutzeroberflache eine sehr einfache Darstellung der verschiedenen rele-vanten Systemantworten eines LTI-Objektes. (Durch die objektorientierte Struktur von MATLAB kann ein linearesSystem in einer Variablen dem sogenannten LTI-Objekt abgelegt werden). Der LTI-Viewer eignet sich daher be-stens zur schnellen grafischen Ausgabe der Systemantworten13 eines LTI-Systems und damit als Werkzeug zurDimensionierung von Reglern.

13Impulsantwort;Sprungantwort;Pol-Nullstellenplan....

Page 32: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

5.5 Analyse im Frequenzbereich 31

Abbildung 14: LTI-Viewer Funktionsauswahl

Page 33: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

32

6 Einfuhrung in SIMULINK

6.1 Allgemeines

SIMULINK als Programmerweiterung von MATLAB gedacht, dient zur Simulation von dynamischen Systemen.SIMULINK wird durch Eingabe vonsimulink im Arbeitsbereich von MATLAB gestartet. Zur Darstellung vondynamischen Systemen werden Blockdiagramme verwendet, welche aus verschiedenen Bibliotheken kopiert undverandert oder auch selbst erstellt werden konnen. Nach Einstellung der Parameterwerte der Blocke kann dieSimulation gestartet werden.Die Ergebnisse konnen an verschiedenen Punkten des Systems mit einem Oszilloskop-Block verfolgt oder in Variablen abgespeichert, zur weiteren Verarbeitung an MATLAB ubergeben werden.

6.2 Die Konstruktion eines einfachen Modells

Nach dem Starten von SIMULINK offnet sich das SIMULINK - Bibliotheken - Fenster. (Abbildung 15) Die ver-schiedenen Symbole der Bibliothek wie Sources, Sinks, Discretes ... beinhalten wiederum Funktionsblocke zu denangegebenen Themen. Durch Doppelklicken auf eines der Symboleoffnet sich ein neues Fenster das die Funkti-onsblocke dieser Bibliothek enthalt (Abbildung 17).

Abbildung 15: SIMULINK -Bibliotheken und Arbeitsfenster

Mittels einfachem Drag - and Drop14 konnen die verschiedenen Blocke in das Arbeitsfenster kopiert werden.Alternativ kann zum Kopieren auch dasEdit - Menu verwendet werden. Die Verbindung der einzelnen Blockeerfolgt dadurch, indem man den Mauszeiger bei gleichzeitig gedruckter linker Maustaste vom Ausgang des einenzum Eingang des nachsten bewegt. Das Anknupfen an andere Verbindungslinien erfolgt durch Drucken der rechtenMaustaste an der entsprechenden Verknupfungsposition und ziehen der Maus zu dem gewunschten Eingang15. Jenachdem welche Funktion gewunscht wird konnen nun nach dem Baukastenprinzip beliebige Modelle zusammen-gestellt werden.Anhand des im Abbildung 16 dargestellten Regelkreises soll nun der Umgang mit SIMULINK gezeigt werden,wobei fur V(s)=U(s)=1 angenommen wird. Aus dem Strukturbild kann unmittelbar das SIMULINK -Modell erstelltwerden.Starten von SIMULINK durch Eingabe vonsimulink in dem MATLAB -Kommando-Fenster. Das Fenster mitder SIMULINK Bibliothek und das SIMULINK Arbeitsfensteroffnen sich.(Abbildung 15) Durch Doppelklicken aufder BibliothekLinear offnet sich ein neues Fenster. Nun werden mit der Maus je einmal die FunktionsblockeTransfer fcn fur die Funktion1 + 2

s und 1s+1 , der FunktionsblockSumsowie die FunktionsblockeGain

14mit dem Mauszeiger auf den gewunschten Block zeigen und bei gedruckter linker Maustaste von einem ins andere Fenster ziehen (drag)und bei erreichen der gewunschten Position linke Maustaste wieder loslassen (fallen lassen drop)

15das Anknupfen einer Verbindung zu einem Ausgang laßt SIMULINK nicht zu

Page 34: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

6.2 Die Konstruktion eines einfachen Modells 33

- e - - - -q6

W(s) Y(s)1 + 2

s V(s)

U(s)

1s+1

Abbildung 16: Regelkreis

einmal fur V(s) und einmal fur U(s) auf das SIMULINK -Arbeitsfenster gezogen. Danach kann das FensterLinearwieder geschlossen werden.

Abbildung 17: Bibliothek

Nach erneutem Doppelklick auf die BibliothekSources offnet sich das Fenster mit den Funktionsblocken derQuellen. Von dieser Bibliothek benotigen wir die Funktionsblockestep undSignal Generator zur Erzeu-gung eines Impulses und einer Sinusschwingung. Zur besserenUbersicht kann nun das Fenster Sources wiedergeschlossen werden. Damit das Ausgangssignal Y(s) angezeigt, beziehungsweise von MATLAB weiterverarbeitetwerden kann, muß noch aus der BibliothekSinks der BlockScope sowie der Blocksimout in das Arbeitsfen-ster gezogen werden.Somit ware das SIMULINK -Modell des Regelkreises fast fertig. Nach der richtigen Anordnung der Blocke fehltjetzt nur noch das Verbinden der einzelnen Blocke wie oben beschrieben. Um den Block Gain U(s) im Ruckkop-

Page 35: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

6.2 Die Konstruktion eines einfachen Modells 34

pelungszweig in die richtige Lage mit Eingang rechts und Ausgang links zu bringen muß er mit dem Mauszeigermarkiert werden und durch zweimaliges gleichzeitiges drucken der ctrl+R Tasten gedreht werden.Die Blockbezeichnungen konnen leicht durch markieren mit der Maus unduberschreiben geandert werden. Sindnun die einzelnen Blocke untereinander im Sinne des Strukturbildes des Regelkreises nach Abbildung 16 verbun-den, konnen die einzelnen Blocke parametrisiert werden.

Abbildung 18: Modell Regelkreis

Nach einem Doppelklick mit der linkem Maustaste auf einen entsprechenden Blockoffnet sich ein Dialogfenster,in welchem die Parameter der einzelnen Blocke eingestellt werden konnen.Zuerst sollen die Parameter fur den Summierblock eingestellt werden, da ja sowohl ein Sinussignal als auch einEinheitsimpuls an den Eingang des Regelkreises angelegt werden sollen, muß der Summierer um einen Eingangerweitert werden. Doppelklick auf den Funktionblock sumoffnet die Dialogboxsum welche nur einen Parame-terwert List of signs zulaßt. Hier konnen mit + oder - zusatzliche Eingange geschaffen oder bestehendegeandert werden. In unserem Beispiel ist hier ein zusatzliches Minus16 einzutragen. Alle Parametrierfenster der

Abbildung 19: Dialogbox sum

Blocke besitzen die vier SchaltflachenApply , Revert , Help undClose . Mit Apply werden die eingestellten16negativer Eingang der Ruckkoppelung

Page 36: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

6.2 Die Konstruktion eines einfachen Modells 35

Parameterubernommen, mitClose wird das Fenster wieder geschlossen. Sollten bei einem spateren Simula-tionsablauf andere Werte parametriert werden, kann mit der SchaltflacheRevert die dann aktiviert ist zu denvorherigen Parametern zuruckgekehrt werden.Als nachste zu parametrisierende Box wahlen wir dieTransfer fcn -Box. Hier sind die beiden ParameterNumerator und Denominator einzugeben. Im Numerator wird das Zahlerpolynom und im Denominator das Nen-nerpolynom jeweils in der MATLAB Schreibweise eingegeben. Fur die erste Transfer-fcn-Box den Wert[1 2]fur den Numerator und[1 0] fur den Denominator sowie[1] (Numerator) und[1 1] (Denominator) fur diezweite Transfer-fcn-Box.Die beidenGain werden (da hier V(s)=U(s)=1) mit dem Parametrierwert 1 belegt.In dem Parametrierfenster Signal Generator kann in dem RollbalkenWave form als Schwingungsartsinus ,square , sawtooth oder random ausgewahlt werden. Im Rollbalken Unit kann zwischen Hertz und rad/secausgewahlt werden. Mit den Parametern Amplitude wird die Amplitudenhohe und mit Frequency die Frequenzeingestellt, mit welcher der Eingang des Regelkreises angesteuert wird. Fur unser Beispiel sollten die default-Werteubernommen werden.Die BlockeStep , Scope , undsimout To Workspace sollten zunachst nicht parametriert werden und dieDefaultwerte beibehalten. Somit waren alle Blocke parametrisiert. Nach der Parametrierung der Blocke erfolgtnoch die Einstellung der Parameter der gesamten Simulation. Im Arbeitsfensteruber das Menu Simulationund weiterParameters offnet sich das DialogfensterSimulation Parameters:simbsp1 mit den dreiErweiterungsfensternSolver ,Workspace I/O undDiagnostics . Im Solver wird in Start time und

Abbildung 20: Dialogfenster Simulation parameters

Stop time die Start- und Stoppzeit ,17, in Type mit der Auswahl vonVariable-step oderFixed-stepder Typ der Integrationsschritte und des Integrationsverfahrenode45 .... eingestellt. In der Regel arbeiten nu-merische Integrationsverfahren mit variabler Schrittweite. An besonders steilen Stellen eines Kurvenverlaufes einerLosung benotigen die Verfahren kleinere Schritte , um die geforderte Toleranz einzuhalten. Andere Anwendungen

17im Beispiel von 0 bis 10 Sekunden

Page 37: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

6.2 Die Konstruktion eines einfachen Modells 36

und Simulationen (z.Bsp. die FFT18) setzen wiederum eine fixe Schrittweisen voraus. Dasode45 Verfahren ent-spricht dem Runge-Kutta Verfahren 5.Ordnung und wird normalerweise fur kontinuierliche Modelle mit nicht zugroßem Dynamikunterschied verwendet.Die Max step size undInitial step size fur die Integrationsschritte sollten ebenso wie dieRelati-ve tolerance undAbsolute tolerance auf den Defaultwerten belassen werden. Die EinstellungOut-put options soll Refine output mit dem WertRefine factor ist 1 gewahlt werden. Die Erweite-rungsfensterWorkspace I/O undDiagnostics sollten noch nicht verandert werden.Nun kann die Simulationuber das Menu Simulation Start im Arbeitsfenster gestartet werden. DasScope -Fenster das immer geoffnet sein sollte, sollte jetzt den gleichen Verlauf des Bildes 21 zeigen.

Abbildung 21: Scope Ausgabe

Das Schaltsymbol mit dem Fernglas desScope -Fensters fuhrt nach Aktivierung automatisch eine Skalierung derDarstellung durch.Zum Vergleich sollen nun an Stelle derUbertragungsglieder V(s) und U(s) Totzeitglieder also V(s)= U(s)=e−Ts

eingesetzt werden. Zu diesem Zweck muß in dem Modell nach Abbildung 18 lediglich in den beidenGain gegenzwei Fcn Blocke aus der BibliothekNonlinear getauscht werden. In dem Parametrierfenster des Funktions-blockesFcn ist dann noch in gewohnter Art der Wertexp(−0.4 ∗ (u(1)))19 einzutragen ist.Ein neuerlicher Start der Simulation zeigt den Einfluß der beiden Totzeitglieder.

18Fourie-Fast-Transformation19mit T=0.4 (errechneter Wert, bei dem das System stabil ist); der Name u als Eingabevariable wird von MATLAB vorgeschrieben

Page 38: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

6.2 Die Konstruktion eines einfachen Modells 37

Abbildung 22: Modell Regelkreis mit Totzeitgliederweiterung

Page 39: Einfuhrung in M¨ ATLAB /S - vu.fernuni-hagen.de · 3 1 Einleitung In diesem Dokument wird eine Einf¨uhrung in das Programmpaket M ATLAB gegeben. MATLAB (MATrix LA-Boratory) stellt

38

7 Literaturverzeichnis

• O.Follinger / Grundlagen der Regelungstechnik I+II / FernUniversitat Hagen

• E.Freund, H.Hoyer / Regelsysteme im Zustandsraum I / Kurseinheit 1 / FernUniversitat Hagen

• Alfred Geisel / Diplomarbeit: Vergleichende Untersuchungen unterschiedlicher Reglerkonzepte / FernUni-versitat Hagen

• Lutz Wendt / Taschenbuch der Regelungstechnik / Harri Deutsch Verlag

• Franz Bachmann, Hans Rudolf Scharer / Mathematik mit MATLAB / vdf Hochschulverlag der ETH Zurich

• Adolf H. Glattfelder / Lineare Regelsysteme Eine Einfuhrung in MATLAB / vdf Hochschulverlag der ETHZurich

• Helmut Bode / MATLAB in der Regelungstechnik / B.G. Teubner Stuttgart

• Josef Hoffmann / MATLAB und SIMULINK / Addison-Wesley Verlag

• Duane Hanselman / The Student Edition of MATLAB User‘s Guide / PRENTICE HALL

• James B. Dabney / The Student Edition of SIMULINK User‘s Guide / PRENTICE HALL

• Thomas Feuerstack / Einfuhrung in X11 / FernUniversitat Hagen / Unterhttp://www.fernuni-hagen.de/URZ/urzbib/ zu beziehen.

• Jens Vieler /Einfuhrung in UNIX / FernUniversitat Hagen / Unterhttp://www.fernuni-hagen.de/URZ/urzbib/ zu beziehen.

• Control System Toolbox User‘s Guide / Unterhttp://www-europe.mathworks.com als PDF-Filebeziehbar.

• Using Simulink / Unterhttp://www-europe.mathworks.com als PDF-File beziehbar.

• Getting startet with MATLAB / Unterhttp://www-europe.mathworks.com als PDF-File beziehbar.

• Using MATLAB Graphics / Unterhttp://www-europe.mathworks.com als PDF-File beziehbar.