Modellbasierte SoftwareEntwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und
Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik
Von der SystemSpec zur SWSpec • Identifikation, welche Anforderungen durch Software •
gelöst werden können / sollen Beschreibung der Schnittstellen der SW zur Außenwelt
Analoge Ein / Ausgänge (Sensoren, Aktuatoren) Digitale Ein / Ausgänge (Knöpfe, Schalter, Lämpchen, Displays, Kommunikationskanäle, Signale, Parameter)
• Beschreibung der Funktionalität der SW bezogen auf
•
die Schnittstellen Beziehungen zwischen SRS und SWRS
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 2
physikalische Modellierung 1. Identifikation der relevanten Umgebungsgrößen 2. Repräsentation durch mathematische Variablen 3. Eigenschaften / Relationen der Variablen festlegen die relevanten Variablen sind im Allgemeinen zeitabhängig Funktionen über der Zeit! - Zustand: Wert aller Funktionen zu einem gegebenen Zeitpunkt - Trajektorie: Veränderung des Zustandes in der Zeit Festlegung: überwachte und geregelte Variablen („monitorierte“ und „kontrollierte“ Größen)
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 3
Beispiel Füllstandsregelung Zulauf
Füllstandsanzeiger max min
Ablauf
Variable
Typ
Beschreibung
Werteber eich
Einheit
f
m
Füllstand
0-100
mm
z
c
Zulauf
0-1
prozentuale Öffnung
Ablauf
0-1
nicht zugänglich
a min
konstant
Minimalfüllstand
86
mm
max
konstant
Maximalfüllstand
95
mm
Bemerku ng
• informelle Anforderungen: Wenn f < min, Zulauf einschalten Wenn f > max, Zulauf ausschalten
• Stellvertretend für Heizungsthermostat, Batterieladegerät, Dämmerungslicht, …
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 4
Festlegung in Systemspezifikation • Randbedingungen von der Natur oder vom Auftraggeber vorgegeben - z.B. physikalische Beschränkungen - z.B. Altsysteme, zu beachtende Restriktionen etc. Verantwortlichkeit des Auftraggebers!
• Steuerfunktionalität Abbildung von überwachten in gesteuerte Größen i.A. mehrdeutig, relational; Definitionsbereich von Randbedingungen eingeschränkt, Wertebereich gibt zulässige Trajektorien an Verantwortlichkeit des Systemingenieurs H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 5
Zulauf
im Beispiel
Füllstandsanzeiger
max min
• Randbedingungen
Ablauf
0 f(t) h 0 < f(t) < h f´(t)= k1*z(t) – k2*a(t)
• Steuerfunktionalität als Klauseln
f(t) min z(t) = 1 f(t) max z(t) = 0
als partielle Funktion z(t) =
1 0 undef
falls f(t) min falls f(t) max sonst
als Abbildung C ={(f(t), z(t)) | (f(t) min z(t) = 1) (f(t) max z(t) = 0)} H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 6
Trajektorienbereiche
t
• intendierte, erlaubte und verboten H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 7
Zulauf
im Beispiel
Füllstandsanzeiger
max min Ablauf
• Zulauf sei kontinuierlich regelbar (0 z(t) 1); der
Füllstand sollte möglichst nahe an soll=(min+max)/2 gehalten werden intendiertes Verhalten: je näher der Füllstand bei soll ist, desto mehr wird der Zulauf geschlossen erlaubtes Verhalten: voller Zulauf bis soll erreicht wird, dann zu (oszilliert, ruiniert auf Dauer das Ventil) verboten: max wird irgendwann überschritten und Ventil ist auf
gesucht: „sanfte“ Regelung (PID) H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 8
Katze-und-Maus-Problem
• fängt die Katze die Maus oder nicht? (trifft die Abwehrrakete das Projektil oder nicht?) H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 9
Modellierung Konstante: vk, vm, xz, yz, xm(0), ym(0), xk(0), yk(0)
Katze Geschwindigkeit vk Position (xk(t),yk(t)) Ziel (xz,yz)
Maus Geschw. vm Pos. (xm(t),ym(t))
Geschwindigkeitsvektor Maus vm2 = xm2+ym2 xm = xz-xm(0) , ym = yz-ym(0) dmz= sqrt(xm2+ ym2) xm/ vm= xm/ dmz , ym/vm = ym/ dmz Geschwindigkeitsvektor Katze vk2 = xk2+yk2 xk = xm-xk , yk = ym-yk dkm= sqrt(xk2+ yk2) xk/ vk= xk/ dkm , yk/ vk = yk/ dkm
• Differentialgleichungssystem für diese Variablen H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 10
Datenflussmodellierung • Beispiel ist stark datenorientiert Kontrollfluss nur zum Abbruch
• Modellierung durch Datenflussdiagramm jede „Leitung“ entspricht einer Variablen Konstante als spezielle Variable
• Integratoren • Rückkoppelungen H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 11
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 12
Simulationsergebnis
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 13
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 14
Abstraktion • Hauptstärke von
SimuLink besteht in der Möglichkeit, Blöcke zusammenzufassen Abstraktion von Verhalten baumartige Navigation Parametrisierung Modulbibliotheken externe Erweiterungen Codeanbindung
• Modelltransformation und –entwicklung!
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 15
Crashkurs Regelungstechnik • Eingebettetes System: System Umgebung
• Allgemeines Schema eines Regelkreises:
© Prof. Dr.-Ing. Ch. Ament
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 16
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 17
Reglerklassen • Proportionaler, integraler und differentialer Anteil bei der Regelung
P-Regler: u(t)=k*e(t) I-Regler: u(t)=k*e(t) dt D-Regler: u(t) = k*e(t) PI-Regler: u(t) = k1*e(t) + k2*e(t) dt PD-Regler: u(t) = k1*e(t) + k2*e(t) PID-Regler: u(t) = k1*e(t) + k2*e(t) dt + k3*e(t) u(t) = KP*[e(t) + 1/TI*e(t) dt + TD *e(t)]
KP: Proportionalbeiwert, TI: Nachstellzeit, TD: Vorhaltezeit
• Ziel: Vermeidung bzw. Dämpfung von Überschwingungen • „Reiner“ Differenzierer nicht realisierbar (Verzögerung!) H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 18
informell • PID-Regler: P(proportionaler) Anteil: „Je größer die Regelabweichung, umso größer muß die Stellgröße sein“ I(integraler) Anteil: „Solange eine Regelabweichung vorliegt, muß die Stellgröße verändert werden“ D(differentieller) Anteil: „Je stärker sich die Regelabweichung verändert, umso stärker muß die Regelung eingreifen“
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 19
PID in Simulink du/dt
10
Derivative 0.3
pos error
Kd -K-
desired pos
Kp 1 s Integrator
f (t)
-K-
1 s
x_ddot
1/m1
1 s
x_dot
velocity
x
position
Scope
1
output 4.5
Ki
To Workspace
c -Kk 0.1
m1 = 2.3 kg k = 250 N/m c = 4.5 N sec/m L0 = 0.1 m x1(0) = L0 x1_dot(0) = 0
L0
• Als fester vorgegebener Block verfügbar! H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 20
Einstellung des Reglers • Erst den proportionalen Anteil einstellen erhöhen bis leichte Oszillation auftritt
• Dann integralen Teil hochregeln solange bis die Oszillation aufhört
• Dann differentiellen Anteil
damit Zielgerade möglichst schnell erreicht wird
Parameter
Anstiegszeit
Überschwingung
Einschwingzeit
Abweichung
P
--
+
+-
-
I
--
++
+
0
D
+-
--
--
+-
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 21
Beispiel Wasserstandsregelung
H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Folie 22