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.