Apollo模型参考自适应控制MRAC (二)-MRAC例题

下面的例子是我硕士自适应控制课的三个关于Model Reference Adaptive Control的练习, 我硕士导师上的这门课, 我觉得对于理解自适应控制的原理非常有用, 大家可以先看一下下述的几个例子, 理解一下怎么设计MRAC控制器, Apollo的MRAC包括一阶系统和二阶系统, 下面的几个例子都有涉及, 并且有关于一阶和二阶系统微分方程和状态空间方法是怎么转换的
Adaptive Control

Tutorial 1

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λamapxp+bpλbmr         (3)=θxxp+θrr         (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λamapxp+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λamapxp+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=xpxm, 我们可以得到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

  • 13
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值