4 Simulation unter Simulink - bilder.buecher.de SimPowerSystems und SimHydraulics, welche auf einer...

Click here to load reader

Transcript of 4 Simulation unter Simulink - bilder.buecher.de SimPowerSystems und SimHydraulics, welche auf einer...

  • 4 Simulation unter Simulinkr

    Simulink ist eine interaktive grafische Entwicklungsumgebung zur Modellierung und Simulati-on linearer und nichtlinearer dynamischer Systeme mittels Signalflussgrafen, wobei u. a. nichtli-neare Zusammenhnge und viele Signalerzeugungen blockorientiert gewonnen werden. Das zusimulierende mathematische Modell eines dynamischen Systems wird dazu grafisch mit Funkti-onsblcken in dem Modell-Fenster nachgebildet und als MDL-File abgespeichert. Das Simulink-Tool arbeitet somit gleichungsorientiert im Gegensatz zu den Tools: SimMechanics, SimDrive-line, SimPowerSystems und SimHydraulics, welche auf einer physikalischen Modellierung me-chanischer, elektrischer und hydraulischer Systeme in der Simulink-Umgebung basieren.

    Die System-Parameter/Anfangswerte lassen sich direkt in den Funktionsblcken oder indirektmittels Workspace, also durch Tastatureingabe und/oder ber ein M-File unter MATLAB, einstel-len. Die Ergebnisse sind wiederum in Simulink und/oder MATLAB darstellbar. Eine Weiterverar-beitung der Daten in der MATLAB-Umgebung ist somit mglich.

    Bezglich des Handlings beziehen wir uns auf MATLAB 7.0..7.3 und Simulink 6.0..6.5 unterWindows XP. Die Modellierung der Begleitbeispiele sowie der Ergnzungen in [59] sind weitge-hend so abgefasst, dass sie auch mit Vorgngerversionen, gegebenenfalls mit kleinen nderun-gen, lauffhig sind.

    Die fr einen Einstieg in Simulink notwendigen Kenntnisse sollen kurz zusammengefasst undspter beispielorientiert ergnzt werden. Zur Vertiefung enthlt u. a. Kapitel 8 mehrere Simulink-Projekte unterschiedlicher Schwerpunkte. In Kapitel 6 werden mit der Stateflow Toolbox sowiein Kapitel 7 mit der SimMechanics Toolbox weitere Blockelemente fr die Simulink-Umgebungeingefhrt.

    Ergnzende Erluterungen zur Handhabung und Syntax sind [6] ,[8], [13], [38] zu entnehmen.Z. B. sind in [8] Grundlagen mit Beispielen sehr detailliert und bersichtlich zusammengefasst.Zum wesentlichen Hilfsmittel sollte aber auch hier die Online-Hilfe, die von Beginn an gezielteinzusetzen ist, werden.

    4.1 Zur Funktionsweise

    4.1.1 Block-Struktur

    Basis eines Simulink-Modells sind Funktionsblcke mit vektoriellem Eingang uuu, dem Ausgangs-vektor yyy, dem Vektor der Zustnde xxx sowie den Parametern p, wie in Bild 4.1 fr eine bergeord-neter Struktur dargestellt. Der Zustandsvektor

    xxx =(

    xxxTc , xxxTdk

    )T(4.1)

  • 148 4 Simulation unter Simulinkr

    u y

    Eingang Ausgang

    Zustnde x

    Parameter p

    BlockName

    Bild 4.1: Simulink Funktionsblock, allgemein

    kann zeitkontinuierliche (xxxc) oder/und zeitdiskrete (xxxdk ) Zustnde enthalten. Es gelten die mathe-matischen Beziehungen

    yyy = fffo(t, xxx, uuu, p) Ausgang (output)xxxc = fffd(t, xxx, uuu, p) Ableitungsfunktion (derivative)

    xxxdk+1 = fffu(t, xxx, uuu, p) Zeitschritt (update).

    Derartige Bausteine beschreiben also das Ein- Ausgangsverhalten mit der eindeutigen Signal-fluss-Richtung uuu yyy.

    Darber hinaus existieren Blcke ohne Eingang (Quellen, Sources), z. B. Constant Blcke,Funktionsgeneratoren und solche ohne Ausgang, z. B. To Workspace Block (Senke, Sinks).

    Alle Blcke sind in der Block-Library und in Blocksets zusammengefasst, vgl. Abschn. 4.3.1.Sie sind gekennzeichnet durch den Block-Namen und das Block-Icon. Bei Links-Doppelmaus-klick auf den Block ffnet sich die Block Parameters Dialogbox, in der neben einer kurzenErklrung spezifische Parameter des Blocks eingestellt werden knnen (Standard- (Default-)Werte sind vorgegeben). Darber hinaus existiert ein Help-Button, ber den gezielt die zugeh-rige Online-Hilfe geffnet werden kann. Bei Rechts-Mausklick auf den Block ffnet sich einKontextmen, in dem u. a. Befehle zum Editieren von Blockeigenschaften und Formatieren desBlocks ausgewhlt werden knnen.

    4.1.2 Simulationsablauf

    Entsprechend der mathematischen Formulierung des Problems wird das Simulationsmodelldurch Verbinden geeigneter Funktionsblcke und deren zugehrigen Parametern aufgebaut. DieSimulation des Modells setzt sich dann aus den beiden Phasen Initialisierung und Ausfhrungbezglich der Zeit, meist numerische Integration, zusammen.

    Initialisierungsphase:

    1. Die Blockparameter werden an MATLAB zur Auswertung bergeben und die sich er-gebenden numerischen Werte werden den Blcken zugeordnet.

    2. Die Modell-Hierarchie wird weitgehend aufgehoben, d. h. die Blcke jedes Subsys-tems, dessen Ausfhrung nicht an Bedingungen geknpft ist, werden in das Gesamt-Modell einbezogen, so dass ein einziges Block-Modell entsteht.

    3. Blcke werden entsprechend dem Ablauf der Berechnung (serielle Arbeitsweise desDigitalrechners) mittels Sortier-Algorithmus in eine abarbeitbare Reihenfolgegebracht. Dabei ist zu beachten, dass fr jeden Block bei der Berechnung des Aus-gangs der dazu bentigte Eingang bekannt ist. D. h. es muss beim Start der Simulation

  • 4.2 Die Integrationsverfahren 149

    von Blcken, die einen vorgegebenen Ausgang besitzen, z. B. die Anfangswerte derIntegrierer, ausgegangen werden. Solche Blcke werden History-Blcke genannt. Bl-cke, die in Rckfhrungsschleifen, z. B. ohne zwischengeschaltetem Integrierer oderTotzeitglied, liegen, bei denen der Ausgang direkt auf den Eingang wirkt, werdenerkannt. Dies sind so genannte algebraische Schleifen, bei denen fffo(xxx) selbst vomAusgang abhngt. In Bild 4.2 ist ein derartiges Beispiel angegeben. Innerhalb dieserSchleifen sind keine seriellen Rechenschritte mehr vorgebbar. Es fhrt nur eine kon-vergierende iterative Berechnung des Ausgangs zum Ziel.

    u1

    y1=u2

    y2sin

    TrigonometricFunction

    1.2

    Gain

    sqrt(2)*u(1)+4

    Fcn

    y1 =

    2 u1 + 4, u1 = 1.2 y2

    yyy2 = sin u2 = sin (

    2 1.2yyy2 + 4), beide Seiten hngen von y2 ab

    Bild 4.2: Beispiel fr eine algebraische Schleife

    Beispiele in [59]: alg_loop1.mdl, alg_loop_2.mdl mit Angaben zum Simu-link-Debugger unter: File/Model Properties/Description.

    4. Die Verbindungen zwischen den Blcken werden auf Vertrglichkeit der Vektordimen-sionen des treibenden (Ausgang) und getriebenen (Eingang) Blocks berprft.

    Ausfhrungsphase:Danach kann die Ausfhrung, in der Regel die numerische Integration, mit dem ausge-whlten Lser odexx durchgefhrt werden. Hierzu mssen die Ableitungsfunktionen z. B.entsprechend xk = fk(tn,xxx) gebildet werden, vgl. Kapitel 5. Dies erfolgt in zwei Schritten:

    1. In der festgelegten Reihenfolge wird der Ausgabewert jeden Blocks bestimmt.2. Es knnen jetzt fr jeden Block die Ableitungen (z. B. xk = fk(tn,xxx)) in Abhngig-

    keit von der aktuellen Zeit tn, seiner Eingangswerte und seines Zustandes berechnetwerden. Der so ermittelte Ableitungsvektor wird an den Integrator odexx zurckgege-ben. Dieser ermittelt damit den neuen Zustandsvektor zum Zeitpunkt tn+1, vgl. auchBild 5.6. Abschlieend werden die Ausgaben, u. a. der Scopes, aktualisiert.

    Die Ausfhrungsreihenfolge der Blcke lsst sich ber den Button Format/BlockDis-plays/ SortedOrder in der Menleiste des Modell-Fensters zum Simulink-Modell einblen-den.

    4.2 Die Integrationsverfahren

    Fr die numerische Bearbeitung der mathematischen Modelle dynamischer Systeme spielen dieIntegrationsverfahren (kurz: Integrator, Solver, Lser, Code, . . .) die zentrale Rolle. Sie lsen ein

  • 150 4 Simulation unter Simulinkr

    Anfangswertproblem u. a. der Art

    xxx = fff (t, xxx(t)); xxx(t0) = xxx0 . (4.2)

    Der Auszug aus dem Simulink-Handbuch [6] in Tabelle 4.4, S. 200 gibt eine Kurzbeschreibungder verfgbaren Verfahren wieder. Grundlagen der mathematischen Methoden sind [68], [69],[74], [76] zu entnehmen. Insbesondere in [76] wird sehr anschaulich darauf eingegangen. Hiergeben wir nur einen kurzen berblick.

    Grundstzlich sind Verfahren mit fester und variabler Schrittweite h zu unterscheiden. Da-bei kann die Integrationsmethode ein Einschritt- oder Mehrschrittverfahren sein, vgl. Bild 4.3,S. 151. Wie die Namen zum Ausdruck bringen, benutzen diese Verfahren Information aus einem[tn, tn+1] oder mehreren [tnk, . . . , tn, tn+1] Integrationsintervallen. Dies kann wiederum auf ei-ne explizite oder implizite Formulierung der Integrationsmethode, siehe Bild 4.3, S. 151, fhren.Kombinationen beider Typen sind im Einsatz. Dabei werden die Formeln auf bestimmte Eigen-schaften, z. B. hohe Genauigkeit, gute Stabilitt, getrimmt. Zu den modernen Verfahren fr steifeDifferenzialgleichungen zhlen die Mehrschrittverfahren nach den BDF-Methoden (BackwardDifferentiation Formula); vgl. Bild 4.3, S. 151. Unter MATLAB gibt es eine modifizierte Me-thode, das NDF-Verfahren (Numerical Differentiation Formula); das BDF-Verfahren ist optionalaufrufbar.

    4.2.1 Methoden und Bezeichnungen

    EinschrittverfahrenUm einen kleinen Einblick in die Methoden mit den MATLAB-Bezeichnungen der Integrations-verfahren zu erhalten, sollen zunchst die ersten Verfahren aus Tabelle 4.4, S. 200 ode4, ode5und ode451 kurz skizziert werden. Sie sind Vertreter der Einschrittverfahren auf der Basis derRUNGE-KUTTA-Methode. Allgemein lassen sich, ausgehend von der skalaren Differenzialglei-chung x = f (t, x), die expliziten RUNGE-KUTTA-Methoden vgl. Bild 4.4 wie folgt beschrei-ben:

    Steigungswert in tn k1 = f (tn, xn); xn := x(tn)

    Steigungswerte in tn + cih ki = f (tn + cih, xn +h i1j=1 ai, jk j), i = 2, . . . , s

    Ergebnis xn+1 = xn +h si=1 biki .Die Koeffizienten ai, j, bi, ci charakterisieren die s-Schrittmethode, sie werden in der so genann-ten BUTCHER-Tabelle

    c1c2 a2,1c3 a3,1 a3,2... . . . . . . . . .cs as,1 as,2 . . . as,s1

    b1 b2 . . . bs1 bs

    1 ODE: Ordinaray Differential Equation

  • 4.2 Die Integrationsverfahren 151

    Bild 4.3:Darstellung und Methoden fr die skalare Differenzialgleichung: x = f (t, x)

    Es sollen die Begriffe explizite und implizite Einschritt- und Mehrschrittverfahren am Beispiel erlutertwerden.

    Einschrittverfahren: Information aus [tn, tn+1]

    EULER vorwrts xn+1 = xn + h f (tn, xn)- explizites Verfahren 1. Ordnung (Fehler 1. Ordnung)

    EULER rckwrts xn+1 = xn + h f (tn+1, xn+1)- implizites Verfahren 1. Ordnung (Fehler 2. Ordnung)

    Mehrschrittverfahren: Information aus [tnk, tn+1], k > 1

    ADAMS-BASHFORTH-Verfahren

    xn+1 = xn +h

    24(55 fn59 fn1 +37 fn29 fn3) , fn := f (tn, xn)

    - explizites 4-Schrittverfahren 4. Ordnung

    ADAMS-MOULTON-Verfahren

    xn+1 = xn +h

    720(251 fn+1 +646 fn264 fn1106 fn219 fn3)

    - implizites 4-Schrittverfahren 5. Ordnung

    Kombination aus explizitem und implizitem Verfahren ist ein Prdiktor-Korrektor-Verfahren.

    BDF-Verfahren (Backward Differenziation Formulas)

    25xn+148xn +36xn116xn2 +3xn3 = 12h fn+1

    - implizites 4-Schrittverfahren

    Bild 4.3: Zur Bezeichnung einiger Integrationsverfahren

  • 152 4 Simulation unter Simulinkr

    angegeben. Damit ist das klassische RUNGE-KUTTA2-Verfahren in der Form

    012

    12

    12 0

    12

    1 0 0 116

    26

    26

    16

    formulierbar. Es ist ein 4-Schrittverfahren der Ordnung 4 mit dem algorithmischen Aufbau

    k1 = f (tn, xn) Steigungswerte ki

    k2 = f (tn+ 12, xn +

    h2

    k1), zur Schreibweise: tn +h2

    tn+ 12 usw.

    k3 = f (tn+ 12, xn +

    h2

    k2)

    k4 = f (tn+1, xn +hk3)

    xn+1 = xn +h6(k1 +2k2 +2k3 + k4) Ergebnis, explizite Formel

    sowie der geometrischen Interpretation nach Bild 4.4. Man beachte, dass jede Stufe eines RUN-

    Bild 4.4: Geometrische Interpretation zum RUNGE-KUTTA-Verfahren 4. Ordnung

    GE-KUTTA-Verfahrens eine Funktionsauswertung f () bentigt. Ein Integrationsschritt ist daheri. a. etwa viermal so teuer wie der entsprechende EULER-Schritt, vgl. Bild 4.3, S. 151. Dennochist aufgrund der hohen Ordnung das Verfahren von RUNGE-KUTTA viel effizienter, da u. a. mitgrerer Schrittweite gearbeitet werden kann. Dies setzt sich fort, denn die DORMAND-PRINCE-Methode [20] mit den Koeffizienten nach Tabelle 4.1 ist eine der effektivsten expliziten RUNGE-KUTTA-Formeln, obwohl sich der Rechenaufwand noch einmal erhht. Tabelle 4.1 enthlt auchdie beiden MATLAB-Verfahren ode5 und ode4. Die 7-Schrittmethode (s=7) basiert auf den beidenErgebnissen x(5)n und x

    (4)n , die mit den gleichen Steigungswerten ki aber unterschiedlichen Ge-

    wichtungen b j ermittelt werden. Greift man auf das Ergebnis x(5)n zurck, dann handelt es sich

    um das des ode5 Verfahrens mit fester Schrittweite h; Verfahren 5. Ordnung. Im anderen Fall er-gibt sich das Ergebnis des Verfahrens ode4 der Ordnung 4. Verwendet man beide Ergebnisse, so

    2 genauer: das Verfahren von KUTTA

  • 4.2 Die Integrationsverfahren 153

    Tabelle 4.1: Koeffizienten der DORMAND-PRINCE-Methode

    015

    15

    310

    340

    940

    45

    4445

    5615

    329

    89

    193726561

    253602187

    644486561

    212729

    1 90173168 35533

    467325247

    49176

    510318656

    1 35384 0500

    1113125192

    21876784

    1184

    x(5)n 35384 0500

    1113125192

    21876784

    1184 0

    x(4)n 517957600 0757116695

    393640

    92097339200

    1872100

    140

    wird z. B. aufgrund der Abweichung |x(5)n x(4)n | ein Ma zur Ermittlung der Schrittweite h,im Zusammenhang mit einem vorgegebenen Fehler , bestimmbar. Wir erhalten Methoden mitvariabler Schrittweite. Dabei kann x(4)n (ode54) oder x

    (5)n (ode45) als Ergebnis akzeptiert werden.

    In gleicher Weise sind die anderen Einschrittverfahren in Tabelle 4.4, S. 200 zu interpretieren.Wie die bisher betrachteten expliziten Einschritt- (RUNGE-KUTTA-) Verfahren stellt man

    auch die impliziten Verfahren (z. B. das EULER-Rckwrts-Verfahren aus Bild 4.3, S. 151) ber-sichtlich in einem Tableau der Struktur

    c1 a11 a12 . . . a1,s1 a1,sc2 a2,1 a2,2 . . . a2,s1 a2,sc3 a3,1 a3,2 . . . a3,s1 a3,s...

    ......

    ......

    ...cs as,1 as,2 . . . as1,s1 as,s

    b1 b2 . . . bs1 bsdar. Beispiel: Die Trapez-Regel

    xn+1 = xn +12

    h ( f (tn, xn) + f (tn+1, xn+1))

    kann als zweistufiges implizites RUNGE-KUTTA-Verfahren aufgefasst werden:

    k1 = f (tn, xn)

    k2 = f (tn +h, xn +h(12

    k1 +12

    k2))

    xn+1 = xn +h2(k1 + k2).

    zugehrige Tableau

    0 1 01 12

    12

    12

    12

    Nachteil der impliziten RUNGE-KUTTA-Verfahren ist, dass die ki nicht nacheinander berechnetwerden knnen, sondern dass in jedem Schritt ein i. a. nichtlineares Gleichungssystem von s NGleichungen in den kkk1, . . . ,kkks gelst werden muss, wobei N die Dimension des Differenzialglei-chungssystems bezeichnet.

  • 154 4 Simulation unter Simulinkr

    Bei weniger steifen Differenzialgleichungen folgt aus dem Fixpunktsatz fr kontrahierendeAbbildungen, dass die Fixpunktiteration [76] gegen die Lsung (ki)i=1,...,s konvergiert, wenn dieSchrittweite die LIPSCHITZ-Bedingung, vgl. [74], erfllt; z. B. fr k2 aus der obigen implizitenRUNGE-KUTTA-Formel im `-ten Iterationsschritt

    k2`+1 = f(

    tn +h, xn +h(

    12

    k1 +12

    k2`

    )), ` = 1, 2, . . . , k21 Startwert.

    Bei steifen Systemen muss das nichtlineare Gleichungssystem fr die ki immer mit dem NEW-TON-Verfahren oder einer verwandten Methode gelst werden. Hierfr bentigt man die JACOBI-Matrix.

    Eine dritte Mglichkeit ist die Kombination eines expliziten (Prdiktorschritt (P)) und einesimpliziten (Korrektorschritt (K)) Verfahrens, die so genannte Prdiktor-Korrektor-Methode. Frdie EULER-Verfahren nach Bild 4.3, S. 151 bedeutet dies:

    xPn+1 = xn + h f (tn, xn) Prdiktorschritt P , EULER-Vorwrts-Schritt

    xKn+1 = xn + h f (tn+1, xPn+1) Korrektorschritt K (+ z. B. Fixpunkt-Iteration)

    Mehrschrittverfahren

    In hnlicher Weise wie die oben angesprochenen Einschrittverfahren sind auch die Mehrschritt-verfahren gekennzeichnet, wobei zustzlich die Ordnung des Verfahrens anpassbar bzw. einstell-bar ist, z. B. ode113, ode15s aus Tabelle 4.4, S. 200.

    Bei den linearen Mehrschrittverfahren benutzt man zur Berechnung der Nherung xn+s die be-reits ermittelten zeitlich zurckliegenden Werte Nherungen xn+s1, xn+s2, . . . , xn. Mehr-schrittverfahren sind somit nicht selbststartend und arbeiten deshalb zu Integrationsbeginn u. a.mit Einschrittverfahren zusammen. Es werden explizite und implizite s-Schritt-Verfahren un-terschieden, vgl. Bild 4.3, S. 151. Die Mehrschrittverfahren ADAMS-BASHFORTH, ADAMS-MOULTON usw. basieren auf der numerischen Lsung einer Integralgleichung [74], die BDF-Me-thoden werden dagegen mit Hilfe der numerischen Differenziation konstruiert. Beispiele implizi-ter Formeln sind u. a. nach [74]

    s = 1 : xn+1 xn = h fn+1, fn+1 := f (tn+1, xn+1), EULER-Methode; vgl. Bild 4.3s = 2 : 3xn+14xn + xn1 = 2h fn+1s = 6 : 147xn+1360xn +450xn1400xn2 +225xn372xn4 +10xn5 = 60h fn+1.

    Fr s 6 sind die Formeln stabil, fr s 7 instabil. Die Verfahren s 6 zeichnen sich durch einverbessertes Stabilittsverhalten gegenber expliziten Verfahren, insbesondere steifer Systeme,aus. Bei impliziten Verfahren muss in jedem Schritt wieder ein nichtlineares Gleichungssystem,z. B. fr die implizite EULER-Formel

    F(xn+1) = xn+1 xnh f (tn+1, xn+1)

    gelst werden. Dies kann z. B. mit dem NEWTON-Verfahren mit dem Startwert xn erfolgen; hier-zu muss die JACOBI-Matrix (F/x|xn+1 ), analytisch oder nherungsweise numerisch, berechnetwerden, vgl. Optionen zum Aufruf der Integrationsverfahren unter MATLAB in Kapitel 5.

  • 4.2 Die Integrationsverfahren 155

    4.2.2 Steifigkeit der Differenzialgleichung

    Wesentlich fr die Verfahrensauswahl ist die Kenntnis der Steifigkeit der Differenzialgleichung.Wir geben eine Definition stichwortartig an: Ein Differenzialgleichungssystem heit steif, wenndie Eigenwerte des Systems sehr unterschiedliche (negative) Realteile aufweisen. Als Ma derSteifigkeit gilt u. a. der Quotient der Betrge der absolut grten und kleinsten (negativen) Real-teile der Eigenwerte

    S :=max jmin j

    |( j)||( j)|

    .

    Bei steifen Differenzialgleichungen erreicht S Werte von 106 und hher. Das Problem der Stei-figkeit existiert ausgeprgt bei nichtlinearen Differenzialgleichungen

    xxx(t) = fff (t,xxx(t)) xxx(t) Rn. (4.3)

    Die Steifigkeit wird fr das linearisierte System definiert, indem das lokale Verhalten der exak-ten Lsung xxx(t) in der Umgebung von tn betrachtet wird. Hierbei liegt die Anfangsbedingungxxx(tn) = xxxn, wo xxxn die berechnete Nherungslsung an der Stelle tn bedeutet, zu Grunde. Unterder Voraussetzung der gestrte Lsung

    xxx(t) = xxxn +zzz(t) fr tn t tn +h; Norm von zzz und h klein

    entwickeln wir (4.3) in eine TAYLOR-Reihe und brechen nach dem ersten Glied ab

    xxxn + zzz(t) = fff (tn, xxxn)+ fffxxx

    n

    zzz(t)+O(zzz2),

    woraus schlielich mit (4.3) die erste Nherung

    zzz(t) = fffxxx

    n

    zzz(t) = JJJ(tn, xn) zzz(t)

    folgt. Dies ist eine lineare Differenzialgleichung mit konstanter Koeffizientenmatrix JJJ(tn, xn),mit deren Eigenwerte sich S ermitteln lsst. Somit wird das qualitative Verhalten von xxx(t) inder Umgebung von tn durch zzz(t) beschrieben. Das nichtlineare Differenzialgleichungssystemwird als steif bezeichnet, falls die Eigenwerte der JACOBI-Matrix JJJ(tn, xn) sehr unterschiedlichenegative Realteile haben und S gro ist. Das Ma der Steifigkeit von (4.3) ist bei nichtlinearenim Gegensatz zu linearen Systemen abhngig vom Zeitpunkt tn und der momentanen Nherungs-Lsung xxxn, so dass sich S im Verlauf der Integration sehr stark ndern kann. Moderne Verfahrennutzen dies zur Anpassung an den Integrationsablauf und stellen damit die Schrittweite sowiedie Ordnung des Integrationsverfahrens ein.

    Eine sinnvolle Erweiterung der Definition fr steife Systeme ist in [76] angegeben

    S :=max jmin j

    | j|| j|

    , Anhaltswert: S > 104, . . . , 106 ,

  • 156 4 Simulation unter Simulinkr

    wobei durch die Eigenwerte j auch schwach gedmpfte, hochfrequente Lsungsanteile erfasstwerden.

    In MATLAB sind, wie schon angedeutet, zwei Methoden zur Lsung steifer Systeme implemen-tiert. Die Function ode15s verwendet BDF- oder NDF-Formeln der Ordnung k {1, 2, 3, 4, 5};vgl. [68], [74]. NDF-Methoden sind Modifikationen der BDF-Methoden, die ebenfalls A-stabil(absolut stabil) [68], [74] sind. Sie besitzen eine etwas grere Genauigkeit als die BDF-Me-thoden. Die Function ode23s verwendet ein ROSENBROCK-Verfahren der Ordnung 3, wobei derFehler mit einer Methode der Ordnung 2 geschtzt wird. Es ist geeignet, wenn die Genauigkeits-ansprche nicht zu hoch sind.

    4.2.3 Bemerkungen zur Wahl der Verfahren

    Einer Anfangswertaufgabe sieht man nicht unmittelbar an, ob ihre Lsung steif ist. Es gibt einigeAufgabenklassen, bei denen man wei, dass steife Lsungen zu erwarten sind, wie z. B. bei derVAN-DER-POL-Gleichung

    x ( 1 x2 ) x + x = 0

    mit sehr groen Parametern oder mechanischen Systemen mit sehr unterschiedlichen Steifig-keits- und Dmpfungskonstanten. In diesen Fllen wird man sofort steife Lser verwenden.

    Liegen keine guten Grnde dafr vor, dass eine steife Lsung zu erwarten ist, wird man zuerstversuchen, das gegebene Problem mit einem nicht-steifen Lser zu behandeln, denn explizite(eingebettete) RUNGE-KUTTA-Verfahren, z. B. ode45, oder Mehrschrittverfahren vom ADAMS-Typ sind wesentlich billiger als steife Lser. Bei steifen Lsern hat man in jedem Schritt einnichtlineares Gleichungssystem zu lsen und hierzu die JACOBI-Matrix der rechten Seite odereine Nherung davon aufzustellen.

    Praktisch: Beobachtet man, dass der Lsungsprozess nur sehr langsam voranschreitet, wirdman zu einem steifen Lser wechseln.

    RUNGE-KUTTA-Verfahren ermglichen eine einfache Schrittweitensteuerung (Adaptivitt),haben aber den Nachteil gegenber dem ADAMS-Verfahren, dass in jedem Schritt die rechte Sei-te von (4.2) an mehreren Stellen ausgewertet werden muss (fr das Verfahren von DORMANDund PRINCE der Ordnung 5 an 6 Stellen). Beim Prdiktor-Korrektor-Verfahren kann man hoheOrdnungen mit 2 oder 3 Auswertungen erreichen. Man wird daher ein Mehrschrittverfahren ver-wenden, wenn die Auswertung der rechten Seite der Differenzialgleichung sehr teuer ist. In derRegel wird man Verfahren hoher Ordnung nur dann verwenden, wenn die rechte Seite der Dif-ferenzialgleichung sehr glatt ist. Man verwendet den TAYLORschen Satz, um Methoden hoherKonsistenzordnung zu entwickeln.

    Eine Regel fr die Auswahl steifer Lser ist nicht so einfach zu formulieren. Einen Anhalts-punkt geben die Stabilittsgebiete der Verfahren, z. B. nach [68], [74], [76]. Wenn man wei,dass die Eigenwerte der Linearisierung der rechten Seite in der Nhe der negativen reellen Achseliegen, so wird man BDF bzw. NDF Formeln whlen. Wei man, dass Eigenwerte der JACOBI-Matrix nher an der imaginren Achse als an der negativen reellen Achse liegen, so wird manROSENBROCK-Methoden oder Extrapolationsverfahren verwenden.

  • 4.3 Simulink-Grundlagen 157

    4.3 Simulink-Grundlagen

    Zunchst gehen wir auf Grundlagen zum Umgang mit Simulink ein, um daran anschlieend dieModellierung mit Simulink an einem kleinen Projekt zu vertiefen. Der Zugang zu Simulink er-folgt mit dem Button in der Men-Leiste des MATLAB Desktop nach Bild 1.1. Es ffnet sichder Library Browser mit der Menleiste File/Edit/View/Help. Insbesondere wird berFile/New/Model oder Ctrl+N ein neues Modell-Fenster mit der Men-Leiste File/E-dit/View/Simulation/Format/Tools/Help bereitgestellt. Entsprechend sind gespei-cherte Simulink-Programme mit der Endung mdl zu ffnen. Fr die letzten beiden Vorgngeexistieren die Standard-Button . Des Weiteren werden alle Hauptgruppen der Library ange-zeigt, auf die wir im Folgenden eingehen werden.

    4.3.1 Die Modell-Library

    Wesentlich fr jedes Simulationsprogramm ist das Modellangebot in der verfgbaren Library. InSimulink 6 ist die Library in die vierzehn Hauptgruppen mit den eingefrbten Symbolen nachBild 4.5 unterteilt. Einhergehend mit der stndigen Erweiterung der Libraries der Vorgngerver-sionen kam es zur Ergnzung und teilweise Umstrukturierung der Gruppen. D. h. Blcke ausVorgngerversionen knnen anderen Gruppen zugeordnet sein. In Bild 4.5 ist eine Auswahl derverfgbaren Funktionsblcke abgebildet. Zu jedem Block gehrt ein Parameter-Dialog-Fenster,welches sich mit einem Doppelklick der linken Maustaste ffnen lsst.

    Neben diesen aufgefhrten Library-Blcken existieren ergnzende Blocksets, die einerseitsinnerhalb der Library unter Additional Math & Discrete und andererseits unter Simulink extrasowie in anderen Tools zu finden sind.

    Beispiel 4.1: ModellerstellungFr die Differenzialgleichung

    x =0.5 x + 5

    ist das Simulink-Modell zu erstellen. Die Zeit t und x sind mit dem To WorkspaceBlock und xp = x mit dem Outport Block, siehe Abschn. 4.3.2, in den Workspacezu schreiben. Zur Integration von x wird ein Integrator Block, zur Abbildung derrechten Seite ein Summierer, d. h. ein Sum Block (ohne Abbildung in Bild 4.5) be-ntigt. Die Konstante 5 wird mit dem Constant Block und die Verstrkung von 0.5mit dem Gain Block realisiert. Nach dem ffnen des Modell-Fensters (Ctrl+N) sinddie ausgewhlten Blcke der Library mit der linken Maustaste anzuklicken und bei ge-drckter Taste ins Modell-Fenster zu ziehen click-and-drag mouse operation . DerSignalpfad zwischen den Blcken erfolgt, ausgehend vom Ein- oder Ausgang der zuverbindenden Blcke, ebenfalls mit gedrckter linker Maustaste. Eine automatischeSignalverbindung wird durch Aktivieren z. B. des Ausgangs-Blocks mit der linkenMaustaste und anschlieender Aktivierung des Folgeblocks bei gleichzeitig gedrck-ter Strg- bzw. Ctrl- Taste erreicht. Abschlieend sind die Parameter 5, 0.5 sowieder Anfangswert x(0) = 0 des Integrierers in die jeweilige Dialogbox einzutragen. Der

  • 158 4 Simulation unter Simulinkr

    Bild 4.5: Beispiele fr die Zuordnung der Funktionsblcke der Library unter Simulink 6

    Simulationsstart mit der zuvor eingegebenen Integrationsdauer erfolgt ber den But-ton Simulation/Start oder dem Button. Das komplette Modell ist in Bild 4.6abgebildet. Zum Experimentieren dient Lib_Beisp.mdl aus [59].

    Bild 4.6: Beispiel eines einfachen Block-Modells

    4.3.2 Einstellung des Integrators und des Datentransfers

    Die Integratorauswahl erfolgt im Modell-Fenster unter dem Menpunkt Simulation Opti-on Configuration Parameters; vgl. Bild 4.7. Hier existieren in Abhngigkeit der vorhan-denen Toolboxen mehrere anwhlbare Dialogseiten: Solver, DataImport/Export, Di-

  • 4.3 Simulink-Grundlagen 159

    Bild 4.7: Configuration Parameters Fenster von Solver und Data Import/Export, Simulink 6.4

    agnostic usw.. Auf der Solver-Seite werden Start- und Stopp-Zeit, das Integrationsverfah-ren und Daten zur Schrittweite sowie zur Toleranzvorgabe eingestellt. Unter Zeroscrossingcontrol ist die Nullstellen-Detektion spezieller Blcke bergeordnet ein- oder ausschaltbar.

    Auf der Seite DataImport/Export nach Bild 4.7 wird u. a. der Datentransfer zwischenSimulink und dem Workspace sowie einige Optionen organisiert:

    Load from workspace: Einerseits knnen unter Input ein Zeit- und Eingangsvektor ttt, uuuund andererseits unter Initial State der Anfangswertvektor xInitial der Zustnde an dasSimulink-Modell bergeben werden. Fr [t,u] mssen im Modell dafr Inports-Blckeaus der Ports & Subsystems-Bibliothek vorhanden sein; siehe FromWorksp.mdl in [59].

    Save to workspace: Datentransfer aus dem Simulink-Modell in den Workspace. Dies beziehtsich auf den Zeitvektor z. B. tout , auf den Zustandsvektor xout sowie auf die Ausgangsvaria-blen yout denen Outports-Blcke vgl. Bild 4.6 aus der Ports & Subsystems-Bibliothek zu-geordnet sein mssen. Die Reihenfolge der gespeicherten Zustnde (Integrator-Ausgnge)wird von dem Sortier-Algorithmus, wie in Abschn. 4.1.2 beschrieben, festgelegt. Sie kannmit Format/ BlockDisplays/SortedOrder ins Modell-Fenster eingeblendet wer-

  • 160 4 Simulation unter Simulinkr

    den. Darber hinaus knnen die Zustandswerte (xFinal) zur Stopp-Zeit gespeichert wer-den; siehe FromWorksp.mdl in [59].

    Im Feld Save options kann die Anzahl der gespeicherten Daten tout , yout usw. begrenzt wer-den. Unter Output options/Refineoutput ist es mglich, mit dem Refine factorzustzliche Ausgabewerte mittels Kurvenglttungs-Methoden im Integrationsintervall[tn, tn+1] zu erzeugen; d. h. Refine factor = 1 liefert keine, Refine factor = r liefertr 1 Zwischenwerte. Der Defaultwert ist 1. Die Zwischenwerte beziehen sich nur auf dieAusgabe und nicht auf die Darstellungen im Scope oder XY Graph.

    Im Diagnostic-Fenster kann u. a. ausgewhlt werden, wie bei den aufgelisteten Ereignissen(z. B. Algebraic loop, Date overflow usw.) whrend einer Simulation reagiert werden soll; z. B.mit: Warning, Error (Simulationsabbruch) oder none.

    4.3.3 Datentransfer ber den Workspace

    Die Parameter und/oder Matrixelemente usw. der Funktionsblcke lassen sich in den zugeh-rigen Parameter-Dialog-Boxen als numerische oder symbolische Werte eintragen, z. B. gilt freine 22-Matrix:

    [0 1; 1 4] oder A.Ist der symbolische Wert (A) eingetragen, z. B. im State Space Block von Bild 4.8, dann ms-sen die zugehrigen numerischen Werte vor dem Simulationsstart im Workspace liegen. Dieseskann u. a. ber eine Tastatureingabe oder ber ein angestartetes M-File erfolgen, wie in Bild 4.8verdeutlicht. Der Datentransfer aus dem Simulink-Modell in den Workspace erfolgt u. a. berden TO Workspace Block in Array- oder Structure-Format, z. B. wie in Bild 4.8 fr die Matrixsimout oder den Outport Block wie in Bild 4.6 und Abschn. 4.3.2. Damit knnen die Daten inMATLAB u. a. zur grafischen Darstellung weiterverarbeitet werden. Eine weitere Mglichkeit zur

    Bild 4.8: Datenaustausch am Beispiel des State Space Blocks

    bergabe der Simulationsdaten in den Workspace kann im Scope-Fenster durch aktivieren derArray- oder Structure-bergabe, vgl. Abschn. 4.3.5.4, S. 166, erreicht werden.

    4.3.4 Simulationsaufruf aus der MATLAB Umgebung

    Die Simulation kann einerseits direkt aus dem Men-Punkt Simulation/Start oder mitdem Start-Icon der Menleiste und andererseits aus der MATLAB-Umgebung, mittels Tastatur

  • 4.3 Simulink-Grundlagen 161

    oder M-File, erfolgen. Aus der MATLAB-Umgebung wird der Start mit dem Aufruf der Functi-on sim eingeleitet. Optionen werden mit simset gesetzt und knnen mit simget aufgelistet wer-den, verfolge: help sim usw.. Die einstellbaren Optionen umfassen z. B. die der Solver- undDataImport/Export-Seite, z. B. RelTol, AbsTol, MaxRows, Refine usw.. Ausgabe-Daten werden entsprechend dem Function-Aufruf in eckige Klammern gesetzt, sie beinhaltendie Gren der Data Import/Export Seite unter Save to workspace. Daten des Workspace,die im Feld Load from workspace aufgefhrt sind, stehen im Aufruf hinter den Optionen. DieSyntax eines Aufrufs lautet:

    [tout,xout,yout] = sim(modell,timespan,options,tu)mit siehe auch FromWorksp.mdl in [59]

    tout Zeitvektorxout Zustnde, spaltenweiseyout Daten der Outports, spaltenweisemodell Name der Modelldatei, z. B. model ohne Endung mdltimespan Zeitintervall: z. B. te Stoppzeit (bei Startzeit 0) oder

    [ta, te] Start und Stoppzeit usw.option mit simset zu kreierende

    optionale Parameter (z. B. Genauigkeit) der Simulationtu Eingangsvariablen ber Inports Blcke tu = [t,u]

    Beispiel: Aufruf fr eine Integration im Debugger-Mode nach Abschn. 4.3.5.6, bei der maximal1000 Zeilenelemente ausgegeben und die Integrationsdaten mit einem zustzlichen Zwischen-wert geglttet werden sollen. Die Integrationszeit sei 10 s:

    meine_opt= simset(MaxRows,1000,Refine,2,debug,on);[t,x]= sim(Prog_Name,10,meine_opt);

    4.3.5 Hilfsmittel zur Modellerstellung und Datenauswertung

    Zur besseren bersichtlichkeit und Transparenz werden Modellgruppen, meist von Teilstruk-turen wie Filter, Regler, Radaufhngung usw., zu Subsystemen zusammengefasst. Dabei ist eswesentlich, dass die zugehrigen Blcke bereits optisch Aussage ber ihren Inhalt anzeigen. Zurdiesbezglichen Block-Maskierung geben wir einige Anregungen. Darber hinaus bieten die Sco-pe Blcke Mglichkeiten zur Grafikdarstellung in der MATLAB-Umgebung, so dass nderungenund Ergnzungen leicht durchgefhrt werden knnen.

    4.3.5.1 Zur Erstellung eines Subsystems

    Bei komplexeren bzw. umfangreichen Modellen gewinnt man an bersichtlichkeit, wenn Mo-dellgruppen zu Subsystemen zusammengefasst werden. Darber hinaus knnen mehrfach einge-setzte Baugruppen in einer Modell-Bibliothek in Form von Subsystemen bereitgestellt werden.Wir unterscheiden in Bild 4.9 zwei Mglichkeiten der einfachen Subsystem-Erstellung fr diezeitdiskrete Folge yk = yk1 +1, k = 1,2, . . ., die wir stichwortartig beschreiben.

    1. Ausschnitt eines vorhandenen Modells; vgl. Bild 4.9links:

    a. Modell kopieren, da Vorgehensweise eingeschrnkt umkehrbar ist.