Systemidentifikation und Regelung in der Medizin 1 7
Transcription
Systemidentifikation und Regelung in der Medizin 1 7
Systemidentifikation und Regelung in der Medizin 7. Modellbasierte prädiktive Regelung 7.1 Allgemeine Grundlagen 7.1.1 Bestandteile einer prädiktiven Regelung 1. Modell des zu regelnden Systems → Nutzung zur Vorhersage des Systemverhaltens in Abhängigkeit von der Stellgröße und beobachteten oder bekannten Störungen 2. Referenztrajektorie für den Systemausgang 3. Gütefunktional, das minimiert wird, um die optimale Stellgrößensequenz zu finden 4. Methode zur Minimierung des Gütefunktionals 7.1.2 Idee Berechnung der zukünftigen Stellgrößentrajektorie so, dass der Systemausgang nahe an dem gewünschten Referenzverlauf ist unter Berücksichtigung des Stellaufwands und Beschränkungen z.B. bei der Stellgröße. 1 Systemidentifikation und Regelung in der Medizin Receding Horizon Principle: • Nur das erste Element u(k) der zukünftigen Stellgrößentrajektorie wird im Zeitschritt k auf die Strecke angewandt. • Die komplette Optimierung wird dann für den Zeitschritt k + 1 wiederholt. 7.1.3 Modell • Beschreibung von deterministischen Verhalten (Beziehung von Stellgröße und Ausgang) als auch Störverhalten (deterministisch und/oder stochastisch) • Möglicher Modellansatz: BJ-Modell - stochastische Modellierungsansatz für alle Störungen • Beobachtung und Schätzung von Störungen über den Prädiktor (ständiger Vergleich vom gemessenen Ausgang und der Prädiktion) 2 Systemidentifikation und Regelung in der Medizin 3 7.1.4 Gütefunktional 2 Hp −d Hp X −1 X Q (q ) n 2 J= u(k + i) (ŷ(k + i) − w(k + i)) + ρ −1 ) Q (q d i=0 i=Hs {z } | {z } | (1) u∗ (k+i) Tracking | {z Stellaufwand } Zum Zeitpunkt k ergeben sich: • Hs : minimaler Gütefunktionalshorizont, Hs ≥ d (d - Totzeit) • Hp : Prädiktionshorizont (Die Wahl von Hp ist nach oben begrenzt durch die Modellqualität. Hp sollte aber mindestens so groß gewählt werden, dass die Anstiegszeit erfasst wird.) • Hc : Stellhorizont (Dimension des Optimierungsproblems), Hc ≤ Hp − d Man beachte: u(k + Hp − d) ist die letzte Stellgröße, welche noch einen Einfluss auf ŷ(k + Hp ) hat. • w(k) : Referenz Systemidentifikation und Regelung in der Medizin 4 • y(k) : gemessener Systemausgang • y(t) : wahrer kontinuierlicher Systemausgang • ŷ(k + i|k): zum Zeitpunkt k prädiktierter Systemausgang i Schritte im Voraus • u(k − i): bereits angewandte Stellgröße zum Zeitpunkt k − i, i ≥ 1 • û(k + i): zukünftige Stellgröße zum Zeitpunkt k + i, i ≥ 0 Bestrafung von zu großen Sprüngen in der Stellgröße: Qd (q −1 ) = 1, Qn (q −1 ) = 1 − q −1 = ∆, ρ>0 (2) Nebenbedingungen: Optimiert werden die Hc zukünftigen Stellgrößen û(k) bis û(k + Hc − 1). Für die restlichen Stellgrößen û(k + Hc ) bis û(k + Hp − d) nimmt man an û(k + i) = û(k + Hc − 1), Hc ≤ i ≤ Hp − d (3) û(k + i) = 0, Hc ≤ i ≤ Hp − d. (4) oder Systemidentifikation und Regelung in der Medizin 5 (moving horizon) desired trajectory w(k) y(t) OLD ŷ(k + i|k) NEW y(k) (sampled output plus noise) û(k + i) u k + Hp k + Hs k k + Hc − 1 k + Hp − d Abbildung: Prinzip der prädiktiven Regelung Systemidentifikation und Regelung in der Medizin 6 7.1.5 Optimierung Umschreibung des Gütefunktionals in Vektorschreibweise: T J = (ŷ − w) (ŷ − w) + ρu∗T u∗ (5) mit ŷ w u∗ û = h = h ŷ(k + Hs ) · · · w(k + Hs ) · · · ŷ(k + Hp ) iT iT w(k + Hp ) h iT = u∗ (k) · · · u∗ (k + Hp − d) h iT = û(k) · · · û(k + Hp − d) (6) (7) (8) (9) Minimierung des Gütefunktionals bezüglich des kompletten Vektors zukünftiger Stellgrößen unter Berücksichtigung der oben genannten Nebenbedingungen (3)-(4) und Stellgrößenbeschränkungen. Stellgrößenbeschränkungen: ulb ≤ û ≤ uub . (10) Systemidentifikation und Regelung in der Medizin Umformulierung der Nebenbedingungen (3) in Matrixschreibweise: û(k) .. . û(k + H − 2) c 0 · · · 0 1 −1 0 0 · · · 0 0 û(k + Hc − 1) 0 · · · 0 1 0 −1 0 · · · 0 0 û(k + Hc ) = .. .. û(k + Hc + 1) . . 0 ··· 0 1 0 0 0 · · · 0 −1 û(k + Hc + 2) {z } | .. . S û(k + Hp − d − 1) û(k + Hp − d) {z } | û S û = 7 0 0 .. . 0 |{z} t t (11) (12) Systemidentifikation und Regelung in der Medizin 8 Drückt man ŷ als lineare Vektorfunktion von û aus (für lineare Modelle immer möglich) und schreibt auch u∗ als lineare Vektorfunktion von û, so lässt sich nach Umformungen das Gütefunktional schreiben als: 1 T J = û Qû + cT û + d˜ (13) 2 Es ergibt sich dann folgendes Optimierungsproblem (Quadratic Programming): ûopt = arg min J û ulb ≤ û ≤ uub (14) S û = t (16) In Scilab existiert bereits eine Funktion zur Lösung dieses Problems (siehe nachfolgende Erläuterungen). (15) Systemidentifikation und Regelung in der Medizin Scilab-Implementierung für Quadratic Programming // Q u a d r a t i c programming : // minimize J= 1/2 u_hat ’ ∗Q∗ u_hat + c ’ ∗ u_hat+d _ t i l d e // s u b j e c t t o S∗ u_hat = t , U∗ u_hat <= v , // u_lb <= u_hat <= u_ub , // where Q = symmetric s q u a r e m a t r i x . // //Q: dimension (H_p−d+1) x (H_p−d+1) // c ’ : dimension 1 x (H_p−d+1) //S : dimension ns x (H_p−d+1) //U: dimension nu x (H_p−d+1) // t : dimension ns x 1 // v : dimension nu x 1 // u_lb dimension dimension (H_p−d+1) x1 //u_ub dimension dimension (H_p−d+1) x1 // Q u a d r a t i c programming s o l u t i o n [ u_hat_opt , l a g r , Jopt ] = quapro (Q, c , [ S ;U ] , [ t ; v ] , u_lb , u_ub , ns ) ; u_hat_opt 9 Systemidentifikation und Regelung in der Medizin 10 Gütefunktional bei Beschränkung der Stellgröße 4 3 û(k + 1) 2 1 0 −1 −2 −3 −4 −3 −2 −1 0 û(k) 1 2 3 Systemidentifikation und Regelung in der Medizin 11 7.2 Prädiktive Regelung bei einem BJ-Modellansatz Formulierung der Stellgrößenbestrafung (2) in Vektor/Matrix-Darstellung: ∗ û(k) u (k) 1 0 0 ··· 0 0 −1 u∗ (k + 1) −1 1 0 ··· 0 0 û(k + 1) 0 u∗ (k + 2) = 0 −1 1 · · · 0 0 û(k + 2) + 0 u(k − 1) . . .. .. .. .. .. .. . .. . . . . . . . u∗ (k + Hp − d) 0 0 0 0 · · · −1 1 û(k + Hp − d) {z } {z }| {z } | {z } | | u∗ û Φ Ω u∗ = Φû + Ωu(k − 1) y(k) = q −d B(q −1 ) A(q −1 ) u(k) + C(q −1 ) D(q −1 ) e(k) (17) Systemidentifikation und Regelung in der Medizin 12 −1 −1 ) F (q H (q ) i i −1 u(k − 1) + (y(k) − ŷ(k)) (18) ŷ(k + i|k) = Gi (q )û(k + i − d) + A(q −1 ) C(q −1 ) y(k) u(k − 1) 1 A(q −1 ) p(k) u(k − d) 1 C(q −1 ) B(q −1 ) A(q −1 ) o(k) ŷ(k) Abbildung: Filter ŷ(k + i|k) = Gi (q −1 )û(k + i − d) + Hi (q −1 )p(k) + Fi (q −1 )o(k) (19) Systemidentifikation und Regelung in der Medizin 13 Für die Prädiktor-Gleichung müssen die folgenden diophantischen Gleichungen gelöst werden: −1 ) −i+d−1 Hi (q q A(q −1 ) B(q −1 ) A(q −1 ) = Gi (q C(q −1 ) D(q −1 ) −1 F (q ) i −1 −i = Ei (q ) + q . D(q −1 ) −1 )+ (20) (21) Für die Lösung der diophantischen Gleichungen wurde eine Scilab-Routine in der Übung erstellt. Die Polynome Gi , Hi , Ei und Fi werden für alle zukünftigen Schritte (i = Hs · · · Hp ) berechnet. Gradabschätzungen für Hi , Fi und Gi : deg Gi deg Hi deg Fi = i − d, i = Hs . . . Hp = i − d, i = max(deg C − i, deg(D) − 1) = i − d, i = max(deg B − (i − d + 1), deg(A) − 1) Systemidentifikation und Regelung in der Medizin 14 Gi , Hi und Fi werden in Matrizen gespeichert. Somit haben wir eine Dreiecksmatrix G mit Dimension Hp − Hs × Hp − d + 1, eine Matrix H mit Dimension Hp − Hs × (deg(A(q −1 )) − 1) und F mit Dimension Hp − Hs × (deg(D(q −1 )) − 1), die dann für die Prädiktion des Ausgangs des Systems in (22) eingesetzt werden. Die Vektor/Matrix-Schreibweise für den Prädiktor lautet: ŷ = Gû + H p̂ + F ô, wobei p̂ und ô die Ausgänge der beiden Filter auf der Abbildung Filter sind. Systemidentifikation und Regelung in der Medizin 15 Folglich hat man die folgende Darstellung für die Prädiktion bis in Hp -Schritten. ŷ(k + Hs |k) gHs ,0 ŷ(k + H + 1|k) g s Hs +1,0 .. .. = . . ŷ(k + Hp − 1|k) gH −1,0 p | ŷ(k + Hp |k) {z ŷ gHp ,0 } 0 0 ··· 0 gHs +1,1 0 ··· .. . 0 .. . .. . gHp −1,1 gHp −1,2 ··· gHp −1,Hp −1−d gHp ,1 gHp ,2 ··· {z G gHp ,Hp −d−1 | 0 p(k) p(k − 1) +F +H .. . p(k − deg(A) − 1) {z } | p̂ o(k) û(k) 0 û(k + 1) .. .. . . 0 û(k + H − d) p gHp ,Hp −d | {z } } û o(k − 1) .. . o(k − deg(D) − 1) {z } | ô Einsetzen von (17) und (22) in das Gütefunktional (5): J = (Gû + H p̂ + F ô − w)T (Gû + H p̂ + F ô − w) + ρ(Φû + Ωu(k − 1))T (Φû + Ωu(k − 1)) (22) Systemidentifikation und Regelung in der Medizin 16 Ausgehend von der Gleichung (22) berechnet sich die folgende Formel für das Gütefunktioal: J =(Gû + H p̂ + F ô − w)T (Gû + H p̂ + F ô − w)+ + ρ(Φû + Ωu(k − 1))T (Φû + Ωu(k − 1)) =(ûT GT + p̂T H T + ôT F T − wT )(Gû + H p̂ + F ô − w)+ + ρ(ûT ΦT + u(k − 1)T ΩT )(Φû + Ωu(k − 1)) mit u(k − 1)T = u(k − 1), da u(k − 1) ein Skalar ist ergibt sich dann: J =ûT (GT G + ρΦT Φ)û + (ûT GT )(H p̂ + F ô − w) + (p̂T H T + ôT F T − wT )(Gû) | {z } x + (p̂T H T + ôT F T − wT )(H p̂ + F ô − w) +ρûT ΦT Ωu(k − 1) + ρu(k − 1)ΩT Φû {z } | {z } | const. + u(k − 1)ΩT Ωu(k − 1) | {z } const. z Systemidentifikation und Regelung in der Medizin 17 Da x = xT = (H p̂ + F ô − w)T Gû und z = z T = ρu(k − 1)ΩT Φû: J =ûT (GT G + ρΦT Φ)û + 2(H p̂ + F ô − w)T Gû + 2ρu(k − 1)ΩT Φû + d˜ T T T T T d˜ =û G G + ρΦ Φ û + 2 (H p̂ + F ô − w) G + ρu(k − 1)Ω Φ û + |{z} {z } {z } | | const. T 1 c 2Q Nun haben wir die erforderliche Form für das Gütefunktional entsprechend Gleichung (13), um das quadratische Problem in Scilab lösen zu können.