浅谈线性定常系统最优跟踪问题——Optimal Tracking of LTI Systems

本文简单介绍下线性定常系统(Linear Time-Invariant System)的最优跟踪问题,主要介绍L-Q问题(LQT)。

本文主要讨论跟踪(Tracking)问题,不详细讨论调节(Regulation)问题,且本文中均假设参考轨迹在任意时刻已知,即不讨论伺服问题和模型跟踪问题。

离散时间系统

姑且不考虑观测器问题,假设系统状态完全可得,考虑如下线性定常离线时间系统: ξ t + 1 = A ξ t + B u t \xi_{t+1} = A\xi_{t} + Bu_{t} ξt+1=Aξt+But 或者展开写成更清晰的形式: [ x t + 1 x ˙ t + 1 ] = [ I Δ t ⋅ I 0 I ] [ x t x ˙ t ] + [ 0 Δ t ⋅ I ] u t \begin{bmatrix} x_{t+1} \\ \dot{x}_{t+1} \end{bmatrix} = \begin{bmatrix} I & \Delta t\cdot I \\ \mathbf{0} & I \end{bmatrix} \begin{bmatrix} x_{t} \\ \dot{x}_{t} \end{bmatrix} + \begin{bmatrix} \mathbf{0} \\ \Delta t\cdot I \end{bmatrix}u_t [xt+1x˙t+1]=[I0ΔtII][xtx˙t]+[0ΔtI]ut 其中, x t ∈ R D , ξ t ∈ R C D , u t ∈ R D x_{t} \in\mathbb{R}^{D}, \xi_{t} \in \mathbb{R}^{CD},u_{t}\in\mathbb{R}^{D} xtRD,ξtRCD,utRD.

批处理方法(Batch Form)

