下面的例子是我硕士自适应控制课的三个关于Model Reference Adaptive Control的练习, 我硕士导师上的这门课, 我觉得对于理解自适应控制的原理非常有用, 大家可以先看一下下述的几个例子, 理解一下怎么设计MRAC控制器, Apollo的MRAC包括一阶系统和二阶系统, 下面的几个例子都有涉及, 并且有关于一阶和二阶系统微分方程和状态空间方法是怎么转换的
Adaptive Control
Adaptive Controller Derivation using Lyapunov Theory
第一个例子是针对一个一阶系统的, 假设一阶系统的参考模型为
x ˙ p = a p x p + b p λ u ( 1 ) \dot{x}_{p} = a_{p}x_{p} + b_{p}\lambda u~~~~~~~~~(1) x˙p=apxp+bpλu (1)
其中 a p a_{p} ap, b p b_{p} bp是已知变量, λ ≠ 0 \lambda \neq 0 λ=0, 但是我们不知道其符号.
a) 通过Lyapunov函数的方法设计一个自适应控制器, 使得上述一阶系统可以和参考模型的表现一致, 参考模型的方程为:
x ˙ m = a m x m + b m r ( 2 ) \dot{x}_{m} = a_{m}x_{m} + b_{m}r~~~~~~~~~(2) x˙m=amxm+bmr (2)
其中 a m < 0 a_{m} < 0 am<0, r r r是参考输入
b) 扩展之前开发的控制器, 使得可以使用另外两个增益 γ x \gamma_{x} γx和 γ r \gamma_{r} γr来调整参数向量 θ x ( t ) \theta_{x}(t) θx(t)和 θ r ( t ) \theta_{r}(t) θr(t)的收敛率(rate of convergence)
如果实际系统 P P P的特性可以完全跟随参考模型系统 S S S, 那就意味着当当前状态相同的时候 x m = x p x_{m} = x_{p} xm=xp, 我们希望通过选择 x ˙ m = x ˙ p \dot{x}_{m} = \dot{x}_{p} x˙m=x˙p, 结合(1)和(2)
我们可以得出
u = a m − a p b p λ x p + b m b p λ r ( 3 ) = θ x ∗ x p + θ r ∗ r ( 4 ) u= \dfrac{a_{m}- a_{p}}{b_{p}\lambda}x_{p} + \dfrac{b_{m}}{b_{p}\lambda}r~~~~~~~~~(3)\\ = \theta^{*}_{x}x_{p} + \theta^{*}_{r}r~~~~~~~~~(4) u=bpλam−apxp+bpλbmr (3)=θx∗xp+θr∗r (4)
当我们对系统 P P P使用上述输入 u u u的时候,
x ˙ p = a p x p + b p λ ( a m − a p b p λ x p + b m b p λ r ) ( 5 ) = a m x p + b m r ( 6 ) \dot{x}_{p} = a_{p}x_{p} + b_{p}\lambda(\dfrac{a_{m} - a_{p}}{b_{p}\lambda}x_{p} + \dfrac{b_{m}}{b_{p}\lambda}r) ~~~~~~~~~(5)\\ = a_{m}x_{p} + b_{m}r~~~~~~~~~(6) x˙p=apxp+bpλ(bpλam−apxp+bpλbmr) (5)=amxp+bmr (6)
因为 λ \lambda λ未知, 所以 θ x ∗ \theta_{x}^{*} θx∗和 θ r ∗ \theta_{r}^{*} θr∗也是未知的, 这意味着我们需要做初始值估计然后根据自适应变化率去修改, 假设我们使用的自适应输入为
u = θ ^ x x p + θ ^ r r ( 7 ) u = \hat{\theta}_{x} x_{p} + \hat{\theta}_{r}r ~~~~~~~~~(7) u=θ^xxp+θ^rr (7)
同样的我们将上述输入带入系统的状态方程:
x ˙ p = a p x p + b p λ ( ( θ ^ x − θ x ∗ + θ x ∗ ) x p + ( θ ^ r − θ r ∗ + θ r ∗ ) r ) = a p x p + b p λ a m − a p b p λ x p + b p λ b m b p λ r + b p ( θ ~ x x p + θ ~ r r ) = a m x p + b m r + b p λ ( θ ~ x x p + θ ~ r r ) \dot{x}_{p} = a_{p}x_{p} + b_{p}\lambda((\hat{\theta}_{x} - \theta_{x}^{*} + \theta_{x}^{*})x_{p} + (\hat{\theta}_{r} - \theta_{r}^{*} + \theta_{r}^{*})r) \\ = a_{p}x_{p} + b_{p}\lambda \dfrac{a_{m} - a_{p}}{b_{p}\lambda} x_{p} + b_{p}\lambda\dfrac{b_{m}}{b_{p}\lambda}r + b_{p}(\tilde{\theta}_{x}x_{p} + \tilde{\theta}_{r}r) \\ =a_{m}x_{p} + b_{m}r + b_{p}\lambda(\tilde{\theta}_{x}x_{p} + \tilde{\theta}_{r}r) x˙p=apxp+bpλ((θ^x−θx∗+θx∗)xp+(θ^r−θr∗+θr∗)r)=apxp+bpλbpλam−apxp+bpλbpλbmr+bp(θ~xxp+θ~rr)=amxp+bmr+bpλ(θ~xxp+θ~rr)
其中 θ ~ x = θ ^ x − θ r ∗ \tilde{\theta}_{x} = \hat{\theta}_{x} - \theta_{r}^{*} θ~x=θ^x−θr∗, θ ~ r = θ ^ r − θ r ∗ \tilde{\theta}_{r} = \hat{\theta}_{r} - \theta_{r}^{*} θ~r=θ^r−θr∗,
我们定义误差状态量 e = x p − x m e=x_{p} - x_{m} e=xp−xm, 我们可以得到error dynamics的表达式为
e ˙ = a m e + b p λ ( θ ~ x x p + θ ~ r r ) ( 8 ) \dot{e} = a_{m}e + b_{p}\lambda(\tilde{\theta}_{x}x_{p} + \tilde{\theta}_{r}r)~~~~~~~~(8) e˙=ame+bpλ(θ~xxp+θ~rr) (8)
为了建立参数调整机制, 我们需要找到合理的Lyapunov函数
我们首先选取Lyapunov函数为如下形式:
V ( e , θ ~ x , θ ~ r ) = e 2 + b p ∣ λ ∣ θ ~ x 2 + b p ∣ λ ∣ θ ~ r 2 V(e, \tilde{\theta}_{x}, \tilde{\theta}_{r}) = e^{2} + b_{p}|\lambda|\tilde{\theta}_{x}^{2}+b_{p}|\lambda|\tilde{\theta}_{r}^{2} V(e,θ~x,θ~r)=e2+bp∣λ∣θ~x2+bp∣λ∣θ~r2
该函数是正定的, V ( e , θ ~ x , θ ~ r ) > 0 V(e, \tilde{\theta}_{x}, \tilde{\theta}_{r}) > 0 V(e,θ~x,θ~r)>0
为了保证该Lyapunov函数是负半定的, 我们首先对上述 V V V求导
V ˙ ( e , θ ~ x , θ ~ r ) = 2 e e ˙ + 2 b p ∣ λ ∣ ( θ x ~ θ ~ ˙ x + θ r ~ θ ~ ˙ r ) 2 a m e 2 + 2 θ ~ x ( b p λ e x p + b p ∣ λ ∣ θ ~ ˙ x ) + 2 θ ~ r ( b p λ r + b p ∣ λ ∣ θ ~ ˙ r ) = 2 a m e 2 \dot{V}(e, \tilde{\theta}_{x}, \tilde{\theta}_{r}) = 2e\dot{e} + 2b_{p}|\lambda|(\tilde{\theta_x}\dot{\tilde{\theta}}_x + \tilde{\theta_r}\dot{\tilde{\theta}}_r) \\2a_{m}e^{2} + 2\tilde{\theta}_{x}(b_{p}\lambda ex_{p} + b_{p}|\lambda|\dot{\tilde{\theta}}_{x}) + 2\tilde{\theta}_{r}(b_{p}\lambda r + b_{p}|\lambda|\dot{\tilde{\theta}}_{r}) \\ =2a_{m}e^{2} V˙(e,θ~x,θ~r)=2ee˙+2bp∣λ∣(θx~θ~˙x+θr~θ~˙r)2ame2+2θ~x(bpλexp+bp∣λ∣θ~˙x)+2θ~r(bpλr+bp∣λ∣θ~˙r)=2ame2
我们选取如下参数
θ ~ ˙ x = − s g n ( λ ) e x p θ ~ ˙ r = − s g n ( λ ) e r \dot{\tilde{\theta}}_{x} = -sgn(\lambda)ex_{p} \\ \dot{\tilde{\theta}}_{r} = -sgn(\lambda)er θ~˙x=−sgn(λ)expθ~˙r=−sgn(λ)er
此时 V ˙ \dot{V} V˙是负半定的, V ˙ ≤ \dot{V} \leq V˙≤ 0.
b) 为了能够调整参考变化的变化率, 我们新引入两个变量 γ x \gamma_{x} γx和 γ r \gamma_{r} γr, 我们重新定义一个正定的Lyapunov函数为以下形式:
V = e 2 + b p ∣ λ ∣ γ x θ ~ x 2 + b p ∣ λ ∣ γ r θ ~ r 2 V = e^{2} + \dfrac{b_{p}|\lambda|}{\gamma_{x}}\tilde{\theta}_{x}^{2} + \dfrac{b_{p}|\lambda|}{\gamma_{r}}\tilde{\theta}_{r}^{2} V=e2+γxbp∣λ∣θ~x2+γrbp∣λ∣θ~r2
对上述Lyapunov函数求导数
V ˙ = 2 a m e 2 + 2 θ ~ x ( b p λ e x p + b p ∣ λ ∣ γ x θ ~ ˙ x ) + 2 θ ~ r ( b p λ e r + b p ∣ λ ∣ γ r θ ~ ˙ r ) = 2 a m e 2 \dot{V} = 2a_{m}e^{2} + 2\tilde{\theta}_{x}(b_{p}\lambda e x_{p} + \dfrac{b_{p}|\lambda|}{\gamma_{x}} \dot{\tilde{\theta}}_{x}) + 2\tilde{\theta}_{r}(b_{p}\lambda e r + \dfrac{b_{p}|\lambda|}{\gamma_{r}} \dot{\tilde{\theta}}_{r}) = \\ 2a_{m}e^{2} V˙=2ame2+2θ~x(bpλexp+γxbp∣λ∣θ~˙x)+2θ~r(bpλer+γrbp∣λ∣θ~˙r)=2ame2
为了使 V ˙ \dot{V} V˙负半定, 我们选取下述参数变化率
θ ~ ˙ x = − γ x s g n ( λ ) e x p θ ~ ˙ r = − γ r s g n ( λ ) e r \dot{\tilde{\theta}}_{x} = -\gamma_{x}sgn(\lambda)ex_{p} \\ \dot{\tilde{\theta}}_{r} = -\gamma_{r}sgn(\lambda)er θ~˙x=−γxsgn(λ)expθ~˙r=−γrsgn(λ)er
Lyapunov for State Space Systems
考虑非线性系统模型
x ˙ 1 = x 2 x ˙ 2 = a x 1 2 + b x 2 + u y = x 1 \dot{x}_{1} = x_{2} \\ \dot{x}_{2} = ax_{1}^{2} + bx_{2}+u \\ y = x_{1} x˙1=x2x˙2=ax12+bx2+uy=x1
其中状态变量 x 1 , x 2 ∈ R x_{1}, x_{2} \in R x1,x2∈R, 输入 u ∈ R u \in R u∈R, 输出 y ∈ R y \in R y∈R, 参数 a , b ∈ R a, b \in R a,b∈R
a) 假设参数 a a a和 b b b已经, 设计状态反馈控制器 u ( x 1 , x 2 ) u(x_{1}, x_{2}) u(x1,x2)使得上述系统的表现由下述参考模型决定:
y = G m ( s ) u r e f G m ( s ) = ω 2 s 2 + 2 ζ ω s + ω 2 y = G_{m}(s)u_{ref} \\ G_{m}(s) = \dfrac{\omega^{2}}{s^{2} + 2 \zeta \omega s + \omega^{2}} y=Gm(s)urefGm(s)=s2+2ζωs+ω2ω2
b) 基于前述问题, 我们设计自适应控制率, a a a和 b b b是未知的并且证明系统是稳定的
a) 参考系统是一个标准的二阶系统, 我们定义两个参考模型状态变量 x m 1 x_{m1} xm1和 x m 2 x_{m2} xm2, 他们满足下述关系s:
x ˙ m 1 = x m 2 x ˙ m 2 = − ω 2 x m 1 − 2 ζ ω x m 2 + ω 2 u r e f \dot{x}_{m1} = x_{m2} \\ \dot{x}_{m2} = -\omega^{2}x_{m1} - 2\zeta\omega x_{m2} + \omega^{2}u_{ref} x˙m1=xm2x˙m2=−ω2xm1−2ζωxm2+ω2uref
输入设置为
u = − a x 1 2 − b x 2 − ω 2 x 1 − 2 ζ ω x 2 + ω 2 u r e f u = -ax_{1}^{2} - bx_{2} - \omega^{2}x_{1} - 2 \zeta \omega x_{2} + \omega^{2}u_{ref} u=−ax12−bx2−ω2x1−2ζωx2+ω2uref
当对系统采取上述输入的时候
x ˙ = [ x ˙ 1 x ˙ 2 ] = [ x 2 a x 1 2 + b x 2 + ( − a x 1 2 − b x 2 − ω 2 x 1 − 2 ζ ω x 2 + ω 2 u r e f ) ] = [ x 2 − ω 2 x 1 − 2 ζ ω x 2 + ω 2 u r e f ] \dot{x} = \begin{bmatrix} \dot{x}_{1} \\ \dot{x}_{2} \end{bmatrix} = \begin{bmatrix} x_{2} \\ ax_{1}^{2} + bx_{2} + (-ax_{1}^{2} - bx_{2} - \omega^{2}x_{1} - 2\zeta \omega x_{2} + \omega^{2}u_{ref}) \end{bmatrix} = \\ \begin{bmatrix} x_{2} \\ -\omega^{2}x_{1} - 2\zeta \omega x_{2} + \omega^{2}u_{ref} \end{bmatrix} x˙=[x˙1x˙2]=[x2ax12+bx2+(−ax12−bx2−ω2x1−2ζωx2+ω2uref)]=[x2−ω2x1−2ζωx2+ω2uref]
如果参数a和b未知, 我们需要使用他们的估计数值 a ^ \hat{a} a^和 b ^ \hat{b} b^替代, 因此我们的控制器为
u = − a ^ x 1 2 − b ^ x 2 − ω 2 x 1 − 2 ζ ω x 2 + ω 2 u r e f u = -\hat{a}x_{1}^{2} - \hat{b}x_{2} - \omega^{2}x_{1} - 2\zeta \omega x_{2} + \omega^{2}u_{ref} u=−a^x12−b^x2−ω2x1−2ζωx2+ω2uref
把(1)带入系统模型
x ˙ = [ x 2 a ~ x 1 2 − b ~ x 2 − ω 2 x 1 − 2 ζ ω x 2 + ω 2 u r e f ] \dot{x} = \begin{bmatrix} x_{2} \\ \tilde{a}x_{1}^{2} - \tilde{b}x_{2} - \omega^{2}x_{1} - 2 \zeta \omega x_{2} + \omega^{2}u_{ref} \end{bmatrix} x˙=[x2a~x12−b~x2−ω2x1−2ζωx2+ω2uref]
其中 a ~ = a − a ^ \tilde{a} = a- \hat{a} a~=a−a^, b ~ = b − b ^ \tilde{b} = b - \hat{b} b~=b−b^. 定义误差状态变量为 e = [ e 1 e 2 ] T = x − x m e= [e_{1}~e_{2}]^{T} = x - x_{m} e=[e1 e2]T=x−xm,
我们得到如下的误差等式
e ˙ = [ e 2 a ~ x 1 2 + b ~ x 2 − ω 2 e 1 − 2 ζ ω e 2 ] = [ 0 1 − ω 2 − 2 ζ ω ] e + [ 0 a ~ x 1 2 + b ~ x 2 ] \dot{e} = \begin{bmatrix} e_{2} \\ \tilde{a}x_{1}^{2} + \tilde{b}x_{2} - \omega^{2}e_{1} - 2\zeta\omega e_{2} \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ -\omega^{2} & -2\zeta\omega \end{bmatrix}e + \begin{bmatrix} 0 \\ \tilde{a}x^{2}_{1} + \tilde{b}x_{2} \end{bmatrix} e˙=[e2a~x12+b~x2−ω2e1−2ζωe2]=[0−ω21−2ζω]e+[0a~x12+b~x2]
我们令 A m = [ 0 − ω 2 1 − 2 ζ ω ] A_{m} = \begin{bmatrix} 0 &-\omega^{2} \\ 1&-2\zeta \omega \end{bmatrix} Am=[01−ω2−2ζω], θ = [ a ~ b ~ ] \theta= \begin{bmatrix} \tilde{a}\\ \tilde{b}\end{bmatrix} θ=[a~b~]
我们选取Lyapunov函数 V ( e , θ ~ ) = e T P e + θ ~ T θ ~ V(e, \tilde{\theta}) = e^{T}Pe + \tilde{\theta}^{T}\tilde{\theta} V(e,θ~)=eTPe+θ~Tθ~, 其中 P P P是Lyapunov方程正半定的对称矩阵
V ˙ ( e , θ ~ ) = e T P e ˙ + e ˙ T P e + 2 θ ~ T θ ~ ˙ = e T P ( [ 0 1 − ω 2 − 2 ζ w ] e + [ 0 a ~ x 1 2 + b ~ x 2 ] ) + ( e T [ 0 − ω 2 1 − 2 ζ ω ] + [ 0 a ~ x 1 2 + b ~ x 2 ] ) P e + 2 θ ~ T θ ~ ˙ \dot{V}(e, \tilde{\theta}) = e^{T}P\dot{e} + \dot{e}^{T}Pe + 2\tilde{\theta}^{T}\dot{\tilde{\theta}} \\ =e^{T}P (\begin{bmatrix}0 & 1 \\ - \omega^{2}& -2\zeta w \end{bmatrix}e + \begin{bmatrix} 0 \\ \tilde{a}x_{1}^{2}+\tilde{b}x_{2}\end{bmatrix}) \\ +(e^{T}\begin{bmatrix} 0 & -\omega^{2} \\ 1 & -2 \zeta \omega\end{bmatrix}+ \begin{bmatrix} 0 & \tilde{a}x_{1}^{2} + \tilde{b}x_{2} \end{bmatrix})Pe + 2 \tilde{\theta}^{T}\dot{\tilde{\theta}} V˙(e,θ~)=eTPe˙+e˙TPe+2θ~Tθ~˙=eTP([0−ω21−2ζw]e+[0a~x12+b~x2])+(eT[01−ω2−2ζω]+[0a~x12+b~x2])Pe+2θ~Tθ~˙
V ˙ ( e , θ ~ ) = e T Q e + 2 θ ~ T [ x 1 2 x 2 ] [ 0 1 ] P e + 2 θ ~ T ( − [ x 1 2 x 2 ] [ 0 1 ] P e ) = − e T Q e ≤ 0 \dot{V}(e, \tilde{\theta}) = e^{T}Qe + 2\tilde{\theta}^{T}\begin{bmatrix} x_{1}^{2} \\ x_{2} \end{bmatrix} \begin{bmatrix} 0 & 1 \end{bmatrix}Pe + 2\tilde{\theta}^{T}(- \begin{bmatrix} x_{1}^{2} \\ x_{2} \end{bmatrix} \begin{bmatrix} 0 & 1 \end{bmatrix}Pe ) =-e^{T}Qe \leq 0 V˙(e,θ~)=eTQe+2θ~T[x12x2][01]Pe+2θ~T(−[x12x2][01]Pe)=−eTQe≤0
其中 Q Q Q是正定矩阵, P A m + A m T P = − Q PA_{m} + A_{m}^{T}P = - Q PAm+AmTP=−Q, 参数变化率为
θ ~ ˙ = − [ x 1 2 x 2 ] [ 0 1 ] P e \dot{\tilde{\theta}} = -\begin{bmatrix} x_{1}^{2} \\ x_{2} \end{bmatrix} \begin{bmatrix} 0 & 1 \end{bmatrix}Pe θ~˙=−[x12x2][01]Pe
因为 V ( e , θ ~ ) > 0 V(e, \tilde{\theta}) >0 V(e,θ~)>0, 并且 V ˙ ( e , θ ~ ) ≤ 0 \dot{V}(e, \tilde{\theta}) \leq 0 V˙(e,θ~)≤0, 系统是稳定的
Choice of Adaptive Control Law
系统框图如下所示, 我们需要设计参数 k 1 k_{1} k1和 k 2 k_{2} k2的变化率使得输出 e 1 e_{1} e1最终变化为 0 0 0
a) 根据上述框图画求出参考模型和系统模型的微分方程
b) 把上述微分方程转化为状态空间方程, 求出参考模型系统矩阵 A m A_{m} Am, Plant的系统矩阵 A p A_{p} Ap和向量 b b b
c) 求出矩阵 P P P的每个元素, 从而使得 A m T + P A m = − Q A_{m}^{T} + P A_{m} = - Q AmT+PAm=−Q, Q = I Q = I Q=I
d) 选择合适的Lyapunov函数和矩阵 P P P, 并且求出参数 k 1 k_{1} k1和 k 2 k_{2} k2的自适应变化率使得误差 e 1 e_{1} e1可以渐渐变为 0 0 0.
上述问题和Apollo中系统的模型是有很大的相似之处的, 参考系统和实际系统都是二阶系统,并且第二个状态是第一个状态的变化率, 这一点和Apollo的MRAC很相像
a) 参考系统的微分方程为
y ¨ m + y ˙ m + y m = r \ddot{y}_{m} + \dot{y}_{m} + y_{m} = r y¨m+y˙m+ym=r
实际系统的微分方程为
y ¨ p + ( − 1 − k 1 ) y ˙ p + ( − k 2 ) y p = r \ddot{y}_{p} + (-1-k_{1})\dot{y}_{p} + (-k_{2})y_{p} = r y¨p+(−1−k1)y˙p+(−k2)yp=r
控制器的微分方程为 u = r + k 1 y ˙ p + k 2 y p u=r+k_{1}\dot{y}_{p} + k_{2}y_{p} u=r+k1y˙p+k2yp
b) 系统的状态方程可以直接从微分方程中得出
参考模型:
x ˙ m = A m x m + b r \dot{x}_{m} = A_{m}x_{m} + br x˙m=Amxm+br
其中模型的状态量: x m = [ y m y ˙ m ] x_{m} = \begin{bmatrix} y_{m} \\ \dot{y}_{m} \end{bmatrix} xm=[ymy˙m], 参考模型的系统矩阵 A m = [ 0 1 − 1 − 1 ] A_{m} = \begin{bmatrix}0 & 1 \\-1 & -1\end{bmatrix} Am=[0−11−1], b = [ 0 1 ] b =\begin{bmatrix}0\\1\end{bmatrix} b=[01]
为了获取系统的状态空间表达式, 我们做下述变换:
y ¨ p + ( − 1 − k 1 ) y ˙ p + ( − k 2 ) y p = r \ddot{y}_{p} + (-1-k_{1})\dot{y}_{p}+(-k_{2})y_{p}=r y¨p+(−1−k1)y˙p+(−k2)yp=r, u = r + k 1 y ˙ p + k 2 y p u=r+k_{1}\dot{y}_{p}+k_{2}y_{p} u=r+k1y˙p+k2yp
y ¨ p + ( − 1 − k 1 ) y ˙ p + ( − k 2 ) y p = u − k 1 y ˙ p − k 2 y p y ¨ p = u − k 1 y ˙ p − k 2 y p + ( 1 + k 1 ) y ˙ p + k 2 y p y ¨ p = y ˙ p + u \ddot{y}_{p} + (-1-k_{1})\dot{y}_{p}+(-k_{2})y_{p} = u - k_{1}\dot{y}_{p} - k_{2}y_{p} \\ \ddot{y}_{p} = u - k_{1}\dot{y}_{p} - k_{2}y_{p}+(1+k_{1})\dot{y}_{p}+k_{2}y_{p} \\ \ddot{y}_{p} = \dot{y}_{p} + u y¨p+(−1−k1)y˙p+(−k2)yp=u−k1y˙p−k2ypy¨p=u−k1y˙p−k2yp+(1+k1)y˙p+k2ypy¨p=y˙p+u
系统 P P P的状态空间表达式为
x ˙ p = A p x p + b u \dot{x}_{p} = A_{p}x_{p}+bu x˙p=Apxp+bu
其中 x p = [ y p y ˙ p ] x_{p} = \begin{bmatrix} y_{p} \\ \dot{y}_{p}\end{bmatrix} xp=[ypy˙p], A p = [ 0 1 0 1 ] A_{p} = \begin{bmatrix} 0 & 1 \\ 0 & 1\end{bmatrix} Ap=[0011], b = [ 0 1 ] b = \begin{bmatrix} 0 \\ 1\end{bmatrix} b=[01]
控制器的形式为 u = r + θ T x p u= r+ \theta^{T}x_{p} u=r+θTxp, θ T = [ k 2 k 1 ] \theta^{T} = \begin{bmatrix}k_{2} & k_{1}\end{bmatrix} θT=[k2k1]
c) 我们需要验证 A m A_{m} Am是稳定的
∣ λ I − A m ∣ = λ 2 + λ + 1 = 0 |\lambda I - A_{m}| = \lambda^{2} + \lambda + 1 = 0 ∣λI−Am∣=λ2+λ+1=0
可以推导出 λ 1 , 2 = − 1 ± 1 − 4 2 \lambda_{1, 2} = \dfrac{-1\pm \sqrt{1-4}}{2} λ1,2=2−1±1−4
R e ( λ 1 , 2 ) = − 0.5 Re(\lambda_{1,2})=-0.5 Re(λ1,2)=−0.5, 由此我们可以看出矩阵 A m A_{m} Am是渐进稳定矩阵, 两个实数特征值都位于左半平面
我们选取 Q = I Q = I Q=I, 然后去求解下述Lyapunov方程
[ 0 − 1 1 − 1 ] [ p 1 p 2 p 2 p 3 ] [ p 1 p 2 p 2 p 3 ] [ 0 1 − 1 − 1 ] = − [ 1 0 0 1 ] \begin{bmatrix} 0 & -1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} p_{1} & p_{2} \\ p_{2}&p_{3} \end{bmatrix} \begin{bmatrix} p_{1}&p_{2} \\ p_{2}&p_{3} \end{bmatrix} \begin{bmatrix} 0&1 \\ -1&-1 \end{bmatrix}= -\begin{bmatrix} 1&0\\ 0&1 \end{bmatrix} [01−1−1][p1p2p2p3][p1p2p2p3][0−11−1]=−[1001]
解上述方程,我们可以得到 p 2 = 0.5 p_{2}=0.5 p2=0.5, p 3 = 1 p_{3}=1 p3=1, p 1 = 1.5 p_{1}=1.5 p1=1.5.
d) 我们将 u u u的表达式插入系统方程中, 可以得到
x ˙ p = A p x p + b ( r + θ T x p ) x ˙ p = ( A p + b θ T ) x p + b r \dot{x}_{p} = A_{p}x_{p} + b(r + \theta^{T}x_{p}) \dot{x}_{p} = (A_{p} + b \theta^{T})x_{p} + br x˙p=Apxp+b(r+θTxp)x˙p=(Ap+bθT)xp+br
根据匹配条件(matching condition) A m = A p + b θ ∗ T A_{m} = A_{p} + b\theta^{*T} Am=Ap+bθ∗T, 我们可以得出理想参数值
θ ∗ T = [ − 1 − 2 ] \theta^{*T} = [-1~-2] θ∗T=[−1 −2]
因为参数是估计得出的, 假设估计参数为 θ ^ \hat{\theta} θ^, 则系统方程为
x ˙ p = ( A p + b θ ^ T ) x p + b r x ˙ p = ( A p + b θ T ) x p + b θ ∗ T x p − b θ ∗ T x p + b r \dot{x}_{p} = (A_{p} + b\hat{\theta}^{T})x_{p} + br \\ \dot{x}_{p} = (A_{p} + b \theta^{T})x_{p} + b\theta^{*T}x_{p} - b \theta^{*T}x_{p} + br x˙p=(Ap+bθ^T)xp+brx˙p=(Ap+bθT)xp+bθ∗Txp−bθ∗Txp+br
假设 θ ~ \tilde{\theta} θ~为参数误差 θ ~ = θ ^ − θ ∗ = [ k ~ 2 k ~ 1 ] T \tilde{\theta}=\hat{\theta} - \theta^{*} = [\tilde{k}_{2}~\tilde{k}_{1}]^{T} θ~=θ^−θ∗=[k~2 k~1]T
e ˙ = x ˙ p − x ˙ m e ˙ = A m x p + b θ ~ T x p + b r − A m x m − b r e ˙ = A m e + b θ ~ T x p \dot{e} = \dot{x}_{p} - \dot{x}_{m} \\ \dot{e} = A_{m}x_{p} + b\tilde{\theta}^{T}x_{p} + br - A_{m}x_{m} - br \\ \dot{e} = A_{m}e + b\tilde{\theta}^{T}x_{p} e˙=x˙p−x˙me˙=Amxp+bθ~Txp+br−Amxm−bre˙=Ame+bθ~Txp
我们选取Lyapunov函数: V ( e , θ ~ ) = e T P e + θ ~ T θ ~ V(e, \tilde{\theta}) = e^{T}Pe + \tilde{\theta}^{T}\tilde{\theta} V(e,θ~)=eTPe+θ~Tθ~
求导数:
V ˙ = e T P ( A m e + b θ ~ T x p ) + ( x p T θ ~ b T + e T A m T ) P e + 2 θ ~ T θ ~ ˙ \dot{V} = e^{T}P(A_{m}e + b\tilde{\theta}^{T}x_{p}) + (x_{p}^{T}\tilde{\theta}b^{T}+e^{T}A_{m}^{T})Pe+2\tilde{\theta}^{T}\dot{\tilde{\theta}} V˙=eTP(Ame+bθ~Txp)+(xpTθ~bT+eTAmT)Pe+2θ~Tθ~˙
e T P b θ ~ T x p = x p T θ ~ b T P e = θ ~ T x p e T P b e^{T}Pb\tilde{\theta}^{T}x_{p} = x_{p}^{T}\tilde{\theta}b^{T}Pe=\tilde{\theta}^{T}x_{p}e^{T}Pb eTPbθ~Txp=xpTθ~bTPe=θ~TxpeTPb, 选取自适应变化率为 θ ~ ˙ = − x p e T P b \dot{\tilde{\theta}}=-x_{p}e^{T}Pb θ~˙=−xpeTPb, 可以得到:
V ˙ = e T ( P A m + A m T P ) e + 2 θ ~ T ( x p e T P b + θ ~ ˙ ) = − e T Q q ≤ 0 \dot{V} = e^{T}(PA_{m}+A_{m}^{T}P)e + 2\tilde{\theta}^T(x_{p}e^{T}Pb + \dot{\tilde{\theta}}) \\ = -e^{T}Qq \leq 0 V˙=eT(PAm+AmTP)e+2θ~T(xpeTPb+θ~˙)=−eTQq≤0
最终我们的自适应变化率为
θ ~ ˙ = [ k ˙ 2 k ˙ 1 ] = − x p e T P b = − [ y p y ˙ p ] [ e 1 e 2 ] [ 3 2 1 2 1 2 1 ] [ 0 1 ] \dot{\tilde{\theta}} = \begin{bmatrix} \dot{k}_{2} \\ \dot{k}_{1} \end{bmatrix}=-x_{p}e^{T}Pb = -\begin{bmatrix} y_{p} \\ \dot{y}_{p} \end{bmatrix} \begin{bmatrix} e_{1}&e_{2} \end{bmatrix} \begin{bmatrix} \dfrac{3}{2}& \dfrac{1}{2} \\ \dfrac{1}{2} & 1 \end{bmatrix} \begin{bmatrix} 0\\1 \end{bmatrix} θ~˙=[k˙2k˙1]=−xpeTPb=−[ypy˙p][e1e2]⎣⎢⎡2321211⎦⎥⎤[01]
k ~ ˙ 2 = − ( e 1 + 2 e 2 2 ) y p k ~ ˙ 1 = − ( e 1 + 2 e 2 2 ) y ˙ p \dot{\tilde{k}}_{2} = -(\dfrac{e_{1} + 2e_{2}}{2})y_{p} \\ \dot{\tilde{k}}_{1} = -(\dfrac{e_{1} + 2e_{2}}{2})\dot{y}_{p} k~˙2=−(2e1+2e2)ypk~˙1=−(2e1+2e2)y˙p