Home
Matlab an der RWTH Tutorium Einführung / Toolboxen
Contents
1. g Abbildung 6 11 Signalfluss Lineare Zustandsraumdarstellung b Bringen Sie die zuvor berechneten Bewegungsgleichungen nun in folgende Zustandsraumform X f z1 x2 x3 x4 u z a T2 fo 1 2 3 x4 u x p T3 fs 21 2 3 x4 u au T3 amp uud x fa z1 22 23 24 u T4 c Berechnen Sie nun die Matrizen A und B durch Linearisieren der Zustandsraumgleichungen C und D brauchen nicht berechnet zu werden Da wir x als Ausgangsgr e verwenden also y xX wird C zur Einheitsmatrix und D zu 0 Bestimmung der Zustandsr ckf hrungsmatrix Eine M glichhkeit der Reglerauslegung ist der sog LQR Regler least quadratic Regulator Hier bei l sst sich eine Zustandsr ckf hrmatrix K bestimmen Abb 6 12 die zur Regelung des Systems aus einem beliebigen Zustand zu Null f hrt Durch die Matrixform von K wird so eine Eingangs gr e hier z B Drehmoment aus einer Linearkombination der Zust nde gebildet 90 6 Control System Toolbox Abbildung 6 12 Zustandr ckf hrung Hierbei wird K so bestimmt dass das Strafma io f G Qeta hud 0 das ber den Regelungsverlauf integriert wird minimal wird Q und R sind sog Wichtungsmatrizen So bestimmt die Matrix Q wie stark eine Abweichung der Zustandsgr en bewertet wird und R wie stark die Stellgr en bestraft werden Das bedeutet zum Beispiel dass bei wachsenden Werten in der Matrix R die M resultierenden Momente kleiner
2. Mathematische Beschreibung von Abtastvorg ngen Auf eine ideale Abtastung erfolgt unmittelbar die Speicherung des Funktionswertes ber die Ab tastperiode T Das gesamte bertragungsglied das aus der zeitkontinuierlichen Funktion f t die Treppenfunkion f t erzeugt wird als Abtast Halte Glied bezeichnet Abbildung 4 14 idealer Abtaster ideales Halteglied zeitkontinuierliche zeitdiskrete zeitkontinuierliche Funktion Diracsto folge Treppenfunktion Abbildung 4 14 Ideales Abtast Halte Glied Die Treppenfunktion f t entsteht also indem die Funktion f t zu jedem Zeitpunkt kT f r k gt 0 abgetastet und der entsprechende Funktionswert f kT ber die Abtastperiode T gehalten wird Um die Treppenfunkton f t mathematisch zu beschreiben ben tigt man den sogennanten Recht eckimpuls Abbildung 4 15 in seiner auf die Abtastzeit T normierten Darstellung peT rect z 3 4 f r t S 0 gt 4 8 Diskrete Subsysteme in kontinuierlichen Systemen 61 Die Normierung ist so gew hlt dass Rechteckimpuls die Fl che 1 hat Es gilt also Ft f rect z dt oo Multipliziert man den Rechteckimpuls mit T und verschiebt ihn um z nach rechts erh lt man die rect t T 4T 0 T t T Abbildung 4 15 Rechteckimpuls rect 4 Haltefunktion 0 Ordnung Abbildung 4 16 T h t T rect T Die Treppenfunktion f t Abbildung 4 17 berechnet sich nun mit Hilfe der diskreten Faltung hit 0 T t Abbildung
3. d Ist das System stabil Begr nden Sie Ihre Antwort anhand der Physik der DGL und der linearen Systemdarstellungen Best tigen Sie Ihre Antwort indem Sie das nichtlineare System mit Simulink simulieren e Finden Sie einen linearen Regler P PD PID PI so dass das System stabilisiert wird Uberpr fen Sie Ihre Wahl anhand der Simulation 86 6 Control System Toolbox 6 11 Der Van der Pol Oszillator Der Van der Pol Oszillator ist ein schwingungsf higes Sys tem mit nichtlinearer D mpfung und Selbsterregung F r kleine Amplituden ist die D mpfung negativ die Amplitude wird vergr ert Ab einem bestimmten Schwellenwert der Amplitude wird die D mpfung positiv das System stabilisiert sich und geht in einen Grenzzyklus ber e Erstellen Sie ein Modell vgl Abb 6 9 der nichtlinearen van der Pol Differentialgleichung dx 2 dz 2 tree 1 tw 7 0 wobei u 1 w 1 z 0 1 und 0 File Edit View Simulation Format Tools Dis nsa treac S van der Pol Equation x ey x mna aN k gt a Outt u gt Mux gt Scop Ready 100 f T 0 000 ode45 L Abbildung 6 9 Modell der van der Pol Differentialgleichung Speichern Sie es unter dem Namen vanderpol Verwenden Sie die Bl cke Sum Product Fcn Gain Integrator Mux Scope und Outport Achten Sie beim Erstellen auch darauf bei welchen Bl
4. 02 xl ale Export To wWorksp E DER 0 15 pa Linearized Model Gin ul 0 1 xl 1 Operating Point Model_og 0 05 c xl 0 Yl a Export zum Workspace b Vergleich Modell Linearisierung Abbildung 6 7 Export des linearisierten Modells und Vergleich mit dem Nicht linearen Modell Jetzt k nnen die Antworten beider Systeme verglichen werden indem ein LTI System Block mit dem linearisierten Modell und demselben Eingang hinzuf gt wird und beide Ausgaben in einem u 0 5 Yt lt is dann u 0 Vt gt 1s kann man sehen dass sich der Unterschied bemerkbar macht wenn sich das System vom Arbeits punkt x 0 entfernt siehe Abb 6 7 rechts Scope dargestellt werden Nimmt man als Eingangssignal einen Sprung 82 6 Control System Toolbox Aufgaben und bungen 6 1 6 3 6 4 Erstellen Sie ein zpk LTI Modell G2 mit der bertragungsfunktion G2 6 Erstellen Sie ein t LTI Modell dG1 mit der bertragungsfunktion dG1 Erstellen von zeitkontinuierlichen LTI Modellen Erstellen Sie ein t LTI Modell G1 mit der bertragungsfunktion G1 gt s s 2 ls _ s 2 Erstellen Sie ein ss LTI Modell SS1 mit den Matrizen A 1 2 3 4 B 1 1 2 0 D 0 Vergleichen Sie die Sprungantworten aller Systeme in einer einzigen Abbildung 1 Zeitdiskrete LTI Modelle 2 z2 0 3z 0 I und Abtastzeit 1s Wandeln Sie G2 aus Aufgabe 6 1 in ein zeitdiskretes Modell um Dem Modell
5. Hinweis Schreiben Sie das System in Zustandsraumform damit Sie die Gleichungen als Block schaltbild darstellen k nnen W hlen Sie daf r z1 1 Z2 1 Z3 ta Z4 2 4 12 Zeitkontinuierliches Zustandsraummodell Simulieren Sie folgendes Differentialgleichungs system mit einem Zustandsraummodell 0 2667 0 3333 1 2 1 67 0 00 u 1 0 0 05 u y 0 1 2 x 0 O u l 1 1 00 Simulieren Sie das System mit ode45 und variabler Schrittweite f r die Dauer von 20 Sekunden w hrend am Eingang folgende Signale anliegen Geben Sie y auf einem Scope aus 2 12345678910 12345678910 t t Tip Definieren Sie im MATLAB Workspace die Vektoren ul 00125444 1 0 0 u 00003000000 t 0 10 und benutzen Sie in Simulink den From Workspace Block Es soll sich folgender Verlauf der Zust nde ergeben 4 6 User defined Functions Bibliothek 51 4 6 User defined Functions Bibliothek SIMULINK bietet die M glichkeit benutzerdefinierte Funktionen in ein Modell einzubinden die sich mit den vordefinierten Bl cken nicht oder nur sehr aufw ndig realisieren lassen w rden Um beispielsweise die Funktion f x e sin x 1 mit vordefinierten SIMULINK Bl cken darzustellen sind bereits sechs Bl cke n tig Fen und MATLAB Fcn Der Fen Block wendet den angegebenen mathematischen Ausdruck auf den Eingang an und gibt das Ergebnis aus Mit Hilfe des Mux Blocks k nnen
6. Tabelle 9 5 Matrizenoperatoren Operator Beschreibung after n event Wahr wenn das Ereignis mindestens n mal aufgetreten ist before n event Wahr wenn das Ereignis weniger als n mal aufgetreten ist at n event Wahr wenn das Ereignis genau n mal aufgetreten ist every n event Wahr wenn das Ereignis genau n mal 2n mal aufgetreten ist Tabelle 9 6 Temporale Logikoperatoren
7. 1 2 anpassen Um einen berblick ber die Felder einer LTI Datenstruktur zu gewinnen kann der Befehl get sys2 angewendet werden Zeitdiskrete Systeme Bisher wurde davon ausgegangen dass es sich um die Darstellung zeitkontinuierlicher Systeme handelt Analog zur Differentialgleichung im zeitkontinuierlichen existiert f r den zeitdiskreten Bereich eine das dynamische Systemverhalten beschreibende Differenzengleichung AmYk m 1Yr Q0Yk BmUk m B ur bouk Die diskrete bertragungsfunktionen lautet g Bm2 b127 bo _ mt t B z 1 Boz Amz 12 1 0 Amt al ag2 74 6 Control System Toolbox und die diskrete Zustandsraumbeschreibung x 1 AaXk Bau Yk Cx Duk Ankn pfend an die kontinuierlichen Beispiele lassen sich zeitdiskrete Systeme durch das zus tzliche Argument einer Abtastzeit direkt angeben gt gt Tabt 0 2 Abtastzeit Tabt 0 2s gt gt sysidd tf z n Tabt gt gt sys2dd ss sys2 a sys2 b sys2 c sys2 d Tabt Mit Hilfe des Befehls c2d continuous to discrete lassen sich diskrete Modelle aus den kontinuier lichen Modellen gewinnen Der Befehl d2d discrete to discrete erm glicht eine sp tere Anderung der Abtastzeit und der Befehl d2c discrete to continuous erzeugt wieder ein kontinuierliches Modell Hierf r ist sehr wichtig eine sinnvolle Abtastzeit zu nehmen sodass die Signalen dann richtig abgetastet werden und die Information i
8. Jedoch f hrt eine doppelte Vergabe von Varia blenbezeichnungen meist zu Un bersichtlichkeiten und sollte generell vermieden werden 114 9 Einf hrung in Stateflow B a gt b a gt cl aktion1 E_eins aktion2 l aktion3 z aro A A A N E_einsfi 0 i lt 10 EQ fit k k 2 B Abbildung 9 5 Komplexe Transitionen durch den Einsatz von Verbindungspunkten links oben Verzweigung rechts oben Flussdiagramm mit if Abfrage links unten Selbstschlei fe rechts unten for Schleife File Edt View Tools Add Help DEtBax EHE AWMF F oo MEAN saza Contents of untitied Chart Event event j Name Scope Trigger Port Resohi Name event VE m m Debugger breakpoints Start of Broadcast _ End of Broadcast Description Abbildung 9 6 Der Model Explorer 9 1 Grundelemente von Stateflow 115 Port Nur bei Ausgang Nummer des Port des Chart Blockes in Simulink an dem das Ereignis abgegriffen werden kann Trigger Nur bei Ein Ausgang Legt fest ob eine steigende von nach eine fallende von nach oder beide Signalflanken ein Ereignis ausl sen Wichtig In jedem Fall muss die Null gekreuzt werden Ein bergang von 1 nach 2 l st kein Ereignis aus Die Signalflanken werden nur am Anfang eines Simulationsschritts ausgewertet Mit der Option Function Call kann ein Ereignis auch innerhalb eines Simulationsschritts an einen Simulink Block w
9. Mit Hilfe einer leeren Matrix k nnen wieder Zeilen oder Spalten einer Matrix gel scht werden gt gt AC 2 Die zweite Spalte von A wird gel scht Aufgaben und bungen 3 14 Vektoren Matrizen und der Workspace Erstellen Sie zwei Variablen Y F i i t 2 46 14 und ver ndern Sie ihren Inhalt durch einen Doppelklick auf die Variable im Workspace Fenster berpr fen Sie die nderung indem Sie die Variablennamen im Befehlsfenster eingeben 3 5 Operatoren und eingebaute Funktionen 21 e Erstellen Sie einen Spaltenvektor t2 mit logarithmischer Teilung und Werten von 107 bis 10 Hinweis Um einen Zeilenvektor in einen Spaltenvektor umzuwandeln nutzen Sie den Traspositionsoperator z B vektor e FExtrahieren Sie die erste Zeile z1 und die dritte Spalte c3 von Y e Extrahieren Sie die Matrix Yklein mit der 1 und 3 Spalte von Y e Extrahieren Sie den Vektor zwischen mit Werten gr er als 3 aus der Matrix Y e L schen Sie die zweite Zeile von Y Laden Speichern und L schen Es gibt in MATLAB auch die M glichkeit die Variablen im Workspace zu verwalten und vor allem f r sp tere Arbeiten zur Verf gung zu stellen Einige der daf r ben tigten Befehle sehen Sie in Tabelle 3 2 clear L scht alle Variablen im Workspace clear variable L scht variable aus dem Workspace save Speichert alle Variablen in Datei matlab mat save fname Speichert alle Variablen in Datei fname mat sa
10. Mittelwert abh ngige Nachrichten angezeigt werden T lt 0 5 Sek Du bist sehr schnell T lt 1 Sek Du bist schnell T lt 2 Sek Nicht sehr beeindruckend T gt 2 Sek Eine Schildkr te w re schneller als du 3 8 Graphische Darstellungen MATLAB besitzt auch eine Reihe von graphischen M glichkeiten Die wichtigsten Graphikfunktio nen sind e 2D Kurven plot fplot ezplot subplot stem stairs e 3D Kurven plot3 stem3 surf mesh contour Der Befehl plot M chte man einen Vektor y graphisch darstellen so lautet der Befehl plot y In dem Fall werden die Elemente von y y1 y2 y3 ber ihre Indizes 1 2 3 2 dimensional aufgetragen M chte man eine andere x Achse z B die Zeit t so muss dieser Vektor t dem Vektor y vorangestellt werden 3 8 Graphische Darstellungen 27 plot t y Der entsprechende Befehl f r die dreidimensionale Darstellung bei dem immer alle drei Vektoren angegeben werden m ssen lautet plot3 t x y gt gt t linspace pi pi 30 gt gt yi sin 2 t gt gt y2 cos 5 t gt gt plot y1 gt gt plot t y1 Zum Vergleich gt gt plot yl t Zum Vergleich gt gt plot3 t y1 y2 Die Zeichnungen werden in sogenannten figures dargestellt Dies sind eigene Fenster die neben der Kurve noch die Achsen verschiedene Men befehle zum ndern des Layouts usw enthalten Ist bereits ein figure Fenster offen so wird die Ku
11. Zuweisung der Variablen a gt gt b a 5 gt gt c arb gt gt b 1 3 20 gt gt plot b gt gt help cos gt gt b 2cos b Die letzte Zeile verursacht eine der h ufigsten Fehlermeldungen missing operator comma or semi colon In diesem Fall fehlt das x Zeichen zur Multiplikation zwischen 2 und dem Kosinus Der korrekte Befehl lautet gt gt b 2 cos b Die Ausgabe auf dem Bildschirm kann mit einem Semikolon am Ende der Zeile unterdr ckt werden Testen Sie dieses indem Sie den Befehl mit einem Semikolon wiederholen Anstatt den Befehl neu einzugeben kann auch die Taste t Pfeil nach oben gedr ckt werden mit der eingegebene Befehle wiederholt werden Diese Befehle k nnen vor Eingabe des Return J beliebig ver ndert werden Noch schneller geht es wenn der oder die ersten Buchstaben des Befehls bekannt sind Gibt man diese ein und dr ckt dann die Taste f werden nur diejenigen Befehle mit demselben Beginn wiederholt Symbolleiste des Befehlsfensters Die Symbolleiste vgl Abb 3 2 erm glicht den schnellen Zugriff auf h ufig ben tigte Funktionen Die Bedeutung der einzelnen wichtigeren Symbole werden von links nach rechts erkl rt 1 Starten des MATLAB Editors in einem neuen Fenster Dieser Vorgang ist analog zu der Men Auswahl File New M File Der Editor und das Er stellen bzw Ver ndern eigener Skripte wird sp ter erl utert 3 1 Benutzeroberfl che und Kommandozeile 13 lex
12. bzw der 12 Uhr Stelle eines Verbindungspunktes im Uhrzeigersinn als n chster folgt Zi Z2 228 Abbildung 9 14 Chart mit parallelen Zust nden Parallele Zust nde Bisher bezogen sich alle Ausf hrungen auf die exklusive Anordnung Oder Anordnung von Zu st nden bei der immer genau ein Zustand aktiviert ist Neben dieser Anordnung gibt es die parallele Und Anordnung bei der alle Zust nde einer Hierarchieebene gleichzeitig aktiv sind und nacheinander abgearbeitet werden Innerhalb jeder Hierarchieebene Chart Superstate kann die Art der Anordnung getrennt festge legt werden Dies geschieht im Kontextmen eines zugeh rigen Zustandes unter Decomposition Wird auf Parallel AND umgeschaltet ndert sich die Umrandung der betroffenen Zust nde zu einer gestrichelten Linie und es wird eine Zahl in der rechten oberen Ecke eingeblendet siehe Abb 9 14 Diese Zahl gibt die Ausf hrungsreihenfolge der Zust nde an Die parallelen Zust nde werden nacheinander von oben nach unten und von links nach rechts ausgef hrt Mit parallelen Zust nden k nnen Systeme modelliert werden welche parallel ablaufende Teilpro zesse besitzen Boxen Ein weiteres Gruppierungsmittel stellen Boxen dar Eine Box kann mit dem entsprechenden Werk zeug der Werkzeugleiste erzeugt werden Auch kann ein Zustand mit seinem Kontextmen mit dem Punkt Type in eine Box umgewandelt werden und umgekehrt Mit einer Box k nnen Bereiche eines Charts zur
13. gt sqrt 2 2 3 2 Quadratische Wurzel gt gt sqrt 1 Die Imagin rzahl i gt gt 5 3 i 2 i Rechnen mit komplexen Zahlen 3 2 RC Schaltung und komplexe Zahlen Es ist die RC Schaltung aus der Abbildung 3 3 gege ben Mit Hilfe komplexer Zahlen berechnen Sie die komplexe Spannung am Kondensator Berechnen Sie den Betrag Scheitelwert den Effektivwert und die Phasenverschiebung der Kondensatorspan nung gegen ber der Spannung der Quelle in Grad Hinweis Der Zusammenhang zw Effektivwert und Scheitelwert ist durch die Gleichung Veff Yman gegeben R 500 ohm Vc Abbildung 3 3 RC Schaltung zur Aufgabe 3 2 3 3 Verdopplung der Frequenz Untersuchen Sie die Wirkung einer Verdopplung der Frequenz in Aufgabe 3 2 Ist die Kondensatorspannung betragsm ig gr er oder kleiner Warum 3 2 Die Matlab Hilfe Meistens wird die direkte Hilfe zu einer Funktion insbesondere zu ihrer Syntax ben tigt Dazu gibt man den Befehl help oder doc f r mehr Details gefolgt vom Funktionsnamen ein gt gt help cos gt gt help linspace gt gt doc linspace gt gt lookfor cosine Der Befehl lookfor durchsucht in den Dateien im Suchpfad alle ersten Zeilen des Hilfetexts nach dem angegebenen Wort ber die Eingabe von Befehlen lassen sich weitere Hilfem glichkeiten aufrufen 16 3 Einf hrung MATLAB e Help Window Eigenes Hilfefenster zum Anzeigen des Hilfetexts einer Funktion s Symbolleiste Dazu kann
14. kreis bilden Bei Bl cken mit Durchgriff h ngt das aktuelle Ausgangssignal vom aktuellen Eingas signal ohne Verz gerung ab z B beim Gain Die Rechenzeit wird durch eine algebraische Schleife stark verlangsamt Durch Einf gen eines Memory Block aus der Continuous Bibliothek l sst sich die Schleife aufbrechen Eine weitere M glichkeit liegt in der Verwendung des Algebraic Cons traint Blocks aus der Math Operations Bibliothek zur L sung algebraischer Gleichungs Differen tialgleichungssysteme Aufgaben und bungen 4 8 Schiefer Wurf Simulieren Sie die Flugbahn einer punktf rmigen Masse M in der x z Ebene welche im Punkt 0 A T mit der Geschwindigkeit vzo vzo losgeworfen wird Vernachl ssigen Sie zun chst alle Reibungs und Kontakteffekte Es gilt M 2kg vzo vzo 10 h 5m g 9 813 Tipp Es gilt T wo g e Setzen Sie diese beide Gleichungen mit Hilfe von Integrierern in Simulink um Vergessen Sie nicht die Anfangsbedingungen Speichern Sie das System unter dem Namen SchieferWurf mdl e Simulieren Sie das System f r eine Zeitdauer von tsim 5s Stellen Sie die Zeitverl ufe von x t amp t z t und 2 t in einem Scope und z t und z t in einem x y Plot dar In diesem einfachsten Fall ist neben der numerischen L sung des Differentialgleichungssystems Simulink nat rlich auch eine analytische L sung m glich e Integrieren Sie das System per Hand und ermitteln Sie die analytische L
15. nge gebrochen rationale Funktionen sind Regelkreise mit Totzeitgliedern sind daher zun chst ausge schlossen Betrachtet wird der Regelkreis in Abbildung 6 1 wobei G s s und G r s die bertragungsfunk tionen der Strecke und des Reglers sind Abbildung 6 1 Standardregelkreis Die bertragungsfunktion des aufgeschnittenen Regelkreises ergibt sich dann als pn DE M 8 sni _ Bene Go s Gs Gr En s spj K Gol 6 1 und dementsprechend k nnen das charakteristisches Polynom und Bedingungen f r Gh s ermittelt werden 1 Gols 0 gt K Ghls 1 6 2 Die Wurzelortskurve WOK ist eine grafische Darstellung der Lage der Nullstellen des charakte ristischen Polynoms in 6 2 d h die Polstellen des geschlossenen Regelkreises in Abh ngigkeit des Parameters 0 lt K lt oo Die Wurzelortskurve verdeutlicht somit die Verschiebung der Polstellen in Abh ngigkeit des Parameters K und erm glicht dadurch R ckschl sse auf das Stabilit tsverhalten und die Dynamik des Regelkreises In MATLAB kann die Wurzelortskurve mit dem Befehl rlocus erzeugt werden Sei z B 0 1s 1 Go s Ki a i so kann die Wurzelortskurve des Systems in Abh ngigkeit vom Parameter Ki des Reglers darge stellt werden gt gt Go tf 1 1 1 1 0 Ohne Parameter Ki gt gt rlocus Go Das Ergebnis ist in Abbildung 6 2 dargestellt wobei der Hintergrundraster eingeschaltet wurde Au erdem wurde mit der Maus ein beli
16. nnen ebenfalls feste Abst nde zwischen den Bedienelementen angegeben werden Set Spacing Um Elemente auto matisch anzuordnen m ssen diese zun chst markiert werden Mehrere Elemente k nnen entweder durch Gedr ckthalten der Shift Taste oder durch aufspannen eines Selektierungsrahmens mit der linken Maustaste markiert werden Neben diesen Bedienelementen k nnen dem GUI auch noch eine Menu Bar Context Menus und eine Toolbar hinzugef gt werden Eine Menu Bar befindet sich am oberen Fensterrand und enth lt meistens Men punkte wie File Edit und View Eine Toolbar ist eine Leiste mit kleinen Symbolen direkt unter der Menu Bar Context Menus werden mit einem Rechtlick angezeigt und beziehen sich immer auf das Element auf dem der Rechtsklick ausgef hrt wurde Menu Bar und Context Menus werden mit Hilfe des Menu Editor Tools gt Menu Editor erzeugt und bearbeitet die Toolbar mit Hilfe des Toolbar Editors Tools gt Toolbar Editor Property Inspector Die Eigenschaften der Bedienelemente k nnen mit Hilfe des Property Inspectors bearbeitet werden siehe Abb 7 3 Gestartet wird der Property Inspector durch den Men punkt Property Inspector im Kontextmen des jeweiligen Bedienelements oder ber view Property Inspector Zu den Eigenschaften die mit Hilfe des Property Inspectors bearbeitet werden k nnen z hlen Gr e Farbe und Position des Elements Bei Bedienelementen die mit Text versehen sind z B Push Button Edit Tex
17. 10 2007 14 05 E matlab_script sh 1KB SH Datei 21 09 2007 08 21 E RWTH readme txt 4KB Textdokument 24 10 2008 09 07 ow B iso S net install a unix S O InstallForMacOSx apf D D update B D utis 88 win 5 O win32 S wins4 BR e nii a dl ae s lt gt Abbildung 2 1 Ordnerstruktur e Im Dialogfenster Product Selection Abbildung 2 2 k nnen Sie den License Manager mitinstallieren falls Sie sp ter das Borrowing verwenden m chten Damit k nnen Sie bis zu 30 Tage MATLAB ohne eine Verbindung zum Lizenz Server am Rechenzentrum der RWTH Aachen einsetzen n heres dazu im n chsten Abschnitt e Im Dialogfenster License File w hlen Sie die license dat Datei aus e Falls Sie den License Manager hinzugef gt haben erscheint das Dialogfenster License Manager Configuration Hier w hlen Sie Configure license manager service aus und folgen den weiteren Anweisungen e Nach der Installation kopieren Sie die license dat Datei in das Verzeichnis C Programme MATLAB R2008b licenses Product Selection M ATLAB Select products to install SIMULINK Simulink 7 2 Bioinformatics Toolbox 3 2 Communications Blockset 4 1 Communications Toolbox 4 2 Control System Toolbox 8 2 Curve Fitting Toolbox 1 2 2 Data Acquisition Toolbox 2 13 Database Toolbox 3 5 Filter Design Toolbox 4 4 Fixed Point Toolbox 2 3 Fuzzy Logic Toolbox 2 2 8 Z Gauges Blockset 2 0 5
18. Ausdr cken Mit Hilfe der Funktion factor kann beispielsweise eine Funktion faktorisiert werden Der Befehl expand erm glicht das Ausmultiplizieren und collect das Gruppieren von be liebigen Variablen 66 5 Symbolisches Rechnen gt gt syms a b x gt gt f a 2 2xa xb b 2 gt gt f1 factor f Faktorisieren gt gt expand f1 Wieder Ausmultiplizieren gt gt collect x 2ta rxtb 2 x x Gruppieren nach x Mathematische Operationen mit symbolischen Funktionen f hren meistens zu komplizierten Aus dr cken Der Befehl simplify bringt den Ausdruck in seine vereinfachte Form gt gt f2 6 x 6 x 2 x 3 2xx 1 3 x 2 6 x 1 x 2 x 3 2 gt gt simplify 2 5 3 Algebraische Gleichungen Mit der symbolischen Toolbox k nnen algebraische Ausdr cke Gleichungen und Gleichungssyste me gel st werden L sung einer algebraischen Gleichung Eine Gleichung kann nach einer gew hlten Variable aufgel st werden wobei die restliche als Para meter aufgefasst werden Der daf r notwendige Befehl ist solve dessen Verhalten durch zus tzliche Argumenten beeinflusst werden kann siehe die Hilfe gt gt syms x y gt gt f 5 x 2 2 x 2 y x y 2 x y y 3 4 y 2 Gleichung gt gt solve f y Aufl sung der Gleichung f 0 nach y Man kann sehen dass das Ergebnis nur von x abh ngt Wird keine Variable gew hlt solve dann wird nach der Variable die als erste in der Alphab
19. Bereich x 2r 2r plotten gt gt f sin gt gt ezplot f 2 pi 2 pi Die implizite Funktionen k nnen wie folgt geplottet werden gt gt syms x y gt gt f x 2 y 2 1 Ein Kreis f 0 gt gt ezplot f Darstellung von Kurven in 3D Der Befehl ezplot3 wird benutzt um 3D Kurven zu erstellen Damit kann z B die Trajektorie eines Flugzeuges im 3D Raum dargestellt werden gt gt syms t gt gt ezplot3 t 2 sin 10 t t 2 cos 10 t t gt gt xlabel xlabel ezplot3 t 2 sin 10 t gt gt ylabel t 2 cos 10 t Darstellung von Oberfl chen Man benutzt den ezsurf Befehl zur Darstellung von Oberfl chen Als Beispiel wird hier die Funk tion Z X 2 Y 2 dargestellt gt gt syms x y gt gt ezsurf x 2 y 2 gt gt hold on gt gt zlabel z gt gt title z x 2 y 2 5 6 Transformationen Fourier Transformation Die Fourier Transformation ist eine Integraltransformation die einer gegebenen Funktion f t eine andere Funktion F w ihre Fourier Transformierte zuordnet Sie ist eng mit der Laplace Transformation verbunden In vielen Einsatzgebieten wird sie dazu verwendet um f r zeitliche Signale z B ein Sprachsignal oder einen Spannungsverlauf das Frequenzspektrum zu berechnen Um die Fourier Transformation einer Funktion in Matlab zu berechnen wird der Befehl fourier benutzt Als Beispiel soll die Fourier Transformation der Funktion f t e
20. Bode Diagramm in zwei getrennten Grafiken darstellen 6 8 SISO Tool Eine Strecke ist durch die bertragungsfunktion Gp Ge beschrieben Bearbeiten Sie folgende Punkte a Starten Sie das SISO Tool und laden Sie dabei die Strecke 84 6 Control System Toolbox Lassen Sie sich die Wurzelortskurve und das Bode Diagramm darstellen Schalten Sie das Hintergrundraster im Bode Diagramm ein Was sind die Amplituden und Phasenreserven Hier soll der P Regler eine Verst rkung von 1 besitzen Stellen Sie die Sprungantworten des offenen und des geschlossenen Regelkreises in zwei Gra fiken dar Ist die Strecke stabil Ist der geschlossene Regelkreis mit Kp 1 stabil Bewegen Sie mit dem Hand Tool die Pole des geschlossenen Regelkreises in der Wurzelorts kurve so dass das System stabil ist nicht schwingt und beide Pole am gleichen Ort liegen Was ist der daf r notwendige Wert von Kp Betrachten Sie die Sprungantwort Lassen Sie sich die Anforderung an das System darstellen sodass der D mpfungsgrad D 0 707 ist Platzieren Sie die Pole damit die Anforderung genau erf llt wird Was ist der Wert von Kp Betrachten Sie die Sprungantwort Das System mit dem P Regler ist nicht station r genau sehen Sie die Sprungantwort y t o0 1 F gen Sie eine Polstelle so in den Kreis ein dass das System station r genau werden kann Kann das System mit diesem zus tzlichen Pol und NUR einem Parameter K stabilisie
21. Einf hrung MATLAB 7 Aktuelles Verzeichnis In diesem Verzeichnis wird als erstes nach ben tigten Dateien gesucht und hier werden zu speichernde Dateien abgelegt Ist eine Suche im aktuellen Verzeichnis nicht erfolgreich wird sie dem Suchpfad folgend fortgesetzt Der Suchpfad kann mit dem Men punkt File Set Path festgelegt werden In diesem Zusammenhang gibt es noch ein paar n tzliche Befehle im Befehlsfenster gt gt cd Zeigt den aktuellen Pfad gt gt cd Wechsel in das bergeordnete Verzeichnis gt gt cd work Wechsel in das untergeordnete Verzeichnis work gt gt dir Listet alle Dateien im aktuellen Verzeichnis auf gt gt what Listet alle Matlab Dateien im Verzeichnis auf Weitere Fenster In der Abbildung 3 1 sind au erdem drei weitere wichtige Fenster dargestellt Diese sollen hier kurz beschrieben werden Standardm ig werden alle verwendeten Variablen automatisch im sogenannten base Work space gespeichert Im gleichnamigen Fenster werden Gr e und Typ der verwendeten Variablen angezeigt Durch Doppelklick auf die Variablen lassen sich deren Inhalt und Eigenschaften anzeigen und ver ndern Das Fenster Current Directory zeigt den Inhalt des aktuellen Verzeichnisses in der blichen Baumstruktur an Es sind auch Dateioperationen wie Offnen L schen Umbenennen und Kopieren in gewohnter Weise m glich Im Fenster Command History wird eine Liste der zuletzt eingegebenen Befehle angezeigt Durch Dopp
22. Erzeugen sie eine gro e berschrift Addierer und beschriften Sie die Textfelder mit 1 Summand 2 Summand und Summe Verwenden Sie dazu Static Text ndern Sie die Beschriftung des Push Buttons in Addiere 7 2 Callbacks Callbacks sind MATLAB Funktionen die aufgerufen werden wenn der Benutzer mit dem GUI interagiert z B mit der Maus auf einen Push Button klickt Standard Callbacks Callbacks k nnen f r jedes Bedienelement erzeugt werden auch f r Elemente mit denen der Be nutzer nicht direkt interagieren kann wie z B Static Text Folgende Callbacks k nnen f r jedes Bedienelement erzeugt werden 7 2 Callbacks 95 e CreateFcen wird ausgef hrt wenn das Bedienelement erzeugt wird e DeleteFcen wird ausgef hrt wenn das Bedienelement gel scht wird e ButtonDownFen wird ausgef hrt wenn die Maustaste ber dem Bedienelement gedr ckt wird e KeyPressFen wird ausgef hrt wenn eine Taste auf der Tastatur gedr ckt wird Das entspre chende Bedienelement dazu markiert sein Bei Bedienelementen mit denen der Benutzer interagieren kann gibt es ein Standard Callback das einfach als Callback bezeichnet wird Es wird ausgef hrt wenn der Benutzer mit dem Be dienelement interagiert z B dr cken eines Push Buttons oder Texteingabe eines Edit Text Das GUI Fenster kann auch Callbacks ausl sen z B wenn der Benutzer die Gr e des Fensters ndert oder das Fenster schlie en will Push Bu
23. Gehalt 2400 gt gt sum m1 m2 ans 4500 Value und Handle Klassen In MATLAB werden zwei Klassentypen unterschieden Value und Handle Klassen Value Klassen sind normale Klassen Objekte solcher Klassen sind mit den darin gespeicherten Daten verkn pft Wird einem Objekt B der Wert des Objekts A zugewiesen werden die Daten aus A kopiert und B wird mit dieser Kopie verkn pft Beispiel gt gt a 2 gt gt b a gt gt b 5 gt gt a ans 2 Hier beh lt a den Wert 2 da lediglich die in b gespeicherte Kopie von a ver ndert wurde Sowohl die Mitarbeiter Klasse als auch double der Typ ganz normaler Variablen sind Value Klassen Im Gegensatz dazu sind Objekte von Handle Klassen nur Referenzen auf Daten Wird hier einem Objekt B der Wert des Objekts A zugewiesen ist B eine zweite Referenz auf den gleichen Daten 8 2 Tutorial die Klasse Mitarbeiter 109 satz auf den A referenziert Somit ist eine Ver nderung von A auch in B zu sehen Handle Klassen erzeugt man indem man sie als Subklasse der Klasse handle definiert classdef BeispielKlasse lt handle Handle Klassen werden z B f r Event Listener oder physische Objekte die nicht kopiert werden k nnen wie etwa Drucker verwendet Aufgaben und bungen 8 1 Ballsport Erstellen Sie eine Klasse Spieler mit den Eigenschaft Ballbesitz und den Methoden anstossen und passen Die Eigenschaft Ballbesitz soll f r neue Objekte den Wert 0 h
24. History Junction Tool g Default Transition Tool Ne Connective Junction Tool in Truth Table Tool Function Tool Box Tool Decomposition gt Pi Br jebug Zoom Selection E Ei 5 Workspace Properties u gt Ready Abbildung 9 1 Graphischer Stateflow Editor Zust nde Nach Auswahl des State Tools in der Werkzeugleiste kann durch Klick ein Zustand auf der Ar beitsfl che platziert werden Abb 9 2 Zust nde k nnen verschoben werden indem in den leeren Raum im Inneren des Zustandes geklickt und gezogen wird Innerhalb des Zustandes steht sein Label als Flie text welches zwingend vergeben werden muss Ist noch kein Label eingegeben erscheint stattdessen ein Fragezeichen Name1 entry aktion during aktion2 exit aktion3 on eventi aktion4 Abbildung 9 2 Zustand mit komplettem Label Zum Bearbeiten des Labels klickt man bei markiertem Zustand auf das Fragezeichen bzw auf das schon vorhandene Label Das Label vgl Abb 9 2 besteht dabei aus Name1 dem Namen des Zustandes welcher eindeutig innerhalb einer Hierarchieebene siehe Abschnitt 9 2 als g ltiger C Variablenname vergeben werden muss Die weiteren Elemente des Labels sind optional und be zeichnen Aktionen welche durch diesen Zustand angesto en werden Die Syntax f r die Festlegung der Aktionen ist die Action Language eine Mischung aus C und der aus MATLAB bekannten Syntax siehe Abschnitt 9 3 Folgende Schl sselw rter leg
25. Namen wie die zugeh rige Klasse und eine frei benennbare Objekt Variable als R ckgabewert Optional k nnen dem Konstruktor Parameter bergeben werden classdef Mitarbeiter 2 MITARBEITER Klasse f r die Verwaltung der Mitarbeiter 3 Hier k nnte eine ausf hrlichere Erkl rung stehen 4 5 properties 6 Name 7 Gehaltsstufe 1 8 end 9 10 methods 11 function obj Mitarbeiter name gs Konstruktor 102 8 Objektorientierte Programmierung 12 if nargin 0 13 obj Name unbekannt 14 disp Bitte ndern Sie den Namen des Mitarbeiters 15 else 16 obj Name name 17 if nargin gt 1 18 obj Gehaltsstufe gs 19 end 20 end 21 end 22 23 end 24 25 end Der Konstruktor der Klasse Mitarbeiter hat zwei Parameter Bei seinem Aufruf berpr ft er zun chst ob wenigstens ein Name erster Parameter bergeben wurde Ist dies nicht der Fall wird der Name auf unbekannt gesetzt und der Benutzer gebeten den Namen manuell zu ndern Andernfalls wird der eingegebene Name der Eigenschaft Name zugewiesen und es wird berpr ft ob auch eine Gehaltsstufe zweiter Parameter bergeben wurde Wenn ja wird sie der entspre chenden Eigenschaft zugewiesen andernfalls wird der im properties Block eingestellte Standard Wert von 1 verwendet Nat rlich k nnte auch f r den Mitarbeiter Namen ein Standard Wert im properties Block eingestellt werden statt im Konstruktor Weitere Methoden Nun werde
26. Transition auf die Fl che eines Subchartes wird in der Mitte ein Wurmloch angezeigt Bewegt man sich mit der Maus bei gedr ckter Maustaste auf dieses Wurmloch wird der Subchart ge ffnet und man kann die Transition dort anbringen Auch in umgekehrter Richtung ist der Vorgang m glich Hierzu zieht man eine Transition vom Inneren eines Subcharts auf dessen u eres so dass dort ein Wurmloch sichtbar wird Ein Beispiel solcher Transitionen ist in Abb 9 13 dargestellt Transitionspriorit ten Je nach Beschriftung der Transitionen durch die Labels kann es zu F llen kommen bei denen zwei unterschiedliche Transitionen prinzipiell gleichzeitig g ltig werden Solche Mehrdeutigkeiten sollte man zwar bei der Charterstellung unbedingt vermeiden jedoch gibt es f r eine Aufl sung dieses Konflikts feste Regeln So wird diejenige Transition ausgef hrt welche e switch_21 switch_12 Abbildung 9 13 Zustandsdiagramm mit Transitionen welche in ein Subchart hineinf hren 9 2 Weitere Strukturen und Funktionen 121 e zu einem Zielzustand h herer Hierarchie f hrt e ein Label mit Ereignis und Bedingungsabfrage besitzt e ein Label mit Ereignisabfrage besitzt e ein Label mit Bedingungsabfrage besitzt Ist mit diesen Kriterien noch keine eindeutige Entscheidung m glich wird die Reihenfolge graphisch bestimmt Es wird diejenige Transition zuerst ausgef hrt deren Abgangspunkt der linken oberen Ecke eines Zustandes
27. ausgef hrt entry Darauf folgende Aktionen werden als Entry Acti en on eines Zustandes ausgef hrt entry state_name Erzeugt ein lokales Event wenn der angegebene en state_nane Zustand aktiviert wird exit ex Darauf folgende Aktionen werden als Erit Action eines Zustandes ausgef hrt exit state_name ex state_nanme Erzeugt ein lokales Event wenn der angegebene Zustand verlassen wird in state_name Bedingung welche als true ausgewertet wird wenn der angegebene Zustand aktiv ist on event_name Darauf folgende Aktionen werden ausgef hrt wenn das angegebene Ereignis auftritt send event_name state_name Sendet das angegebene Ereignis an den Zustand state_name matlab funktion argi arg2 Aufruf der angegebenen Matlab Funktion mit ml funktion argi arg2 den Argumenten argl arg2 matlab var Zugriff auf die Variable var des Matlab ml var Workspaces Tabelle 9 1 Schl sselw rter der Action Language 9 3 Action Language 125 schrittweise in den dar berliegenden Hierarchieebenen weitergesucht Soll auf ein Objekt eines anderen Mutter Objekts zugegriffen werden so muss der volle Pfad dorthin angegeben werden Beispiel Superstate2 Zustand5 Anzahl Operator Beschreibung a b Addition a b Subtraktion a b Multiplikation a b Division a 4h b Restwert Division Modulus Tabelle 9 2 Numerische Operatoren Operator Beschreibung a Glei
28. berechnet und im Intervall 5 5 geplottet werden gt gt syms t gt gt f exp t 2 subplot 2 1 1 ezplot f O 3 gt gt Fourierf fourier f gt gt subplot 2 1 2 ezplot Fourierf 5 5 70 5 Symbolisches Rechnen Der Befehl fourier f mit Standardparameter t f hrt zu einer Transformation F w mit Stan dardparameter w Die R cktransformation kann mit dem Befehl ifourier gewonnen werden gt gt iFourierf ifourier Fourierf Laplace Transformation Die Laplace Transformation kann als Verallgemeinerung der Fourier Transormation aufgefasst wer den Die Laplace Transformation bildet die reelle Originalfunktion f t in einer komplexen ver nder lichen Funktion F s ab In Matlab wird der Befehl laplace benutzt der analog zu fourier verwendet werden kann gt gt syms t gt gt f 1 exp t gt gt Fs laplace f Die R cktransformation kann mit dem Befehl ilaplace gewonnen werden Aufgaben und bungen 5 1 L sung der quadratischen Gleichung Berechnen Sie die Wurzel der Gleichung a xz bx c 0 und weisen Sie das Ergebnis der Variable loseung zu Verwenden Sie subs um die L sung f r a b c 1 2 3 zu berechnen 5 2 Symbolische Matrizen Berechnen Sie die Determinante die Eigenwerte und die Inverse folgender Matrix a 2 Setzten Sieb 2a ein und finden Sie a so dass die Matrix singul r ist 5 3 Gleichungssystem Berechnen Sie die L sung folgendes Gleichungssystems
29. bis pn sys x0 str ts sfunctionname t x u flag pl pn Mit dem Parameter flag wird bestimmt was die S Funktion beim aktuellen Aufruf aus der Zeit t dem aktuellen Zustand x und dem aktuellen Eingangssignal u berechnet Die Steuerung des 54 4 Einf hrung in Simulink Aufrufs und damit des Parameters flag liegt vollst ndig intern bei SIMULINK e flag 0 Tnitialisierung Erfolgt einmalig zu Simulationsbeginn Die Variable sys muss ein Vektor mit 7 ganzzahligen Werten sein wobei die Werte z B die Anzahl an Ein und Ausg ngen und Zust nden festlegen e flag 1 Berechnung der Ableitung kontinuierlicher Zustandsgr en Erfolgt bei jedem Simulationsschritt Hier wird die kontinuierliche Zustands Differentialglei chung sys f x u programmiert sys ist jetzt ein Vektor mit so vielen Eintr gen wie das System kontinuierliche Zust nde besitzt Dies wurde bei der Initialisierung festgelegt e flag 2 Aktualisierung diskreter Zust nde Erfolgt bei jedem Simulationsschritt Hier wird die diskrete Zustands Differenzengleichung sys f xg Uk k 1 programmiert sys ist jetzt ein Vektor mit so vielen Eintr gen wie das System diskrete Zust nde besitzt Dies wurde bei der Initialisierung festgelegt e flag 3 Berechnung der Ausgangsgr en Erfolgt bei jedem Simulationsschritt Hier wird die Ausgangsgleichung sys g x u y programmiert sys ist jetzt ein Vektor mit so vielen Eintr
30. der Aufgabe 3 28 um einen Boden z 0 Modellieren Sie den Kontakt als idealen Sto d h die vertikale Geschwindigkeit der Masse wird invertiert v Vz i 1 3 30 Schiefer Wurf mit Reibung Erg nzen Sie das Modell um Luftreibung 2 wobei cz 0 01 N Ihre Richtung weist entgegen dem Geschwindigkeitsvektor ii e Der Betrag der Luftreibungskraft ergibt sich zu 2 IFr crol c e Die Kraft Fr sorgt f r eine zus tzliche Beschleunigung der Masse ORORS 3 31 Plotten symbolischer Funktionen Plotten Sie mit dem Befehl fplot die Funktion z sin x x f r den Bereich 6r lt x lt 6r In hnlicher Form plotten Sie mit Hilfe des Befehls ezplot die Funktion 4x 32y y 4 3 9 Funktionen Funktionen besitzen einen eigenen Workspace mit lokalen Variablen und haben Ein und Ausgang sargumente Neben selbstgeschriebenen k nnen auch bereits mit MATLAB SIMULINK mitgelieferte Funktionen die in MATLAB und nicht z B C geschrieben sind editiert werden z B edit log10 Folgende Syntax muss bei einer Funktion beachtet werden function Ausgangsargumente funktionsname Eingangsargumente Alles was hier angegeben wird erscheint falls man die Hilfe zu 7 dieser Funktion mit help funktionsname aufruft Liste der funktionseigenen Befehle Der Unterschied zwischen einer Funktion und einem Skript File besteht darin dass die im Funktions File definierten Variablen lokal sind Nach
31. diese Parameter direkt aus dem Workspace gelesen werden oder auch ber eine Maske vom Nutzer eingegeben werden Nicht alle in Matlab m glichen Funktionen und Variablentypen sind in Embedded MATLAB Func tions erlaubt In der Matlab Hilfe kann eine Liste mit den unzul ssigen Konstrukten unsupported features gefunden werden Beispielsweise d rfen in eingebetteten Funktionen keine globalen Va riablen und keine Cell Arrays verwendet werden Au erdem ist die dynamische Speicherzuweisung wie Vektoren ohne feste Dimension nicht erlaubt 4 6 User defined Functions Bibliothek 53 MATLAB Editor Block User 0 Debug ECSS window Help Ei Embedded MATLAB Editor Block User_defin S EE File g Tools Window Help ax a Ausg nge Parameter SE AO ro gt 20 B function yl1 y2 feniyl1 u2 par El L M Update Diagram Strg D Edit Data Parts ion y Open Simulation Target Onen RTW Tarnet 3 pi partu Eing nge 4 y2 partu2 u1 Embedded MATLAB Function E Ports and Data Manager User_defined_Fuction Embedded No G MO LMMX Name Scope Port Resolve Synal Data par in Ip i s General Vake Attributes Description vi Owput Je mer 2 Name iper ia 3 Scope input Pot lje owt Mm Sas Compkecky Output Tuna Inherk Same as Sirmalink amp 5 t Heb Abbildung 4 10 Embedded MATLAB Editor Parametereinstellung Aufgaben und bungen 4 15 Anwendung von Embedded M
32. durch Doppelklicken auf einen Eintrag in der Gliederung Help Topics ein Bereich durchsucht werden Das Hilfefenster erscheint ebenfalls durch Eingabe des Befehls helpwin im Befehlsfenster e Help Desk Das Help Desk enth lt in Form von html oder pdf Dateien ausf hrlichere Informationen zu den einzelnen Funktionen Das Help Desk erscheint ebenfalls durch Eingabe des Befehls helpdesk im Befehlsfenster Dieser Befehl ist quivalent zu der Eingabe von doc ohne einen Funktionsnamen e Examples und Demos Es erscheint das Demo Fenster mit einer Liste von mitgelieferten Beispielen und Demonstra tionen Das Demo Fenster erscheint ebenfalls durch Eingabe von demo im Befehlsfenster 3 4 Suche in der Hilfe Ermitteln Sie mit Hilfe von lookfor den Befehl der den Tangens Hyperbolicus hyperbolic tangent berechnet Berechnen Sie dann den Tangens Hyperbolicus von 0 5 3 5 Dreieck im CW Berechnen Sie die Fl che und den Umfang eines gleichschenkligen Dreiecks mit H he h 10 cm und Breite Basis b 5 cm im Befehlsfenster 3 6 Nutzen von help Ermitteln Sie die Bedeutung der Befehle which pause und disp 3 3 Skripte und der Matlab Editor Neben dem Befehlsfenster am MATLAB Prompt k nnen Befehlsfolgen auch in Skripte eingetippt werden sodass diese auf einmal der Reihe nach ausgef hrt werden k nnen Die Skript Textdateien haben die Endung m und werden deswegen auch M Files genannt Bei seinem Aufruf stehen dem Skript File alle im bas
33. es noch einige reservierte vorbesetzte Systemvariablen siehe Tabelle 3 2 die nicht ver ndert werden sollten Falls aus Versehen eine Systemvariable vname mit einem anderen Wert berschrieben worden ist so erh lt man den urspr nglichen Wert mit dem Befehl clear vname wieder der die entsprechende Variable aus dem Workspace l scht gt gt pi 2 3 gt gt clear pi gt gt pi gt gt komplex 3 2 i M chte man auf einzelne Werte aus einer Matrix zugreifen so werden die entsprechenden Zeilen und Spaltennummern in runde Klammern gesetzt Die Zeilen und Spaltennummern k nnen auch wieder Vektoren sein um gleichzeitig auf mehrere Zeilen oder Spalten zugreifen zu k nnen gt gt A 1 3 gt gt A 1 repr sentiert ganze Zeile gt gt A 2 repr sentiert ganze Spalte gt gt AC 1 3 1 Elementen der 1 Spalte und 1 und 3 Zeilen Die sogenannten Logischen Matrizen LM helfen Werte die bestimmten Bedingungen gen gen aus einer Matrix A zu extrahieren Dazu muss die logische Matrix mit der gleichen Dimension wie A und der entsprechenden Bedingung z B Werte zwischen 2 und 5 aufgebaut werden Anschlie end k nnen die Werte extrahiert werden Das folgende Beispiel verdeutlicht das Vorgehen gt gt X A gt 2 amp A lt 5 9 LM mit 1 wo die Bedingung erf llt wird gt gt A X Extraktion der entsprechenden Elemente Vektor gt gt A X Extraktion der entsprechenden Elemente Matrix
34. lange der Rechner f r die Berechnungen ben tigt Die Startzeit kann dabei sowohl kleiner gleich als auch gr er Null sein Wird an ir gendeiner Stelle im Modell ein Startwert Initial Condition angegeben so gilt diese f r den festgelegten Startzeitpunkt der Simulation und nicht automatisch f r Null Die Simulation stop time kann entweder in dem entsprechenden Feld bei Simulation time eingeben werden oder direkt in der Toolbar rechts neben dem Stop Zeichen Simulieren bedeutet dass das in Bl cken erstellte Differentialgleichungssystem mit Hilfe numeri scher Integrationsverfahren schrittweise gel st wird Bei den Solver options wird der gew nschte Integrationsalgorithmus ausgew hlt festgelegt ob mit oder ohne Schrittweitensteuerung gearbei tet wird Fixed step oder Variable step und Werte f r die maximale Schrittweite Max step size die Anfangsschrittweite Initial step size sowie die Fehlertoleranzen der Schrittweiten steuerung festgelegt Es wird empfohlen als Integrationsalgorithmus f r kontinuierliche Systeme ode45 und f r diskrete Systeme discrete einzustellen Die anderen M glichkeiten erfordern eine bessere Kenntnis der numerischen Mathematik Data Import Export Anstatt mit dem Source Block Load from workspace kann auf Signale aus dem Workspace auch mit dem Block In1 Input Port aus der Signals amp Systems Bibliothek zugegriffen werden sobald ihre Variablennamen im Feld Load from workspace eingegeben worden
35. m ssen in der Variablenliste festgelegt werden Ihre Namen werden im Feld Variable eingetragen dazu passende Erl uterungen bei Prompt Das Feld Type legt den Typ des Eingabefeldes fest Editierfeld Checkbox Aus wahlliste Ist Evaluate markiert wird der einzugebende Parameter von Matlab ausgewertet und falls m glich als Zahl bergeben sonst als String Ist Tunable markiert k nnen die Parameter zur Simulationslaufzeit ver ndert werden Werden Variablen in dieser Liste als Parameter festgelegt erscheint bei Doppelklick auf das Subystem f r jeden Parameter das festgelegte Eingabefeld e Initialization erlaubt die Definition von lokalen Variablen und n tigen Initialisierungsberechnungen Bei den Initialization Commands sind alle MATLAB Befehle zul ssig e Documentation erlaubt die Funktionalit ten des maskierten Blocks zu beschreiben und einen Hilfe Text f r diesen Block zu erstellen Bei Mask Type kann der Maske ein Name gegeben werden Der Text der unter Mask Des cription eingegeben wird erscheint immer in der neuen Blockmaske Unter Mask Help kann ein Hilfetext definiert werden Die Hilfe wird automatisch im HTML Format erstellt so dass auch HTML Befehle eingegeben werden k nnen Hinweis Eine Reihe von den SIMULINK Standardbl cken sind maskierte Subsysteme Aufgaben und bungen 4 5 Subsystem Auto Fassen Sie das Modell aus Aufgabe 4 3 in einem Subsystem zusammen Die Eingangsgr e f r das Subsystem ist die Kraf
36. n chsten geplotteten Kurve aus gt gt subplot 2 1 2 plot y1 t subplot benutzt die gleiche Auf teilung w hlt aber jetzt das zweite Fenster aus Zur einfachen Beschriftung existieren folgende Funktionen welche auf den gerade aktuellen Gra phen angewendet werden 28 3 Einf hrung MATLAB gt gt title Sch ne Kurve berschreibt den Graph mit einem Titel gt gt xlabel Zeit s beschriftet die x Achse gt gt ylabel z m h beschriftet die y Achse Enth lt ein Graph mehrere Kurven kann mit folgendem Befehl eine Legende erzeugt werden gt gt legend Kurvel Kurve 2 Andere Graphen Die Funktionen stem bzw stem3 und stairs sind f r die Darstellung diskreter Signale geeignet Dabei stellt stem jeden Punkt durch einen senkrechten Balken mit einem Kreis an der Spitze dar Stairs ist die Treppenfunktion und verbindet die einzelnen Punkte wie eine Treppe indem der Wert des vorigen Punkts bis zum n chsten beibehalten wird fplot berechnet in einem angegebenen Intervall die Werte und den Kurvenverlauf einer Funktion ohne vorher die genaue Anzahl an Punkten anzugeben gt gt stem y1 gt gt stairs t y1 gt gt fplot 3 sin r exp r pi 4 O 2 pil Darstellung von Oberfl chen Zur Darstellung von Oberfl chen werden die Befehle mesh und surface benutzt e mesh plottet ein buntes Netz bei dem die Knoten die Punkte der angegebenen Funktion sind e s
37. rend also probieren Sie sie einfach aus Eine M glichkeit zur Analyse dynamischer Systeme die nur einen Eingang sowie einen Ausgang haben Single Input Single Output bietet die ebenfalls in MATLAB integrierte graphische Be nutzeroberfl che sisotool siehe Abb 6 4 Hier k nnen Kompensatoren sowie die Regelstrecke und der Regler eingestellt werden Zus tzlich kann sowohl der offene als auch der geschlossene Regelkreis graphisch z B in einem Bode Diagramm dargestellt werden Man kann in sisotool jedes lineare Modell dass man mit einer der oben genannten Methoden erstellt hat einbinden Mit dem Befehl lqr Linear Quadratisch Optimale Zustandsr ckf hrung LQR kann man die kostenminimierende Verst rkungsmatrix K durch MATLAB bestimmen lassen Die Kos 6 4 Der LTI Viewer das SISO Tool und Reglerentwurf 79 LTI Viewer PEEER File Edit Window Help DE R amp B Bode Diagram aM ERHFR System Go _ Frequency radisec 0 266 _ Magnitude dB 11 2 T i Magnitude dB 90 135 180 225 270 z o 1 10 f 10 10 Frequency rad sec Phase deg Plot type changed ger wayun rlocus Go Zindobj Linestyle Zindobj Linestyle gca Zindobj Linestyle ge Control and Estimation Tools Manager indob3 Lineseyle gea f Werkspece Architecture Compensator Edtor Graphical Tuning Analysis Plots Automated Tuning S A 5150 De
38. sind Die erste Spalte der eingegebenen Matrix wird als Zeitvektor genommen Save to workspace funktioniert analog mit dem Out1 Output Port und stellt daher eine weitere M glichkeit dar Simulationsdaten im MATLAB Workspace anzulegen Die Save options sind ebenfalls analog zu den Einstellungen in den Scopes und den To Workspace Bl cken Mit den Output options nur verf gbar bei variabler Schrittweite siehe Solver k nnen zus tz liche Punkte in einem Integrationsintervall der Ausgabe hinzugef gt werden Der Refine factor gibt an in wie viele kleinere Intervalle ein Integrationsintervall mit Hilfe der Interpolation f r die Ausgabe aufgeteilt werden soll Produce additional output zwingt den Integrationsalgorithmus Schritte zu den angegebenen Zeiten zus tzlich zu berechnen Im Gegensatz dazu wird mit Pro duce specified output only nur zu den angegebenen Zeitpunkten mit Start und Endzeit ein Integrationsschritt durchgef hrt Diagnostics Auf dieser Karte kann man ausw hlen bei welchen Ereignissen welche Art von Fehlermeldungen ausgegeben werden sollen keine none Warnung warning oder Fehler error Im Allgemeinen 48 4 Einf hrung in Simulink sollten die Standardeinstellungen bis auf wenige Ausnahmen nicht ver ndert werden m ssen Eine sehr wichtige Meldung ist diejenige eines Algebraic loop Eine sogenannte algebraische Schleife tritt dann auf wenn ausschlie lich Bl cke mit Durchgriff einen geschlossenen Wirkungs
39. sung Stellen Sie die L sungen f r z t und z t in einem weiteren Scope dar und vergleichen Sie die beiden L sungen Tipp Sie ben tigen den Clock Block aus der Sources Bibliothek 4 5 Simulationsparameter 49 4 9 Schiefer Wurf mit Reibung ffnen Sie das Modell SchiferWurf mdl aus Aufgabe 4 8 Im folgenden sollen Reibungs und Kontakteffekte in die Simulation integriert werden so dass die L sung der DGL nunmehr numerisch erfolgen kann e Erg nzen Sie die Simulation um einen Boden z 0 Modellieren Sie ihn in der Weise dass er sich in z Richtung wie ein Feder D mpfer Glied verh lt Kommt also die Punktmasse mit dem Boden in Kontakt bertr gt dieser folgende Kraft auf die Punktmasse in z Richtung F g kpz ka f rz lt oO mit kp 1 ka 108 Simulieren Sie nun f r eine Zeitdauer von tsim 10s e Erg nzen Sie nun den Bodenkontakt um eine Reibkomponente in x Richtung Im Kontakt fall wird gem dem Reibungsgesetz in x Richtung folgender Betrag der Reibkraft auf den Massepunkt bertragen Fr ulFn f r z lt 0 wobei u 0 1 Fy ist die Normalkraft mit welcher der Massepunkt auf den Boden dr ckt berlegen Sie sich selbst die Richtung der Kraftwirkung e Erg nzen Sie das Modell um Luftreibung Der Betrag der Luftreibungskraft ergibt sich zu 5 y wobei c EA Ihre Richtung weist entgegen dem Geschwindigkeitsvektor v i l 2 IFr cr l CL Wie weit komm
40. 1 Input v 71 plantfintegrator 1 Output v Workspace S Project plant amp iz Operating Points Defa g amp Linearization Task E Custom Views States Inputs State plantintegrator State 1 0 plant LTI Systeminternal State 1 Highlight Selected Signal Refresh Signal Names Delete Selected 1 0 Linearize Model Plot linear analysis resultina step response plot v Sync with Model Duplicate Operating Point Model linearization task settings a Ein und Ausg nge b Arbeitspunktauswahl Abbildung 6 6 Control Estimation Tools Manager und die entsprechenden Gleichungen k nnen unter Linearization Task Model gefunden werden Will man das dadurch gewonnenes LTI Modell in den Workspace exportieren dann kann man im Kontextmen von Model die Option Export ausw hlen siehe Abb 6 7 links E Control and Estimation Tools Manager File Tools Help sn su da Workspace Linearization Result Diagnostic Messages Linearization Inspector B 7 Project plant 0 35 B a Operating Points Linearization Result Hd Default Operating Po 0 3 5 8 Linearization Task To plot the response of this result click on the node label amp Model To export the result click on the Export To Workspace buttc 0 25 amp Custom Views earisiertes System
41. 2x by 3z 2 ac y 4z 7 z ty 2z 3 wobei a b und c Parameter sind 5 4 1 Vereinfachung von Ausdr cken e Multiplizieren Sie f x 3 y 2 aus und weisen Sie das Ergebnis der Variable f2 zu Faktorisieren Sie f2 e Gruppieren Sie f2 nach z Verifizieren Sie dass f4 sin x cos x gleich 1 ist 5 5 Infinitesimalrechnung Berechnen Sie folgendes 5 6 Transformationen 71 Integrieren Sie f x x von a bis b Leiten Sie das Ergebnis nach x ab Integrieren Sie f x e von a bis oo Tipp inf Eine Masse in der Ebene bewegt sich mit einer Geschwindigkeit 1 0 1 in Polar koordinaten Berechnen Sie die Position und Geschwindigkeit in kartesischen Koordinaten wenn die aktuelle Position in Polarkoordinaten r amp 1 m 4 ist Transformationen Berechnen Sie folgendes Berechnen Sie die Laplace Transformation von f t sin t e Wenden Sie die inverse Transformation auf das Ergebnis an Wie lautet die Fourier Transformation von sin t t Graphische Darstellungen Bearbeiten Sie folgende Punkte Plotten Sie die Funktion f sine mit ezplot Plotten Sie z y 3 Plotten Sie die Kurve x y z sin t cos t t Plotten Sie die Oberfl che z x y 72 6 Control System Toolbox 6 Control System Toolbox MATLAB selbst ist eine Rechenumgebung die die Entwicklung eigener Algorithmen erm glicht Bereits entwickelte Algorithmen werden nach Themengebiete
42. 4 16 Haltefunktion 0 Ordnung h t der Funktion f t und der Haltefunkton 0 Ordnung h t FE FE I KT h t KT k 0 62 4 Einf hrung in Simulink t 0 T 2T KT MT nT Abbildung 4 17 Treppenfunktion f t Aufgaben und bungen 4 25 1 Zeitdiskretes Zustandsraummodell Erstellen Sie ein zeitdiskretes Zustandsraummodell mit den selben Matrizen und Eingangs signalen wie in der vorigen Aufgabe Simulieren sie mit fester Integrationsschrittweite von 0 1 und diskretem Integrationsalgorithmus Simulieren Sie an schlie end mit der Integrationsschrittweite 0 02 und 2 Vergleichen Sie die Ergebnisse Es soll sich folgender Verlauf der Zust nde ergeben 4 26 Populationswachstum Die logistische Gleichung wurde urspr nglich 1837 von Pierre Fran ois Verhulst als demografisches Modell eingef hrt Der Grundgedanke dahinter ist folgender Geht man davon aus dass f r ein gegebenes Jahr n die normalisierte Population n ist Dann kann die Population des n chsten Jahres n n herungsweise als proportional zu der aktuellen Popu lation n und zum verbleibenden bewohnbaren Raum 1 n angenommen werden Ber cksichtigt man einen Parameter der z B von der Fruchtbarkeit von der bewohnbaren Anfangsfl che und von der gemittelten Sterberate abh ngt so kann man das Verhalten des Systems mit folgender Gleichung darstellen n41 En 1 Tn Erstellen Sie ein Modell im Simulink da
43. ATLAB Fen Wiederholen Sie die Aufgabe 4 13 aber ver wenden Sie statt des Blocks Fcn eine eingebettete Matlab Funktion 4 16 Steinfall mit Parametern Wiederholen Sie die Aufgabe 4 14 aber verwenden Sie statt des Blocks Fcn eine eingebettete Matlab Funktion Stellen Sie m und k als Parameter der eingebetteten Funktion ein 4 17 Transformation zu Polarkoordinaten Erstellen Sie eine eingebettete Funktion welche die zwei Komponenten eines Vektors x y in kartesischen Koordinaten als Eingangsargumente bekommt und die entsprechenden Polarkoordinaten p amp vr Y atan erzeugt S Functions alt S Functions sind MATLAB Funktionen oder C oder Fortran was hier nicht weiter behandelt wer den soll mit festgelegter Parameterstruktur mit deren Hilfe beliebige lineare und nichtlineare Differentialgleichungs Systeme in Zustandsraumdarstellung modelliert werden k nnen Der Aufruf von SIMULINK erfolgt ber die Verwendung des Blocks S Function aus der Bibliothek User Defined Functions In der Eingabemaske wird der Funktionsname der zu verwendenden S Function sowie bei Bedarf die zu bergebenden Parameter eingegeben Eine S Function kann maskiert werden sodass Erl uterungen zu den eingegebenen Parametern und der Wirkungsweise des Blockes hinzugef gt werden k nnen Der Funktionskopf einer S Function besitzt folgendes Aussehen sys x0 str ts sfunctionname t x u flag oder bei Eingabe von zus tzlichen Parametern pl
44. Auswertung der Anweisungen im Funktions File sind sie also im Workspace unbekannt Umgekehrt kann das Funktions File auch auf keine Variablenwerte aus dem Workspace zugreifen Der angegebene funktionsname muss dabei mit dem Namen der Datei funktionsname m bereinstimmen Die erste Zeile darf nicht mit einem Semikolon abgeschlossen werden Die zweite und folgenden anschlie enden Zeilen die mit einem beginnen werden bei Aufruf der Hilfe zu dieser Funktion ausgegeben Zur Verdeutlichung folgt ein einfaches Beispiel Schreiben Sie folgende Anweisungen in eine Datei mit dem Namen lingls m 3 9 Funktionen 3l function x detA lingls A b LINGLS l st das lineare Gleichungssystem A x b und gibt 7 den Loesungsvektor x sowie die Determinante der Matrix A zur ck detA det A x A b F hren Sie anschlie end die Befehle aus gt gt help lingls gt gt matA 1 2 3 4 5 6 7 8 0 gt gt vek 2 5 9 gt gt lingls matA vek gt gt antw1 antw2 lingls matA vek M chte man eine Funktion schreiben die mit einer unterschiedlichen Anzahl an Argumenten auf gerufen werden kann sind die MATLAB Funktionen nargin und nargout hilfreich Sie liefern die Anzahl der Ein und Ausgangsargumente Ihre Verwendung ist in der Funktion bode gut zu erken nen edit bode M chte man die in einer Funktion verwendeten Variablen z B t und x auch anderen Funktionen zur Verf gung stellen oder im W
45. Control_Toolbox license checkout Data_Acq_Toolbox license checkout Database_Toolbox license checkout Distrib_Computing_Toolbox license checkout Signal_Blocks license checkout RTW_Embedded_Coder license checkout Excel_Link license checkout Fuzzy_Toolbox license checkout Fixed Point_Blocks license checkout GADS_Toolbox license checkout Instr_Control_Toolbox license checkout Identification_Toolbox license checkout Image_Toolbox license checkout SimDriveline license checkout MAP_Toolbox license checkout MPC_Toolbox license checkout SimMechanics license checkout NCD_Toolbox license checkout Neural_Network_Toolbox license checkout SIMULINK license checkout Optimization_Toolbox license checkout PDE_Toolbox license checkout Fixed_Point_Toolbox license checkout RF_Blockset license checkout Robust_Toolbox license checkout RF_Toolbox license checkout Real Time_Workshop license checkout Stateflow_Coder license checkout Simulink_Control_Design license checkout SimEvents license checkout Stateflow license checkout Signal_Toolbox license checkout Spline_Toolbox license checkout Simscape license checkout Statistics_Toolbox license checkout Embedded_Target_MPC555 license checkout Virtual_Reality_Toolbox license checkout Wavelet_Toolbox license checkout XPC_Target lit 1 Starten Sie MATLAB und gehen Sie z B mit Hilfe des Knopfes Browse for folder zu dem Verzeichnis in dem sich l
46. Die Zahl 1 ist jedoch keine Primzahl 3 37 100 Primzahlen in einem Vektor Erzeugen Sie nun einen Vektor in dem nach Ablauf des Programms die ersten 100 Primzahlen stehen Um zu berpr fen ob eine Zahl eine Primzahl ist k nnen Sie die Funktion isPrime zahl aus der vorangegangenen Aufgabe benutzen Anschlie end speichern sie den Vektor in der Datei primzahlen mat ab 3 38 Fibonacci Programmieren Sie eine Funktion die die n te Fibonacci Zahl fn berechnet Die Fibonacci Zahl ist folgenderma en definiert fi 1 In Jn Jn 2 Somit ergeben sich die ersten Fibonacci Zahlen wie folgt fo fi 1 foa 1 41 2 f 2 1 3 Jfa 3 2 5 3 10 Strukturen in Matlab Strukturen dienen zur Erstellung eigener komplexer Datenstrukturen oder eigener Datentypen So kann zum Beispiel eine Raumkoordinate bestehend aus einer X einer Y und einer Z Position durch eine Datenstruktur Koordinate abgebildet werden Es k nnen au erdem Daten verschiedener Typen in Strukturen zusammengefasst werden so k nnte man eine Struktur mit Name Matrikel nummer und Semester erzeugen um eine Datenbank zu konstruieren Bei den in den einzelnen 3 10 Strukturen in MATLAB 33 Feldern gespeicherten Daten kann es sich um MATLAB Variablen von einem beliebigen Datentyp handeln Strukturen kann man auf zwei verschiedene Arten erzeugen Zum einen gibt es die M glichkeit eine Struktur direkt mit all ihren Variablen zu erzeugen gt gt strukturname stru
47. Diese hat dann die gleichen Eigenschaften wie ihre Superklasse kann jedoch um nur f r Praktikanten relevante Eigenschaften wie z B Letzter Arbeitstag erg nzt werden Ein weiteres f r die objektorientierte Programmierung typisches Konzept ist das der Datenkap selung Darunter versteht man das Verbergen bestimmter Klassenelemente vor dem Zugriff von au erhalb der Klasse Somit kann man zum Beispiel vorgeben dass nur die Methoden eines Ob jekts auf dessen Eigenschaften zugreifen k nnen 8 2 Tutorial die Klasse Mitarbeiter Die Funktionen und die Eigenschaften die ein Objekt haben soll werden in einer Klasse definiert Wie das funktioniert soll anhand eines Beispiels demonstriert werden Daf r wird die Klasse Mitarbeiter erzeugt mit der die Mitarbeiter eines Unternehmens erfasst werden k nnen Jedes Objekt der Klasse soll ber die Eigenschaften Name Gehaltsstufe und Gehalt verf gen Au erdem soll die Klasse Funktionen zur Verf gung stellen mit denen die Datens tze erstellt gelesen und ver ndert werden k nnen Definition einer Klasse in Matlab Zun chst erzeugt man das Grundger st einer Klassendefinition indem man im MATLAB Men File New gt Class M File ausw hlt Somit wird im Editor eine Datei mit folgendem Inhalt ge ffnet classdef Untitled UNTITLED Summary of this class goes here Detailed explanation goes here 100 8 Objektorientierte Programmierung properties end methods end end N
48. Diese soll das Kniffelrunde Objekt sowie einen Vektor mit den Indizes der nochmal zu werfenden W rfel als Eingangsgr en sowie das ver nderte Objekt als Ausgangsgr e erhalten Es soll berpr ft werden ob nicht schon dreimal gew rfelt wurde Ist dies nicht der Fall soll die Eigenschaft AnzahlWurf um 1 erh ht und ausgegeben werden und die gew nschten Positionen im Wurf Vektor sollen durch neue Zufallszahlen ersetzt werden Der Vektor soll wieder sortiert und ausgegeben werden 110 9 Einf hrung in Stateflow 9 Einf hrung in Stateflow Das Paket STATEFLOW dient zur Modellierung und Simulation ereignisdiskreter Systeme inner halb von SIMULINK Mit Hilfe sogenannter Zustandsdiagramme engl state charts werden die Modelle graphisch programmiert Eine Hierarchiebildung erm glicht eine Aufteilung welche oft in enger Anlehnung zum realen Prozess gebildet werden kann Durch eine bersetzung in eine s function wird der Rechenzeitbedarf w hrend der Ausf hrung in Grenzen gehalten Es empfiehlt sich gerade bei umfangreicheren diskreten Teil Systemen aber auch schon bei relativ kleinen Systemen mit wenigen Zust nden STATEFLOW einzusetzen statt diese Funktionen umst ndlich mit SIMULINK Bl cken zu realisieren Zu beachten ist allerdings dass STATEFLOW ein sehr m chtiges Werkzeug ist Ein und dasselbe System l sst sich in STATEFLOW auf sehr unterschiedliche Arten realisieren wobei selbst darauf zu achten ist dass die g
49. Dust Mrd me Del mm 7 WO D P coner Jaa Euinchanandt biathad lt Aasiashdanisd EEIT w Bj uf C Ivan e pa if r Workspace mat Current hs H directory F w Command Window Abbildung 3 1 MATLAB Oberfl che amp game pi C Dokumente und EinstellungenichiEigene DateieniMATLAB V M ka Abbildung 3 2 Symbolleiste des Befehlsfensters ffnen eines existierenden MATLAB Dokuments im MATLAB Editor Es wird eine Auswahl mit der Endung m f r MATLAB Skripte mdl f r SIMULINK Modelle oder fig f r MATLAB Bilder angezeigt Grunds tzlich kann aber auch jede andere ASCH Datei im Editor bearbeitet werden Starten von SIMULINK Zur graphischen Modellierung von Systemen in Form gerichteter Graphen quivalent zur Eingabe von simulink im Befehlsfenster Starten von GUIDE Ein GUI Editor zur Programmierung von Graphical User Interfaces quivalent zur Eingabe von guide im Befehlsfenster Starten von Profiler Zur Optimierung von M Files ffnen des Hilfefensters Dieser Vorgang ist analog zur Eingabe des Befehls doc im Befehlsfenster Das Hilfefenster enth lt einen vollst ndigen Hilfetext zu einer beliebigen Funktion fname im Vergleich zu einer Kurzhilfe bei Eingabe von help fname Der Text wird aber nicht im Befehls sondern in einem gesonderten Fenster welches auch ein einfacheres Navigieren zwischen den Befehlen erlaubt angezeigt 14 3
50. E Erzeugen Sie einen Addierer wie in Aufgabe 7 1 ohne GUIDE zu verwenden 99 8 Objektorientierte Programmierung Objektorientierung ist ein in der Programmierung weit verbreitetes Konzept bei dem Daten und zugeh rige Funktionen in Objekten zusammengefasst werden 8 1 Grundbegriffe der objektorientierten Programmierung In der objektorientierten Programmierung werden die verwendeten Daten klassifiziert Das hei t jedem Datentyp werden bestimmte Eigenschaften und zu ihm passende Funktionen zugeordnet Wenn man zum Beispiel in einem Programm die Mitarbeiter eines Unternehmens verwalten m chte kann man die Klasse Mitarbeiter definieren Jeder Mitarbeiter ist dann ein Objekt dieser Klasse und hat die in dieser definierten Eigenschaften wie etwa seinen Namen die Abteilung in der er arbeitet seinen direkten Vorgesetzten und seine Gehaltsstufe Au erdem kann man in der Klasse Funktionen definieren die nur im Zusammenhang mit Objekten der Klasse Mitarbeiter ben tigt werden wie zum Beispiel befoerdere versetzeNach o Diese Funktionen einer Klasse hei en Methoden Ein wichtiges Konzept der objektorientierten Programmierung ist die Vererbung Sie erm glicht die einfache Erzeugung von Subklassen die im Grunde eine Kopie der Originalklasse der Superklasse darstellen die um eigene Eigenschaften und Funktionen erweitert werden k nnen So ist im obigen Beispiel etwa eine von der Klasse Mitarbeiter abgeleitete Klasse Praktikant denkbar
51. Fen Prinkienultem_Callback s the local pushbuttoni_Callback put arguments pushbutton _ButtonDownFen pushbuttond_Calback raises the pushbuttond_CresteFcn ue pairs a pushbutton5_Calback pushbuttons_Calback 1 function varargout sinus varargi 10 3 fune n operty applicati varargin llous only one run singleton toggkebuttoni Callback 21 See also GUIDE GUIDATA GUIHANDLES 23 Edit the above text to modify the response to help sinus 25 Last Modified by GUIDE v2 5 30 Jan 2009 17 50 42 27 t Begin initialization code DO NOT EDIT Abbildung 7 5 Auflistung aller Funktionen Auf diese Weise lassen sich alle Eigenschaften aus dem Property Inspector beeinflussen Eine elegante Methode Daten zwischen Callback Funktionen auszutauschen besteht darin die Va riable handles zu verwenden Bei handles handelt es sich n mlich um ein Struct Structs k nnen in MATLAB dynamisch mit eigenen Variablen erweitert werden In der folgenden Zeile wird handles um die Variable a erweitert gt gt handles a 42 Die ver nderte Struktur muss nun noch gespeichert werden gt gt guidata h bject handles Da handles an alle Callback Funktionen bergeben wird ist nun auch die Variable a in allen Callback Funktionen bekannt Aufgaben und bungen 7 2 Addition von Zahlen Verwenden Sie das GUI aus Aufgabe 7 1 und implementieren Sie die Funktionalit t Hinweis Um diese Aufgabe zu l sen m s
52. Funktion befoerdere die Objektvariable obj sowohl als Eingabe als auch als R ckgabewert enthalten muss da erst die alte Gehaltsstufe ausgelesen und dann die neue wieder hineingeschrieben wird Die Verwendung der Methoden kann auf zwei Arten erfolgen Entweder wird das Objekt wie in der Funktionsdefinition als Parameter bergeben gt gt zeigeAktuellesMonatsgehalt mitarbeiter1 Syntax wie in blichen m Funktionen Oder der Funktionsname wird ohne Parameter mit einem Punkt an den Objektnamen geh ngt gt gt mitarbeiteri zeigeAktuellesMonatsgehalt Syntax wie in C Da die Methode befoerdere das Objekt ver ndert muss diesem der R ckgabewert der Methode auch zugewiesen werden Also gt gt mitarbeiteri befoerdere mitarbeiteri Oder gt gt mitarbeiteri mitarbeiter1 befoerdere Andernfalls erfolgt eine Meldung ber eine erfolgreiche Bef rderung im Command Window ohne dass die neue Gehaltsstufe im Objekt abgespeichert werden kann Der Destruktor Der Destruktor ist wie der Konstruktor eine spezielle Methode Er wird immer ausgef hrt wenn ein Objekt zerst rt d h gel scht wird So kann zum Beispiel erreicht werden dass eine ge ffnete 104 8 Objektorientierte Programmierung Datei noch gespeichert wird wenn MATLAB geschlossen wird und somit alle Objekte gel scht werden Anders als Konstruktoren sind Destruktoren kein zwingender Bestandteil einer Klasse Konstruktoren k nnen nur in Handle Klassen erstellt
53. RHEINISCH WESTF LISCHE TECHNISCHE HOCHSCHULE AACHEN INSTITUT F R REGELUNGSTECHNIK UNIV PROF DR ING DIRK ABEL MATLAB an der RWTH Tutorium Einf hrung Toolboxen Version 1 7 vom 21 Februar 2011 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 2 Installation und Borrowing 2 1 Installation von Matlab Windows 2 2 2222 2 2 Borrowing von Lizenzen 2 22 Con 3 Einf hrung MATLAB 3 1 Benutzeroberfl che und Kommandozeile 3 2 Die Matlab Hilfe 2 2222 oo Eon nn 3 3 Skripte und der MATLAB Editor 2 222 22220 n n 3 4 Vektoren und Matrizen 2 2 on on nn 3 5 Operatoren und eingebaute Funktionen 3 6 Logische Operatoren und bedingte Anweisungen 3 7 Schleifen e s 2 0 2 4 Kr 280 erh 3 8 Graphische Darstellungen 2 2 22 2 2 nn 3 9 Funktionen saaa aaa 3 10 Strukturen in MATLAB oaaao a 3 11 Probleme der numerischen Darstellung 4 Einf hrung in Simulink 4 1 Bedienoberfl che 2 2 on nn nn 4 2 Simulink Standard Block Bibliothek 4 3 OCOPES 22 0 21a aa Boa ee u ne a ehr 4 4 Modellstrukturierung 2 22 2 on nn nn 4 5 Simulationsparameter 2 2 2m mon 4 6 User defined Functions Bibliothek 2 2 2 2 2 4 7 Andere wichtige Bl cke und Features von Simulink 4 8 Diskrete Subsysteme in kontinuierlichen Systemen 5 Symbolisches Rechnen 5 1 Symbolische Objekte 2 2 2 5 2 Symbolische Fu
54. T m IM v m v v el z v Space available 5478 MB Space required 3589 MB The MathWorks mm Abbildung 2 2 Product Selection 6 2 Installation und Borrowing Somit ist die Installation abgeschlossen Falls beim Starten von MATLAB ein Activation Wel come Fenster angezeigt wird berpr fen Sie bitte den Inhalt der license dat Datei gem der Anleitung in RWTH Readme txt Die knappe Darstellung der hier beschriebene Schritte ersetzt nicht die Installationsanleitung Falls Probleme bei der Installation auftreten sollten lesen Sie bitte zun chst die vollst ndige Anleitung in net install win install_guide pdf Wenn das Problem nicht behoben werden kann wenden Sie sich bitte an den auf der Homepage www matlab rwth aachen de angegebenen Ansprechpartner 2 2 Borrowing von Lizenzen Die Lizensierung von MATLAB erfolgt standardm ig ber den Lizenz Server des Rechen und Kommunikationszentrums sodass f r den Einsatz der Software eine Verbindung mit dem Netz der RWTH Aachen bestehen muss z B ber VPN Das Borrowingverfahren erm glicht eine Offline Nutzung von MATLAB Somit k nnen die Lizenzen der verschiedenen Toolboxen bis zu 30 Tage ausgeliehen werden Die Vorgehensweise ist vom Betriebssystem und der verwendeten MATLAB Version abh ngig Hier werden zwei M glichkeiten des License Borrowings vorgestellt Eine M glichkeit liegt in der Ver wendung des LMTOOLS Dies funktioniert nur
55. Too W Data Acquisition To H Fuzzy Logic Toolbox all Logic and Bit Operations Math A Model Operations Verification Model Wide Ports amp Utilities Subsystems Lookup Tables Signal f f Attributes Signal Routing Sinks Sources User Defined Additional Math Functions amp Discrete E H maA A A Block Description Simulink Commonly Used Blocks Showing Simulink Abbildung 4 4 SIMULINK Standard Block Bibliothek Die Standard Block Bibliothek ist zur besseren bersicht in mehrere Gruppen unterteilt Die wich tigsten Gruppen sind e Commonly Used Blocks enth lt Elemente die h ufig gebraucht werden e Continuous enth lt Elemente zur Darstellung linearer kontinuierlicher Systeme in Form der U bertragungsfunktion und im Zustandsraum 4 3 Scopes 41 e Discontinuities enth lt nichtlineare Elemente zur Modellierung von S ttigungen Saturation Quantisierungen Totzonen Hysteresen etc e Discrete enth lt Elemente zur Darstellung linearer zeitdiskreter Systeme in Form der ber tragungsfunktion und im Zustandsraum Jeder diskrete SIMULINK Block ist mit einem Ab taster und Halteglied 0 Ordnung ausgestattet e Math Operations enth lt Basiselemente mathematischer Operationen x min max abs sin H ufig ben tigte Elemente sind sum und gain Konstanter Faktor Auch logische Operationen sind hier vorhanden e Signal Routing enth lt Bl cke zum Zusammenfassen und Trenne
56. Tools Debug Deskff Mindow Help Orga yeH A e E AHAM N DM sc A ho j x 2 0 Cell 1 cd disp Guten Tag Cell 2 a 5 7 pasty H 2 3 4 5 6 7 8 script Abbildung 3 4 Das MATLAB Editorfenster 1 Beispiel einer Cell Der Editor zeigt durch Farben und Linien die Grenzen der aktuellen Cell an 2 Der aktuelle Code Abschnitt wird ausgef hrt 3 Der aktuelle Code Abschnitt wird ausf hrt und zum n chsten gewechselt 4 Durch diesen Knopf lassen sich die Funktionen sp ter behandelt der aktuellen Datei schnell erreichen 5 Damit ist es m glich zu einem beliebigen Abschnitt in der Datei zu gelangen Es erscheint hier eine Liste mit den Beschriftungen der vorhandenen Abschnitte 6 Mit diesem Knopf l sst sich das komplette Skript ausf hren Dasselbe kann durch Dr cken der Taste F5 erreicht werden 7 Dieser Bereich ist f r das Debuggen von Bedeutung Damit kann beispielsweise das Skript schrittweise ausgef hrt werden Der Editor bietet auch andere n tzliche Funktionalit ten an wie das Ein und Auskommen tieren mehrerer Codezeilen Dies erfolgt ber das Men Tezt Comment und Test Uncomment Von Bedeutung ist au erdem die M glichkeit den Code mit Hilfe vom Men Tezt Smart Indent automatisch einzudr cken sodass dieser bersichtlicher wird Aufgaben und bungen 3 7 1 Dreieck als Skript Portieren Sie den Code aus der Aufgabe 3 5 in ein Skript damit er mit einem Mau
57. aben Die Methode anstossen setzt den Ballbesitz des zugeh rigen Spielers auf 1 Die Methode passen soll den passenden und einen weiteren Spieler als Parameter erhalten Sie pr ft zun chst ob der passende Spieler in Ballbesitz ist Ist dies der Fall wird Ballbesitz f r den passenden Spieler auf 0 und f r den anderen Spieler auf 1 gesetzt 8 2 Eine Runde Kniffel Eine Runde des Spiels Kniffel besteht aus bis zu drei W rfen mit f nf W rfeln Wenn man im ersten Wurf keine brauchbare Zahlenkombination geworfen hat darf man beliebig viele W rfel noch einmal werfen Wenn man immer noch nicht zufrieden ist darf man ein weiteres Mal beliebig viele W rfel werfen Erstellen Sie eine Klasse zur Darstellung einer Runde im Kniffel Diese Klasse soll die drei m glichen W rfe simulieren k nnen a Erzeugen Sie eine Klasse mit dem Namen Kniffelrunde und den Eigenschaften Wurf diese soll sp ter die f nf geworfenen Zahlen enthalten und AnzahlWurf hierin soll abgespeichert werden in welchem Wurf sich der Spieler befindet Initialisieren Sie die Eigenschaft Anzahl Wurf mit 1 b Erg nzen Sie die Klasse um einen Konstruktor In diesem soll in der Eigenschaft Wurf ein 1x5 Vektor aus zuf lligen ganzzahligen Zahlenwerten zwischen 1 und 6 abgespeichert werden Tipp Verwenden Sie rand und floor Sortieren Sie die geworfenen Zahlen der Gr e nach sort und geben Sie sie im Command Window aus c Erstellen Sie die Methode nochmalWwuerfeln
58. ach dem Schl sselwort classdef steht der Name der Klasse hier Untitled Der Klassenname sollte m glichst aussagekr ftig sein Au erdem muss er mit einem Buchstaben beginnen und darf keine Umlaute enthalten In der folgenden Zeile steht eine Kurzbeschreibung in einem Kommentar Diese erscheint unter Details wenn die Klasse im Fenster Current Folder markiert wird Nach der Kurzbeschreibung steht eine ausf hrlichere Beschreibung ebenfalls als Kommentar So wohl die Kurz als auch die ausf hrliche Beschreibung erscheinen wenn man im Command Window help Klassenname eingibt Unter properties werden die Eigenschaften der Klasse gesetzt Hier k nnen Variablennamen mit oder ohne Wertzuweisung stehen Nach dem Schl sselwort methods folgen die zur Klasse geh renden Funktionen die in diesem Zusammenhang Methoden genannt werden Benennen Sie die Klasse in Mitarbeiter um Eigenschaften der Klasse F gen Sie nun unter properties die Eigenschaften Name und Gehaltsstufe ein Geben Sie der Gehaltsstufe einen Standard Wert von 1 Speichern Sie die Datei nun ab Hierbei ist zu beachten dass der Dateiname dem Klassennamen mit der Endung m entsprechen muss in diesem Fall also Mitarbeiter m classdef Mitarbeiter 2 MITARBEITER Klasse f r die Verwaltung der Mitarbeiter 3 Hier k nnte eine ausf hrlichere Erkl rung stehen 5 properties 6 Name 7 Gehaltsstufe 1 8 end 9 10 methods 11 end 12 13 end Nun k nnen Sie mi
59. amit Diese drei Arten der Kopplung kann man in MATLAB mit den Befehlen gt gt gt gt gt gt gt gt gt gt gt gt sys_ser sys_ser sys_par sys_par sys_feed s_feed_p series sys1 sys2 koppelt die Systeme sys1 und sys2 in Reihe sys1 sys2 auch mit m glich parallel sysi sys2 koppelt die Systeme sys1 und sys2 parallel sysl tsys2 7 auch mit m glich feedback sysi1 sys2 koppelt die Systeme sysi und sys2 mit einer negativen R ckf hrung feedback sysi1 sys2 koppelt die Systeme sysi und sys2 mit einer positiven R ckf hrung zx 3s 76 6 Control System Toolbox verwirklichen Weitere Informationen zu den Arten der Kopplung und der Verwendung finden Sie auch in der MATLAB Hilfe 6 3 Graphische Darstellungen Nachdem die Erzeugung und Umwandlung dynamischer Systeme in MATLAB behandelt worden sind geht es nun um die graphische Darstellung und Charakterisierung der Systeme Zeitbereich F r die Berechnung und Darstellung der Antwort des Systems im Zeitbereich stehen die Funk tionen impulse Gewichtsfunktion Antwort auf einen Einheits Impuls step bergangsfunkti on Antwort auf einen Einheits Sprung und 1sim Antwort auf ein beliebiges Eingangssignal zur Verf gung Werden diese Befehle ohne linksseitige Argumente aufgerufen so wird die berechnete Antwort nicht im Befehlsfenster ausgegeben sondern geplottet gt gt G tf 1 10 2 1 gt gt h thl step G Spr
60. ang wird in einer neuen Methode namens get Gehalt festgelegt 18 methods 19 function obj Mitarbeiter name gs 30 end 31 function gehalt get Gehalt obj 8 2 Tutorial die Klasse Mitarbeiter 105 32 gehalt 1500 obj Gehaltsstufe 300 33 end 47 end Die Funktion enth lt die gleiche Formel zur Berechnung des Gehalts die zuvor in der Funktion zeigeAktuellesMonatsgehalt verwendet wurde Die Schreibweise function R ckgabevariable get Name der Eigenschaft Objektvariable ist zwingend notwendig Der neue Wert wird immer erst berechnet wenn der Benutzer oder eine interne Funktion die Eigenschaft Gehalt abfragt dehalb auch das get Zugriffs Attribute Ein wichtiges Konzept der objektorientierten Programmierung ist die Datenkapselung Darunter versteht man die Kontrolle ber den Zugriff auf Eigenschaften und Methoden einer Klasse In der Standard Einstellung public kann man von au erhalb der Klasse auf entsprechende Eigenschaften und Methoden zugreifen Wenn dies nicht erw nscht ist z B weil man vor der nderung einer Eigenschaft die Erf llung bestimmter Bedingungen berpr fen m chte kann man den Zugriff auf private oder protected setzen private erlaubt nur den Zugriff durch Methoden derselben Klasse protected erlaubt zus tzlichen Zugriff durch Methoden einer Subklasse F r die gleichzei tige Beschr nkung von Lese und Schreibzugriff wird das Schl sselwort Access verwendet M chte man nur den Sch
61. auch vektorielle Eing nge verarbeitet werde der Ausgang ist jedoch immer skalar Es k nnen folgende Ausdr cke verwendet werden u ist die Eingangsvariable Bei vektoriellem Eingang kann mit u i auf das i te Element zugegriffen werden e Numerische Konstanten wie z B 1 2 3 etc e Arithmetische Operationen e Relationale Operatoren gleich ungleich gt gr er lt kleiner gt gr er oder gleich und lt kleiner oder gleich Das Ergebnis dieser Operatoren ist entweder 1 falls die Bedingung zutrifft ansonsten 0 e Logische Operatoren amp amp und oder und nicht Das Ergebnis dieser Operatoren ist entweder 1 falls die Bedingung zutrifft ansonsten 0 e Mathematische Funktionen abs acos asin atan atan2 ceil cos cosh exp fabs floor hypot In log log10 pow power rem sgn sin sinh sqrt tan und tanh e Workspace Variablen Namen die in der vorangegangenen Liste nicht auftauchen werden in MATLAB ausgewertet Es k nnen nur skalare Variablen benutzt werden bzw muss z B mit A 1 2 eine einzelne Komponente einer Matrix angegeben werden Mit dem MATLAB Fcn Block k nnen Funktionen aus MATLAB auf den Eingang angewendet werden Dabei k nnen sowohl vordefinierte als auch selbst geschriebene MATLAB Funktionen verwendet werden Die R ckgabe der Funktion muss mit der Dimension des Blocks bereinstimmen sonst f hrt dies zu einem Fehler Als Eingang werden reale oder kompl
62. ber hinaus kann das Borrowing abgeschaltet werden falls Sie nur einige Produkte ausleihen m chten und verhindert werden soll dass weitere Produkte unabsichtlich ausgeliehen werden Weitere Informationen zu diesen Themen k nnen Sie in der Dokumentation Guide to License Borrowing finden Borrowing ber die License Borrowing UI ab Matlab R2009b Die License Borrowing UI ist eine in MATLAB R2009b integrierte graphische Benutzeroberfl che die das Ausleihen von Lizenzen vereinfacht Wenn Sie die License Borrowing UI verwenden m chten m ssen Sie sie einmalig aktivieren Kopieren Sie daf r folgende Zeile in das Command Window und best tigen Sie mit der Eingabetaste com mathworks mde licensing borrowing BorrowUI getInstance enableFeature true Starten Sie nun MATLAB neu und w hlen Sie im Men Help Licensing Borrow Products Es erscheint das Fenster MathWorks License Borrowing Abb 2 7 MathWorks License Borrowing Borrow view Status Borrows all products currently in use plus continues to borrow products automatically as you work with them Borrow selected products by choosing from a list You select products to borrow Only products you select will be borrowed Specify borrow Period Number of days to borrow EC Until Oct 30 2009 Turn On Borrowing J Abbildung 2 7 Automatisches Ausleihen Hier haben Sie zwei M glichkeiten Automatisches Ausleihen Wenn Sie einfach die Produkte di
63. besseren bersichtlichkeit eingerahmt werden siehe Abb 9 15 Zu beachten ist dass die Box die Ausf hrungsreihenfolge ver ndern kann sonst jedoch keinen Einfluss auf die Funktion eines Charts besitzt Auch Boxen k nnen in der bekannten Weise durch den Eintrag Make Contents des Kontextmen s gruppiert und zu einem Subchart umgewandelt werden so dass Inhalte nicht mehr ver nderbar bzw sichtbar sind 122 9 Einf hrung in Stateflow Box1 gt nn E_eins gt i V x A J gt X p Faa N C N E_zwei keo o O Oo Abbildung 9 15 Zustandsdiagramm mit Box Weitere graphische Elemente Wahrheitstabellen Wahrheitstabellen Truth Tables in Stateflow bestehen aus Bedingungen conditions Entschei dungen descisions und Aktionen actions Abb 9 16 Jede Bedingung muss entweder als wahr nicht Null oder als falsch Null ausgewertet werden k nnen Durch die Entscheidungen wird angegeben ob die zugerh rige Bedingung erf llt oder nicht erf llt sein muss Es wird dann ent sprechend die Aktion der Spalte ausgef hrt deren Entscheidungen alle zutreffen ni F F y 1 F T F ze F F Ip Action t 1 t 2 t 3 t 4 Abbildung 9 16 Wahrheitstabelle Embedded Matlab Functions hnlich wie in SIMULINK k nnen auch in Stateflow Embedded MATLAB Functions verwendet werden Diese Funktions ist n tzlich um Algorithmen zu programmieren die sich leichter in der MATLAB Sprache beschreiben lassen als
64. cheiden length gibt die L nge eines Vektors an und im Falle einer Matrix den gr eren Wert der Spalten und Zeilenanzahl gt gt A 1 2 3 4 5 6 gt gt size A gt gt length A gt gt size b gt gt length b Eine bersicht ber Standardmatrizen und Matrizenmanipulationen liefert der Befehl help elmat sowie ber Funktionen aus dem Bereich der linearen Algebra help matfun Die Funktionen ones und zeros erstellen Matrizen mit nur Einsen bzw Nullen als Eintr gen und die Funktion eye erstellt die Einheitsmatrix Aufgaben und bungen 3 16 Erzeugen von Standardmatrizen Erzeugen Sie eine Matrix E die vollst ndig mit 1 belegt ist und die Dimension 2x3 hat Erstellen Sie eine 4x4 Einheitsmatrix I Geben Sie die Anzahl der Zeilen und Spalten von E und I an 3 6 Logische Operatoren und bedingte Anweisungen 23 3 17 Determinante und Eigenwerte Berechnen Sie die Determinante determinant der Ma 1 2 3 trix A 2 0 1 und ermitteln Sie ihre Eigenwerte eigenvalues Finden Sie zun chst die daf r 7T 8 9 ben tigten Befehle Ist diese Matrix invertierbar Warum Berechnen Sie die Inverse der Matrix A und ihre Determinante 3 18 L sungen eines linearen Gleichungssystems Gegeben ist die Gleichung 123 6 2 0 1 x 7 Bestimmen Sie die L sung x des Gleichungssystems einmal mit Hilfe der 789 0 Inversen der Matrix und einmal mit Hilfe des Operators der zum L sen von linearen Glei chungssys
65. chheit a b Ungleichheit a b a gt b Gr er Vergleich a lt b Kleiner Vergleich a gt Gr er Gleich Vergleich a lt Kleiner Gleich Vergleich a amp amp b Logisches UND a amp b Bitweises UND a ll b Logisches ODER alb Bitweises ODER ab Bitweises XOR Tabelle 9 3 Logische Operatoren Mit den temporalen Logikoperatoren in Tabelle 9 6 lassen sich Bedingung an ein mehrfaches Auf treten von Ereignissen kn pfen Sie d rfen nur in Transitionen mit einem Zustand als Quelle und in Zustandsaktionen verwendet werden Das Aufsummieren von Ereignissen erfolgt nur solange der Quellzustand aktiv ist Bei einem Zustandswechsel wird der Z hler auf Null zur ckgesetzt 126 9 Einf hrung in Stateflow Operator Beschreibung a Bitweise Invertierung la Logische NOT Operation a Multiplikation mit 1 a Variable um 1 erh hen a Variable um 1 erniedrigen a expression Zuweisung an die Variable a expression identisch mit a a expression a expression identisch mit a a expression a expression identisch mit a a expression a expression identisch mit a a expression Tabelle 9 4 Un re Operatoren und Zuweisungen Operator Beschreibung matrix1 matrix2 Elementweise Addition zweier gleichgro er Matrizen matrix n Belegung aller Matrixelemente mit dem Skalar n matrix n Multiplikation aller Matrixelemente mit dem Skalar n matrix i j Zugriff auf das Element i j der Matrix
66. chtung Vergr ern und Verkleinern wie oben e Autoscale Stellt die X und Y Achse so ein dass der simulierte Graph gerade ganz sichtbar ist e Save current azes settings Dieses Symbol erm glicht das Speichern der aktuellen Achsenein stellungen als Standardzoom nach der Simulation e Restore saved azes settings Zur ckholen der gespeicherten Achseneinstellungen e Die letzten drei Symbole betreffen die FLOATING SCOPES Details entnehmen Sie bitte der Hilfefunktion Andere Senken Zwei weitere M glichkeiten zum Abspeichern von Signalen sind mit den Bl cken To Workspace und To File vorhanden Das Abspeichern mit To Workspace ist identisch zu Save Data to Workspace im Scope mit den gleichen Einstellungen To File verlangt nach dem Datei und Variablennamen der Abtastzeit und speichert die Variable als Matrix im angegebenen File Die Zeit wird jeweils mitgespeichert Display zeigt den aktuellen Wert des Signals numerisch an XYGraph tr gt ein Signal ber einem anderen auf Stop Simulation beendet die Simulation sobald das Eingangssignal ungleich Null wird 44 4 Einf hrung in Simulink Aufgaben und bungen 4 1 Erste Schritte in SIMULINK Kopieren Sie einen Block Transfer Fen aus der Continuous Bibliothek Speichern Sie das Modell als test1 mdl und schlie en sie es Sie k nnen es durch Doppelklick auf die entsprechende Datei im Fenster Current Directory oder durch Eingabe des Befehls test1 im MATLAB Befehlsfenster w
67. cken der Name und wenn ja welcher angezeigt wird Dieses Modell ist wie viele andere bei den Eramples und Demos von MATLAB SIMULINK hinterlegt e Benutzen Sie die Hilfe Funktion um x1 im Integrierer zwischen 1 und 1 zu begrenzen Si mulieren Sie das Ergebnis e Schalten Sie die Begrenzung wieder aus Benutzen Sie erneut die Hilfe Funktion um x1 im Integrierer zur ckzusetzen reset sobald x2 t einen Nulldurchgang mit positiver Steigung besitzt Simulieren Sie das Ergebnis e ndern Sie die Formatierungen wie Farben Schriftgr en 6 12 Linearisierung in Simulink Gegeben ist das System amp sin x u Hierbei ist u ein Sprung von 2 auf 0 bei 1s Bearbeiten Sie folgende Punkte a Erstellen Sie das Modell in Simulink b Finden Sie das Gleichgewicht wenn u 0 ist Nehmen Sie diesen Punkt als Arbeitspunkt und linearisieren Sie das System per Hand c Lassen Sie sich von Simulink die Linearisierung berechnen und exportieren Sie das erhaltende Modell als GL Balthazar van der Pol 1889 1959 Holl ndischer Elektroingenieur 6 5 Control System Toolbox in Simulink 87 d Vergleichen Sie Ihre Linearisierung mit der von Simulink gelieferten Sind diese gleich e F gen Sie dem Modell einen LTI Block hinzu und laden Sie das linearisertes Modell Ver gleichen Sie die Ausgangsgr en beider Systeme in einem Scope Sind die Verl ufe hnlich f Erh hen Sie den Sprung von 4 auf 0 statt von 2 auf 0 Simuli
68. ct Name1 Werti Name2 Wert2 Diese Eingabe hat den Vorteil dass man alle Variablen der Struktur mit einem Befehl benennen und initialisieren kann Man erzeugt auch eine Struktur mit der Eingabe eines normalen Punktes Wenn man also gt gt raumkoordinate x 1 5 eingibt dann wird eine Struktur mit dem Namen raumkoordinate erzeugt die bereits eine Va riable x inklusive Wert enth lt Wenn man der Struktur raumkoordinate nun weitere Variablen in diesem Fall sinnvoll w ren nat rlich die anderen beiden Koordinatenrichtungen hinzuf gen m chte dann kann man dies mit dem gleichen Befehl tun Um also die Koordinatenrichtungen zu komplettieren gibt man beispielsweise gt gt raumkoordinate y 2 5 F gt raumkoordinate eine Variable y mit Wert 2 5 hinzu gt gt raumkoordinate z 3 2 F gt raumkoordinate eine Variable z mit Wert 3 2 hinzu ein und man erh lt eine Struktur raumkoordinate die die drei Koordinatenrichtungen abdeckt Man kann einer Variable einer Struktur auch eine Struktur zuweisen Das kann im obigen Beispiel sehr sinnvoll sein Denn jedes Objekt wird in Koordinaten haben Also weist man sie ihm zu gt gt objektname koordinate raumkoordinate Somit hat man nun eine Struktur die eine weitere Struktur in sich eingebettet hat Um mit Hilfe von Strukturen Datenbanken zu erzeugen kann man Strukturen auch in Vektoren speichern Daf r wird dem Namen des Vektors dann einfach ein Index angeh ngt wie man
69. daf r ein Programm bei dem Vorname Nachname und Alter eingegeben und gespeichert werden k nnen Diese Information ber die Personen soll als Vektor von Strukturen verwaltet werden Das Programm soll auch in der Lage sein bei der Eingabe eines Nachnamens die Information zu den entsprechenden Personen zu zeigen Dar ber hinaus soll es m glich sein die vollst ndige Liste von Personen und Daten der Datenbank im Command Window zu zeigen Die Datenbank muss in einer Datei Datenbank Liste mat gespeichert werden damit sie beim n chsten Start des Programms geladen werden kann 3 11 Probleme der numerischen Darstellung 35 3 11 Probleme der numerischen Darstellung Ein lineares Gleichungssystem A x b kann man anhand der Inversen der Matrix A l sen Falls A regul r ist gilt n mlich A x b gt r A b Wie man wei k nnen reelle Zahlen nur mit endlicher Stellenzahl auf einem Rechner dargestellt werden Sie werden also abgerundet Dies geschieht auch mit dem Ergebnis jeder Operation von Zahlen wenn das genaue Ergebnis nicht mehr innerhalb der Grenzen der Gleitpunktdarstellung passt Welche Wirkung dieser Fehler auf die Berechnung einer Matrizen Inverse oder bei der Bestimmung der L sung eines Gleichungssystems hat soll hier anhand eines Beispiels angedeutet werden Geben Sie die Matrix 123 A 1 45 6 789 ein und berechnen Sie deren Inverse mittels des Befehls inv Berechnen Sie dann die Determinante dieser Matrix indem Sie den Befe
70. den Die Signale werden nur w hrend der Simulationszeit angezeigt x Time Range erm glicht die Darstellung anderer Zeitbereiche als die Simulations dauer auto Tick Labels k nnen hier ein und ausgeschaltet werden Sampling stellt mit Decimation ein jeder wievielte Wert im Scope dargestellt werden soll wobei in dem Fall die Zeitintervalle nicht konstant sind Mit Sample Time wird die L nge konstanter Zeitintervalle festgelegt Die Karte Data History Abbildung 4 7 erlaubt das Abspeichern der Simulations ergebnisse in einer Variablen Save Data to Workspace mit dem eingestellten Typ Struktur oder Array Es kann sowohl die Zeit als auch die Daten gespeichert werden 4 3 Scopes 43 Scope parameters General Data history Tip try right clicking on axes Limit data points to last 5000 C Save data to workspace Abbildung 4 7 Scope Parameter Data History Standardm ig ist die Anzahl der im Scope dargestellten und zu speichernden Punkte auf 5000 begrenzt Limit data points to last Die Grenze kann ver ndert oder durch das L schen der Markierung ganz aufgehoben werden e Zoomen in X und Y Richtung Der zu vergr ernde Bereich wird durch das Ziehen mit gedr ckter linker Maus Taste markiert Durch Dr cken der rechten Maustaste wird die Ver gr erung wieder r ckg ngig gemacht e Zoomen in X Richtung Vergr ern und Verkleinern wie oben e Zoomen in Y Ri
71. die Gleichungen in Form von bertragungs Bl cken wie bei einem Wirkungsplan eingegeben und dargestellt werden 4 1 Bedienoberfl che Eine gro e Anzahl an vordefinierten Bl cken sind in sogenannten Bibliotheken zusammengefasst Mit Hilfe der Maus k nnen die Bl cke auf die Arbeitsfl che gezogen und anschlie end parametriert werden Zuerst mu SIMULINK gestartet werden Dies geschieht entweder durch Eingabe von simulink in dem MATLAB Befehlsfenster oder durch Dr cken des SIMULINK Symbols in der Symbolleiste von MATLAB Abbildung 4 1 Es ffnet sich der SIMULINK Library Browser der den Zugriff auf die verschiedenen Bibliotheken erlaubt Die Bibliotheken sind in verschiedene Gruppen unterteilt Continuous Discrete etc MATLAB 7 7 0 R2008b Eile Edit Debug Parallel Desktop ir Y E current Directory U 4Simulink v Shortcuts a Howto Add 2 What Current D O xi EA a Workspace OD 7 x wm D Si va i Mew to MATLAB Watch this Video see Demos or read Getting Started esaH D Name Date Modi Name va g td Comma Dax 13 05 09 14 Select a file to view details Abbildung 4 1 SIMULINK starten Durch Dr cken des Symbols Create new model Abbildung 4 2 ffnet sich ein leeres Fenster ohne Namen untitled Der Name wird ber File gt Save beim Abspeichern eingegeben SIMULINK Modelle haben automatisch die Endung md1 Die mdl Datei eines Modells dient zur Speicherung d
72. die verstrichene Zeit im Command Window aus Ermitteln Sie die Rechenzeit auch f r den Fall ohne Vektoroperationen Welche Methode ist schneller Warum 3 23 Fakult t einer ganzen Zahl s als Skript Schreiben Sie ein Skript mit dem die Fakult t einer Zahl s berechnet wird Hierbei sollte zun chst die Zahl s deklariert werden und dann mit einer for Schleife die Fakult t berechnet werden Zur Erinnerung Die Fakult t einer ganzen Zahl n berechnet man folgenderma en n n n 1 gt n n n 1 n 2 3 2 1 3 24 Erweiterung des Faktult t Skripts Erweitern Sie das Skript zur Berechnung der Fakult t einer ganzen Zahl s so dass ein maximales ganzzahliges n ermittelt wird f r das gilt n lt 1000 3 25 Interaktives Programm Schreiben Sie ein Programm das die Reaktionszeit einer Person beim Tastendr cken misst Mit Hilfe der Befehle rand und round soll dem Nutzer eine ganze Zahl zwischen 0 und 10 gezeigt werden welche er sofort auf der Tastatur eingeben soll w hrend die vergangene Zeit gemessen wird tic toc Das Verfahren soll zehnmal wiederholt werden Der Mittelwert der Reaktionszeit zw Zeigen und Eingeben wird als Ergebnis in einem separaten Fenster msgbox dargestellt Falls die Person eine falsche Eingabe macht muss das Programm mit einer Nachricht abgebrochen werden Erweitern Sie das Programm so dass die Reaktionszeiten pro Versuch geplottet werden und dass folgende von der Reaktionszeit
73. dschirm Ableitung Die Ableitung erfolgt genauso einfach wir die Integration mit dem diff Befehl Zur Verifizierung des obigen Beispiels kann man g nach x ableiten gt gt diff g x Eine h here Ableitung erfolgt mit dem Befehl diff g n wobei n die Ordnung der Differenzierung ist Wenn der Ausdruck mehrere symbolische Variable enth lt kann man festlegen nach welcher Variable abgeleitet werden soll Sei beispielsweise der symbolische Ausdruck f sin s t gegeben dann kann mit dem Befehl diff f t die partielle Ableitung von f nach t berechnet werden Wenn keine Variable festlegt wurde wird nach der Variable die als erste in der Alphabet kommt abgeleitet Eine Ableitung h herer Ordnung erfolgt mit diff f t n Jacobian Die Jacobi Matrix einer differenzierbare Funktion oder eines Vektors von Funktionen l sst sich einfach mit der symbolischen Toolbox berechnen Sei als Beispiel ein Punkt in kartesischer Koordinaten x y z gegeben Dieser kann auch mit Kugelkoordinaten r amp dargestellt werden Die Koordinatentransformation ist durch T r cos cos y r sin 8 sin z r cos 0 beschrieben Die Jacobi Matrix dieser Koordinatentransformation ist die Matrix der partiellen Ableitungen die sich mit der Funktion jacobian der symbolischen Toolbox berechnet l sst 68 5 Symbolisches Rechnen gt gt syms r 1 f x r cos l cos f y r cos l sin f z r sin l J jacobian x y z r 1 f So k n
74. e 6 5 Systemantwort im Zeitbereich Zeigen Sie f r die LTI Modelle aus Aufgaben 6 1 und 6 2 folgendes an a Anfangswertantwort von SS1 f r x 0 1 1 b Impulsantworten von Gl und G2 und von G2 und dG2 c Zeigen Sie die Wurzelortskurven von Gl und G2 zusammen d Null Polstellen Verteilung von Gl und G2 zusammen e Null Polstellen Verteilung von G2 und dG2 zusammen Warum taucht hier ein Kreis auf u 0 V t lt 0s f Antwort von G2 auf den Eingang ao e u 0 V t gt 30s 6 6 Systemantwort im Frequenzbereich Zeigen Sie f r die LTI Modelle aus Aufgaben 6 1 und 6 2 folgendes an a Bode Diagramm von G2 Amplitudenreserve und Phasenreserve in einer Grafik b Nyquist Diagramm von G2 Ampitudenreserve und Phasenreserve in einer Grafik c Erzeugen Sie G4 G2 e Totzeit 1s und stellen Sie das zugeh rige Nyquist Diagramm dar Was sind die Amplituden und Phasenresreve d Nat rliche Frequenzen und D mpfung e Beruhigungszeit und Endwert der Ausgangsgr e 6 7 LTI Viewer Analysieren die LTI Modelle aus Aufgaben 6 1 und 6 2 mit Hilfe des Befehls ltiview G2 dG2 und bearbeiten Sie folgende Punkte a Lassen Sie sich den H chstwert der Sprungantwort berechnen b Schauen Sie sich die Impulsantwort der Systeme an c Erzeugen Sie das Nyquist Diagramm und zeigen Sie hier die Amplitudenreserve des Systems d Schalten Sie den Hintergrundraster ein e Lassen Sie sich jetzt die Sprungantwort und das
75. e Workspace gespeicherten Variablen zur Verf gung Umgekehrt sind alle Variablen die im Skript File definiert werden nach dessen Ablauf noch im Workspace definiert d h die Variablen des Skript Files sind global Das ist ein wesent licher Unterschied zu den m Funktionen behandelt in 3 9 die einen eigenen Workspace haben und keinen Zugriff auf den base Workspace Obwohl diese Dateien in einem beliebigen Texteditor bearbeitet werden k nnen bietet MATLAB den so genannten MATLAB Editor an der neben einer F rbung der Syntax die M glichkeit bietet das Skript durch Mausaktionen auszuf hren und zu debuggen Hier kann man nicht nur den Code Schritt f r Schritt ausf hren sondern auch die Variablenwerte anzeigen lassen Der MATLAB Editor siehe Abb 3 4 kann ber das Men File oder durch Eingabe des Befehls edit aufgerufen werden Wenn Skripte zu lang werden kann man sinnvollerweise den sogenannten Cell Mode verwenden Das Skript wird damit durch Cell Dividers in Abschnitte unterteilt Der Cell Mode erm glicht dar ber hinaus eine schnelle Navigation durch das Skript Um von einer Cell zu den n chsten oder den vorherigen zu wechseln benutzt man die Tastenkombinationen Strg oder Strg Abbildung 3 4 zeigt ein Screenshot des Editorfensters Die wichtigsten Elemente sind markiert und werden im Folgenden erl utert 3 3 Skripte und der MATLAB Editor 17 Editor Z Skript latex sourcen Color A 6 EU File Text Go Cell
76. e Sie gerade benutzen oder noch benutzen werden ausleihen wollen ohne Sie ausdr cklich anzugeben w hlen Sie Borrow Products automatically as you work with them Geben Sie unter Number of days to borrow an f r wieviele Tage max 30 Sie die 2 2 Borrowing von Lizenzen 11 benutzten Produkte ausleihen wollen und klicken Sie anschlie end auf Turn Borrowing On Sie k nnen das Fenster nun schlie en Selektives Ausleihen Sie k nnen aber auch die Produkte die Sie ausleihen m chten aus einer Liste ausw hlen Markieren Sie dazu den Punkt Borrow selected products by choosing from a list Abb 2 8 W hlen Sie die Produkte die Sie ausleihen m chten aus der Liste aus und geben Sie unter Number of days to borrow an f r wieviele Tage max 30 Sie sie ausleihen wollen Produkte die nicht ausgeliehen werden k nnen sind in der Liste mit dem Borrow Status Borrowing Disabled gekennzeichnet Schlie en Sie den Vorgang mit einem Klick auf den Button Borrow ab Sie k nnen das Fenster nun schlie en MathWorks License Borrowing Borrow view Status O Borrow products automatically as you work with them Borrows all products currently in use plus continues to borrow products automatically as you work with them Borrow selected products by choosing from a list You select products to borrow Only products you select will be borrowed Select products to borrow Number of days to bor
77. e eine History Junction setzt Nun erh lt derjenige Unterzustand welcher vor dem Verlust aktiviert war die Aktivierung zur ck vgl Abb 9 10 In einem Superstate kann eine weiterer Transitionstyp eingesetzt werden die Innere Transition Sie wird erzeugt in dem eine Transition vom Rand des Superstates zu einem seiner Unterobjekte mit der Maus gezogen wird Diese Transition wird immer auf G ltigkeit berpr ft solange der Superstate aktiv ist unabh ngig von seinen Unterzust nden Ein Beispiel f r die Verwendung einer Inneren Transition ist die Vereinigung einer verzweigten Zustandskette Anstatt Transitionen von allen Enden dieser Kette einzuzeichnen gen gt oft der Einsatz einer Inneren Transition vgl Abb 9 11 120 9 Einf hrung in Stateflow me switch_21 switch_12 Abbildung 9 12 Zustandsdiagramm mit hierarchie bergreifenden Transitionen Hierarchie bergreifende Transitionen und Wurml cher Transitionen k nnen auch bergreifend ber alle Hierarchien angelegt werden So sind alle Ver bindungen zwischen Superstates und Unterzust nden m glich siehe Abb 9 12 Jedoch bleibt die Regel g ltig dass bei Zust nden in exklusiver Oder Anordnung immer genau ein Zustand pro Superstate aktiv ist Hat man einen Zustand als Subchart anlegt ist dessen Inhalt verdeckt Mit Hilfe eines Wurmloches k nnen auch Transitionen von und zu den Inhalten eines Subchartes angelegt werden Zieht man eine
78. ebiger Punkt der Kurve markiert sodass die Eigenschaften des Systems f r die gew hlte Einstellung Ki 251 angezeigt werden 78 6 Control System Toolbox Root Locus 15 T T T T T T T T 0 93 0 87 0 78 0 64 0 46 0 24 10 F 0 97 J 5 0 992 J K Ei lt gt a 35 30 25 0 E System Go 5 0 992 Gain 251 4 Pole 12 1 10 3i Damping 0 761 Overshoot 2 5 Frequency rad sec 15 8 10 H 0 97 lt wd E 0 93 0 87 0 78 0 64 0 46 0 24 15 L fi L L fi fi L fi 40 35 30 25 20 15 10 5 0 5 Real Axis Abbildung 6 2 WOK von Go s Ki O 1s 1 Das Wurzelortskurvenverfahren ist ein sehr wirksames Mittel um die Wanderung von Polstellen unter dem Einfluss von nderungen bei Parametern eines Regelkreises darzustellen Der Anwender sollte aber dabei nicht vergessen dass die Dynamik eines bertragungssystems nicht nur von den Polstellen sondern auch von den Nullstellen seiner bertragungsfunktion abh ngt 6 4 Der LTI Viewer das SISO Tool und Reglerentwurf Eine sehr angenehme M glichkeit zur bersichtlichen Darstellung und Analyse dynamischer Sys teme bietet die graphische Oberfl che LTI VIEWER siehe Abb 6 3 die mit dem Befehl Itiview aufgerufen wird Sie erm glicht die gleichzeitige Darstellung mehrerer Systeme sowie mehrerer Dar stellungen nebeneinander und der einfachen Umschaltung zwischen verschiedenen Darstellungen Diese Oberfl che ist gr tenteils selbsterkl
79. eitergegeben bzw empfangen werden Bei Variablen lauten die wichtigsten Einstellm glichkeiten Name Name der Variablen Scope Variable ist lokal konstant oder Ein Ausgang nach Simulink nur in der Chart Ebene Eine Konstante kann nicht durch Stateflow Aktionen ver ndert werden Port Nur bei Ein Ausgang Nummer des Port des Chart Blockes in Simulink an dem die Variable anliegt Type Typ der Variablen double single int32 Initialize from Die Variable kann durch einen hier eingegebenen Wert data dictionary ausw hlen und Initialisierungswert ins Feld rechts daneben eintragen oder aus dem Matlab Workspace workspace ausw hlen zum Simulationsbeginn initia lisiert werden Werden Ein Ausg nge festgelegt erscheinen diese im Simulink Modell als Ein bzw Ausgangs ports beim Chart Symbol Zu beachten ist dass alle BEingangsereignisse ber den Triggereingang als Vektorsignal zugef hrt werden m ssen vgl Abb 9 7 Constant Steuerung Abbildung 9 7 Chart mit verschiedenen Eing ngen Ereignisse werden als Vektor in den Trig gereingang eingespeist Variablen benutzen Eingangsports Neben Variablen und Freignissen kann auch die Aktivit t eines Zustandes als Ausgang nach Si mulink verwendet werden Einen solchen Ausgang legt man nicht im Explorer sondern in der Eigenschaftsdialogbox des Zustandes an Rechtsklick auf den Zustand dann Properties im Kon textmen Nachdem man dort das K stchen Ou
80. elklick auf einen Befehl wird dieser erneut ausgef hrt Weitere Funktionen der Matlab Oberfl che Hier werden einige der verf gbaren Funktionen zur Bedienung der MATLAB Oberfl che behandelt die erfahrungsgem oft genutzt werden und die Arbeit erleichtern k nnen Shortcuts Mit MATLAB Shortcuts kann man Befehle zusammenfassen und durch eine Mausaktion sp ter auf einen Schlag durchf hren Zum Editieren des Shortcuts wird ein so genannter Shortcut Editor verwendet der ber den Start Button unten links im Men Shortcuts aufgerufen werden kann Diese Shortcuts k nnen entweder im Start Knopf oder als Icon in die Shortcut Liste oben links platziert werden Tab Komplettierung Mit Hilfe der Tabulator Taste k nnen im Command Window Funktionen Variablen und Da teinamen schnell eingegeben werden indem man nach dem Eintippen des ersten Teils des Wor tes die Tabulator Taste dr ckt Der Rest des Namens wird dann automatisch komplettiert oder 3 2 Die Matlab Hilfe 15 ggf eine Liste passender M glichkeiten zur Auswahl angezeigt falls mehrere Namen den glei chen Anfang haben Dazu muss diese Funktionalit t aktiviert werden was im Men unter Fi le Preferences Keyboard Tab completation m glich ist Aufgaben und bungen 3 1 Erste Schritte mit der Kommandozeile Geben Sie in der Kommandozeile folgende Befehle ein und versuchen Sie die Ergebnisse nachzuvollziehen gt gt sin pi A Trigonometrische Funktionen gt
81. ement MATLAB steht daher f r Matrizen Laboratorium SIMULINK ist eine auf MATLAB aufgesetzte graphische Benutzeroberfl che mit der komplexe Systeme modelliert und simuliert werden k nnen Die not wendigen Matrixberechnungen werden von MATLAB automatisch durchgef hrt Hersteller dieser beiden Produkte ist die Firma The MathWorks Inc in den USA Das Ziel der bung ist eine erste Einarbeitung in MATLAB SIMULINK Bei dieser bungsanleitung steht weniger die Vollst ndigkeit der Darstellung als vielmehr die Anleitung zum selbst ndigen weiteren Arbeiten im Vordergrund Kleinere bungen zum besseren Verst ndnis sind innerhalb der Kapitel integriert Die mit dem Handsymbol markierten Aufgaben am Ende jedes Kapitels dienen der berpr fung der erworbenen Kenntnisse Dar ber hinaus werden an verschiedenen Stellen Vorschl ge zum selbst ndigen Experimentieren gemacht Bitte beachten Sie Diese Anleitung ist auf dem Stand von MATLAB Version R2008b Sollten Sie mit einer neueren Version arbeiten k nnen sich insbesondere Men strukturen und Dialogboxin halte ver ndert haben Sollten Sie die beschriebenen Befehle oder Funktionen nach etwas Suchen nicht finden k nnen wenden Sie sich bitte an den Betreuer 2 Installation und Borrowing 2 1 Installation von Matlab Windows Zur Installation von MATLAB laden Sie die Installationsdateien vom Rechenzentrum herunter Weitere Hinweise dazu finden Sie auf der Internetseite www matlab rwth aach
82. en Sie be achten was f r die Fakult t f r die verschiedenen Eingaben herauskommt Tipp Es kann auch eine Rekursion verwendet werden Das hei t die Funktion muss sich selbst wieder aufrufen 3 35 Rechnen mit der Fakult t Es gibt nun die M glichkeit mit der Funktion fakultaet s die Fakult t zu berechnen Nun wollen wir herausfinden welche ganze Zahl diejenige ist deren Fakult t gerade noch kleiner als 1000 ist Die Aufgabe lautet also Finden Sie das gr te n so dass gilt n lt 1000 Hierf r gibt es jetzt zwei Varianten Zum einen k nnen Sie diese Aufgabe l sen indem Sie f r jede Zahl mit Hilfe der Funktion fakultaet s die Fakult t berechnen und berpr fen ob die Fa kult t noch kleiner als 1000 ist Sie k nnen das Resultat der Aufgabe aber mit weniger Rechenzeit erhalten indem Sie die Fakult t mit Hilfe einer Schleife ohne Funktion berechnen und in jedem Schritt der Fakult tsberechnung berpr fen ob die Fakult t noch kleiner als 1000 ist Vergleichen Sie die Zeit die das Programm ben tigt um das Resultat der Aufgabe zu bekommen mit der die man bei Berechnung mit der Funktion ben tigt Hierf r k nnen Sie die Befehle tic und toc verwenden 3 36 isPrime Schreiben Sie eine Funktion isPrime zahl die eine ganze Zahl bergeben bekommt und berpr ft ob die Zahl eine Primzahl ist oder nicht Zur Erinnerung Eine Primzahl ist eine nat rliche Zahl die nur zwei Teiler hat n mlich 1 und sich selbst
83. en de Diese An leitung bezieht sich auf die Installation unter Windows Hinweise zur Installation unter anderen Betriebssystemen finden Sie in den entsprechenden Ordnern im Downloadverzeichnis Wenn Sie die Software schon vom Rechenzentrum heruntergeladen bzw ein Windows Netzwerk laufwerk eingerichtet haben lesen Sie dazu die E Mail die Sie nach dem Erwerb von Asknet bekommen m ssten Sie eine hnliche Ordnerstruktur wie in Abbildung 2 1 vorfinden In der Datei RWTH Readme txt befindet sich eine kurze Anleitung zum Installationsverfahren und der Schl ssel f r die Installation e F hren Sie die Datei net install win setup exe aus um die Installation zu starten e W hlen Sie Install manually without using the internet aus Im Dialogfenster File Installation Key verwenden Sie den Key aus RWTH Readme txt Im Dialogfenster Choose installation type w hlen Sie Custom aus und folgen den wei teren Anweisungen bis zum Dialogfenster Product Selection 2 1 Installation von Matlab Windows 5 G MatlabR2008b DAR Datei Bearbeiten Ansicht Favoriten Extras Ay Oua P P suhe fe ore EEK 19 E Adresse N Matlab MatlabR2008b v EJ wechsen zu Ordner x Name Gr e Typ Ge ndert am Irfanview A Diso Dateiordner 24 10 2008 16 12 net install Dateiordner 24 10 2008 16 52 borrowing pdf 329KB Adobe Acrobat Doc 11 12 2007 09 56 llicense dat 1KB DAT Datei 23 10 2007 13 00 lllizenzen m 2KB M Datei 25
84. en dort den Anwender bei der Fehlersuche So k nnen Breakpoints an verschiedenen Stellen gesetzt werden automatisch Fehler Zustandsinkon sistenzen Konflikte Mehrdeutigkeiten G ltigkeitsbereiche Zyklen gesucht werden zur Laufzeit Werte von Variablen und aktive Zust nde angezeigt werden Hinweis Die bergeordneten Simulationseigenschaften Simulationsdauer Integrationsschritt weiten etc werden durch das Simulink Modell festgelegt Aufgaben 9 1 Erste Schritte Sie kennen nun alle Elemente um einfache Zustandsautomaten zu simu lieren Experimentieren sie selbst Erstellen Sie einfache Charts und lassen diese ablaufen Wenn n tig orientieren sie sich an den bisher abgebildeten Beispielen 9 2 R S FlipFlop Erstellen Sie das Modell eines R S Flipflops ein FlipFlop stellt ein 1 Bit Speicherelement dar Dieses verf gt ber einen Ereigniseingang c1k ber den die Taktung erfolgt zwei Dateneing nge R und S die bei jeder steigenden Taktflanke ausgewertet werden und einen Datenausgang Q der den aktuellen Speicherzustand 0 oder 1 des FlipFlops repr sentiert Die Schaltsemantik findet sich in der folgenden Tabelle wieder Cik R S Q 1 rising edge 0 O0 unver ndert 1 rising edge 1 0 0 zur cksetzen 1 rising edge 1 O 1 setzen 1 rising edge 1 1 nicht zul ssig hier unver ndert 0 unver ndert don t care Erproben Sie das Modell in einer geeigneten Simulin
85. en fest dass die Aktion ausgef hrt wird entry wenn der Zustand aktiviert wird during wenn der Zustand aktiv ist und das Chart ausgef hrt wird exit wenn der Zustand verlassen wird 112 9 Einf hrung in Stateflow on event wenn der Zustand aktiv ist und das angegebene Ereignis auftritt Transitionen Eine Transition f r einen Zustands bergang erzeugt man indem man auf den Rand des Ausgangs zustandes klickt und die Maus bis zum Rand des folgenden Zustandes zieht und dort losl sst Dabei entsteht ein die Transition symbolisierender Pfeil dessen Form und Lage durch Ziehen ver ndert werden kann event_off bedingung 1 condition_action transition_action Abbildung 9 3 Transition mit komplettem Label Ebenso wie der Zustand besitzt die Transition ein Label welches hier aber nicht zwingend vergeben werden muss Ein Transitionslabel besitzt die Syntax event condition conditionAction transitionAction Alle Komponenten des Labels sind optional und k nnen beliebig kombiniert werden Eine Transi tion ist g ltig falls e der Ausgangszustand aktiv ist e das Ereignis event auftritt oder kein Ereignis angeben ist und e die angegebene Bedingung condition wahr ist oder keine Bedingung gestellt wurde Sobald eine Transition g ltig ist wird die conditionAction ausgef hrt Die transitionAction wird beim Zustands bergang ausgef hrt F r einfache Transitionen besteht zwischen den beiden Aktionen abgesehen vo
86. er Modellbestandteile der Signalverbindungen und der Simulationsparameter Eine mdl Datei ist eine Textdatei und kann mit dem Editor ver ndert werden Aus diesem Grund k nnen mdl Dateien auch mit Hilfe eines Versionsmanagements wie beispielsweise Subversion oder Clearcase verwaltet werden Ge ffnet wird eine Blockbibliothek durch einen Doppelklick auf ihr Symbol oder durch einen einfachen Klick auf das Mit der gedr ckten linken Maustaste kann dann eine Kopie 4 1 Bedienoberfl che 39 E Simulink Library Browser Eile Edit iew Help amp Enter search term va Libraries Library Simulink Search Res imuli A i d Sinia PE AMMONI EIER Ee Used Blocks Discontinuities E A A Logic and Bit Operations Model Verification Math gt Model Wide Utilities Operations Abbildung 4 2 Neues Modell erstellen des gew nschten Blocks auf das Modellfenster gezogen werden Klicken amp Ziehen Sie k nnen im Modellfenster mehrere Bl cke markieren indem Sie beim Anklicken der einzelnen Bl cke die Shift Taste gedr ckt halten Abbildung 4 3 Innerhalb des Modellfensters k nnen E untitled Eile Edit Yiew Simulation Format Tools Help Deus BBel gt T I 2 m fioo Normal Sine Wave 1100 Abbildung 4 3 Einfaches Modell e Bl cke durch Klicken amp Ziehen mit der linken Maustaste verschoben werden e Bl cke durch Klicken amp Ziehen mit der rechten Ma
87. er relevante Eigenschaften auftauchen Dies erreicht man indem man entsprechende Eigeschaften mit dem Attribut Hidden versieht In der Klasse Mitarbeiter braucht die maximale Gehaltsstufe nicht immer angezeigt werden Deshalb erh lt sie Hidden als zweites Attribut 13 properties Constant Hidden 14 MaximaleGehaltsstufe 5 15 end Mehrere Attribute werden also einfach durch Kommata getrennt aneinandergereiht Auch im Va riable Editor taucht die Eigenschaft MaximaleGehaltsstufe nicht mehr auf Anders als bei der Verwendung von Access private kann der Wert dieser Eigenschaft nach wie vor abgefragt werden gt gt mitarbeiter1 MaximaleGehaltsstufe Vererbung Eine gro e St rke der objektorientierten Programmierung ist das Konzept der Vererbung So ist es m glich eine Klasse zu schaffen die zun chst einmal nur eine Kopie der urspr nglichen Klasse darstellt Sie erbt die Eigenschaften und Methoden der Superklasse auch Elternklasse genannt Dann kann die neue Klasse beliebig um eigene Eigenschaften und Methoden erweitert werden die der Superklasse dann nicht zur Verf gung stehen Der Vorteil gegen ber einem tats chlichen Kopieren des m Codes der urspr nglichen Klasse in eine neue Klassendatei liegt in der besseren Wartbarkeit des objektorientierten Programms Denn hier muss bei einer nachtr glichen nderung einer Methode oder einer Eigenschaft diese nur an einer Stelle angepasst werden F r die abgelei tete n Klasse n gilt d
88. eren Sie erneut und vergleichen Sie die Ausg nge Was ist passiert und warum 6 13 Regelung eines Segway In dieser bung soll mit Hilfe von Matlab ein LQR Regler entworfen werden der einen Segway im Gleichgewicht h lt Daf r sind folgende Schritte notwendig e Ermittlung der Regel und der Stellgr e aus den Bewegungsgleichungen e Linearisierung der Gleichungen e Bestimmung der Zustandsr ckf hrungsmatrix Ermittlung der Regel und der Stellgr e aus den Bewegungsgleichungen Gegeben sind die Bewegungsgleichungen denen ein Modell bestehend aus einer Achse mit zwei R dern und einem Balken zugrunde liegt Fix mRER Fb Abbildung 6 10 Skizze 88 6 Control System Toolbox Kr fte und Momentengleichgewicht f r das Rad ergeben folgende Gleichungen Yfx 0 Fg Fkx mr r 0 1 XM 0 M Fg r Ir 0 2 F r den Balken ergibt sich XFxy 0 Fkx mg g 0 3 DFy 0 Fky mg B mp g 0 4 XM 0 Fkx 1 cosp Fgy l sing Ig M 0 5 Kinematik des Rades TRSTr Q 6 Kinematik des Balkens rB r a tl sinp 7 yB l cosp 8 a Bestimmen Sie hieraus die Formeln f r und in Abh ngigkeit von a amp p M und den Konstanten Eliminieren Sie alle Kr fte und alle translatorischen Bewegungsgr en Linearisierung der Gleichungen Viele Regelungstechnische Methoden basieren auf einer Zustandsraumdarstellung Dabei wird ein System durch geeignete Zust nde dargestellt F r un
89. es Namens und Editieren ge ndert Das Men For mat erm glicht die Anzeige des Namens ein und auszuschalten Dar ber hinaus k nnen weitere Formate wie Zeichenfont Farben Schatten etc eingestellt werden 4 3 Scopes Scopes dienen dem Beobachten und evtl Speichern von Signalen Standardm ig enth lt die Zeitachse X Achse die Simulationsdauer und die Y Achse den Bereich von 5 bis 5 Durch die Symbolleiste k nnen die Einstellungen des Scopes ver ndert werden Die Symbolleiste siehe Abb 4 5 enth lt die folgenden Funktionen von links nach rechts e Drucken e Parameter Dieses Symbol ffnet ein neues Dialogfenster 42 4 Einf hrung in Simulink BESTE o la alo 22 ABB Bat 2 i Time offset Abbildung 4 5 SIMULINK Scope Scope parameters General Data history Tip try right clicking on axes Axes Number of axes C floating scope Time range auto Tick labels bottom axis only Sampling Decimation 11 Abbildung 4 6 Scope Parameter General In der Karte General Abbildung 4 6 k nnen folgende Einstellungen getroffen werden Number of axes ndert die Anzahl der Subplots und dementsprechend die Anzahl der Eing nge Die einzelnen Subplots besitzen die gleiche Zeitachse Floating scope erlaubt die Darstellung von Signalen ohne sie mit dem Scope zu verbinden Details k nnen der MATLAB Hilfe entnommen wer
90. es von der normalen Vektorschreibweise gewohnt ist und anschlie end mit dem Punkt und dem Varia blennamen fortgesetzt Der Zugriff auf die Variablen erfolgt dann also folgenderma en gt gt array index variable wert So kann man mehrere Strukturen vom gleichen Typ in einem Vektor zusammenfassen Der Index ist nat rlich nur dann erforderlich wenn mehr als eine Struktur in der Variable gespeichert werden soll Wenn mehrere Strukturen vom gleichen Typ in dem Vektor gespeichert wurden und eine dieser Strukturen nun eine zus tzliche Eigenschaft erhalten soll bekommen alle anderen Strukturen diese Eigenschaft auch Allerdings ist bei diesen dann kein Wert eingetragen d h die Variable ist leer Aufgaben und bungen 3 39 Struktur Auto Erstellen Sie eine einfache Struktur auto die aus folgenden Dingen be steht Farbe Marke PS Zahl Tankvolumen und Sitzanzahl Benutzen Sie dazu zun chst die Me thode mit dem Punkt Setzen sie dabei beim Erstellen der einzelnen Variablen immer ein Semikolon 34 3 Einf hrung MATLAB hinter die Eingabe um die Ausgabe zu unterdr cken Erst wenn Sie komplett fertig mit der Finga be aller Daten sind geben Sie im Command Window auto ein und setzen diesmal kein Semikolon dahinter Nun erstellen Sie eine zweite Struktur auto2 mit der Funktion struct und setzen auch kein Semikolon dahinter 3 40 Datenbank Es soll eine Software geschrieben werden um Datenbanken von Personen zu erzeugen Schreiben Sie
91. esst danach wieder Stellen Sie sicher dass sich der Aufzug nur bei geschlossenen T ren bewegt Tipps Verwenden Sie auf der obersten Ebene zwei parallele Zust nde Steuern Sie nun die Rauf und Runter Freignisse geeignet intern Betten Sie die bisherigen Stockwerks Zust nde in einen Zustand T r zu ein 9 3 Action Language In diesem Abschnitt werden die verschiedenen Elemente der Action Language kurz erl utert welche in den Labels der Zust nde und Transitionen ben tigt werden Besondere Bedeutung kommt den in Tab 9 1 genannten Schl sselw rtern zu welche nicht als Variablen oder Ereignisnamen verwendet werden k nnen In den Tabellen 9 2 bis 9 4 sind die in der Action Language definierten Operatoren zusammen gestellt Alle Operationen gelten dabei nur f r skalare Gr en Ausnahmen bilden einige wenige Matrizenoperatoren welche in Tabelle 9 5 zusammengestellt sind Zu beachten ist dass der Zugriff auf Elemente von Matrizen in anderer Weise erfolgt als in Matlab Wird auf eine Variable oder ein Ereignis zugegriffen versucht Stateflow diese in derselben Hier archieebene zu finden in der die aufrufende Aktion steht Ist die Suche nicht erfolgreich wird 9 Einf hrung in Stateflow Schl sselwort Abk rzung Bedeutung change data_name chg data_name Erzeugt ein lokales Event wenn sich der Wert von data_name ndert during Darauf folgende Aktionen werden als During Ac du tion eines Zustandes
92. et kommt hier x automatisch aufgel st Gleichungssysteme Gleichungssysteme werden auch mit Hilfe von solve gel st Soll z B ein lineares Gleichungssystem mit 2 Unbekannten x y und Gleichungen az y 3 und 2x 2y 5 mit a als Parameter gel st werden k nnen folgende Befehle verwendet werden gt gt syms a xX y gt gt f 1 a x y 3 Gleichung 1 0 gt gt f 2 2 x 2 y 5 Gleichung 2 0 gt gt X Y solve f 1 2 x y L sung nach x und y Wenn das Ergebnis einer Variable Ergebnis zugewiesen wird liefert Matlab das Ergebnis als Struktur zur ck Mit Ergebnis a kann wie blich der Wert von a zugegriffen werden 5 4 Infinitesimalrechnung in Matlab 67 5 4 Infinitesimalrechnung in Matlab F r die Infinitesimalrechnung wird das MuPAD Engine verwendet MuPAD ist ein Computeralge brasystem das urspr nglich an der Universit t Paderborn entwickelt wurde Es wurde sp ter von The MathWorks gekauft und in Matlab integriert Integration Die Integration erfolgt mit dem int Befehl Als Beispiel sollte die Integration der Funktion f x 2g 4 berechnet werden gt gt syms X gt gt f x 2 2 x 4 gt gt g int f Unbestimmtes Integral Die Integration der Funktion von a bis b erfolgt mit dem Befehl int f a b Eine Variante ist der Befehl int f v a b wenn man nach v integrieren m chte Sollte Matlab keine geschlossene L sung des Integrals finden erscheint das auf dem Bil
93. ew hlte Realisierung m glichst bersichtlich und nachvollziehbar ist 9 1 Grundelemente von Stateflow Die Modellierung der ereignisdiskreten Systeme erfolgt in STATEFLOW mit Zustands bergangs diagrammen engl state charts welche mit einem graphischen Editor erzeugt werden Die Charts m ssen in ein SIMULINK Modell eingebettet sein welches den Aufruf und den Ablauf des State Charts steuert Mit der Befehlseingabe von gt gt stateflow oder gt gt sf in der MATLAB Kommandozeile startet man ein leeres Chart innerhalb eines neuen SIMULINK Modells Alternativ kann man mit Hilfe des Simulink Library Browsers aus der Toolbox Stateflow ein leeres Chart durch Ziehen mit der Maus in ein bestehendes SIMULINK Modell einf gen Hinweis Zur Ausf hrung eines Charts wird zwingend ein C Compiler ben tigt Eventuell muss dieser in MATLAB zuerst mit dem Befehl gt gt mex setup konfiguriert werden Bedienoberfl che Durch Doppelklick auf das Chart Symbol im SIMULINK Modell wird der graphische Editor von STATEFLOW gestartet siehe Abb 9 1 Mit der Werkzeugleiste auf der linken Seite k nnen die verschiedenen Chart Elemente wie Zust nde States und Transitionen ausgew hlt und mit der Maus auf der Arbeitsfl che platziert werden 9 1 Grundelemente von Stateflow 111 Stateflow chart untitled Chart E lalx File Edit Simulation View Tools Add Help State Tool arsusummeee nmnusnlme gt p
94. exe Werte vom Typ double ak zeptiert Bei vektoriellen Eingangsgr en kann wieder wie beim Fen Block mit Hilfe von Indizes auf einzelne Komponenten zugegriffen werden Fen Bl cke k nnen sehr viel schneller als MATLAB Fcn Bl cke ausgef hrt werden da letztere bei jeder Berechnung erst durch MATLAB interpretiert werden m ssen Die MATLAB Fcn Bl cke m ssen die m File w hrend der Laufzeit mehrmals aufrufen und sind deswegen sehr langsam Es empfiehlt sich an der Stelle Embedded MATLAB Fcn s u zu verwenden da diese kompiliert und in das Modell eingebettet werden 92 4 Einf hrung in Simulink Aufgaben und bungen 4 13 Anwendung von Fen Erstellen Sie mit Hilfe vom Fen Block ein Modell das die Funktion 0 Vt lt 1sec yt sin t u t Vt gt 1sec abbildet Als Eingang u t nehmen Sie ein Chirp Signal mit den Standardparametern 4 14 Steinfall Ein Stein f llt aus einer unbekannten H he Es kann gezeigt werden dass folgende Gleichung die Geschwindigkeit ber der Zeit darstellt Anfangsgeschwindigkeit ist hier Null v t tanh 22 a wobei m 1kg k 1 und g 9 81 gilt Erstellen Sie das analytische Modell in Simulink mit stop time inf und halten Sie die Simulation Block STOP wenn der Stein seine Endge schwindigkeit erreicht hat Geben Sie den Verlauf der Geschwindigkeit mit einem Scope aus Tipp Um zu wissen ob die Endgeschwindigkeit erreicht wurde k nnen Sie v t zeitlich ableiten und mit eine
95. gen wie das System Ausg nge besitzt Dies wurde bei der Initialisierung festgelegt e flag 9 Abschlie ende Tasks Erfolgt einmal zu Simulationsende Hier werden alle abschlie enden Befehle eingegeben z B Variablen aus dem Workspace l schen Eine ausf hrliche Erl uterung finden Sie in der Datei sfuntmpl m die als Vorlage f r selbster stellte S Functions dient Eine einfache S Function ist die Datei sfuncont m die einen Integrierer darstellt Beide Dateien sind im Verzeichnis lt MATLAB gt toolbox simulink blocks enthalten S Functions S Functions sind MATLAB Funktionen oder C C Fortran Funktionen was hier nicht weiter behandelt werden soll mit festgelegter Parameterstruktur mit deren Hilfe beliebige lineare und nichtlineare Differentialgleichungs Systeme in Zustandsraumdarstellung modelliert werden k nnen M file S Functions werden ber den Block Level 2 M file S Function aus der Bibliothek User Defined Functions im Simulink Library Browser eingef gt In der Eingabemaske wird der Funk tionsname der zu verwendenden S Function sowie bei Bedarf die zu bergebenden Parameter eingegeben Eine S Function kann maskiert werden sodass Erl uterungen zu den eingegebenen Parametern und der Wirkungsweise des Blockes hinzugef gt werden k nnen Der Zusatz Level 2 l sst darauf schlie en dass es auch Level 1 M file Functions gibt Diese stammen aus einer lteren MATLAB Version Sie werden zwar noch unterst tzt jedoc
96. grafisch in Stateflow 9 3 Action Language 123 Simulink Functions In Stateflow k nnen Simulinkt Funktionen eingebunden werden Eine Simulink Funktion ist ein Block in dem Simulink Modelle erstellt werden k nnen Eine typische Anwendung daf r ist es Lookup Tables in ein Stateflow Modell zu integrieren Aufgaben 9 5 Paralleler Fertigungsprozess Modellieren Sie einen Fertigungsprozess bei dem ein Bauteil aus zwei Baugruppen B1 und B2 hergestellt wird Die Fertigstellung einer Baugruppe soll ber Simulink getriggert werden und so ein Ereignis ausl sen Erst wenn beide Baugruppen vorliegen kann der Schritt Zusammensetzen durchgef hrt werden Nach Fertigstellung des Bauteils beginnt der Prozess von vorne Testen Sie anschlie end das Modell in einer geeigneten Simulink Umgebung in der ber Schalter die Fertigstellung der Baugruppen an das Stateflow Modell propagiert werden k nnen Tipp Verwenden Sie bei der Modellierung einen Takteingang Ereigniseingang der das Modell periodisch aktiviert 9 6 Erweiterung der Aufzugsteuerung Erg nzen Sie das Modell des Aufzuges um folgende Funktionen e Integrieren Sie einen Hauptschalter mit dem der Aufzug ein bzw ausgeschaltet wird e Erweitern Sie die Steuerung nun derart dass von Simulink ein Ziel Stockwerk vorgegeben wird e Ber cksichtigen Sie den Zustand der T re offen geschlossen Nach Ankunft des Aufzuges ffnet die T re f r eine gewisse Zeitspanne und schli
97. gungsfunktion O 3s 2 0 255 0 1s 1 G s folgt somit gt gt z 3 2 gt gt n 0 25 0 1 1 gt gt sys1 tf z n Tipp Sie k nnen auch bertragunsgfunktionen direkt eingeben wenn Sie davor den Befehl s tf s ausf hren Danach kann beispielsweise direkt G s 1 s 2 im Command Window getippt wer den Bei der Darstellung von dynamischen Systemen durch die Zustandsraumdarstellung wird das Sys temverhalten ber gekoppelte Differentialgleichungen 1 Ordnung beschrieben x Ax Bu y Cx Du und in Form der vier Matrizen A B C und D in MATLAB abgespeichert Mit x wird der Vektor der Zustandsgr en bezeichnet F r MIMO Multi Input Multi Output Systeme k nnen die Ein und Ausgangsgr en u und y auch in vektorieller Form auftreten 6 1 LTI Systeme in Matlab 73 Die Transformation der oben vorgestellten bertragungsfunktion in die Zustandsraumdarstellung d h die Berechnung und Darstellung der vier Matrizen A B C und D aus den Zeilenvektoren des Z hler und Nennerpolynoms des bertragungsfunktions Modells sys1 ist sehr einfach Der Befehl ss muss nur als Argument das vorher definierte Modell sysi erhalten gt gt sys2 ss sys1 Die Eigenwerte der Matrix A kann man sich mit dem Befehl eig sys2 a ausgeben lassen Um die Position der Polstellen Eigenwerte und Nullstellen auf der komplexen Ebene PN Bild graphisch darzustellen kann der Befehl pzmap sys2 verwendet werden Die Berec
98. h Anweisung etwas einschr nkt Die Syntax lautet 24 3 Einf hrung MATLAB switch Ausdruck case Konstantel Anweisung en case Konstante2 Anweisung en otherwise Anweisung en end try catch end Die try catch Anweisung wird dann verwendet wenn nicht sichergestellt werden kann dass ein bestimmter Teil des Programms f r alle Eingaben richtig abl uft bzw wenn sicher ist dass er nicht f r alle Eingaben richtig laufen wird Um nicht alle m glichen F lle durch if Anweisungen abzudecken was auch nicht immer m glich sein wird gibt es die try catch Anweisung Zun chst wird der Teil nach try ausgef hrt und falls ein Fehler auftritt wird der Anweisungsteil nach catch ausgef hrt Falls dann im catch Teil ein Fehler auftritt wird das Programm abgebrochen Die Syntax ist folgenderma en try Anweisungen die im Normalfall ausgef hrt werden catch Anweisungen die im Fall eines Fehlers im try Teil ausgef hrt werden end Aufgaben und bungen 3 19 isEven Schreiben Sie eine Matlab Funktion isEven m welche eine ganze Zahl n bekommt und dann ausgibt ob die Zahl gerade ist R ckgabe von Ja oder nicht R ckgabe von Nein Nutzen sie daf r eine if else Anweisung Hinweis Um zu berpr fen ob eine Zahl durch zwei teilbar ist k nnen Sie die Funktion mod benutzen 3 20 Lebensphase Schreiben Sie ein Programm welches folgenden Text ausgibt In welcher Lebensphase befinden Sie sich jetzt Dr cke
99. h wird in der MATLAB Hilfe dazu geraten f r neue M file S Functions die Level 2 API zu benutzen 4 6 User defined Functions Bibliothek 55 Eine M file S Function muss mindestens die folgenden Methoden enthalten e eine setup Funktion und e eine Output Funktion In der setup Funktion werden die Anzahl der Eingangs und der Ausgangsgr en sowie deren Attribute Dimensionen Datentypen Sample times etc die Sample Time des Blocks die Anzahl der Parameter im S Function Dialog und Ahnliches festgelegt In der Output Funktion wird werden die Ausgangsgr e n berechnet Au er den beiden genannten sowie eventuell weiteren ben tigten Methoden enth lt die S Function nichts anderes als einen Aufruf der setup Funktion Ein einfaches Beispiel f r eine S Function ist die Datei msfen_times_two m im Verzeichnis lt MATLAB gt toolbox simulink simdemos simfeatures Diese S Function verdoppelt das Ein gangssignal entspricht also einem Gain Block mit einem Verst rkungsfaktor von 2 In der setup Funktion werden zun chst die Anzahl der Eingangs und die der Ausgangsgr en jeweils auf 1 gesetzt function setup block Register number of input and output ports block NumInputPorts 1 block NumOutputPorts 1 Die beiden folgenden Funktionsaufrufe sorgen daf r dass Eingangs und Ausgangsport ihre Eigen schaften Dimensionen Datentypen Komplexit t und Sampling Modus vom Modell bernehmen block SetPreCompInpPortInfoToDy
100. hl det benutzen Was schlie en Sie aus den Ergebnissen Obwohl die Determinante der Matrix A Null ist exakte L sung berechnet uns MATLAB trotzdem eine Inverse f r A Um dieses Ergebnis weiter zu berpr fen berechnen Sie das Produkt aus der Matrix und ihrer Inversen gt gt A inv A Das Ergebnis ist offensichtlich nicht gleich der Einheitsmatrix Was ist die Erkl rung daf r Der Algorithmus welcher den Befehl inv aufruft wird auf die Elemente der Matrix A eine Reihe von elementaren Operationen anwenden und gewisse Ergebnisse auswerten m ssen um die Aussage ber die Invertierbarkeit der Matrix treffen zu k nnen Gehen Sie zun chst davon aus dass die folgenden Operationen durchgef hrt werden w rden gt gt x 0 1 gt gt y 1000 gt gt a 0 1 gt b y a ee a e a gt d c a und je nachdem ob d verschwindet oder nicht entscheidet der Algorithmus ob die Matrix A singul r ist oder nicht Wie man leicht nachrechnen kann ist hier d 0 Um nachzupr fen welches Ergebnis MATLAB liefert geben sie die oben angegebenen Operationen im Befehlsfenster ein Anscheinend ist d ungleich Null Also w rde MATLAB an dieser Stelle den Algorithmus nicht abbrechen sondern weiter die Inverse berechnen was zu einem falschen Ergebnis f hren w rde MATLAB hatte uns aber vorher gewarnt Bei der Berechnung der Inversen von A erschien n mlich die Warnung 36 3 Einf hrung MATLAB Warning Matrix is close
101. hnung der Eigenfrequenzen und D mpfungen eines Systems kann mit Hilfe des Befehls damp sys1 erfolgen Der Vollst ndigkeit halber sei noch kurz die Syntax von zpk und frd aufgef hrt F r ausf hrliche Erl uterungen rufen Sie bitte die Hilfe auf gt gt z 0 5 p 1 2 k 3 Nullstelle bei 0 5 Polstellen bei 1 und 2 bertragungsfaktor 3 gt gt sys3 zpk z p K gt gt fgang 3 i 8 4i 2 3i gt gt freq 0 1 1 10 Werte des Frequenzgangs an den Frequenzen 0 1 1 und 10 rad s gt gt sys4 frd fgang freq Allgemein erfolgt eine Umwandlung zwischen den verschiedenen Darstellungsformen eines Modells automatisch indem den Befehlen tf ss oder zpk allein ein in anderer Darstellung definiertes parametrisches Modell nicht frd als Argument gegeben wird Einzige Ausnahme bildet die nicht parametrische Darstellung in frd Sie wird aus den anderen mit einer zus tzlichen Angabe ber den Frequenzvektor erzeugt Umgekehrt k nnen aber die parametrischen Darstellungen nicht mehr aus frd gewonnen werden Die bei den vier Funktionen zur Erzeugung von Modellen angegebenen Argumente k nnen aus den Modellen sys wieder mit Hilfe der Funktionen tfdata ssdata zpkdata und frdata gewonnen werden N heres hierzu in der MATLAB Hilfe Die auf LTI Strukturen gespeicherte Informationen k nnen oft auch durch direkte Zuweisung ve ndert werden so kann man beispielsweise den Z hler von sys1 mit dem Befehl sysi num
102. ht mehr ver ndert werden sollte Aufgaben und bungen 4 24 Erzeugen Sie eine Bibliothek mit dem PT1 Element als Inhalt 60 4 Einf hrung in Simulink 4 8 Diskrete Subsysteme in kontinuierlichen Systemen Um kontinuierliche Systeme in einem Digitalrechner zu berechnen zu k nnen ist zun chst eine Abtastung und eine anschlie ende Digitalisierung n tig Gerade in der Regelungstechnik wird mehr und mehr zu dieser Vorgehensweise bergegangen da dies eine ganze Reihe von Vorteilen bietet e Automatisierungsysteme sind naturgem bin re und digitale Verarbeitungsysteme e Digitale Regler und Algorithmen sind flexibler als analoge PID Regler e Digitale Regler sind driftfrei und unempfindlicher gegen ber Umwelteinfl ssen als Analog regler e Gekoppelte Mehrgr enregelungen sind h ufig nur mit Digitalrechnern realisierbar Zustands regelung e Digitale Systeme sind meistens preiswerter als hochwertige analoge Systeme Erfolgt die Abtastung eines kontinuierlichen System in so kurzen Zeitabst nden dass die sich daraus ergebene Wertfolge den kontinuierlichen Zeitverlauf nahezu genau wiedergibt verh lt sich die digitale Regelung in erster N herung genauso wie eine analoge Realisierung Man kann den Abtastvorgang also ignorieren In der Praxis wird dies aber h ufig nicht m glich sein da Abtast vorg nge aufgrund der Verarbeitungsgeschwindigkeit des Automatisierugssystems nicht beliebig schnell durchgef hrt werden k nnen
103. ht nur symbolische Variable sondern auch symbolische Funktionen lassen sich mit der Toolbox erstellen gt gt syms ab c Deklaration symbolischer Variablen gt gt f a 2 b C Diese Funktionen k nnen nachher mit blichen mathematischen Operationen manipuliert werden Dar ber hinaus ist es m glich Gleichungen aufzul sen und Variablen nummerische Werte oder mathematische Ausdr cke zuzuweisen Substitution von symbolischen Variablen Variablen in einer symbolischen Funktion k nnen anhand des Befehls subs durch Werte ersetzt werden Die Syntax f r das obige Beispiel sieht wie folgt aus gt gt subs f a 3 Es wird a 3 eingesetzt gt gt subs f b c 2 Es wird b c 2 eingesetzt Das erste Argument ist der Funktionsname das Zweite ist der Name der symbolischen Variable die ersetzt werden soll und das Dritte ist die neue Variable Ausdruck oder zugewiesener Wert gt gt subs f a x sind notwendig wenn x nicht deklariert wurde Fine mehrfachige Zuweisung ist hier m glich Die Syntax sieht folgenderma en aus gt gt subs f a b 1 2 c Werden alle symbolische Variablen der Funktion durch einen Wert ersetzt so wird das Ergebnis automatisch als double gegeben gt gt r subs f a b c 1 4 3 gt gt class r Was f r einen Wert ist r double Gleichungen und Gleichungssysteme Die symbolische Toolbox enth lt eine Menge vordefinierter Funktionen zur Verarbeitung von sym bolischen
104. ich ungleich lt lt in MATLAB lt gt gt in MATLAB gt Es gelten die blichen Regeln f r Punkt vor Strichrechnungen Andere Gruppierungen k nnen mit runden Klammern erreicht werden Eine bersicht ber die Operatoren liefert der Befehl gt gt help ops Achtung Die Operatoren beziehen sich auf Matrixberechnungen M chte man den Operator auf die einzelnen Elemente einer Matrix so genannte elementweise Operationen anwenden so muss dem Operator ein Punkt vorangestellt werden gt gt A 1 2 3 4 5 6 7 8 O Matrix gt gt b 5 6 7 Zeilenvektor gt gt b b Spaltenvektor gt gt b b Vektorsumme gt gt b b Skalarprodukt gt gt b b Fehler inkompatible Dimension gt gt b b Elementweise Multiplikation gt gt A A A mal A und gt gt A 2 A hoch 2 sind identisch gt gt A 2 aber nicht hiermit Eingebaute Funktionen Wie schon implizit in den vorigen Abschnitten gezeigt enth lt MATLAB sehr viele Funktionen aus verschiedensten Gebieten Ein Funktionsaufruf besteht aus einem Namen und bergabeparame tern Das Ergebnis kann einer Variablen oder einem Vektor von Variablen zugewiesen werden Eine bersicht ber mathematische Standardfunktionen liefert der Befehl help elfun Zwei sehr n tzliche Funktionen sind size und length size gibt die Anzahl der Zeilen und Spal ten einer Matrix an und erm glicht somit Zeilen von Spaltenvektoren zu unters
105. ieder laden Geben Sie als Eingangssignal auf die bertragungsfunktion einen Sprung engl step und stellen Sie das Ausgangssignal in einem Scope dar Starten Sie die Simulation durch Dr cken des Startsymbols gt in der Symbolleiste oder im Men Simulation gt Start bzw Strg T und berpr fen Sie das Ergebnis Speichern Sie das Modell 4 2 Sinks Laden Sie erstmal das Modell welches Sie in Aufgabe 4 1 erstellt haben e Geben Sie nun als Eingangssignal u eine Sinusschwingung u sin 4t 2 auf das System und sehen Sie sich das Ausgangssignal in einem Scope an e Stellen Sie mit Hilfe des Mur Blocks Ein und Ausgangssignal im gleichen Scope dar und ndern sie den bertragungsfaktor der bertragungsfunktion auf 3 Speichern Sie anschlie Bend das Modell unter dem Namen test2 e ndern Sie das Eingangssignal zu einem Puls der Amplitude 3 der Periode 3s und der Breite von 1s und simulieren Sie das Ergebnis 4 3 Modell eines Autos Erzeugen Sie ein Modell eines Autos das von einer Kraft Fantrieb 3000N beschleunigt wird Der Kraft FAntriev wirken die Kr fte Fruft und Frou f r den Luft und Rollwiderstand entgegen Frun C e Das Auto hat die Masse M 1500kg und einen Luftwiderstandskoefhzienten C 0 638 Der Rollwiderstand Frou betr gt 250N Geben Sie die Position und Geschwindigkeit des Autos mit Hilfe eines Scopes aus 4 4 1 Schwingkreise Erstellen Sie ein System das das Modell eines der in Abbildung 4 8 da
106. iese nderung dann automatisch Je gr er ein Projekt wird desto st rker macht sich dieser Vorteil bemerkbar 8 2 Tutorial die Klasse Mitarbeiter 107 Nachfolgend soll von der zuvor erstellten Klasse Mitarbeiter die Subklasse Praktikant abgeleitet werden Erstellen Sie dazu im Verzeichnis der Klasse Mitarbeiter eine neue Klassendatei MATLAB Men File gt New Class M File und speichern Sie sie unter dem Namen Praktikant m ab Eine Vererbung erreicht man durch ein kleiner als Symbol lt nach dem Klassennamen gefolgt vom Namen der Superklasse Erweitern Sie die Datei au erdem um die Eigenschaften Letzter Ar beitstag und WeitereZusammenarbeitErwuenscht classdef Praktikant lt Mitarbeiter 2 APRAKTIKANT Klasse f r die Verwaltung der Praktikanten 3 Detailed explanation goes here 4 5 properties 6 LetzterArbeitstag 7 WeitereZusammenarbeitErwuenscht 8 end 9 10 methods 11 end 12 3 end Zus tzlich zu den neu definierten Eigenschaften hat die Klasse alle Eigenschaften und Methoden die die Superklasse Mitarbeiter auch hat Die einzige Ausnahme hiervon ist der Konstruktor Damit auch dieser von der Superklasse bernommen wird muss eine Konstruktor Methode mit folgendem Inhalt eingef gt werden 10 methods 11 function obj Praktikant name gs 12 obj obj Mitarbeiter name gs 13 end 14 end 15 16 end Nun sollen aber Praktikanten immer die Gehaltsstufe 0 erhalten Deshalb wird der K
107. izenzen m befindet siehe Abbildung 2 5 2 Schreiben Sie im Command Window lizenzen und dr cken Sie Enter Alternativ k nnen Sie das Skript durch einen Doppelklick auf die Datei im Current Directory Fenster ausf hren 2 2 Borrowing von Lizenzen 9 v Help 0 E Current Directory w Projektarbeit implementierung Matlab120081 112 Energie Regelung 3 Einheiten Vorsteuerung Workspace Command window vorsteuerung gt a ar New to MATLAB Watch this video see Demos or read Getting Started Date Modified fs gt gt Ordner suchen 21x 24 11 08 16 21 el foki 11 11 08 18 21 SOBO SOATI 03 11 08 15 09 03 11 08 15 09 1 24 11 08 13 10 un mexw32 12 11 08 12 05 03 11 08 15 09 GEI 24 11 08 09 03 E MatlabR2007a 03 11 08 15 09 net nstall E Dalai A gt Ordner Matlabr2008b Neuen Ordner erstellen ok _ Abbrechen Abbildung 2 5 Pfad wechseln wo sich lizenzen m befindet 3 Dadurch werden alle Lizenzen der Campuslizenz ausgeliehen und MATLAB beendet Wie kontrolliere ich die ausgeliehenen Lizenzen und das R ckgabedatum Sie k nnen anhand vom LMTOOLS die bereits ausgeliehenen Lizenzen berpr fen und das R ck gabedatum ansehen 1 Falls notwendig starten Sie das Programm LMTOOLS 2 Klicken Sie auf den Knopf List Currently Borrowed Features In dem Fenster werden dann die ausgeliehenen Produkte aufgelistet LMTOOLS by Macrovision Corporation http www
108. k Umgebung die den Speicherzustand des FlipFlop ausgibt ein einfaches Umschalten der Eing nge erm glicht und eine periodische Taktung vornimmt 9 3 Aufzugsteuerung Erstellen Sie ein diskretes Modell f r einen Aufzug ber vier Stockwerke UG EG Stockl Stock2 Sehen Sie f r jedes Stockwerk einen entsprechend benannten Zustand vor Die Steuerung des Aufzuges soll zun chst vereinfacht erfolgen Erzeugen Sie mit Hilfe von Schaltern in Simulink die Ereignisse Rauf und Runter welche einen entsprechenden Zustands wechsel bewirken Die aktuelle Position des Aufzuges soll an Simulink bergeben werden Testen Sie anschlie end das Modell 9 4 Dreitank F r den in Abb 9 9 dargestellten Dreitank sollen die F llh hen in den drei Fl ssigkeitsbeh ltern zur Visualisierung an einem Steuerpult durch jeweils drei Lampen dargestellt 118 9 Einf hrung in Stateflow werden welche die Zust nde Leer Normal und berlauf anzeigen Erzeugen Sie das Zustandsdia gramm f r Tank 1 Beschriften Sie die Transitionen mit Kurznamen f r die m glichen Ereignisse Tank 1 beginnt berzulaufen Tank h rt auf berzulaufen etc Die Beschriftungen d rfen jedoch keine Leerzeichen oder Umlaute enthalten Erzeugen Sie diese Ereignisse ber zu defi nierende Triggereing nge zu Stateflow die Sie w hrend die Simulation l uft testweise unter Simulink triggern Kon B L p P K A Abbildung 9 9 Dreitank 9 2 Weitere Strukturen und F
109. llt werden Das ist n tzlich um grafische Benutzeroberfl chen dynamisch in Abh ngikeit vorheriger Benut zereingaben oder Berechnungen zu generieren Zun cht wird mit dem Befehl figure ein neues Fenster ge ffnet und anschlie end mit der Funktion uicontrol die Bedienelemente platziert Als Parameter weren der Funktion Wertepaare berge ben die den Praperties aus dem Property Inspector entsprechen Als R ckgabewert liefert die Funktion einen Zeiger auf das erzeugte Bedienelement Der folgende Aufruf erzeugt einen Push Button mit dem Text OK an der Position x 10 und y 10 mit der Breite 50 und der H he 20 Die Positionsangaben sind jeweils in Pixel wobei sich der Punkt x 0 und y 0 an der linken unteren Ecke des Fensters befindet gt gt handle uicontrol style pushbutton String OK position 10 10 50 20 Der Parameter style bestimmt welche Art Bedienelemt erzeugt wird M glich sind e checkbox e edit e frame e listbox e popupmenu e pushbutton e radiobutton e slider e text e togglebutton Mit dem Parameter callback kann beispielsweise einem Push Button ein oder mehrere Befehle zugewiesen werden die bei dessen Bet tigung ausgef hrt werden sollen Dazu werden die Befehle einfach als String bergeben 98 7 GUI Programmierung gt gt handle uicontrol style pushbutton callback a sat1 disp a Aufgaben und bungen 7 7 GUI ohne GUID
110. m Fen Block berpr fen ob der Betrag sehr klein ist z B 1073 Eingebettete Matlab Funktionen Mit Hilfe des Embedded MATLAB Function Block lassen sich MATLAB Funktionen direkt in SIMU LINK einbetten d h es wird nicht einfach eine Funktion aus MATLAB benutzt die beispielsweise als m File vorliegt sondern die Funktion wird in das SIMULINK Modell integriert und mit dem Modell kompiliert was eine sehr viel schnellere Ausf hrung erm glicht Die Anzahl der Ein und Ausg nge des Blocks wird dabei durch die Funktion bestimmt es sind also auch mehrere Ein und Ausg nge m glich Die Syntax von diesen Funktionen sieht folgenderma en aus function y1 y2 Funktionsname ul u2 p1 p2 This block supports the Embedded MATLAB subset See the help menu for details Hier sind y Ausgangsgr en u Eingangsgr en und p Parameter Die Ein Ausgangsgr en k nnen auch vektorielle Form haben Somit lassen sich sehr viele statische Systeme darstellen auch Systeme mit nicht linearem Verhalten Die eingebetteten Matlab Funktionen sind aber nicht geeignet dynamische Systemen abzubilden Falls das zu modellierende System dynamische Eigen schaften Differentialgleichung aufweist m ssen z B s Function Bl cke angewendet werden Die Parameter werden wie Eingangsgr en nach dem Funktionsnamen definiert und m ssen nach her im Embedded MATLAB Editor s Abbildung 4 10 als solche gekennzeichnet werden Zur Simulation k nnen sp ter
111. m Signal durch z B aliasing nicht verloren geht Eine Regel aus der Praxis besagt dass man die kleinste Zeitkonstante im System als Referenzpunkt nehmen soll und eine Abtastzeit Typ lt Tmin 5 10 ausw hlt Anhand des Befehls pzmap kann man berpr fen dass die kleinste Zeitkonstante des Systems sys1 1 55 betr gt Dementsprechend w re hier eine Abtastzeit von 0 2s sinnvoll gt gt sysid c2d sysi Tabt gt gt sys2d c2d sys2 Tabt gt gt Tabt2 2 Abtastzeit Tabt2 2s gt gt sys1d2 d2d sysid Tabt2 gt gt sysilc d2c sysid Vergleiche mit sysi Warum unterscheiden sich die beiden zeitdiskreten Modelle sysldd und sysld sowie sys2dd und sys2d Totzeitbehaftete Systeme Totzeitsysteme k nnen bei einem Modell sys mit Hilfe der Eigenschaft iodelay und anschlie Bender Angabe der Dauer der Totzeit eingef hrt oder ver ndert werden Wenn das Modell sys bereits existiert kann diese Eigenschaft mit dem Befehl set ver ndert werden Existiert es noch nicht wird die Eigenschaft bei der Erzeugung mit angegeben Im zeitdiskreten Fall gibt die Totzeit die Anzahl der Abtastschritte an sie muss also ganzzahlig sein gt gt sysitot sysl gt gt set sysi1 ioDelay 0 5 sysitot Totzeit von 0 5s in sysi oder gt gt sysl ioDelay 5 direkte Zuweisung gt gt sys2dtot sys2d Totzeit von 4 Abtastschritten gt gt sys2dtot ioDelay 4 sys2dtot in sys2d 6 2 Koppl
112. macrovision com Fl x File Edit Mode Help Service License File System Settings Utiities Start Stop Reread Server Status Server Diags Config Services Borrowing To borrow licenses with applications and licenses that support borrowing F 1 Enter the date and optionally time you want the licenses to be retumed 2 Use all applications you want to borrow while you re on the network 9 Disconnect Borrow expires on the date and time specified or end of day if no time is specified Vendor Name al Set Borrow Expiration Retum Date ddmmmyyyy Retum Time hh mm List Curently Borowed Features Don t Borrow Anymore Today E Return Borrowed Licenses Early Display Name Feature Name optional No FLEXIm Services defined use Configure Services to add services Abbildung 2 6 Kontrollieren der ausgeliehenen Produkte Wie nutze ich jetzt die ausgeliehenen Lizenzen Sie k nnen jetzt MATLAB offline starten und alle Produkte f r den eingegebenen Zeitraum be nutzen Sollten Sie Probleme beim Starten von MATLAB haben kann das daran liegen dass Sie noch zum Server verbunden sind Trennen Sie kurz Ihren Rechner vom Netz um das Problem zu beheben Mehr Informationen dazu finden Sie in den FAQ auf der Webseite der Campuslizenz 10 2 Installation und Borrowing Was kann man noch mit LMTOOLS machen Es besteht beispielsweise die M glichkeit ausgeliehene Lizenzen fr her zur ckzugeben Dar
113. mit MuPAD Funktionen f r allgemeine Teilbereiche der Mathematik wie die Differenzial und Integralrechnung oder die Lineare Algebra sowie f r Spezialgebiete wie die Zahlentheorie und die Kombinatorik 5 1 Symbolische Objekte Symbolische Variablen M chte man eine einzelne Variable deklarieren kann der Befehl sym wie folgt benutzt werden gt gt a sym al Der Befehl syms erm glicht das Deklarieren mehrerer Variablen die sich wie in der Mathematik verarbeiten lassen gt gt syms xy Z gt gt xtxty Neben einzelnen Variablen lassen sich auch Arrays Matrizen und Vektoren deklarieren und k nnen durch bliche Operationen verarbeitet werden gt gt syms all al2 a21 a22 gt gt A all al2 a21 a22 gt gt A 2 Standardm ig werden die symbolische Variablen als komplex deklariert Die Erzeugung realer oder positiver Variablen kann wie folgt gemacht werden gt gt syms x real gt gt syms y positive Symbolische Zahlen Mit der symbolischen Toolbox k nnen Zahlen in symbolische Objekte konvertiert werden F r diese Konvertierung wird auch der Befehl sym benutzt gt gt a sym 2 gt gt sqrt a 5 2 Symbolische Funktionen 65 Der numerische Wert einer symbolischen Zahl l sst sich dann mit dem Befehl double a gewinnen Dank solcher symbolischen Zahlen kann man mit Bruchzahlen exakte Ergebnisse erhalten gt gt sym 2 sym 5 Effizienter mit sym 2 5 5 2 Symbolische Funktionen Nic
114. mit Windows ist jedoch unabh ngig von der ver wendeten MATLAB Version Wenn Sie bereits MATLAB R2009b verwenden haben Sie zus tzlich die M glichkeit die License Borrowing UI von MATLAB zu verwenden unabh ngig vom Betriebs system Falls Sie eine ltere MATLAB Version in Kombination mit einem anderen Betriebssystem als Windows verwenden k nnen Sie eine entsprechende Dokumentation in borrowing pdf finden Diese Datei befindet sich auch auf der Homepage der Campuslizenz www matlab rwth aachen de unter dem Namen Guide to License Borrowing Borrowing mit LMTOOLS nur Windows LMTOOLS ist ein graphisches User Interface zum License Management und kann verwendet wer den um das Borrowing einzurichten Installation von LMTOOLS Wenn Sie Matlab noch nicht installiert haben oder auf die neueste MATLAB Version updaten k nnen Sie LMTOOLS License Manager direkt bei der MATLAB Installation ausw hlen und mitinstallieren siehe Abbildung 2 2 Dieses Tool wird in der Standardinstallation nicht installiert Falls Sie aber Matlab schon installiert haben und das Tool nachinstallieren m chten dann m ssen Sie nur License Manager ausw hlen sodass nur dieses Tool hinzugef gt wird und nicht die anderen Pakete installiert werden m ssen siehe Abbildung 2 3 2 2 Borrowing von Lizenzen 7 MATLA B Select products to install SSIMULINK R2008b y License Manager 11 4 A informatics Toolbox 3 2 ommunications Toolbox 4 2
115. n Befehl der Linksdivision A b Dieser beruht auf dem Gauss Algorithmus welcher keine Invertierung einer Matrix ben tigt und generell stabil ist Im Fall berbestimmter Gleichungssysteme liefert er die im Sinn der kleinsten Fehlerquadrate least squares beste L sung 3 Bei Matrizen welche besondere Eigenschaften besitzen z B symmetrisch oder positiv definit sind u a der Fall bei Gleichungssystemen in der Parametrischen Identifikation von linearen zeitinvarianten Systeme werden Algorithmen benutzt welche diese Eigenschaft in Betracht ziehen z B Cholesky Verfahren Fazit Ziel dieses Abschnitts war nicht Ihnen Angst vor dem Umgang mit MATLAB einzujagen MATLAB liefert bei den meisten Berechnungen richtige Ergebnisse Das Ziel war vielmehr auf gewisse Aspekte der numerischen Mathematik hinzuweisen das Be wusstsein daf r zu sch rfen und auch die M glichkeit zu geben mit MATLAB Warnungen in dieser Richtung umzugehen Aufgaben und bungen 3 41 Berechnen Sie die L sung des Gleichungssystems 1 x 2 22 3 23 402 4 x 2 z2 1 x3 521 T T1 5 T2 9 T3 638 38 4 Einf hrung in Simulink 4 Einf hrung in Simulink SIMULINK ist ein Programm zur numerischen L sung linearer und nichtlinearer Differentialglei chungen die das Verhalten physikalischer dynamischer Systeme durch ihre mathematischen Mo delle beschreiben Dazu besitzt SIMULINK eine graphische und blockorientierte Oberfl che mit deren Hilfe
116. n MATLAB mit folgenden Befehlen aufgebaut e for end Die for Schleife eignet sich besonders dann wenn die Gesamtzahl der Wiederholungen von vornherein feststeht Dementsprechend ist sie als typische Z hlschleife vorgesehen Ihre Syntax lautet for Initialisierung Schrittweite Endwert Anweisung en end Wird keine explizite Schrittweite vorgegeben so verwendet MATLAB die Schrittweite 1 e while end Bei einer while Schleife wird der Schleifenrumpf solange wiederholt bis die logische Ope ration einen falschen R ckgabewert liefert Wird der Inhalt der logischen Operation nicht im wiederholten Teil des Programmcodes ver ndert ist diese Kontrollstruktur meist nicht die richtige weil diese Schleife sonst kein einziges Mal durchlaufen wird oder unendlich lang l uft f r Endlosschleifen wird oft while 1 benutzt while Bedingung Anweisung en end Aufgaben und bungen 3 22 Vektoren vs Schleifen Schreiben Sie ein Skript das die Werte der untenstehenden Funk tion y t in Abh ngigkeit von t pi pi 1e4 4 pi berechnet Die Werte sollen zun chst nur mit if und for berechnet und in einem Vektor gespeichert werden 0 V t lt 0 yt 4 t vote 0 1 sin 2n t 1 V t gt 1 26 3 Einf hrung MATLAB In demselben Skript wiederholen Sie jetzt die Aufgabe anhand von Vektoroperationen und ermit teln die ben tigte Rechenzeit mit den Befehlen tic und toc Der Befehl tic startet eine Uhr der Befehl toc stoppt die Uhr und gibt
117. n Sie Dr cken Sie wenn Sie zw O und 12 Jahre alt sind wenn Sie zw 13 und 21 Jahre alt sind 1 2 Dr cken Sie 3 wenn Sie zw 22 und 59 Jahre alt sind 4 Dr cken Sie wenn Sie lter als 60 Jahre sind Nach der Nutzereingabe input soll mit Hilfe von switch case eine entsprechende Meldung angezeigt werden Sie Sie Sie Sie sind noch ein Kind sind ein Teenager sind ein Erwachsener sind ein Senior Betrachten Sie auch den Fall einer falschen Eingabe und geben Sie eine passende Fehlermeldung aus 3 7 Schleifen 25 3 21 Laden Schreiben Sie mit Hilfe von try catch end eine Funktion Laden name die eine mat Datei laden soll und die Fehlermeldung Fehler Datei nicht vorhanden ausgibt falls diese Datei nicht vorhanden ist Versuchen Sie jetzt eine nicht existierende Datei zu laden Laden mich gibt_es nicht mat Zum Vergleich versuchen Sie die nicht existierende Datei mich_gibt_es_ nicht mat direkt mit dem Befehl load zu laden 3 7 Schleifen Eine Schleife ist wie die bedingten Anweisungen eine Kontrollstruktur in Programmiersprachen Sie wiederholt einen Code Block den so genannten Schleifenrumpf so lange wie eine Laufbedingung g ltig ist oder bis eine Abbruchbedingung eintritt Schleifen deren Laufbedingung immer erf llt ist oder die ihre Abbruchbedingung niemals erreichen und Schleifen die keine Abbruchbedingungen haben sind Endlosschleifen Die Schleifen werden i
118. n der Klasse zwei weitere Methoden hinzugef gt Die erste zeigeAktuellesMonatsgehalt berechnet aus der Gehaltsstufe des Mitarbeiters sein Monatsgehalt Mit der zweiten befoerdere wird die Gehalsstufe des Mitarbeiters um 1 erh ht classdef Mitarbeiter 2 MITARBEITER Klasse f r die Verwaltung der Mitarbeiter 3 Hier k nnte eine ausf hrlichere Erkl rung stehen 4 5 properties 6 Name 7 Gehaltsstufe 8 end 9 10 methods 11 function obj Mitarbeiter name gs Konstruktor 12 if nargin 0 nargin ist die Anzahl der Parameter 13 obj Name unbekannt 14 disp Bitte ndern Sie den Namen des Mitarbeiters 15 else 16 obj Name name Inargin gibt die Anzahl der vom Benutzer bergebenen Parameter zur ck und kann in jeder Funktion verwendet werden 8 2 Tutorial die Klasse Mitarbeiter 103 17 if nargin gt 1 18 obj Gehaltsstufe gs 19 end 20 end 21 end 22 function zeigeAktuellesMonatsgehalt obj 23 gehalt 1500 obj Gehaltsstufe 300 24 disp Das aktuelle Monatsgehalt von obj Name 25 betr gt num2str gehalt Euro 26 end 27 function obj befoerdere obj 28 if obj Gehaltsstufe lt 5 29 obj Gehaltsstufe obj Gehaltsstufe 1 30 disp Bef rderung ist erfolgt 31 else 32 disp Bef rderung nicht m glich 33 end 34 end 35 end 36 37 end Der Inhalt der Funktionen ist selbsterkl rend Zu beachten ist nur dass die
119. n der Reihenfolge kein Unterschied Weitere Transitionstypen Neben den erl uterten einfachen Transitionen gibt es in der Werkzeugleiste weitere Transitionsty pen Die Standardtransition engl default transition s Abb 9 4 legt fest welcher Zustand bei erstmaliger Ausf hrung eines Charts aktiv ist Diese Festlegung ist zwingend erforderlich weil grunds tzlich zu jedem Zeitpunkt der Ausf hrung genau ein Zustand aktiv sein muss innerhalb einer Hierarchieebene Dazu wird der entsprechende Knopf in der Werkzeugleiste gedr ckt und dann der Rand des gew nschten Zustandes angeklickt Neben den genannten Transitionstypen gibt es noch die innere Transition welche im Abschnitt 9 2 erl utert wird Hinweis Es k nnen auch mehrere Standardtransitionen innerhalb einer Hierarchieebene verwen det werden Dabei ist aber mit Ereignissen oder Bedingungen sicherzustellen dass jeweils genau eine der Standardtransitionen g ltig ist 9 1 Grundelemente von Stateflow 113 On switch_off Off switch_on Abbildung 9 4 Chart mit Standardtransition Verbindungspunkte Ein weiteres Element ist der Verbindungspunkt engl connective junction Mit Verbindungs punkten lassen sich komplexere Transitionen durch Zusammenf hrung und Verzweigung erzeugen Damit lassen sich Verzweigungen Fallunterscheidungen zustandsfreie Flussdiagramme verschie dene Schleifen Selbstscheifen u v m erzeugen siehe Abb 9 5 Variablendekla
120. n geordnet in sogenannten Toolbo xen angeboten So existieren Toolboxen z B zur Signalverarbeitung Identifikation Reglerentwurf aber auch zur Statistik Optimierung Die Liste ist sehr umfangreich und w chst st ndig Im Bereich der Regelungstechnik ist die Basis die Control System Toolbox die hier auch vorge stellt werden soll Weitere am Institut f r Regelungstechnik vorhandene Toolboxen von Bedeutung sind ohne Anspruch auf Vollst ndigkeit die Model Predictive Control Toolbox Signal Pro cessing Toolbox System Identification Toolbox Optimization Toolbox LMI Control Toolbox Robust Control Toolbox Wavelet Toolbox und Neural Network Toolbox 6 1 LTI Systeme in Matlab Die Control System Toolbox kennt neue Datenstrukturen zur Darstellung linearer zeitinvarianter Systeme Linear Time Invariant LTI Systems Sie werden ber die drei parametrischen Funk tionen tf bertragungsfunktion Transfer Function zpk Pol Nullstellen bertragungsfaktor Zero Pole Gain ss Zustandsraum State Space und die nichtparametrische Funktion frad Fre quenzgang Frequency Response Data erzeugt Im folgenden werden allein zur besseren bersicht die entsprechend definierten Variablen sys genannt Zeitkontinuierliche Systeme Die bertragungsfunktion in MATLAB ben tigt als Argumente f r tf die Angabe zweier Zeilenvek toren die die Koeffizienten von Z hler und Nennerpolynom in fallender Potenz von s enthalten F r eine bertra
121. n von Signalen z B Muz Demux Bl cke zur Erzeugung und Auswertung von Signalbussen Schalter Switches Goto und From Bl cke etc e Sinks enth lt Elemente zur Ausgabe zum Darstellen und zum Speichern von Signalen Z B k nnen mit dem Block To Workspace Simulationsergebnisse in den MATLAB Workspace ge schrieben werden e Sources enth lt Bl cke mit m glichen Eingangssignalen Neben vordefinierten Signalformen z B Step Sprungfunktion Constant k nnen u a auch Variablen aus dem Workspace mit beliebigen in Matlab erzeugten Werten als Eingangssignal angegeben werden From Workspace e User Defined Functions In dieser Bibliothek liegen Bl cke mit denen eigene Funktionen realisiert werden k nnen siehe auch Abschnitt 4 6 Meistens werden andere Parameter als diejenigen ben tigt die standardm ig bei den SIMULINK Bl cken eingetragen sind Zum ndern der Parameter wird ein Block mit einem Doppelklick ge ff net Hier ist auch die Hilfe html zu einzelnen Bl cken enthalten Als Parameter k nnen MAT LAB Variablen aus dem Workspace eingegeben werden Sinnvollerweise werden alle in einem Modell ben tigten Variablen entweder in einem mat File gespeichert das vor der Simulation geladen wird oder durch Ausf hren eines m Files erzeugt das die entsprechenden Definitions Befehle enth lt Durch einen Doppelklick auf Verbindungen kann diesen ein Name gegeben werden Der Name eines Blocks wird durch einfaches Anklicken d
122. namen soll hierbei ein d vorangestellt werden Die Abtastzeit betr gt 0 1s Vergleichen Sie die Sprungantworten von G2 und dG2 in einer figure Ist die Abtastzeit ausreichend klein Wandeln Sie G2 in ein zeitdiskretes Modell fdG2 mit einer Abtastzeit von 1s um und ver gleichen Sie die Sprungantworten der drei Systeme Ist die Abtastfrequenz f r fdG2 richtig Warum Plotten Sie die Bode Diagramme der drei Systeme und begr nden Sie die Auswahl der besten Diskretisierung dG2 oder fdG2 1 Verkopplung von LTI Modellen Fassen Sie die LTI Modelle G1 aus Aufgabe 6 1 und G3 amp 4 zu einem LTI Modell GS S s 2 wie Strecke zusammen Ist die Strecke stabil Hat das System einen statischen Verst rkungs faktor von 1 Erstellen Sie einen PI Regler GPI mit den Parametern Ki 3 und Kp 3 75 Berechnen Sie die bertragungsfunktion des geschlossenen Regelkreises GC und berpr fen Sie anhand eines PN Bildes ob er stabil ist Plotten Sie die Sprungantworten von GS und GC zusammen Ist das System durch die Regelung schneller geworden Ist die station re Regelabweichung noch vorhanden Warum Modelleigenschaften Ermitteln Sie f r die einzelnen LTI Modelle aus Aufgabe 6 1 die folgenden Werte a b C Statische Verst rkung Eigenwerte Nullstellen 6 5 Control System Toolbox in Simulink 83 d Nat rliche Frequenzen und D mpfungen e Beruhigungszeit und Endwert der Ausgangsgr
123. namic block SetPreComp0utPortInfoToDynamic Das nachfolgende Schritt ist immer dann n tig wenn das Ausgangssignal eine unmittelbare Funk tion vom Eingangssignal ist block InputPort 1 DirectFeedthrough true Als n chstes wird festgelegt dass die Sample Time vom Eingangssignal bernommen wird block SampleTimes 1 0 Die n chsten beiden Funktionen k nnen sind f r dieses Beispiel nicht notwendig und werden nicht weiter beachtet Der letzte Funktionsaufruf innerhalb der setup Funktion ist jedoch untentbehrlich Hier wird fest gelegt dass die Berechnung des Ausgangssignals in der Funktion Output zu finden ist block RegBlockMethod Outputs Output Die Output Funktion enth lt nur eine Zeile in der das Ausgangssignal aus dem Eingangssignal berechnet wird function Output block block OutputPort 1 Data 2 block InputPort 1 Data 96 4 Einf hrung in Simulink Als Vorlage f r eigene S Functions k nnen Sie die Datei msfuntmpl m oder msfuntmpl_basic m aus dem Verzeichnis lt MATLAB gt toolbox simulink simdemos simfeatures verwenden In die sen sowie in der SIMULINK Hilfe finden Sie weitere Erl uterungen Aufgaben und bungen 4 18 Doppelintegrierer als S Function ffnen Sie sfuncont m Befehl open sfuncont spei chern Sie die Datei als doppint m in Ihrem Arbeitsverzeichnis und simulieren Sie die bergangs funktion mit Hilfe des Blocks s function ndern Sie anschlie end die Funkti
124. nen dann die Geschwindigkeiten in Kugelkoordinaten r 6 zur kartesischen Koordianten transformiert werden 7 J 19 Damit die Trasnformation eindeutig ist muss die Matrix J invertierbar det J 0 sein Die Determinante der Matrix liefert einen komplizierten Ausdruck welcher mit dem Befehl simple vereinfacht werden kann gt gt DetJ simple det J Die Jacobi Matrix kann auch verwendet werden um Ableitungen mit Hilfe von der Kettenregel symbolisch darzustellen So kann man beispielsweise die Geschwindigkeit der Koordinate x in Abh ngigkeit von der Geschwindigkeiten in Polarkoordinaten berechnen t Jx r 0 0 gt gt sms r l f vr vl vf Position und Geschwindigkeitskoordinaten gt gt vx jacobian r cos l cos f r 1 f vr vl vf 5 5 Graphische Darstellungen Die Symbolic Toolbox von Matlab besitzt ebenfalls eine Reihe von graphischen M glichkeiten e Plotten von expliziten Funktionen e Plotten von impliziten Funktionen e Plotten von 3D Kurven e Plotten von Fl chen Plotten von expliziten und impliziten Funktionen Der Befehl zum Plotten von Funktionen in 2D lautet ezplot Die Beschriftung erfolgt genauso wie mit blichen plots gt gt syms X gt gt f sin x gt gt ezplot f gt gt hold on gt gt xlabel x axis gt gt ylabel y axis gt gt title Explicit function sin 2 x gt gt grid on 5 6 Transformationen 69 M chte man jetzt die Funktion nur im
125. nes Zeilenvektors zwischen zwei Werten mit gleichm iger Verteilung gt gt linspace 1 Element letztes Element Anzahl von Elementen 3 4 Vektoren und Matrizen 19 e Erzeugen eines Zeilenvektors zwischen 10 und 10 mit logarithmischer Verteilung gt gt logspace x1 x2 Anzahl von Elementen Aufgaben und bungen 3 11 Erzeugen von Vektoren Probieren Sie folgende Befehle aus und versuchen Sie die Er gebnisse nachzuvollziehen gt gt 1 1 5 gt gt 1 10 gt gt linspace 0 10 5 gt gt logspace 1 2 4 3 12 Gleich verteilte Zahlenfolge Erzeugen Sie mit Hilfe des Befehls linspace eine Zahlenfolge mit 22 Werten zwischen 1 5 und 9 3 13 Logarithmisch verteilte Zahlenfolge Erzeugen Sie eine Zahlenfolge mit logarithmischer Verteilung und 10 Werten zwischen 0 1 und 5 5 Hinweis Den Logarithmus zur Basis 10 berechnet man mit dem Befehl 10g10 Variablen Wie in jeder Programmiersprache k nnen auch in MATLAB Variablen definiert werden Die Zuwei sung erfolgt mit dem Gleichheitszeichen Jede Zeichenfolge die mit einem Buchstaben beginnt und keine Sonderzeichen enth lt darf als Variablenname verwendet werden Gro und Kleinschrei bung wird unterschieden MATLAB ben tigt keine vorangehenden Deklarationen d h eine Variable wird automatisch neu deklariert wenn sie auf der linken Seite einer Zuweisung verwendet wird Auf der rechten Seite d rfen nur bereits bekannte Variablen oder Konstanten verwendet
126. nktionen 22222 a a 5 3 Algebraische Gleichungen 2 22 2 2 e 5 4 Infinitesimalrechnung in Matlab aoaaa a Inhaltsverzeichnis 5 5 Graphische Darstellungen 2 2 2 2 on on nn nn 5 6 Transform tionen za aa ice ah de e G a ae e AIE a a a a aa 6 Control System Toolbox 6 1 LTI Systeme in Matlab oaoa aaa 6 2 Kopplung von Systemen aoaaa nn 6 3 Graphische Darstellungen 2 2222 Coon nn nn 6 4 Der LTI Viewer das SISO Tool und Reglerentwurf 2 2 2 2 2 nn nn 6 5 Control System Toolbox in Simulink 22 2 2 Cm nommen 7 GUI Programmierung Tel GUIDE 2 200 Sa han ee ee ae a e ee a ae ee 1 2 Callbacks s mem u 0 un nie u dee a a er a a a ar ee E 7 3 GUls ohne GUIDE oo nn nn 8 Objektorientierte Programmierung 8 1 Grundbegriffe der objektorientierten Programmierung oaoa 8 2 Tutorial die Klasse Mitarbeiter 2 2 2 oo oo non 9 Einf hrung in Stateflow 9 1 Grundelemente von Statefllow 2 2 Cm m m nn nn 9 2 Weitere Strukturen und Funktionen 2 Hm m nn nn 9 3 Action Language 2 Cm m nn nn 4 2 Installation und Borrowing 1 Einleitung MATLAB ist eines der am meisten verbreiteten Programme zum wissenschaftlichen numerischen Rechnen insbesondere in der Regelungstechnik Neben den numerischen Funktionalit ten bietet MATLAB auch M glichkeiten zur graphischen Darstellung und zum Programmieren eigener Skrip te Es handelt sich um ein interaktives System mit Matrizen als Basis Datenel
127. ntrol System Toolbox 8 2 rve Fitting Toolbox 1 2 2 ta Acquisition Toolbox 2 13 tabase Toolbox 3 5 er Design Toolbox 4 4 ed Point Toolbox 2 3 Fuzzy Logic Ti Auges ploci seh 2 05 C Space available 4724 MB Space required 8 MB The MathWorks MIETE Abbildung 2 3 Nachinstallation von LMTOOLS Wo befindet sich LMTOOLS Sie finden das Tool in MATLAB flexlm oder in MATLAB bin win32 wobei MATLAB f r das gew hlte Installationsverzeichnis steht in der Standardeinstellung z B C Programme MATLAB R2008b Wie richte ich das Borrowingverfahren ein Sie m ssen eine Verbindung zum Netz der RWTH haben um das Verfahren durchf hren zu k nnen 1 F hren Sie das Programm Imtools exe aus das im oben genannten Verzeichnis liegt 2 W hlen Sie den Borrowing Tab im LMTOOLS Dialogfeld aus LMTOOLS by Macrovision Corporation http www macrovision com jol xi Fie Edt Mode Help Service License File System Settings Utiities Start Stop Reread Server Status Server Diags Config Service Borowina D To borrow licenses with applications and licenses that support borrowing 1 Enter the date and optionally time you want the licenses to be retumed 2 Use all applications you want to borrow while you re on the network 2 Disconnect Borrow expires on the date and time specified or end of day if no time is specified _ 0 ET m Retum Date dd mmm yyyy Retum Time hh mm List Currently Borrowed Featu
128. on in einen Dop pelintegrierer G s 4 ndern Sie die Funktion von doppint sodass ein bertragungsfaktor als zus tzlicher Parameter angegeben wird Maskieren Sie den Block in SIMULINK und geben Sie den Parameter als Variable mit dem Erkl rungstext bertragungsfaktor an 4 19 Das Auto als S Function ffnen Sie das Modell aus Aufgabe 4 3 Programmieren Sie dazu eine S Function zur parallelen Simulation des Autos Geben Sie Frou M und C als Parametern der S Funktion ein Vergleichen Sie mit Hilfe von Scopes die Verl ufe beider Modelle Tipp Sie brauchen die Zustandsraumdarstellung des Autos v X 2 a v X 1 m Fried Frou C v 4 20 PT1 Glied als S Function Programmieren Sie eine S Function zur Simulation eines PT1 Elements Die Zustandsdarstellung des PT1 lautet 4 21 Inverses Einzelpendel als S Function In dieser Aufgabe soll das dynamische Verhalten des inversen Einzelpendels siehe Abb 4 11 als S Function modelliert werden Mit Hilfe von S Functions k nnen Systeme sehr einfach anhand der zugeh rigen linearen bzw nicht linearen DGL Systeme in Zustandsraumdarstellung beschrieben werden Die allgemeine Form eines nicht linearen DGL Systems in Zustandsraumdarstellung stellt sich wie folgt dar x f x u y f x u wobei x den Zustandsgr envektor u den Eingangsgr envektor und y den Ausgangsgr envektor darstellt Das inverse Einzelpendel l sst sich durch die translatori
129. onstruktor entsprechend angepasst 10 methods 11 function obj Praktikant name 12 obj obj Mitarbeiter name 0 13 end 14 end 15 16 end Somit muss bei der Erstellung eines neuen Objekts nur noch der Name des Praktikanten als Parameter bergeben werden 108 8 Objektorientierte Programmierung berladen von Funktionen und Operatoren Abgeleitete Klassen erben die Methoden ihrer Superklasse n Wird eine Methode in der abge leiteten Klasse neu definiert spricht man vom berladen der Funktion Au erdem k nnen auch MATLAB Funktionen innerhalb einer Klasse neu definiert werden Wird eine solche Funktion auf ein Objekt angewendet erkennt MATLAB dies und verwendet die Klassenmethode statt der MATLAB Funktion Dar ber hinaus k nnen Operatoren berladen werden So kann etwa in ei ner Polynomklasse der Operator als die Addition der einzelnen Elemente der zu addierenden Polynome definiert werden Als Beispiel wird die MATLAB Funktion sum die auf Mitarbeiter Objekte angewendet einen Fehler hervorruft berladen so dass sie die Summe der Geh lter der als Parameter bergegebenen Mitarbeiter zur ckgibt 35 function summe sum varargin beliebig viele Parameter 36 summe 0 37 for i 1 nargin 38 summe summe varargin i Gehalt 39 end 40 end Die Anwendung sieht wie folgt aus gt gt mi Mitarbeiter Max Mustermann 2 Gehalt 2100 gt gt m2 Mitarbeiter Erika Musterfrau 3
130. oolbox 6 5 Control System Toolbox in Simulink In der Bibliothek Control System Toolbox von Simulink befindet sich der Block LTI System der die M glichkeit bietet LTI Modelle tf ss in Simulink einzubinden Dar ber hinaus k nnen unter Tools Control Design Simulink Modelle diskretisiert analysiert und linearisiert werden Hier wird nur kurz auf die Linearisierung von Simulink Modellen eingegangen weil diese nachher erm glicht die linearisierten Systeme in den Workspace zu exportieren und dort die bereits in den vorherigen Abschnitten behandelten Befehle zur Analyse und Entwurf anzuwenden 2 Als Beispiel soll das nichtlineare System amp x x u verwendet werden Linearisert man diese Gleichung analytisch im Arbeitspunkt x 0 so erh lt man t rx u Die entsprechende 1 s 1 bertragungsfunktion ist G s also ein PT1 Glied mit einer Zeitkonstante von 1s xp x 2 x u Cut Integrator Step Copy Delete Highlight To Source Highlight To Destination Signal amp Scope Manager Create amp Connect Viewer gt Signal Properties Linearization Points gt Input Point Input Output Point Abbildung 6 5 Linearisieren in Simulink In Abb 6 5 ist das entsprechende Simulink Modell dargestellt Der Integrator wird mit dem Wert 0 initialisiert Um das Linearisierungsverfahren durchf hren zu k nnen m ssen erstmal die Ein und Ausg nge definiert werden Das erfolgt ber das Konte
131. or Description Abbildung 9 8 Einstellung der Update Methode in den Chart Properties Der Chart wird ausgef hrt Inherited wenn durch die vorangehenden Bl cke eine Eingangsvariable neu berechnet wird falls keine Eingangsereignisse deklariert sind Discrete in festen Zeitabst nden unabh ngig vom Rest des Simulinkmodells Dieser Zeitab stand wird im Feld Sample Time festgelegt Continuous bei jedem Integrationsschritt auch bei Minor Steps Ein Einschalten der Option Execute enter Chart At Initialization bewirkt dass beim Si mulationsstart das Chart einmal ausgef hrt wird unabh ngig von der gew hlten Aktualisierungs methode 9 1 Grundelemente von Stateflow 117 Die Simulation kann wie blich in Simulink oder im Stateflow Editor durch Dr cken des Play Buttons oder im Men Simulation gestartet werden Bei erstmaliger Simulation oder nach Ver nde rungen des Charts wird zuerst das Chart durch Kompilieren in eine s function umgewandelt Dieser Schritt kann relativ zeitaufwendig sein und zu einer merklichen Verz gerung f hren bis die Simu lation abl uft Ist der Stateflow Editor w hrend der Simulationszeit offen wird der Ablauf der Zustandsaktivie rungen graphisch animiert Zus tzliche Verz gerungen zur besseren Sichtbarkeit k nnen im Debug ger Men Tools Debugger konfiguriert werden Hier kann die Animation auch g nzlich abge schaltet werden Viele weitere Funktionen unterst tz
132. orkspace sichtbar machen m ssen sie an jeder Stelle d h in den entsprechenden anderen Funktionen aber auch im Workspace als global deklariert werden gt gt global t x Dies stellt aber programmiertechnisch eine unsch ne L sung dar Die bessere Programmierung ist die Aufnahme als Ausgangsargument Aufgaben und bungen 3 32 Funktion mit zwei Vektorargumenten Schreiben Sie eine Funktion die e als Eingangsargumente zwei Vektoren erh lt e berpr ft ob es sich wirklich um Vektoren und nicht um Matrizen handelt e im Falle der Eingabe einer Matrix eine Fehlermeldung in dem Befehlsfenster ausgibt und den Wert Null als Ausgangs Argument zur ckgibt e sonst den gr ten Wert beider Vektoren berechnet und diesen als Ausgangs Argument zur ck gibt e Verfassen Sie dazu einen entsprechenden Hilfe Text 3 33 Abschnittsweise definierte Funktion Schreiben Sie eine Funktion die den Wert der ab schnittsweise definierten Funktion in Abh ngigkeit von t berechnet 0 V t lt 0 yt lt 4 P 3 2 t V 0 lt t t lt 1 1 Y gt 1 Stellen Sie die Funktion im Bereich von 1 bis 3 graphisch dar Hinweis t kann ein Vektor sein 32 3 Einf hrung MATLAB 3 34 Fakult t einer ganzen Zahl s als Funktion Die Fakult t der Zahl s soll im Gegen satz zur Aufgabe 3 26 mit Hilfe einer Funktion berechnet werden Schreiben Sie eine Funktion fakultaet s die jeweils die Fakult t der Zahl s als Ergebnis zur ckgibt Dabei sollt
133. r eines leeren GUIs Auf der linken Seite befinden sich die einzelnen Elemente aus denen ein GUI zusammengesetzt werden kann e Push Button Ein Push Button ist eine Schaltfl che mit einer Beschriftung Bei Bet tigung der Schaltfl che wird eine hinterlegte Funktion ausgef hrt e Slider Ein Slider ist ein Schieberegler mit dem Werte in einem Intervall mit einer bestimmten Schrittweite ver ndert werden k nnen 92 7 GUI Programmierung Radio Button Ein Radio Button wird zur Auswahl von Optionen verwendet die sich gegenseitig ausschlie en Wenn Radio Buttons in einer Button Group angeordnet werden kann jeweils nur einer ausgew hlt sein Check Box Check Boxen werden zur Auswahl von Optionen verwendet die in beliebiger Kombination ausgew hlt werden k nnen Edit Text Edit Text ist ein Feld in dem Text oder Zahlen eingegeben werden k nnen Static Text Static Text dient dazu Text anzuzeigen der nicht durch den Benutzer editiert werden kann beispielsweise f r Beschriftungen Pop Up Menu Ein Pop Up Menu dient hnlich wie Radio Buttons dazu aus einer Auswahl von Optionen auszuw hlen die sich gegenseitig ausschlie en Da die Optionen eines Pop Up Menus nur w hrend des Auswahlvorgangs eingeblendet werden lassen sich damit auch umfangreiche Auswahllisten realisieren Listbox Eine Listbox zeigt eine Liste von Elementen an die in beliebiger Kombination ausgew hlt werden k nnen Listenelemente k nnen zur La
134. ration Alle verwendeten Variablen und Ereignisse m ssen deklariert werden Hierzu dient der Model Explorer siehe Abb 9 6 im Men Tools gt Explorer Auf der linken Seite des Explorers befindet sich ein hierarchischer Baum der alle Zust nde aller momentan offenen State Charts enth lt Die Deklaration erfolgt in der von objektorientierten Programmiersprachen bekannten Weise Je des Objekt kann seine eigenen Deklarationen besitzen Diese sind dann jedoch nur im jeweiligen Mutterobjekt und den Kindobjekten sichtbar es sei denn in einem Kindobjekt ist eine Variable gleichen Namens definiert Auch die Lebensdauer der Variablen h ngt vom Aktivierungszustand des Mutterobjektes ab Ist ein Zustand nicht mehr aktiv sind die in ihm deklarierten Variablen nicht mehr vorhanden zerst rt Variablen und Ereignisse k nnen als lokal oder als Ein Ausg nge von und nach SIMULINK de klariert werden wobei letztere nur in der obersten Ebene eines Charts vorkommen k nnen Mit dem Men punkt Add kann eine Variable data oder ein Ereignis event hinzugef gt werden Bei Doppelklick auf das Symbol links neben dem Namen ffnet sich ein Dialog bei dem weitere Optionen festgelegt werden k nnen Bei Ereignissen lauten die wichtigsten Einstellm glichkeiten Name Name des Freignisses Scope Freignis ist lokal oder Ein Ausgang nach Simulink nur in der Chart Ebene In diesem Fall wird die Variable des Kindobjektes angesprochen
135. reib oder nur den Lesezugriff auf eine Eigenschaft einschr nken verwendet man SetAccess bzw GetAccess an Stelle von Access Untenstehende Tabelle gibt einen berblick ber den standardm igen Schreib und Lesezugriff mit den verschiedenen Zugriffs Attributen public protected private Zugriff innerhalb der Klasse ja ja ja Zugriff aus einer Subklasse ja ja nein Zugriff von au erhalb der Klasse ja nein nein Nachfolgend wird der Schreibzugriff auf die Gehaltsstufe in der Klasse Mitarbeiter auf private gesetzt Hierf r muss wieder ein eigener properties Block verwendet werden 5 properties 6 Name 7 end 8 9 properties SetAccess private 10 Gehaltsstufe 1 11 end Jetzt kann die Gehaltsstufe zwar noch vom Benutzer abgefragt jedoch nicht mehr direkt ver ndert werden Eine Ver nderung ist nur noch ber die Methode befoerdere m glich 106 8 Objektorientierte Programmierung Sichtbarkeit von Eigenschaften Wenn man sich einen schnellen berblick ber die Eigenschaften eines Objekts verschaffen m chte kann man einfach den Namen des Objekts in das Command Window eingeben gt gt mitarbeiteri mitarbeiteri Mitarbeiter Properties Name Max Gehaltsstufe 3 MaximaleGehaltsstufe 5 Gehalt 2400 Methods Jeder gr er die Klasse wird desto un bersichtlicher wird die Liste der Eigenschaften Deshalb ist es in manchen F llen w nschenswert dass in solch einer bersicht nur f r den Benutz
136. res Don t Borrow Anymore Today Retum Borrowed Licenses Early De re Feature Name No FLEXIm Services defined use Configure Services to add services Abbildung 2 4 Einrichten von Borrowing 3 F llen Sie das Feld f r das R ckgabedatum aus Achten Sie auf das Datumsformat TT MMM JJJJ Sie m ssen die ersten drei Buchstaben des Monats auf Englisch eingeben Beispielsweise 12 dec 2008 4 Klicken Sie auf Set Borrow Expiration um das Borrowing zu initialisieren 5 Schlie en Sie das Fenster noch nicht um das erfolgreiche Ausleihen der Lizenzen sp ter kontrollieren zu k nnen 8 2 Installation und Borrowing Wie leihe ich die Lizenzen der Toolboxen aus Im Prinzip m ssen die Toolboxen einmal genutzt werden w hrend die Verbindung zum Rechen zentrum noch vorhanden ist um die entsprechende Lizenzen auszuleihen Um diese Aufgabe zu erleichtern und alle Produkte der Campuslizenz auf einmal auszuleihen wurde vom Rechenzentrum ein kleines m Skript geschrieben Dieses Skript hei t lizenzen m und befindet sich in demselben Ordner in dem die MATLAB Installationsdateien liegen Den Inhalt dieser Datei k nnen Sie aber auch von unten kopieren und als Textdatei mit Endung m speichern Inhalt von lizenzen m license checkout MATLAB license checkout Communication _Blocks license checkout Curve _Fitting_Toolbox license checkout Communication_Toolbox license checkout Compiler license checkout
137. rge stellten physikalischen Systeme enth lt x i c u k in V R I y d L i cs F mx kx cx 2 karr dt Vp i R Abbildung 4 8 Schwingkreise Simulieren Sie das System indem Sie einen Sprung auf die Eingangsgr e in H he von 10V bzw 2000N geben Verwenden Sie als Parameter R 59 L 2H und C 5mF bzw m 20kg k 20 und c 50003 4 4 Modellstrukturierung 45 4 4 Modellstrukturierung Subsystems Subsystems bieten die M glichkeit der Hierarchisierung mit beliebig vielen Ebenen die f r gr ere Modelle unumg nglich ist Um ein Subsystem zu erstellen werden die Bl cke die zu einem Sub system zusammengefasst werden sollen markiert und der Men punkt Edit Create Subsystem ausgew hlt Dieser Men punkt ist auch ber das Kontextmen rechte Maustaste erreichbar Durch einen Doppelklick werden Subsysteme innerhalb eines bergeordneten Modells ge ffnet jedoch nur wenn es sich um ein unmaskiertes Subsystem handelt Im Falle eines maskierten Sub systems muss der Men punkt Edit Look Under Mask ausgew hlt werden Mit einem Doppelklick auf ein maskiertes Subsystem wird die Paramtereingabemaske ge ffnet nicht aber das Subsystem selbst Der Men punkt Look Under Mask ist ebenfalls wieder ber das Kontextmen erreichbar Sollen Signale an ein Subsystem gegeben oder von dem Subsystem erhalten werden muss das Subsystem Inport bzw Outport Bl cke enthalten Diese werden automa
138. rhalten hat Zwischenwerte werden von SIMULINK interpoliert Die Lookup Tables k nnen bei spielsweise zum Abbilden des Verhaltens eines Motors eingesetzt werden wenn nur einige Werte des Motorkennfelds verf gbar sind Aufgaben und bungen 4 22 LookUp Table in 2D Laden Sie die Datei motorkennfeld mat die Ihnen Ihr Betreuer zur Verf gung stellen wird Das Motorkennfeld ist auf Abbildung 4 12 dargestellt Stellen Sie den Motorkennfeld 300 T T T T Motormoment Nm 100 1 1 1 N 0 100 200 3 f 1 f 00 400 500 600 700 800 Drehzahl 1 s Abbildung 4 12 Motorkennfeld Aufgabe 4 22 Block Lookup Table 2 D so ein dass er das statische Verhalten des Motors darstellt Die nicht in der Datei vorhandenen Arbeitspunkte werden somit interpoliert Die Matrix in der Datei hat Drosselklappenstellung oO folgende Form Motorkennfeld Drehzahl 4 23 Auto mit Steigungswiderstand Erweitern Sie das Modell aus Aufgabe 4 3 um den Stei gungswiderstand Die Steigung der Stra e wird als eine Funktion der Position x t gegeben und ist auf Abbildung 4 13 dargestellt Nehmen Sie die Gleiche Parametern wie in Aufgabe 4 3 aber ver wenden Sie ein Step F Antriev 5000N und eine Simulationszeit von 250sec Geben Sie a t v t und x t in einem Scope mit 3 Achsen aus Der Steigungswiderstand ist durch Fsteigung M g sin a beschrieben wo a die Steigung in rad ist Verwenden Sie den Block Look
139. row 1 Until Oct 30 2009 Product Name Inuse Borrow Status Return Date MATLAB Y Available Aerospace Blockset Borrowing Disabled Aerospace Toolbox Borrowing Disabled Bioinformatics Toolbox Available Communications Blockset Available _ Communications Toolbox Available Abbildung 2 8 Selektives Ausleihen Ausleih Status Wenn Sie den Tab View Status ausw hlen k nnen Sie nachsehen welche Lizenzen Sie ausgeliehen haben und wann diese wieder zur ckgegeben werden 12 3 Einf hrung MATLAB 3 Einf hrung MATLAB 3 1 Benutzeroberfl che und Kommandozeile Befehlsfenster Kommandozeile Nach dem Starten von MATLAB erscheint die MATLAB Oberfl che siehe Abb 3 1 Sie besteht aus mehreren Fenstern wobei das Befehlsfenster bzw Command Window CW mit dem MATLAB Prompt gt gt den gr ten Platz einnimmt Das Befehlsfenster dient zur Eingabe von Variablen und dem Ausf hren von Befehlen Funktionen und Skripten Jede Befehlszeile wird mit einem Return abgeschlossen und der Ausdruck direkt nach der Eingabe ausgewertet In diesen Unterlagen enthaltene Beispiele beginnen mit dem oben angegebenen Prompt Kommentare denen ein Prozentzeichen vorangestellt ist brauchen nicht eingegeben zu werden sondern dienen nur dem Verst ndnis Versuchen Sie die folgenden Beispiele nachzuvollziehen gt gt 5 7 Zuweisung der Standard Variablen ans gt gt a 3 pi
140. rt werden Warum F gen Sie eine weitere Nullstelle so in das System ein dass Sie eine P Struktur Gc K p amp erhalten Probieren Sie verschiedene Positionen f r die Nullstelle aus auch in der rechten s Halbebene Wo w re es sinnvoll die Nullstelle zu platzieren Warum i Lassen Sie die Nullstelle in s 4 und stellen Sie Ki 40 ein Betrachten Sie die Sprung antwort Ist das System station r genau Warum 6 9 Entwurf in der Zustandsraumdarstellung Mit dem LTI Zustandsraummodell SS1 aus Auf gabe 6 1 bearbeiten Sie folgende Punkte Lassen Sie sich die R ckf hrungsmatrix K berechnen sodass die neue Lage der Polstellen s 4 4i ist Erzeugen Sie das entsprechende LTI Modell SS2 Plotten Sie die Sprungantworten von SS1 und SS2 Ist SS2 schwingungsf hig Warum Sind die Systeme station r genau berlegen Sie sich wie Sie station re Genauigkeit erreichen k nnen Skalieren Sie den Eingang von SS1 und SS2 sodass beide Systeme station r genau werden Speichern Sie diese Modelle als SS3 und SS4 Plotten Sie die Sprungantwort von SS3 und SS4 Beurteilen Sie die Regelg te von SS4 im Vergleich zu der des skalierten Originalsystems SS3 Entwerfen Sie einen LQR Regler f r SS1 mit den Gewichtungsmatrizen Q diag 1 11 R 1 und N 0 und skalieren Sie den Eingang um das System station r genau zu machen Speichern Sie das System als SS5 Entwerfen Sie einen LQR Regler f r SS1 mit den Ge
141. rve in dieses Fenster geplottet und die alte Kurve gel scht Mit hold wird werden die alte n Kurve n beibehalten und die neue dazu geplottet Ist noch kein figure Fenster offen oder der Befehl figure dem plot Befehl vorangestellt wird ein neues Fenster erzeugt Die meisten Layout Einstellungen sind nicht nur ber das figure Men sondern auch ber das Befehlsfenster zu ndern N tzliche Befehle sind gt gt grid on off Schaltet ein Hintergrundraster grid ein aus gt gt box on off Schaltet eine umrahmende Box ein aus gt gt axis on off Schaltet alle aktuellen Achsendarstellungen ein aus Wird on off bei den ersten beiden Befehlen weggelassen so wird zwischen den beiden Zust nden an aus hin und hergeschaltet Der Plotbefehl l sst ein zus tzliches Argument eine Zeichenkette zu z B plot t y1 g In dieser Zeichenkette k nnen Angaben zur Farbe Liniendarstellung und Punktedarstellung gemacht werden F r eine genaue Beschreibung sowie weiterer M glichkeiten rufen Sie bitte die Hilfe mit help plot help graph2d und help graph d auf Ein figure Fenster kann wie eine Matrix in mehrere Unter Bilder mit dem Befehl subplot aufgeteilt werden gt gt figure ffnet ein neues figure Fenster gt gt subplot 2 1 1 plot t y1 subplot teilt das Fenster in 2 Zeilen und 1 Spalte auf und w hlt das erste Element es wird von links nach rechts und von oben nach unten gez hlt zur Darstellung der
142. s Innere eines Zustandes oder w hlt im Kontextmen Rechtsklick des Zustandes den Punkt Make Contents Grouped aus Der Zustand wird dann grau eingef rbt Bei gruppierten Zust nden bleiben alle Unterzust nde und Transitionen sichtbar k nnen aber 9 2 Weitere Strukturen und Funktionen 119 z2 N On switch_12 on_off V V off_on Off Abbildung 9 10 Chart mit zwei Superstates Der rechte Superstate Z2 besitzt eine History Junc tion nicht mehr bearbeitet werden Wird im Kontextmen der Punkt Make Contents Subcharted ausgew hlt wird der Inhalt verdeckt Damit lassen sich Charts mit komplizierten Teilfunktionen bersichtlicher darstellen Die Funktion bleibt allerdings gegen ber gruppierten Superstates die selbe Durch Doppelklick kann ein Subchart ge ffnet und dann bearbeitet werden Zur ck in die h here Hierarchiebene kommt man mit dem Nach Oben Pfeil in der Symbolleiste Superstate1 N me Z3 e gt FR J I Bedingung2 1 Bedingung1 1 N Fa i V N z1 p C pi Abbildung 9 11 Superstate mit einer Inneren Transition Verliert ein Superstate durch eine Transition seine Aktivit t werden auch alle Unterzust nde pas siv Bei einer neuerlichen Aktivierung des Superstate entscheidet dann wieder die Standardtran sition welcher Unterzustand die Aktivierung erh lt Dies kann man dadurch verhindern indem man in den Zustand aus der Werkzeugleist
143. s das demografische Wachstum simuliert und die Po 4 8 Diskrete Subsysteme in kontinuierlichen Systemen 63 pulation in einem Scope plotten kann Es soll anhand dieses Modells die zuk nftige Population vorhergesagt werden Wird das Wachstum senken oder zyklisch variieren Um diese Fragen zu beantworten Simulieren Sie das System f r folgende F lle und f llen Sie die untere Tabelle aus o A Verhalten 0 5105 0 5115 0 5 2 5 0 5 3 2 gt 3 2 0 5 3 55 0 5 3 7 0 5 42 Um die Tabelle auszuf llen verwenden Sie folgende Begriffe auch kombiniert stabil instabil mit Grenzwert X wellenf rmig monoton mit einer mehreren Periode n chaotisch die Werte wiederholen sich nicht Hinweis Das chaotisches Verhalten ist hier m glich weil das System nicht linear ist 64 5 Symbolisches Rechnen gt Symbolisches Rechnen Die Symbolic Math Toolbox enth lt Werkzeuge zur L sung und Manipulation symbolischer Aus dr cke und zur Durchf hrung von Berechnungen mit variabler Genauigkeit Die Toolbox umfasst mehrere hundert symbolische MATLAB Funktionen die die MuPAD Engine zur Differentiation Integration Vereinfachung Umwandlung oder L sung mathematischer Gleichungen nutzen Ein weiterer zentraler Bestandteil der Symbolic Math Toolbox ist die MuPAD Sprache die auf die Verarbeitung von symbolischen Ausdr cken und Operationen optimiert ist Die Toolbox enth lt Bi bliotheken
144. sche Bewegung des Schlittens und die rotatorische Bewegung des Pendels 4 6 User defined Functions Bibliothek 57 B X1 Y1 Ms Abbildung 4 11 Inverses Einzelpendel 1 0 0 0 Xi X 0 0 M M 0 tcos X _ sin 0 B X ae 0 0 1 0 0 0 cos 0 zl g sin ia 0 und die zugeh rigen Parameter Parameter Beschreibung Wert Einheit Ms Masse des Schlittens 5 kg Mp Masse des Pendels 2 kg l L nge des Pendels 1 m B Reibungskoeffizient Schlitten 5 Ns m B Reibungskoeffizient Lagerreibung Pendel 5 N rad s beschreiben Als Ausgangsgr en werden die X Position X des Schlittens und der Winkel verwendet _ A Y yb Implementieren Sie die Bewegungsgleichungen des Systems als S Function Verwenden Sie dabei folgende Zustandsgr en x X X mit dem Anfangszustand xo 0 00 0 Tipp Das nichtlineare DGL System Q x F x u kann wie folgt in Zustandsraumdarstellung transformiert werden x Q g f x u Die Inverse der Q Matrix kann dazu in jedem Iterationsschritt berechnet werden 58 4 Einf hrung in Simulink 4 7 Andere wichtige Bl cke und Features von Simulink LookUp Tables Mit LookUp Tables k nnen Beziehungen zwischen Ein und Ausgabedaten erzeugt werden auch wenn diese nicht durch eine analytische Funktion beschrieben werden oder diese nicht bekannt ist Dies geschieht durch einige diskrete Wertepaare die man beispielsweise durch Messungen e
145. sen Sie nur ein Callback bearbeiten 7 3 Programmieren eines Pop Up Meni s Erstellen Sie ein GUI dass nur ein Pop Up Men und Achsen f r ein Diagramm enth lt In dem Pop Up Men soll es die Auswahlen Membrane Peaks und Close geben Bei einer der ersten beiden Auswahlen soll der jeweilige Befehl mit dem Namen ausgef hrt werden und dann das Bild in dem vorgesehenen Diagramm anzeigen bei Close soll das GUI geschlossen werden 7 4 Plot einer Funktion Erstellen Sie ein GUI das eine Radio Button Group enth lt in der man eine Farbe ausw hlen kann Es soll eine axes vorhanden sein in der ein Plot durchgef hrt 7 3 GUIs ohne GUIDE 97 werden kann In einem Eingabefeld soll noch eine Funktion eingegeben werden die dann geplottet wird Jedesmal wenn eine Auswahl oder die Funktion ge ndert wird soll der Plot auch aktualisiert werden 7 5 Altersberechnung Erstellen Sie ein GUI das einen Static Text einen Edit Text und einen Push Button enth lt Im Edit Text kann der Benutzer sein Geburtsdatum eingeben Durch Dr cken des Push Buttons soll das Alter im Static Text angezeigt werden Tipp date 7 6 Konvertierung eines Bildes Erstellen Sie ein GUI welches ein Bild laden und anzeigen kann Durch Dr cken eines Push Buttons soll das Bild in ein Graustufen Bild umgewandelt werden Tipp imread imshow uigetfile rgb2gray 7 3 GUIs ohne GUIDE GUIs k nnen in MATLAB auch ohne die Verwendung des grafischen Editors GUIDE erste
146. seren 2D Fall sind das z B die Winkel von Rad und Balken sowie die Winkelgeschwindigkeiten Das Verhalten selbst wird dann dadurch beschrieben dass Gleichungen f r die nderung dieser Zust nde in Abh ningkeit von sich selbst und zus tzlichen Eingangsgr en u zur Verf gung gestellt werden t fi t ur e Um t oder als Vektordifferentialgleichung X f X t U t Sind nicht alle Zust nde des Systems Ausg nge oder werden die Ausg nge unmittelbar von den Eing ngen beeinflusst so berechnet man die Ausgangsgr e durch die Ausgangsgleichung Y g X t U Aus dieser Darstellung kann eine lineare vereinfachte Form erzeugt werden indem die Taylorreihe f r diese Funktionen nach dem ersten Term abgebrochen wird o KEIM Zi IK Et ar SU X X0 U U0 X X0 U U0 A B NE 5X 29 SU U g X0 U0 gt er X X X0 U Uo oU X X0 U U0 nn nn C D 6 5 Control System Toolbox in Simulink 89 Rechnet man f r den station ren Fall und mit Abweichungsgr en kommt man auf die Form x Ax Bu y Cx Du mit x X f Xo y Y Yo und u U Uo In unserem Fall mit 4 Zustandgr en ergeben sich die Matrizen aus o A 2i jacobian f x B af jacobian f u 0x z 20 u uo u z 20 u u0 o o C of jacobian g x D jacobian g u 0x X0 u uo u x xz0 u u0 In Bild 6 11 ist der Signalflu schematisch gezeigt x x 25 Ba
147. sign Task rlocus Go m f Design History Current Architecture grid print fi borrar depsc sisotool sisotoo1 Go ent Directory Dokumente und Enstelungen _ch U cortrolarchtectre _ aiii ho on LTI Viewer for SISO Design Task TERE SISO Design for SI Task Fie Edt View Designs Analysis Tools Window File Edt Window Help ISELEZEIECTIT ISAE Root Locus Editor for Open Loop 1 OL1 PAHER Open Loop Bode Editor for Open Loop 1 OL1 20 Freu 3 16 radisec Stable loop 40 30 PM 46 deg ag F 12 2 radisec Frequency rad sec Abbildung 6 4 SISO Tool tenfunktion f r kontinuierliche Systeme ist durch folgende Gleichung gegeben J I x Qx uW Ru 22 Nu dt 0 Der Algorithmus liefert die R ckf hrungsmatrix K welche das optimale Regelgesetz u Kr definiert Genauere Informationen hierzu findet man ebenfalls in der MATLAB Hilfe Eine weitere M glichkeit bietet der Befehl place an welcher die R ckf hrungmatrix K so berechnet dass die Pole Eigenwerte des geschlossenen Regelkreises den Polen eines vorgegebenen Wunschpolynoms entsprechen Polplatzierung Eine bersicht aller Befehle der Control System Toolbox liefert der Befehl help control Sehen Sie sich aber auch die Befehle Itimodels und ltiprops sowie aus der Signal Processing Toolbox tf2ss und zp2ss an 80 6 Control System T
148. sklick ausgef hrt werden kann Mit Hilfe der Befehle input und disp gestalten Sie Ihr Skript so dass es interaktiv nach der H he und der Breite fragt 3 8 Steinfall Ein Stein f llt aus einer unbekannten H he zu Boden Die Fallzeit wird mit einer Uhr gemessen und betr gt 10 sec Schreiben Sie ein Skript das die H he ermittelt wenn davon ausgegangen werden kann dass der Luftwiderstand vernachl ssigbar ist 3 9 Der Matlab Editor ffnen Sie eine neue Datei im Editor und tragen Sie die Befehle 18 3 Einf hrung MATLAB Das ist der erste Versuch cd disp Guten Tag a 5 7 b 5 7 ein Speichern Sie die Datei in Ihrem Arbeitsverzeichnis unter dem Namen versuch1 m Schlie en Sie den Editor Geben Sie im Befehlsfenster den neuen Befehl versuchi1 und help versuchi ein Was macht der neue Befehl Wechseln Sie in das Fenster Current Directory ffnen Sie dort Ihre Datei versuchi m durch Doppelklick Dr cken Sie im Editor die Taste F5 Damit speichern Sie die Datei und bringen sie sofort zur Ausf hrung Passen Sie das Skript wie in der Abb 3 4 an und probieren Sie die Cell Kn pfe 1 und 2 aus 3 10 Shortcut Loeschen Schreiben Sie ein Skript das mit dem Befehl clc den Text im Kommando Fenster l scht und au erdem die Nachricht Kommando Fenster gel scht anzeigt Er stellen Sie jetzt einen Shortcut namens Loeschen mit derselben Funktionalit t 3 4 Vektoren und Matrizen MATLAB wurde speziell
149. t gt gt mitarbeiteri Mitarbeiter 8 2 Tutorial die Klasse Mitarbeiter 101 ein neues Objekt mitarbeiteri der Klasse Mitarbeiter erstellen Auf die Eigenschaften des Objektes kann nun genauso wie auf die Elemente einer Structure zugegriffen werden z B gt gt mitarbeiter1 Name Max Mustermann gt gt mitarbeiter1 Gehaltsstufe 2 Der Vorteil eines Objekts gegen ber einer Structure wird deutlich wenn dem Benutzer bei einer Wertzuweisung ein Tippfehler unterl uft Im folgenden Beispiel sei mitarbeiter eine Structure dessen einzigem Feld Gehaltsstufe ein neuer Wert zugewiesen werden soll gt gt mitarbeiter2 Gehalsstufe 4 Wenn der Benutzer den Tippfehler in Gehalsstufe nicht sieht wird er glauben das Feld Gehaltsstufe h tte jetzt den Wert 4 Tats chlich wurde aber ein neues Feld mit dem Wert 4 angelegt gt gt mitarbeiter mitarbeiter Gehaltsstufe 1 Gehalsstufe 4 Passiert dem Benutzer der gleiche Fehler bei einem Objekt wird er sofort darauf hingewiesen gt gt mitarbeiter1 Gehalsstufe 3 No public field Gehalsstufe exists for class Mitarbeiter Methoden der Klasse In diesem Abschnitt wird die Klasse um drei Methoden erweitert Zun chst wird ein Konstruktor hinzugef gt Der Konstruktor Ein Konstruktor ist eine Methode die bei der Erzeugung eines neuen Objekts automatisch aufge rufen wird und dessen Eigenschaften initialisiert Der Konstruktor hat immer den gleichen
150. t Fintriev die Ausgangsgr en sind die Position x und die Geschwindigkeit t Maskieren Sie das Subsystem sodass sich die Masse M der Luftwiderstandskoefhizient C und der Rollwiderstand F ro des Autos ber eine Eingabemaske parametrieren lassen 4 6 Maskierte Schwingkreise Maskieren Sie das Subsystem aus Aufgabe 4 4 sodass die ver schiedenen Parameter wie m k L etc in der Maskenoberfl che eingegeben werden k nnen Geben Sie sinnvolle Hilfstexte und Erl uterungen Simulieren Sie das System noch einmal und versuchen Sie es auch mit anderen Parametern 4 7 Maskiertes PT1 Glied Erstellen Sie aus einem Subsystem das die bertragungsfunktion eines PT1 enth lt einen maskierten Block mit dem Maskennamen PT1 Der bertragungsfaktor und die Zeitkonstante sollen als Parameter eingegeben werden k nnen Das Symbol des Blocks soll die bergangsfunktion enthalten Geben Sie sinnvolle Erl uterungs und Hilfetexte Simulieren Sie mit diesem Block f r verschiedene Kennwerte die bergangsfunktion und die Antwort auf eine Sinus Funktion 4 5 Simulationsparameter 47 4 5 Simulationsparameter Die Simulationsparameter werden im Men Simulation Configuration Parameters einge stellt Es erscheinen unter anderem die Karten Solver Data Import Exportund Diagnostics Solver Die Simulation time legt fest f r welchen Zeitraum das Modell simuliert werden soll Dies geschieht nicht in Echtzeit sondern h ngt davon ab wie
151. t der Massepunkt in x Richtung in Ihrer Simulation In welcher z Position kommt er zu Ruhe Ab welchem Zeitpunkt kommt die Simulation nicht mehr weiter Weshalb Wie kann man dieses Problem umgehen 4 10 Speichern von Simulink Variablen Laden Sie das Modell aus Aufgabe 4 9 Speichern Sie den simulierten Verlauf von z t als Matrix im Workspace unter dem Variablennamen xt Speichern Sie den Verlauf von z t in einer Datei testdat mat unter dem Variablennamen zt Kontrollieren Sie das Ergebnis im Workspace und in der Datei ndern Sie den Decimation Factor auf 10 und 100 und betrachten Sie das Ergebnis 4 11 Zweimassenschwinger Gegeben ist folgendes mechanische System mit m 1 ma 5 C1 3 C2 1l k 0 5 e Stellen Sie die Differentialgleichungen der Bewegung der beiden Massen mit dem Eingangs signal F auf 50 4 Einf hrung in Simulink e Erstellen Sie ein Blockschaltbild das neben Elementen aus den Blockbibliotheken Quel len und Senken ausschlie lich die Bl cke vom Typ Gain Integrator und Sum enth lt Speichern Sie das Modell als Test3 e Simulieren sie nun das System ber eine Zeitdauer von 30 Sekunden falls ein Einheitskraft sprung auf das System aufgebracht wird Sind die Ergebnisse plausibel e ndern Sie nun den Refine Factor auf 10 und vergleichen Sie die Simulationsergebnisse Andern Sie die Fehlertoleranzen sowohl zu genaueren als auch ungenaueren Werten Verglei chen Sie die Simulationsergebnisse
152. t etc kann der angezeigte Text die verwendete Schriftart und die Schrift gr e ver ndert werden Mit der Eigenschaft Tag kann der Name des Bedienelements ver ndert werden unter dem es aus MATLAB erreichbar ist Dabei ist zu beachten dass die Callback Funktionen von Hand an den neuen tag angepasst werden m ssen siehe Abschnitt 7 2 Die Eigenschaften werden beim Schlie en des Property Inspectors automatisch bernommen und gespeichert 94 7 GUI Programmierung Ha gt gt BeingDeleted off BusyAction queue ButtonDownFen amp 2 CData zs 0x0 double array C Callback automatic 2 Clipping on r CreateFen 2 DeleteFen amp 2 Enable on X gt Extent 0 0 10 1 214 FontAngle normal r FontName Helvetica Cd FontSize 10 0 2 FontUnits points ko FontWeight normal r gt ForegroundColor mm Handlevisibility on X HitTest on g HorizontalAlignment center z Interruptible on ad KeyPressFen 2 ListboxTop 1 0 2 Max 1 0 Cd Min 0 0 2 Position 35 571 21 429 21 571 3 SelectionHighlight on lt gt SliderStep 0 01 0 1 String Push Button Ed Style pushbutton r Tag pushbuttoni 2 TooltipString P2 UlContextMenu lt None gt Units characters r UserData 0x0 double array Cd Value El 0 0 Visible on u Abbildung 7 3 Property Inspector eines Push Buttons Aufgaben und bungen 7 1 Erstellen eines GUI Erstellen Sie ein GUI dass aus drei Textfeldern und einem Push Button besteht
153. temen gedacht ist Man l st eine Gleichung der Gestalt A x x b mit dem Befehl A b Gau Eliminationsverfahren 3 6 Logische Operatoren und bedingte Anweisungen Wie in jeder anderen Programmiersprache auch besitzt MATLAB die M glichkeit bedingte An weisungen zu realisieren Diese sind e if elseif else end Die if Anweisung gestattet die Ausf hrung einer oder mehrerer Anweisungen in Abh ngig keit von einer Bedingung Bei der Bedingung handelt es sich um einen logischen Ausdruck der nach dem Schl sselwort if in Klammern anzugeben ist Die Syntax der if Anweisung lautet if Bedingung Anweisungen end if Bedingung 1 Anweisungen 1 else Anweisungen 2 end if Bedingung 1 Anweisungen 1 elseif Bedingung 2 Anweisungen 2 else Anweisungen 3 end F r die Argumente der if Anweisungen werden in der Regel logische Ausdr cke verwendet gt gt a lt b ist a kleiner gleich b gt a ist a gleich b gt a b ist a ungleich b gt gt isempty a ist die Variable a leer gt gt ischar a ist a ein Zeichen gt gt isnumeric a ist a eine Zahl gt gt exist a ist die Variable Datei etc vorhanden e switch case otherwise end Die switch Anweisung eignet sich besonders dann wenn mehrere Anweisungsteile alternativ ausgef hrt werden sollen Es erfolgt keine Bedingungspr fung sondern ein direkter Werte vergleich was den Anwendungsbereich der switc
154. tionszahl A welche folgende Eigenschaft besitzt 1 lt x A Je n her diese Zahl bei 1 ist desto besser ist die Matrix A konditioniert und man kann erwarten dass MATLAB richtige Ergebnisse bei der Inversion oder bei der L sung von Gleichungssystemen liefert Genau das Gegenteil ist der Fall wenn die Konditionszahl sehr gro ist Ist diese sogar so gro dass die Rechnergenauigkeit nicht mehr gen gt um sinnvolle Ergebnisse zu liefern warnt MATLAB taus Larrouturou Lions Optimisation et commande optimale Ecole Polytechnique 3 11 Probleme der numerischen Darstellung 37 Warning Matrix is close to singular or badly scaled Results may be inaccurate RCOND 2 055969e 013 wobei RCOND die Inverse der Konditionszahl von A ist d h je n her RCOND an Null ist desto schlechter ist die Matrix konditioniert W ren A und b das Ergebnis von vorher auf dem Rechner durchgef hrten Kalkulationen so h tten wir wahrscheinlich nicht die richtige L sung getroffen Hier liefert MATLAB die richtige L sung weil die Fehlerabweichung im Rahmen der Rechnergenauigkeit von MATLAB bleibt Was kann man unternehmen um das Ergebnis zu verbessern 1 Wenn man mit single precision arbeitet sollte man auf jeden Fall die Genauigkeit in double precision Standard bei MATLAB umstellen 2 Meistens ben tigt man nicht explizit die Inverse einer Matrix Zur L sung des Gleichungs systems A z b benutzt man dann anstatt x inv A b de
155. tisch erzeugt Noch ein Hinweis Die Bl cke Enable und Trigger aus der Ports amp Subsystems Bibliothek erm gli chen die bedingte Ausf hrung eines Subsystems An dieser Stelle soll darauf nicht weiter einge gangen werden Maskieren von Subsystemen Mit Hilfe des Men s Edit gt Mask Subsystem k nnen Subsysteme maskiert werden d h ihnen auf der bergeordneten Hierarchie ein bestimmtes Aussehen und Funktion gegeben sowie ihre Inhalte versteckt werden Es erscheint das Fenster Mask Editor SubSystemName Abb 4 9 mit den vier Karten Icon Parameters Initialization und Documentation Mask Editor RLC PEEER Icon Parameters Initialization Documentation Icon options Drawing commands Frame i disp RLC Schaltung visible port_label output 1 Vc port_label input 1 Vin Transparency port_label i output 2 schwingt Opaque Rotation Fixed Units Autoscale Examples of drawing commands Command port_label label specific ports b7 s E Syntax port_labell output 1 xy Cancel Help Apply Abbildung 4 9 Mask Editor e Icon erlaubt ein eigenes Symbol f r den Block festzulegen Bei den Drawing Commands sind 46 4 Einf hrung in Simulink alle Befehle zur Darstellung des neuen Symbols anzugeben Text kann mit disp Funktions verl ufe mit plot und Grafiken mit image gezeichnet werden e Parameters Die im Innern des Subsystems verwendeten Variablen
156. to singular or badly scaled Results may be inaccurate RCOND 2 055969e 013 Die zweite Aussage trifft mit Sicherheit in diesem Fall zu Was die erste bedeutet und wof r RCOND steht soll anhand eines weiteren Beispiels gezeigt werden Bestimmen Sie die L sung folgenden Gleichungssystems A x b mit 10 7 8 7 32 7T 56 5 23 az 86 10 9 p 33 7 5 9 10 31 Die exakte L sung lautet x 1 1 1 1 Betrachtet wird nun die Empfindlichkeit der L sung x gegen ber St rungen in den Koeffizien ten von A und b Dazu wird der relative Fehler einer Matrix y mit der ver nderten Matrix y1 eingef hrt Berechen Sie den relativen Fehler von b Be Yij Ylij Yij ery max Man w hle zun chst b 32 1 22 9 33 1 30 9 stimmen Sie die L sung x von A x b die exakte L sung lautet x 9 2 12 6 4 5 1 1 7 und den relativen Fehler von xz Wie lautet Ihr Fazit Als n chstes werden die Koeffizienten der Matrix A geringf gig ver ndert i0 7 81 72 7 08 5 04 6 5 8 598 989 9 6 99 4 99 9 e A Berechnen Sie den relativen Fehler von A und die L sung z des Gleichungssystems A x b exakte L sung x 81 137 34 22 Berechnen Sie den relativen Fehler von x Fazit Kleine nderungen in den Koeffizienten der Matrix A oder in b verursachen erhebliche nderungen in der L sung des Gleichungssystems A x b Man sagt die Matrix A ist von schlechter Kondition und ein Ma daf r ist die Kondi
157. tput State Activity markiert erscheint ein zus tzlicher Ausgangsport beim Chart Symbol in Simulink und im Stateflow Explorer Der Wert dieses Ausgangs betr gt w hrend der Simulation Eins falls der Zustand aktiviert ist sonst Null 116 9 Einf hrung in Stateflow Hinweise Ereignisse k nnen durch die Aktion Ereignisname bzw Ereignisname in Zust nden und Transitionen ausgel st werden Die aktuelle Simulationszeit ist Inhalt der Variable t welche nicht deklariert werden muss Charts ausf hren Stateflow Charts sind in ein Simulink Modell eingebettet welches w hrend der Simulationszeit den Aufruf des Charts ausl st In der Eigenschaftsdialogbox des Charts Men File Chart Properties ist neben weiteren Optionen festzulegen unter welchen Bedingungen der Chart aufgerufen wird Diese Eigenschaft wird unter dem Punkt Update method eingestellt vgl Abb 9 8 u Chart Chart Name Chart Machine machine untitledi State Machine Type Classic d Update method Inherited v Sample Time en Discrete C Enable C bit Continuou Apply to all charts in machine now X User specified state transition execution order C Export Chart Level Graphical Functions Make Global V Use Strong Data Typing with Simulink 1 0 M Execute enter Chart At Initialization Initialize Outputs Every Time Chart wakes Up C Enable Super Step Semantics Debugger breakpoint _ On chart entry C Lock Edit
158. tton Cut Strg X f Copy Strg C Clear Duplicate Strg D Bring to Front Stro F Send to Back Strg B Object Browser M file Editor T cn Deletefen ButtonDownFen KeyPressfen Property Inspector Abbildung 7 4 Callbacks eines Pushbuttons Handles Handles sind Zeiger ber die auf ein Bedienelement zugegriffen werden kann Jeder Callback Funktion werden drei Parameter bergeben hObject eventdata und handles hObject ist der Zeiger auf das Bedienelement selbst welches den Callback ausgel st hat und handles enth lt alle Zeiger auf die brigen Elemente des GUIs eventdata dient nur als Platzhalter f r eine Funktionalit t die in der aktuellen Version von MATLAB noch nicht implementiert ist Um die Eigenschaften eines Bedienelements zu setzen oder auszulesen werden die Befehle set und get verwendet Mit folgendem Befehl l sst sich der Inhalt eines Textfeldes in einer Variablen abzuspeichern gt gt text get handles editi String Mit diesem Befehl wird der Inhalt des Textfeldes mit dem Text Neuer Text berschrieben gt gt set handles editi1 String Neuer Text 96 7 GUI Programmierung B Editor U sinus m Fie Edt Text Go Cell Tools Debug Desktop Window DSH AR 39 A M ARPBRAN DR BB ho i 880 ww axesi_Createren axes4_Crestefen ChoseMenultem_ Callback existing figurei_WindowButtonDownFen g FieMenu_Calback Openkenultem Callback andle to popupmenul_Callback popupmenul_Create
159. uadratisch und kubisch hinzu Schalten Sie das Hintergrundraster ein Stellen sie ber das Men Bdit Axes Properties die Ach senskalierung der y Achse auf logarithmisch um Geben Sie der Kurve den Titel GraphA 3 27 Plotten einer Funktion in 3D Plotten Sie die Funktion z y sin x f r x zwischen 10 und 10 Inkrement 1 und y zwischen 0 und 30 Inkrement 3 und stellen Sie danach ihre Oberfl che als Netz dar 3 28 Schiefer Wurf ohne Reibung Berechnen Sie die Flugbahn einer punktf rmigen Masse M in der x z Ebene die im Punkt 0 h mit der Geschwindigkeit vz0 vz0 losgeworfen wird Abbildung 3 5 Schiefer Wurf Vernachl ssigen Sie zun chst alle Reibungs und Kontakteffekte Es gilt Parameter Wert M 2 kg Uzro Uz0 10 h 5m g 9 81 3 Das System kann durch folgende kontinuierliche Differentialgleichungen beschrieben werden T vo g e Schreiben Sie ein Matlab Skript das die Geschwindigkeiten und Positionen der Masse f r Zeitschritte At 0 1 sec bis tena 5 sec berechnet und in einem Vektor ablegt Nutzen Sie dazu eine for Schleife um die Geschwindigkeit und die Position in jedem Zeitpunkt aus der Geschwindigkeit und der Position zum vorhergehenden Zeitpunkt zu berechnen 30 3 Einf hrung MATLAB e Speichern Sie das Skript unter dem Namen SchieferWurf n e Zeichnen Sie die Flugbahn mithilfe des Befehls plot 3 29 Schiefer Wurf mit Boden Erg nzen Sie Ihr Skript aus
160. ufzeit des Programms angeh ngt und entfernt werden Toggle Button Ein Toggle Button ist ein Schalter der durch einen Klick aktiviert und durch einen weiteren Klick wieder deaktiviert werden kann Table Mit einer Table k nnen Daten in tabellarischer Form angezeigt und editiert werden Das bietet sich besonders bei Matrizen an Axes Mit Axes lassen sich Plots oder Grafiken im GUI anzeigen Panel In einem Panel k nnen einzelne GUI Elemente unter einer gemeinsamen berschrift zusam mengefasst werden Dadurch wird die bersichtlichkeit von GUIs mit vielen Bedienelementen erh ht Button Group Zusammengeh rige Radio Buttons werden in einer Button Group zusammengefasst Es ist immer nur ein Radio Button in einer Button Group aktiviert Bedienelemente werden auf der GUI plaziert indem zun chst das gew nschte Element in der lin ken Leiste ausgew hlt wird und dann mit der linken Maustaste in das GUI eingef gt wird Durch Ziehen mit gedr ckter linker Maustaste l sst sich die Gr e der Bedienelemente variieren Um einzelne Elemente b ndig nebeneinander oder untereinander anzuorden kann der Dialog 7 1 GUIDE 93 Vertical ma Wa Distribute esia Set spacing 20 R 24 Horizontal Align e ella Distribute Per ar ag Set spacing 20 pixels Apply Cancel OK Abbildung 7 2 Elemente automatisch ausrichten Tools Align Objects verwendet werden Abb 7 2 Mit diesem Dialog k
161. ung von Systemen 75 gt gt systot zpk 0 5 1 2 2 5 ioDelay 0 75 Direkte Eingabe gt gt systotd zpk 0 5 1 2 2 5 4 ioDelay 2 Zusammenfassung der Modelltransformationen Die bisher in diesem Kapitel gezeigten Darstellungsformen dynamischer Systeme sind zum besseren Verst ndnis teilweise in der folgenden Graphik dargestellt Die Funktionen und Darstellungsformen aus MATLAB sind grau hinterlegt Dynamische Systeme kontinuierlich diskret bertragungsfunktion G s tf z n tf Zza na Tabt G z transfer function c2d ss f tf ss f tf d2c Zustandsraum ss A B C D ss Ad Bd C D Tapt state space gekop Dgln 1 O gekop Agln 1 O mit den Abk rzungen Dgl Differentialgleichung Agi Differenzengleichung gekop gekoppelt 6 2 Kopplung von Systemen Es kommt oft vor dass man mehrere LTI Systeme miteinander koppeln m chte Dies geschieht im Allgemeinen auf drei Arten Bei der parallelen Verkn pfung werden zwei Systeme nebeneinan der gef hrt und ihre Ausg nge mithilfe einer Addition zusammengef hrt Im Falle einer seriellen Verkn pfung wird der Ausgang des ersten Systems als Eingang des zweiten Systems verwendet Beim Prinzip der R ckf hrung wird der Ausgang des ersten Systems ebenfalls als Eingang f r das zweite System verwendet allerdings f hrt der Ausgang des zweiten Systems wieder zur ck zum Eingang des ersten Systems und beeinflusst ihn d
162. ungantwort gt gt g tgl impulse G Impulsantwort gt gt figure 1 plot th h tg g grid gt gt figure 2 step G c2d G 1 grid kont und diskrete Antworten gt gt t 0 1 80 Zeitvektor gt gt u t 2 t lt 20 400 t gt 20 t gt 30 Beliebiger Eingang gt gt figure 3 1sim G u t grid Entsprechende Systemantwort gt Tipp Die statische Verst rkung kstat kann man f r stabile Systeme mit der Funktion degain berechnen lassen Frequenzgang F r die Darstellung des Frequenzgangs eines Systems gibt es ebenfalls mehrere M glichkeiten Die bekannteste sind das Bode Diagramm bode und die Ortskurvendarstellung nyquist auch Nyquist Diagramm genannt gt gt figure 4 Bode Diagramme von drei Systemen gt gt bode G c2d G 1 c2d G 10 Man sieht dass das dritte System gt gt grid nicht richtig abgetastet wird gt gt figure 5 nyquist G Ortskurve Weitere M glichkeiten sind die Befehle nichols sigma und freqresp siehe die MATLAB Hilfe f r weitere Erl uterungen 6 3 Graphische Darstellungen 77 Wurzelortskurven Das Wurzelortskurven Verfahren ist ein halbgraphisches Verfahren zur Bestimmung der Polstel len der bertragungsfunktion des geschlossenen Regelkreises Im Gegensatz zu den behandelten Frequenzgangverfahren k nnen mit dem Wurzelortskurven Verfahren in der hier gew hlten Dar stellung nur solche Systeme untersucht werden deren bertragungsfunktionen bzw Frequenzg
163. unktionen Neben den bisher genannten Basiselementen gibt es weitere Strukturen welche komplexere Funk tionen aber auch die einfachere und bersichtlichere Darstellung von ereignisdiskreten Systemen erm glichen Superstates und Subcharts Mit Superstates lassen sich zusammengeh rige Zust nde zu einem Oberzustand zusammenfassen Dies geschieht dadurch dass zuerst mit dem State Tool ein neuer Zustand im Stateflow Editor angelegt wird Dann wird durch Klicken und Ziehen an den Ecken des Zustandes der Mauszei ger verwandelt sich in einen Doppelpfeil der Zustand soweit vergr ssert bis er alle gew nschten Unterzust nde umfasst siehe Abb 9 10 F r das Innere eines solchen Superstates gelten dieselben Regeln wie f r die oberste Ebene In itialisierung Anzahl aktiver Zust nde etc Ein Superstate kann wie ein herk mmlicher Zustand Ziel und Ausgangspunkt von Transitionen sein Er wird dann aktiviert wenn er selbst oder einer seiner Unterzust nde das Ziel einer g ltigen Transition ist Ist ein Superstate nicht aktiviert ist auch keiner seiner Unterzust nde aktiv Die Unterzust nde k nnen dabei als eigenst ndiges Chart innerhalb des Superstates aufgefasst werden Die Aufteilung in Superstates und Unterzust nde kann jederzeit durch nderung der Gr e und Lage der Zust nde ver ndert werden Um eine unabsichtliche Ver nderung zu verhindern kann der Inhalt eines Zustandes gruppiert werden Dazu doppelklickt man entweder in da
164. up Table um die Steigung ber der Position im Modell zu beschreiben 4 7 Andere wichtige Bl cke und Features von Simulink 59 0 35 T T T Steigung 0 0 8 4 21 12 30 21 10 0 100 0 3 J 0 25 J S 0 2 J D d 0 15 J 7 0 1 J 0 057 J Position 0 10 1400 0 L L L L L L 0 2000 4000 6000 8000 10000 12000 14000 Position m Abbildung 4 13 Steigungsprofil Aufgabe 4 23 Erstellen einer eigenen Bibliothek SIMULINK bietet die M glichkeit eigene Bibliotheken mit z B h ufig benutzten Bl cken zu er stellen Dazu wird ein neues Fenster ber das Men File gt New Library als Bibliothek und nicht wie sonst als Modell erstellt Alle in dieses Fenster kopierten Bl cke sind nach dem Abspeichern in Form einer neuen Bibliothek die den Namen der Datei erh lt enthalten Die Bibliothek kann sp ter beliebig ver ndert und erweitert werden Nach dem Abspeichern und Schlie en ist die Bibliothek automatisch gesperrt und muss f r gew nschte Ver nderungen erst durch den Men Befehl Edit Unlock Library freigegeben werden Werden in Bibliotheken nderungen an Bl cken vorgenommen aktualisieren sich automatisch alle Modelle in denen diese Bl cke vorkommen Durch Kopieren aus dem Bibliotheksfenster in ein Modellfenster werden Kopien der Bibliotheks Bl cke erstellt Die Verbindung wird dabei ber den Blocknamen hergestellt sodass dieser in der Bibliothek nic
165. urf stellt auch die Maschen des Netzes also die gesamte Oberfl che bunt dar Die Farbpalette wird ber colormap festgelegt und kann mit Hilfe von colorbar angesehen werden Anhand eines Beispiels wird verdeutlicht wie die ben tigten Vektoren erzeugt werden Wir m chten die Oberfl che des Graphen der Funktion z 2r 3y darstellen wobei x und y die folgenden Werte annehmen sollen gt gt x 1 0 1 2 gt gt y 0 0 1 0 2 0 3 0 4 0 5 Dax Aundy 6 Werte enth lt muss z 6 x 4 24 Werte annehmen Dar ber hinaus m ssen da jeder Punkt durch ein Tripel x yi zi beschrieben wird die 6x 4 Matrizen X und Y erzeugt wer den die in jeder Zeile bzw Spalte die Werte von x und y enthalten Dies geschieht am einfachsten mit dem Befehl meshgrid Anschlie end kann z berechnet und alles gezeichnet werden gt gt x 1 2 y 0 0 1 0 5 Definition zweier Vektoren gt gt X Y meshgrid x y Erzeugen der Matrizen X und Y gt gt Z 2 X 3 xV Berechnen der Matrix Z gt gt mesh X Y Z oder auch surf X Y Z Abschlie end siehe auch die Befehle compass contour contour3 surfc waterfall pcolor und view 3 8 Graphische Darstellungen 29 Aufgaben und bungen 3 26 Erzeugen und nderung von Abbildungen T 12 3 6 Erzeugen Sie die Matrix Graph A 1 4 9 36 und plotten Sie GraphA F gen Sie 1 8 27 216 dem Graph eine Legende mit den Texten linear q
166. ustaste kopiert werden e Bl cke mit Hilfe der Men punkte Format Flip Block bzw Strg I oder Format Rotate Block bzw StrgJ R gedreht bzw gespiegelt werden e Signalverbindungen durch Klicken amp Ziehen mit der linken Maustaste von Blockausg ngen zu Blockeing ngen erzeugt werden 40 4 Einf hrung in Simulink e Signalabzweigungen durch Klicken amp Ziehen mit der rechten Maustaste auf eine Signallinie erzeugt werden e Sie k nnen das Simulink Modell mit der Taste R hereinzoomen und mit der Taste V her auszoomen 4 2 Simulink Standard Block Bibliothek SIMULINK ist durch eine ganze Reihe Block Bibliotheken erweiterbar die f r verschiedene An wendungsgebiete entwickelt wurden hnlich wie die Toolboxen in MATLAB Im Rahmen dieser Kurzanleitung soll aber nur auf die SIMULINK Standard Block Bibliothek Abb 4 4 eingegangen werden welche zusammen mit SIMULINK ausgeliefert wird E Simulink Library Browser Eile Edit Wiew Help MfEntersssrchtem MT Libraries Library Simulink Search Results none Simulink al Commonly Used Bl Continuous Commonly Used Blocks Discontinuities IN Discrete Continuous Discontinuities Discrete Logic and Bit Opera Lookup Tables Math Operations Model Verification Model Wide Utilities Ports amp Subsystems 7 Signal Attributes Signal Routing Sinks Sources User Defined Functi Additional Math amp Communications Bl Control System
167. ve fname x y z Speichert Variablen x y und z in Datei fname mat load L dt alle Variablen aus Datei matlab mat in den Workspace load fname L dt alle Variablen aus Datei fname mat in den Workspace load fname x y z L dt Variablen x y und z in den Workspace Tabelle 3 2 Einige reservierte Systemvariablen Von diesen Befehlen sind hier die wichtigsten Optionen vorgestellt sie besitzen aber noch weitere Im Allgemeinen sei mit dieser Einf hrung immer wieder auf die MATLAB Hilfe verwiesen um alle M glichkeiten kennenzulernen und auszunutzen Aufgaben und bungen 3 15 Laden l schen und speichern Speichern Sie alle Variablen aus der Aufgabe 3 14 in eine Datei und l schen Sie den Workspace mit clear all berpr fen Sie den Inhalt des Workspace z B who Laden Sie Ihre Variablen aus der Datei erneut in den Workspace durch Doppelklicken oder mit dem Befehl load 3 5 Operatoren und eingebaute Funktionen Operatoren Die rechte Seite einer Zuweisung darf ein beliebig komplizierter algebraischer Ausdruck sein Kon stanten und bekannte Variablen d rfen in sinnvoller Weise mit Operatoren verkn pft werden Bei den arithmetischen Operatoren sind neben den blichen insbesondere das Potenzie ren und Transponieren von Bedeutung Daneben gibt es auch die logischen Operatoren 22 3 Einf hrung MATLAB nicht amp und oder xor exklusiv oder und die relationalen Operatoren gle
168. werden In der Regel werden f r Q und R Diagonalmatrizen verwendet da diese auch interpretierbar sind Beispiel 10o 0 10100 Q o o 100 0 6 3 00 0 1 i ga 0 M1 0 50 M2 Die Berechnung von K l sst sich nur numerisch bewerkstelligen In Matlab l sst sich die Matrix K ber den Befehl lqr berechnen d Berechnen Sie die Matrix K und simulieren Sie den geschlossenen Regelkreis 91 7 GUI Programmierung MATLAB bietet dem Anwender die M glichkeit eigene grafische Benutzeroberfl chen zu erzeugen Mit Hilfe eines solchen GUI Graphical User Interface gestaltet sich die Anwendung eines Pro gramms sehr viel komfortabler als durch die manuelle Eingabe von Befehlen im Command Window 7 1 GUIDE Um GUIs zu erzeugen bietet MATLAB einen Editor den sog GUIDE Durch die Eingabe von guide im Command Window wird dieser gestartet Im darauf folgenden Dialog l sst sich nun ein bestehendes GUI ffnen oder ein neues GUI aus einer Vorlage template erzeugen Standardm ig ist die Erzeugung eines leeren GUIs Blank GUI vorselektiert GUIDE erzeugt beim Speichern eine fig Datei und eine m Datei In der fig Datei wird das Layout des erzeugten GUI gespeichert in der m Datei die Funktionalit t siehe Abschnitt 7 2 Formulareditor ja untitled2 fig Fle Edt View Layout Tools Help DESE sans Bd UB gt B me ee ee ERalE Relelel Abbildung 7 1 Das neue GUI Abbildung 7 1 zeigt den Formularedito
169. werden Rekursive Zuweisungen wie beispielsweise a a 1 sind m glich Wie bereits erw hnt basieren die Variablen in MATLAB auf Matrizen Diese k nnen sowohl Zah len als auch Buchstaben enthalten In diesem Abschnitt beschr nken wir uns auf die wesentlichen numerischen Elemente Matrizen Vektoren und Skalare auf Zeichen und auf so genannte Zei chenketten Analog zum Workspace Browser wird mit den Befehlen who Namen der verwendeten Variablen und whos Namen und Gr en der verwendeten Variablen der Inhalt des Workspace im Befehls fenster angezeigt gt gt A 1 2 3 4 5 6 7 8 0 Zuweisung einer Matrix der Variable A gt gt b 1 2 3 Zuweisung eines Vektors der Variable b gt gt Axb Matrixmultpilikation gt gt d 2xA Multiplikation mit einem Skalar gt gt who Vorhandene Variablen gt gt whos und ihre Eigenschaften 20 3 Einf hrung MATLAB ans Enth lt das letzte Ergebnis eines Befehls falls keine Zuweisung zu einer anderen Variable erfolgt ist pi Enth lt die Zahl r eps Enth hlt die Zahl 275 realmin realmax Kleinstee und gr ter reeller Wert der in MATLAB verf gbar sind Inf infinit unendlich steht f r 1 0 Beachten Sie den Unterschied zu 1 0 NaN Not a Number steht f r 0 0 isj Enthalten beide die imagin re Einheit V 1 zur Eingabe von komplexen Zahlen Tabelle 3 1 Einige reservierte Systemvariablen Au erdem gibt
170. werden Diese werden im Abschnitt Value und Handle Klassen erl utert Eigenschafts Attribute Bisher enth lt die Klasse Mitarbeiter nur den Standardfall der variablen unabh ngigen von au en sichtbaren Eigenschaften Eigenschaften k nnen aber auch konstant abh ngig von anderen Eigenschaften und oder von au en unsichtbar sein Konstante Eigenschaften Soll eine Klasse konstante Eigenschaften enthalten muss daf r ein eigener properties Block er stellt werden Hinter dem Schl sselwort properties steht in diesem Fall das Wort Constant in Klammern Nachfolgend wird die Klasse Mitarbeiter um eine konstante Eigenschaft erweitert 5 properties 6 Name 7 Gehaltsstufe 1 8 end 9 10 properties Constant 11 MaximaleGehaltsstufe 5 12 end Wie das Wort Constant schon ausdr ckt k nnen die Werte konstanter Eigenschaften zwar gelesen aber nicht berschrieben werden Abh ngige Eigenschaften In einer Klasse k nnen Eigenschaften definiert werden deren Wert vom Wert einer oder meh reren anderen Eigenschaft en abh ngt Auch solche Eigenschaften werden in einem separaten properties Block definiert Dieser wird mit dem Zusatz Dependent versehen Nun soll die Klasse Mitarbeiter um die von der Gehaltsstufe abh ngige Eigenschaft Gehalt erweitert werden 14 properties Dependent 15 Gehalt 16 end Dies ist nur sinnvoll wenn auch definiert wird in welcher Weise das Gehalt von der Gehaltsstufe abh ngt Dieser Zusammenh
171. wichtungsmatrizen Q diag 10 10 R 1 und N 0 und skalieren Sie den Eingang um das System station r genau zu machen Speichern Sie das System als SS6 6 5 Control System Toolbox in Simulink 8 g Entwerfen Sie einen LQR Regler f r SS1 mit den Gewichtungsmatrizen Q diag 1 11 R 10 und N 0 und skalieren Sie den Eingang um das System station r genau zu machen Speichern Sie das System als SS7 h Plotten Sie die Sprungantworten von SS5 SS6 und SS7 Analysieren Sie das Ergebnis und berlegen Sie sich den Effekt der Gewichtungsmatrizen Q und R 6 10 Die schwebende Kugel Eine Stahlkugel soll in folgender Anordnung durch einen Elek tromagneten im Schwebezustand gehalten werden Elektro magnet jo Stahlkugel Abbildung 6 8 Skizze der Anordnung Die vom Elektromagnet auf die Kugel ausge bte Kraft Fm ist in erster N herung durch folgende Gleichung gegeben I Fm a g ao 2 mit ao 6 9 mm und a 1 16 1074 N m A2 Die Masse der Kugel betr gt m 0 114 kg und die Erdbeschleunigung g 9 81 m s a Stellen Sie die Differentialgleichung auf die die Bewegung der Kugel im Magnetfeld be schreibt b Welcher Strom I4 muss eingestellt werden um die Kugel in einem Arbeitspunkt X A 0 02m zu halten c F hren Sie f r diesen Arbeitspunkt X4 J4 eine Linearisierung der DGL durch und bringen Sie das System in Zustandsraumdarstellung Geben Sie zus tzlich den Frequenzgang des Systemes an
172. xtmen Linearization Points wie in der Abbildung gezeigt wird Hier werden der Ausgang des Blocks Step als Eingang und der Zustand x als Ausgang ausgew hlt Anschlie end wird der Control and Estimation Tools Manager der in der Abbildung 6 6 links dargestellt ist ber das Men Tools Control Design Linear Analysis ge ffnet Hier werden unter Linearization Task die Ein und Ausg nge gezeigt die in Simulink schon definiert wurden in diesem Fall der Ausgang des Integrators und der Zustand x Unter Operating Points siehe Abb 6 6 rechts k nnen Arbeitspunkte berechnet und hinzugef gt werden Hier beschr nken wir uns auf nur einen Arbeitspunkt der unter Default Operating Point eingestellt werden kann Da das Modell nur einen Zustand besitzt und der Arbeitspunkt bei Null liegt muss der Parameter State 1 gleich 0 sein Um die Linearisierung durchzuf hren muss der Knopf Linearize Model unter dem Tab Lineari zation Results bet tigt werden Das Ergebnis wird dann direkt mit dem LTI Viewer dargestellt 6 5 Control System Toolbox in Simulink amp El Control and Estimation Tools Manager P el DER File Tools Help sn su f workspace S Project plant x EB Operating Points Select linearization 1 Os by right clicking on the desired line in your Simulink model t Default Operating Po amp Active Block Name Output Port Signal Name Configuration Open Loop TEE X plant step
173. zur Berechnung von Matrizen geschrieben Eine Matrix ist f r MATLAB ein Feld mit numerischen Eintr gen W rter Strings sind Zeichenketten bei denen die Feld elemente den ASCII Code ganzzahlige positive Werte der Buchstaben enthalten MATLAB kennt zwar auch noch andere Wege alphanumerische Daten zu speichern jedoch bleiben wir vorerst bei der Vorstellung von numerischen Matrizen Konstanten Skalare sind intern 1x 1 Matrizen Vektoren sind 1xn Matrizen Zeilenvektoren oder n x 1 Matrizen Spaltenvektoren Bei Matrix Berechnungen z B Multiplikation muss immer genau der berblick behalten werden was berechnet werden soll und welche Art von Vektoren dazu verwendet werden Sonst erh lt man als Ergebnis nur Fehlermeldungen oder nicht beabsichtigte Ergebnisse da etwas anderes berechnet worden ist Matrizen mit mehr als einem Element werden zeilenweise eingegeben und mit eckigen Klammern begrenzt Innerhalb einer Matrix dienen Kommata oder Leerschritte zur Spaltentrennung und Semikola zur Zeilentrennung gt gt 1 2 3 Zeilenvektor gt gt 4 5 6 7 Spaltenvektor gt gt 1 2 3 4 5 6 7 8 0 Matrix gt gt test Zeichenkette Vektoren k nnen auch schneller in den folgenden Formen eingegeben werden wenn eine feste oder logarithmische Schrittweite verwendet werden soll e Erzeugen eines Zeilenvektors mit fester eingegebenen Schrittweite gt gt 1 Element Schrittweite letztes Element e Erzeugen ei
Download Pdf Manuals
Related Search
Related Contents
Manual do Usuário da Família UTOPIA IHMUS Hunter Fan 30700 Air Cleaner User Manual Xantech ISM4 Home Theater System User Manual DeLOCK GX53 KRAFTWERK 2244 Behringer EPA150 User's Manual IT_WITXL 149 (EU).p65 LG 60PS7000 plasma panel und Ausbau des Doona Kinderautositz auf der Copyright © All rights reserved.
Failed to retrieve file