那么,定义LQ指标为:
C = ( ξ ^ T − ξ T ) ⊤ Q T ( ξ ^ T − ξ T ) + ∑ t = 1 T − 1 ( ( ξ ^ t − ξ t ) ⊤ Q t ( ξ ^ t − ξ t ) + u t ⊤ R t u t ) C = (\hat{\xi}_{T} - \xi_{T})^{\top}Q_{T}(\hat{\xi}_{T} - \xi_{T}) + \sum_{t=1}^{T-1}\left( (\hat{\xi}_{t} - \xi_{t})^{\top}Q_{t}(\hat{\xi}_{t} - \xi_{t}) + u^{\top}_{t}R_{t}u_{t} \right) C=(ξ^TξT)QT(ξ^TξT)+t=1T1((ξ^tξt)Qt(ξ^tξt)+utRtut) 其中 Q Q Q为半正定矩阵, R R R为正定矩阵。将上式写成更紧凑形式: C = ( ξ ^ − ξ ) ⊤ Q ~ ( ξ ^ − ξ ) + U ⊤ R ~ U C = (\hat{\xi} - \xi)^{\top}\tilde{Q}(\hat{\xi} - \xi)+U^{\top}\tilde{R}U C=(ξ^ξ)Q~(ξ^ξ)+UR~U 其中 ξ ∈ R T C D , U ∈ R ( T − 1 ) D \xi \in \mathbb{R}^{TCD}, U\in\mathbb{R}^{(T-1)D} ξRTCD,UR(T1)D分别是状态和输入向量, ξ ^ ∈ R T C D \hat{\xi}\in\mathbb{R}^{TCD} ξ^RTCD为参考状态,可以看出 Q ~ = d i a g ( Q 1 , Q 2 , … , Q T ) ∈ R T C D × T C D \tilde{Q} = diag(Q_{1},Q_{2},\dots,Q_{T}) \in \mathbb{R}^{TCD \times TCD} Q~=diag(Q1,Q2,,QT)RTCD×TCD R ~ = d i a g ( R 1 , R 2 , … , R T ) ∈ R ( T − 1 ) C D × ( T − 1 ) C D \tilde{R}=diag(R_{1}, R_{2},\dots,R_{T})\in \mathbb{R}^{(T-1)CD \times (T-1)CD} R~=diag(R1,R2,,RT)R(T1)CD×(T1)CD
对于离散时间系统,我们可以将系统状态序列写成如下形式: ξ 2 = A ξ 1 + B u 1 ξ 3 = A ( A ξ 1 + B u 1 ) + B u 2 ⋮ ξ T = A T ξ 1 + A T − 1 B u 1 + A T − 2 B u 2 + ⋯ B u T \begin{aligned} \xi_{2} &= A\xi_{1} + Bu_{1} \\ \xi_{3} &= A(A\xi_{1} + Bu_{1}) + Bu_{2} \\ &\vdots \\ \xi_{T} &= A^{T}\xi_{1} + A^{T-1}Bu_{1}+A^{T-2}Bu_{2} + \cdots Bu_{T} \end{aligned} ξ2ξ3ξT=Aξ1+Bu1=A(Aξ1+Bu1)+Bu2=ATξ1+AT1Bu1+AT2Bu2+BuT 如此,我们可以将 1 ∼ T 1\sim T 1T 时刻所有的状态及输入写称紧凑形式: [ ξ 1 ξ 2 ξ 3 ⋮ ξ T ] = [ I A A 2 ⋮ A T ] ξ 1 + [ 0 0 ⋯ 0 B 0 ⋯ 0 A B B ⋯ 0 ⋮ ⋮ ⋱ ⋮ A T − 1 B A T − 2 B ⋯ B ] [ u 1 u 2 ⋮ u T − 1 ] \begin{bmatrix} \xi_{1} \\ \xi_{2} \\ \xi_{3} \\ \vdots \\ \xi_{T} \end{bmatrix} = \begin{bmatrix} I \\ A \\ A^{2} \\ \vdots \\ A^{T} \end{bmatrix}\xi_{1} + \begin{bmatrix} \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} \\ B & \mathbf{0} & \cdots & \mathbf{0} \\ AB & B & \cdots & \mathbf{0} \\ \vdots & \vdots & \ddots & \vdots \\ A^{T-1}B & A^{T-2}B & \cdots & B \end{bmatrix} \begin{bmatrix} u_{1} \\ u_{2} \\ \vdots \\ u_{T-1} \end{bmatrix} ξ1ξ2ξ3ξT = IAA2AT ξ1+ 0BABAT1B00BAT2B000B u1u2uT1 ξ = S ξ ξ 1 + S u U \xi = S^{\xi}\xi_{1} + S^{u}U ξ=Sξξ1+SuU 可见 S ξ ∈ R T C D × C D , S u ∈ R T C D × ( T − 1 ) D S^{\xi}\in\mathbb{R}^{TCD\times CD}, S^{u}\in\mathbb{R}^{TCD\times (T-1)D} SξRTCD×CD,SuRTCD×(T1)D。此时,我们可以将上述公式代入到优化指标函数中: C = ( ξ ^ − S ξ ξ 1 − S u U ) ⊤ Q ~ ( ξ ^ − S ξ ξ 1 − S u U ) + U ⊤ R ~ U C = (\hat{\xi}-S^{\xi}\xi_{1}-S^{u}U)^{\top}\tilde{Q}(\hat{\xi}-S^{\xi}\xi_{1}-S^{u}U)+U^{\top}\tilde{R}U C=(ξ^Sξξ1SuU)Q~(ξ^Sξξ1SuU)+UR~U 如此,问题转换成了一个无约束凸二次优化问题: arg min ⁡ U C \argmin_{U} C UargminC 利用梯度下降法,对 U U U求梯度并令其为零得: U ∗ = ( S u ⊤ Q ~ S u + R ~ ) − 1 S u ⊤ Q ~ ( ξ ^ − S ξ ξ 1 ) U^{*} = ({S^{u}}^{\top}\tilde{Q}S^{u}+\tilde{R})^{-1}{S^{u}}^{\top}\tilde{Q}(\hat{\xi}-S^{\xi}\xi_{1}) U=(SuQ~Su+R~)1SuQ~(ξ^Sξξ1) 这其实等同于一个基于岭回归的最小二乘参数估计。

