19
Semantik in Simulink-Modellen Christian Burger 2009-06-13 C. Burger () Simulink-Semantik 2009-06-13 1 / 18

Semantik in Simulink-Modellen - Support Serverhs/Lehre/2009-SS_EmSys/... · Motivation Motivation Warum interessiert die Simulink-Semantik? aus Anwendersicht Vermeidung von Fehlern

  • Upload
    votram

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Semantik in Simulink-Modellen

Christian Burger

2009-06-13

C. Burger () Simulink-Semantik 2009-06-13 1 / 18

1 Motivation

2 Modellsemantik

3 Semantik in der Simulation

C. Burger () Simulink-Semantik 2009-06-13 2 / 18

Motivation

Einfuhrung

Was ist Semantik allgemein?

Bedeutungslehre

ermoglicht Benutzung einer Sprache/ eines Programmes

beschreibt wie ein Modell interpretiert werden soll

Was ist Semantik in Simulink-Modellen?

Bedeutung der einzelnen Blocke und den Verknupfungen fur das Ergebnisder Simulation.

C. Burger () Simulink-Semantik 2009-06-13 3 / 18

Motivation

MotivationWarum interessiert die Simulink-Semantik?

aus Anwendersicht

Vermeidung von Fehlern im Design

schnelles Finden von Ursachen fur ungewunschtes Verhalten

ein Bewusstsein fur den Unterschied zwischen der Simulation und derWirklichkeit

aus Entwicklersicht

korrekte Transformation von Simulink-Modellen in andereModellierungssprachen (Lustre, Z)

Grenzen der Transformationen kennen

Erweitern von Simulink um eigene Bauelemente

C. Burger () Simulink-Semantik 2009-06-13 4 / 18

Modellsemantik

1 Motivation

2 Modellsemantik

3 Semantik in der Simulation

C. Burger () Simulink-Semantik 2009-06-13 5 / 18

Modellsemantik

Einsatzzweck

Modellieren, Simulieren, Analysieren von dynamischen/ reaktiven Systemen

Modellierung

Modellierung graphischer Reprasentationen der Systeme und passendeErganzungen durch Code

Modellsemantik

mathematische Beziehung von Eingabe, Systemzustand und Ausgabe inAbhangigkeit der Zeit

C. Burger () Simulink-Semantik 2009-06-13 6 / 18

Modellsemantik

Blocke

Ausgabefunktion: fo(t, x , ~u) = ~y

Aktualisierungsfunktion: fu(t, x , ~u) = ~xdk+1

Ableitungsfunktion: fd(t, x , ~u) = ~x ′c

mit innerem Zustand: x =( ~xc~xdk

)f ist definiert durch Blocktyp und optional Parameter

C. Burger () Simulink-Semantik 2009-06-13 7 / 18

Modellsemantik

Blocke

Eigenschaften und ihre Semantik

persistent gegenuber direkt durchgeschliffene Eingaben(direct-feedthrough)

virtuell gegenuber nicht-virtuell

diskret gegenuber kontinuierlich

(einstellbare) Blockparameter (konnen MatLab-Ausdrucke sein)

(implizite) Abtastrate

Blockklassen und Beispiele

Klassen Quellen, Senken, arithmetische Funktionen, logischeFunktionen, kontinuierliche und diskrete Funktionen; aberauch: benutzerdefinierte Funktionen (Embedded Matlab oderS-Functions)

Beispiele Mux, Demux, Add, Sub, Integral, Memory

C. Burger () Simulink-Semantik 2009-06-13 8 / 18

Modellsemantik

Blocke

Eingangs-, Ausgangssignal

Datentypen: double, single, int**, uint** (**: 8, 16, 32)

dimensionalisiert

hierarchisches Modell

Subsystem-Block: eigenstandiges Blockdiagramm

⇒ theoretisch beliebig tiefe Verschachtelung von Blockdiagrammen

virtuelle gegenuber atomare Subsysteme

bedingte Ausfuhrung: Trigger-Subsystems, Enabled-Subsystems

C. Burger () Simulink-Semantik 2009-06-13 9 / 18

Modellsemantik

Kontrollflussblocke

eigentlich durch Stateflow ubernommen

Typen: for, if-else, switch, while

C. Burger () Simulink-Semantik 2009-06-13 10 / 18

Modellsemantik

Schleifen

entspricht: z = u − z ⇔ z = u2

geht problemlos mit rein arithmetischen Schleifen

C. Burger () Simulink-Semantik 2009-06-13 11 / 18

Semantik in der Simulation

1 Motivation

2 Modellsemantik

3 Semantik in der Simulation

C. Burger () Simulink-Semantik 2009-06-13 12 / 18

Semantik in der Simulation

Simulationsablauf (In zwei Phasen)

Vorbereitung

1 Modell konkretisieren (Block-Parameter berechnen, vom Benutzernichtdefinierte Signaleigenschaften festlegen: eindeutiger Name,Daten-Typ)

2 Syntaktisch verfizieren (Ausgangssignaltypen passen zuEingangssignalen)

3 Ablaufoptimierung

4 Berechnungsreihenfolge festlegen (virtuelle und atomare Subsysteme)

5 einzelne Block-Abtastraten und Gesamtabtastrate festlegen

C. Burger () Simulink-Semantik 2009-06-13 13 / 18

Semantik in der Simulation

Simulationsablauf (In zwei Phasen)

Durchfuhrung

1 Ausgabewerte aktualisieren

2 innere Zustande (diskret, kontinuierlich) aktualisieren

3 Nullstellenerkennung (nur bei kontinuierlichen Blocken)

4 nachsten Zeitschritt ermitteln

C. Burger () Simulink-Semantik 2009-06-13 14 / 18

Semantik in der Simulation

Solver

Fixed-Step gegenuber Variable-Step

Diskret gegenuber Kontinuierlich

Solver-Semantik

Model(XC ,UC ,YC , I , f , h)

x : t → XC

y : t → YC

u : t → YC

fixed-step Solver mit Abtastabstand δ

Abtastzeitraum t = [ti , tf ]

Startzustand: x(ti ) ∈ I

Aktualisierung: ∀t ∈ [ti , tf ], x(t + δ) = x(t) + δf (x(t), u(t))

Ausgabe: ∀t ∈ [ti , tf ], y(t) = h(x(t), u(t)).

C. Burger () Simulink-Semantik 2009-06-13 15 / 18

Semantik in der Simulation

Eulersches Polygonzugverfahren

C. Burger () Simulink-Semantik 2009-06-13 16 / 18

Semantik in der Simulation

Am Beispiel: Kontinuierliches Systeme

C. Burger () Simulink-Semantik 2009-06-13 17 / 18

Anhang

Ende

1 Motivation

2 Modellsemantik

3 Semantik in der Simulation

C. Burger () Simulink-Semantik 2009-06-13 18 / 18

Anhang

Quellen

C. Burger () Simulink-Semantik 2009-06-13 19 / 18