Modellbasierte Software-Entwicklung 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
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)
Beispiel Füllstandsregelung Füllstandsanzeiger Zulauf Ablauf max min Variable Typ Beschreibung Wertebereich Einheit Bemerkung f m Füllstand 0-100 mm z c Zulauf 0-1 prozentuale Öffnung a Ablauf nicht zugänglich min konstant Minimalfüllstand 86 max Maximalfüllstand 95 informelle Anforderungen: Wenn f < min, Zulauf einschalten Wenn f > max, Zulauf ausschalten Stellvertretend für Heizungsthermostat, Batterieladegerät, Dämmerungslicht, …
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
im Beispiel Randbedingungen Steuerfunktionalität 0 f(t) h Füllstandsanzeiger Zulauf Ablauf max min im Beispiel Randbedingungen 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 1 falls f(t) min z(t) = 0 falls f(t) max undef sonst als Abbildung C ={(f(t), z(t)) | (f(t) min z(t) = 1) (f(t) max z(t) = 0)}
Trajektorienbereiche intendierte, erlaubte und verboten
im Beispiel gesucht: „sanfte“ Regelung (PID) Füllstandsanzeiger Zulauf Ablauf max min im Beispiel 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)
Katze-und-Maus-Problem fängt die Katze die Maus oder nicht? (trifft die Abwehrrakete das Projektil oder nicht?)
Modellierung Differentialgleichungssystem für diese Variablen Konstante: vk, vm, xz, yz, xm(0), ym(0), xk(0), yk(0) 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 Katze Geschwindigkeit vk Position (xk(t),yk(t)) Ziel (xz,yz) Maus Geschw. vm Pos. (xm(t),ym(t)) Differentialgleichungssystem für diese Variablen
Datenflussmodellierung Beispiel ist stark datenorientiert Kontrollfluss nur zum Abbruch Modellierung durch Datenflussdiagramm jede „Leitung“ entspricht einer Variablen Konstante als spezielle Variable Integratoren Rückkoppelungen
Simulationsergebnis
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!
Crashkurs Regelungstechnik Eingebettetes System: System Umgebung Allgemeines Schema eines Regelkreises: © Prof. Dr.-Ing. Ch. Ament
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!)
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“
PID in Simulink Als fester vorgegebener Block verfügbar!
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 ++ D
Beispiel Wasserstandsregelung