迭代方法(Iterative Form)

当然,我们亦可以采用迭代方法求解该最优跟踪问题。方便起见,我们定义LQ指标为: C = 1 2 ( ξ ^ T − ξ T ) ⊤ Q T ( ξ ^ T − ξ T ) + 1 2 ∑ t = 1 T − 1 ( ( ξ ^ t − ξ t ) ⊤ Q t ( ξ ^ t − ξ t ) + u t ⊤ R u t ) C = \frac{1}{2}(\hat{\xi}_{T} - \xi_{T})^{\top}Q_{T}(\hat{\xi}_{T} - \xi_{T}) + \frac{1}{2}\sum_{t=1}^{T-1}\left( (\hat{\xi}_{t} - \xi_{t})^{\top}Q_{t}(\hat{\xi}_{t} - \xi_{t}) + u_{t}^{\top}Ru_{t} \right) C=21(ξ^TξT)QT(ξ^TξT)+21t=1T1((ξ^tξt)Qt(ξ^tξt)+utRut) 各个变量定义与前文无异。加入系数单纯为了推导方便。此时,利用动态规划方法,我们可以得到离散线性系统的最优跟踪控制律为: u t = − K t ξ ξ t − K t β β t u_{t} = -K_{t}^{\xi}\xi_{t}-K_{t}^{\beta}\beta_{t} ut=KtξξtKtββt 此时最优的性能指标为: C ∗ = 1 2 ξ 0 ⊤ P 0 ξ 0 + ξ 0 ⊤ β 0 + 1 2 α 0 C^{*} = \frac{1}{2}\xi_{0}^{\top}P_{0}\xi_{0} + \xi_{0}^{\top}\beta_{0}+\frac{1}{2}\alpha_{0} C=21ξ0P0ξ0+ξ0β0+21α0
其中每一项迭代过程如下:

  • 矩阵 P P P P T = Q T P t = A ⊤ P t + 1 A − A ⊤ P t + 1 B ( R t + B ⊤ P t + 1 B ) − 1 B ⊤ P t + 1 A + Q t \begin{aligned} P_{T} &= Q_{T} \\ P_{t} &= A^{\top}P_{t+1}A - A^{\top}P_{t+1}B(R_{t}+B^{\top}P_{t+1}B)^{-1}B^{\top}P_{t+1}A+Q_{t} \end{aligned} PTPt=QT=APt+1AAPt+1B(Rt+BPt+1B)1BPt+1A+Qt
  • 矩阵 K ξ K^{\xi} Kξ K t ξ = ( R t + B ⊤ P t + 1 B ) − 1 B ⊤ P t + 1 A K^{\xi}_{t} = (R_{t}+B^{\top}P_{t+1}B)^{-1}B^{\top}P_{t+1}A Ktξ=(Rt+BPt+1B)1BPt+1A
  • 矩阵 K β K^{\beta} Kβ K t β = ( R t + B ⊤ P t + 1 B ) − 1 B ⊤ K^{\beta}_{t} = (R_{t}+B^{\top}P_{t+1}B)^{-1}B^{\top} Ktβ=(Rt+BPt+1B)1B
  • 向量 β \beta β β T = − Q T ξ ^ T β t = ( A − B K t ξ ) ⊤ β t + 1 − Q t ξ ^ t \begin{aligned} \beta_{T} &= -Q_{T}\hat{\xi}_{T} \\ \beta_{t} &= (A-BK_{t}^{\xi})^{\top}\beta_{t+1}-Q_{t}\hat{\xi}_{t} \end{aligned} βTβt=QTξ^T=(ABKtξ)βt+1Qtξ^t
  • 向量 α \alpha α α T = ξ ^ T ⊤ Q T ξ ^ T α t = α t + 1 + ξ ^ t ⊤ Q t ξ ^ t − β t + 1 ⊤ K t β ⊤ ( R t + B ⊤ P t + 1 B ) K t β β t + 1 \begin{aligned} \alpha_{T} &= \hat{\xi}_{T}^{\top} Q_{T}\hat{\xi}_{T} \\ \alpha_{t} &= \alpha_{t+1} + \hat{\xi}_{t}^{\top}Q_{t}\hat{\xi}_{t}-\beta_{t+1}^{\top}{K_{t}^{\beta}}^{\top}(R_{t}+B^{\top}P_{t+1}B)K^{\beta}_{t}\beta_{t+1} \end{aligned} αTαt=ξ^TQTξ^T=αt+1+ξ^tQtξ^tβt+1Ktβ(Rt+BPt+1B)Ktββt+1

所有符号系统来源于附录引文1,推导从略。
有些资料中还将其写成: u t = K t ( ξ ^ t − ξ t ) + f t u_{t} = K_{t}(\hat{\xi}_{t} - \xi_{t}) + f_{t} ut=Kt(ξ^tξt)+ft反馈项+前馈项。其中参数定义如下:

  • 矩阵 K K K K t = ( B ⊤ P t B + R t ) − 1 B ⊤ P t A K_{t} = (B^{\top}P_{t}B+R_{t})^{-1}B^{\top}P_{t}A Kt=(BPtB+Rt)1BPtA 其中 P P P 的定义与前一种方法相同。
  • 前馈向量 f t f_{t} ft f t = − ( B ⊤ P t B + R t ) − 1 B ⊤ ( P t ( A ξ ^ t − ξ ^ t ) + d t ) f_{t} = -(B^{\top}P_{t}B+R_{t})^{-1}B^{\top}(P_{t}(A\hat{\xi}_{t} - \hat{\xi}_{t})+d_{t}) ft=(BPtB+Rt)1B(Pt(Aξ^tξ^t)+dt)
  • 向量 d t d_{t} dt d t = ( A ⊤ − A ⊤ P t + 1 B ( B ⊤ P t + 1 B + R t ) − 1 B ⊤ ) ( P t + 1 ( A ξ ^ t − ξ ^ t + 1 ) + d t + 1 ) d_{t} = (A^{\top}-A^{\top}P_{t+1}B(B^{\top}P_{t+1}B+R_{t})^{-1}B^{\top})(P_{t+1}(A\hat{\xi}_{t} - \hat{\xi}_{t+1})+d_{t+1}) dt=(AAPt+1B(BPt+1B+Rt)1B)(Pt+1(Aξ^tξ^t+1)+dt+1) 其中 d T = 0 d_{T} = 0 dT=0

LQT与多维高斯分布

假定要跟着的任务轨迹满足多维高斯分布,即 ξ t ∼ N ( μ t , Σ t ) \xi_{t}\sim\mathcal{N}(\mu_{t}, \Sigma_{t}) ξtN(μt,Σt)。那么对于上述LQT问题,我们可以取: ξ ^ t = μ t , Q t = Σ t − 1 \hat{\xi}_{t} = \mu_{t}, \quad Q_{t} = \Sigma_{t}^{-1} ξ^t=μt,Qt=Σt1 其它不变。
此时,对于批处理LQT方法,目标函数变为: C = ( μ − S ξ ξ 1 − S u U ) ⊤ Σ − 1 ( μ − S ξ ξ 1 − S u U ) + U ⊤ R ~ U C = \left( \mu - S^{\xi}\xi_{1}-S^{u}U \right)^{\top}\Sigma^{-1}\left( \mu - S^{\xi}\xi_{1}-S^{u}U \right) + U^{\top}\tilde{R}U C=(μSξξ1SuU)Σ1(μSξξ1SuU)+UR~U 其中 μ ∈ R T C D , Σ ∈ R ( T C D ) × ( T C D ) \mu \in\mathbb{R}^{TCD}, \Sigma\in\mathbb{R}^{(TCD)\times(TCD)} μRTCD,ΣR(TCD)×(TCD)。此时控制信号为: U ∗ = ( S u ⊤ Σ − 1 S u + R ~ ) − 1 S u ⊤ Σ − 1 ( μ − S ξ ξ 1 ) U^{*} = ({S^{u}}^{\top}\Sigma^{-1}S^{u}+\tilde{R})^{-1}{S^{u}}^{\top}\Sigma^{-1}(\mu-S^{\xi}\xi_{1}) U=(SuΣ1Su+R~)1SuΣ1(μSξξ1)

对于高斯轨迹分布,LQT控制器还可以拓展为多坐标系下的任务参数化(Task-Parameterized)LQT控制器。假定系统中存在 P P P 个坐标系,此时我们可以将目标函数拓展为: C = ∑ j = 1 P ( μ ( j ) − ξ ) ⊤ Σ ( j ) − 1 ( μ ( j ) − ξ ) + U ⊤ R ~ U C = \sum_{j=1}^{P}\left( \mu^{(j)} - \xi \right)^{\top}{\Sigma^{(j)}}^{-1}\left( \mu^{(j)} - \xi \right) + U^{\top}\tilde{R}U C=j=1P(μ(j)ξ)Σ(j)1(μ(j)ξ)+UR~U 其中 μ ( j ) , Σ ( j ) \mu^{(j)}, \Sigma^{(j)} μ(j),Σ(j) 均是定义在第 j j j 个坐标系下的均值与协方差。求解此问题,等同于首先求解: μ = arg min ⁡ ξ ∑ j = 1 P ( μ ( j ) − ξ ) ⊤ Σ ( j ) − 1 ( μ ( j ) − ξ ) \mu = \argmin_{\xi}\sum_{j=1}^{P}\left( \mu^{(j)} - \xi \right)^{\top}{\Sigma^{(j)}}^{-1}\left( \mu^{(j)} - \xi \right) μ=ξargminj=1P(μ(j)ξ)Σ(j)1(μ(j)ξ) 然后求解: U ∗ = arg min ⁡ U ( μ − ξ ) ⊤ Σ − 1 ( μ − ξ ) + U ⊤ R ~ U U^{*} = \argmin_{U}(\mu - \xi)^{\top}\Sigma^{-1}(\mu - \xi)+U^{\top}\tilde{R}U U=Uargmin(μξ)Σ1(μξ)+UR~U 即首先求最优轨迹分布,然后就最优控制信号。对于批处理方式,可求得最优控制信号为: U ∗ = ( S u ⊤ Σ − 1 S u + R ~ ) − 1 S u ⊤ Σ − 1 ( μ − S ξ ξ 1 ) U^{*} = \left( {S^{u}}^{\top}\Sigma^{-1}S^{u} + \tilde{R} \right)^{-1}{S^{u}}^{\top}\Sigma^{-1}\left( \mu - S^{\xi}\xi_{1} \right) U=(SuΣ1Su+R~)1SuΣ1(μSξξ1) 其中: Σ − 1 = ∑ j = 1 P Σ ( j ) − 1 , μ = Σ ∑ j = 1 P Σ ( j ) − 1 μ ( j ) \Sigma^{-1} = \sum_{j=1}^{P}{\Sigma^{(j)}}^{-1},\quad \mu = \Sigma\sum_{j=1}^{P}{\Sigma^{(j)}}^{-1}\mu^{(j)} Σ1=j=1PΣ(j)1,μ=Σj=1PΣ(j)1μ(j)


  • 感谢 钟宜生——《最优控制》清华大学出版社,2015年。
  • Thanks Sylvein Calinon, A Tutorial on Task-Parameterized Movement Learning and Retrieval in International Service Robotis, 2016.
  • Thanks Sylvein Calinon, et al, Learning Control. in Humanoid Robotics: a Reference, 2019.
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值