9. 多输入物理系统控制

9.1 机器人学概述

1

动力学方程

H(q)q¨+C(q,q˙)q˙+D(q,q˙)q˙+g(q)=τ(9.1)\boldsymbol{H}(\boldsymbol{q})\boldsymbol{\ddot{q}}+\boldsymbol{C}(\boldsymbol{q},\boldsymbol{\dot{q}})\boldsymbol{\dot{q}}+\boldsymbol{D}(\boldsymbol{q},\boldsymbol{\dot{q}})\boldsymbol{\dot{q}}+\boldsymbol{g}(\boldsymbol{q})=\boldsymbol{\tau } \tag{9.1}

  • q\boldsymbol{q}是关节角向量,q˙\boldsymbol{\dot{q}}是关节速度向量

  • H(q)\boldsymbol{H}(\boldsymbol{q})是惯性矩阵(inertial matrix)

    • 是对称正定的
    • 是一致正定的,即α>0,q,H(q)αI\exists \alpha>0,\forall \boldsymbol{q}, \boldsymbol{H}( \boldsymbol{q}) \geqslant \alpha I
  • C(q,q˙)q˙\boldsymbol{C}(\boldsymbol{q},\boldsymbol{\dot{q}})\boldsymbol{\dot{q}}是向心力和科里奥利力矩(centripetal and coriolis torques)

    • depends on q\boldsymbol{q}
    • quadratic in q˙\boldsymbol{\dot{q}}
  • D(q,q˙)\boldsymbol{D}(\boldsymbol{q},\boldsymbol{\dot{q}})是粘滞摩擦(viscous friction)

    • D(q,q˙)0\boldsymbol{D}(\boldsymbol{q},\boldsymbol{\dot{q}}) \geqslant 0
  • g(q)\boldsymbol{g}(\boldsymbol{q})是重力矩(gravitational torque)

  • τ\boldsymbol{\tau }是执行器输入的力矩向量

9.1.1 位置控制

假设机械手在水平面上(g(q)=0\boldsymbol{g}(\boldsymbol{q})=0),并且任务就是把它移动到给定的目标位置,例如由一个期望的关节角的常向量qd\boldsymbol{q}_d所确定的最后位置。
物理上清楚的是,关节的比例一微分控制器即反馈控制规律将能完成希望未知控制任务,具体地说,基于位置误差q~j=qjqdj\tilde{q}_j=q_j-q_{d_j}和关节速度q˙j\dot{q}_j(jj=1,2)的局部测量,反馈控制规律独立地选择每个执行器输入

τj=kPjq~jkDjq˙j(9.2)\tau_j=-k_{P_j}\tilde{q}_j-k_{D_j}\dot{q}_j \tag{9.2}

将能完成希望的位置控制任务。实际上,控制规律(9.2)(其中,kPjk_{P_j}kDjk_{D_j}是严格的正常数)仅仅是模拟了在每个机械手关节处安装一个耗散机械装置的作用该装置由一个弹簧和一个阻尼器组成,并且以期望的qdj\boldsymbol{q}_{d_j}作为静止位置,所产生的无源物理系统简单地表示了摆向静止位置qdj\boldsymbol{q}_{d_j}的阻尼振动。

virtual physic,virtual spring(term P),virtual damper(term D)

下面讨论这种控制器设计为何有效

机械手动能T=12q˙TH(q)q˙T=\frac{1}{2}\dot{\boldsymbol{q}}^T\boldsymbol{H}(\boldsymbol{q})\dot{\boldsymbol{q}},根据能量守恒写成如下形式

12ddt[q˙THq˙]=q˙T(τDq˙g)(9.3)\frac{1}{2}\frac{\mathrm{d} }{\mathrm{d} t}[\dot{\boldsymbol{q}}^T\boldsymbol{H}\dot{\boldsymbol{q}}]=\dot{\boldsymbol{q}}^T(\boldsymbol{\tau}-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g}) \tag{9.3}

式中左边是机械手动能的导数,右边表示执行器的功率输入。

取比(9.2)式稍一般的控制输入,即取

τ=KPq~KDq˙(9.4)\boldsymbol{\tau}=-\boldsymbol{K}_{P}\tilde{\boldsymbol{q}}-\boldsymbol{K}_{D}\dot{\boldsymbol{q}} \tag{9.4}

其中,KPK_PKDK_D是定常对称正定矩阵(通常的比例一微分控制器(9.2)对应的KPK_PKDK_D是对角矩阵)。

考查系统的总机械能V,这里设系统的控制律(9.4)是根据物理弹簧和阻尼器原理得到的,即总机械能是

V=12[q˙THq˙+q~TKPq~](9.5)V=\frac{1}{2}[\dot{\boldsymbol{q}}^T\boldsymbol{H}\dot{\boldsymbol{q}}+\boldsymbol{\tilde{q}}^T\boldsymbol{K}_P\boldsymbol{\tilde{q}}] \tag{9.5}

为了分析控制系统的闭环性态,我们将使用这个有效的机械能V作为李雅普诺夫函数,根据(9.3),V对时间的导数为

V˙=q˙T(τDq˙)+q˙TKPq~=q˙T(KPq~KDq˙Dq˙)+q˙TKPq~=q˙T(KD+D)q˙0\begin{align*} \dot{V}&=\dot{\boldsymbol{q}}^T(\boldsymbol{\tau}-\boldsymbol{D}\boldsymbol{\dot{q}})+ \dot{\boldsymbol{q}}^T\boldsymbol{K}_P\boldsymbol{\tilde{q}}\\ &=\boldsymbol{\dot{q}}^T(-\boldsymbol{K}_{P}\tilde{\boldsymbol{q}}-\boldsymbol{K}_{D}\dot{\boldsymbol{q}} -\boldsymbol{D}\boldsymbol{\dot{q}})+\dot{\boldsymbol{q}}^T\boldsymbol{K}_P\boldsymbol{\tilde{q}}\\ &=-\boldsymbol{\dot{q}}^T(\boldsymbol{K}_D+D)\boldsymbol{\dot{q}} \leqslant 0 \end{align*}

可知V˙\dot{V}就是阻尼器所耗散的功率(virtual dissipation)。
现在我们只要检验系统不能“停留”在V=0的任何一点qqd\boldsymbol{q}\neq \boldsymbol{q}_d
利用不变集定理

V˙=0q˙=0Hq¨=KPq~ (9.1)q¨=H1KPq~0 unless q~=0q=qd\dot{V} =0 \Rightarrow \dot{\boldsymbol{q}} =0 \Rightarrow \boldsymbol{H}\boldsymbol{\ddot{q}}=-\boldsymbol{K}_{P}\boldsymbol{\tilde{q}} ~(9.1) \Rightarrow \boldsymbol{\ddot{q}}= -\boldsymbol{H}^{-1}\boldsymbol{K}_{P}\tilde{\boldsymbol{q}}\neq 0 ~unless~ \boldsymbol{\tilde{q}} =0 \Leftrightarrow \boldsymbol{q} =\boldsymbol{q}_d

所以,正如物理推理所得到的,系统收敛于期望的状态。

9.1.2 轨线控制(trajectory tracking)

如果存在外部的重力距g(q)\boldsymbol{g}(\boldsymbol{q}),能量守恒可写为(推广的(9.3)式)

q˙T(τDq˙g)=12ddt[q˙THq˙]=q˙THq¨+12q˙TH˙q˙\begin{align*} \dot{\boldsymbol{q}}^T(\boldsymbol{\tau}-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g}) & =\frac{1}{2}\frac{\mathrm{d} }{\mathrm{d} t}[\dot{\boldsymbol{q}}^T\boldsymbol{H}\dot{\boldsymbol{q}}]\\ &=\dot{\boldsymbol{q}}^T\boldsymbol{H}\ddot{\boldsymbol{q}}+\frac{1}{2}\dot{\boldsymbol{q}}^T\dot{\boldsymbol{H}}\dot{\boldsymbol{q}} \tag{9.6} \end{align*}

代入式(9.1)展开Hq¨\boldsymbol{H}\ddot{\boldsymbol{q}}

q˙T(τDq˙g)=q˙THq¨+12q˙TH˙q˙=q˙T(τDq˙gCq˙)+12q˙TH˙q˙\begin{align*} \dot{\boldsymbol{q}}^T(\boldsymbol{\tau}-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g})&=\dot{\boldsymbol{q}}^T\boldsymbol{H}\ddot{\boldsymbol{q}}+\frac{1}{2}\dot{\boldsymbol{q}}^T\dot{\boldsymbol{H}}\dot{\boldsymbol{q}}\\ &=\dot{\boldsymbol{q}}^T(\boldsymbol{\tau}-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g}-\boldsymbol{C}\boldsymbol{\dot{q}})+\frac{1}{2}\dot{\boldsymbol{q}}^T\dot{\boldsymbol{H}}\dot{\boldsymbol{q}} \end{align*}

观察到等式两侧同时出现了q˙T(τDq˙g)\dot{\boldsymbol{q}}^T(\boldsymbol{\tau}-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g}),整理化简可得

q˙T(H˙2C)q˙=0(9.7)\dot{\boldsymbol{q}}^T(\dot{\boldsymbol{H}}-2\boldsymbol{C})\dot{\boldsymbol{q}}=0 \tag{9.7}

这个结果表明矩阵H˙2C\dot{\boldsymbol{H}}-2\boldsymbol{C}是反对称的——这不完全是(9.7)的直接结果,因为矩阵H˙2C\dot{\boldsymbol{H}}-2\boldsymbol{C}自身与q˙\boldsymbol{\dot{q}}有关。实际上,虽然科里奥利力矩和向心力矩向量Cq˙\boldsymbol{C}\dot{\boldsymbol{q}}与关节速度q˙\boldsymbol{\dot{q}}都是惟一性的物理量,但这里没有惟一定义矩阵C\boldsymbol{C}。然而,下面将说明,如果C\boldsymbol{C}的元素定义为

Cij=12k=1nHijqkq˙k+12k=1n(HikqjHjkqi)q˙k(9.8)\boldsymbol{C}_{ij}=\frac{1}{2}\sum_{k=1}^{n}\frac{\partial \boldsymbol{H}_{ij}}{\partial q_k} \dot{q}_k+\frac{1}{2}\sum_{k=1}^{n}(\frac{\partial \boldsymbol{H}_{ik}}{\partial q_j}-\frac{\partial \boldsymbol{H}_{jk}}{\partial q_i}) \dot{q}_k \tag{9.8}

那么矩阵H˙2C\dot{\boldsymbol{H}}-2\boldsymbol{C}确实是反对称的。因此​**H˙2C\dot{\boldsymbol{H}}-2\boldsymbol{C}可看作是能量守恒的矩阵表示**。

“matrix vertion” of energy conservation

定义变量s\boldsymbol{s}

s=q~˙+Λq~(9.9)\boldsymbol{s}= \boldsymbol{\dot{\tilde{q}}}+\Lambda \boldsymbol{\tilde{q}} \tag{9.9}

其中,Λ\Lambda是对称正定矩阵。
事实上,在这个二阶系统中,我们可以把(9.9)式中的s解释为“速度误差”项

s=q~˙+Λq~=q˙q˙r(9.10)\boldsymbol{s}= \boldsymbol{\dot{\tilde{q}}}+\Lambda \boldsymbol{\tilde{q}} =\boldsymbol{\dot{q}}-\boldsymbol{\dot{q}}_r \tag{9.10}

其中q˙r=q˙dΛq~\boldsymbol{\dot{q}}_r =\boldsymbol{\dot{q}}_d-\Lambda \boldsymbol{\tilde{q}}

  • 根据位置误差q~\boldsymbol{\tilde{q}}改变期望的速度q˙d\boldsymbol{\dot{q}}_d,以形成"参照速度"向量q˙r\boldsymbol{\dot{q}}_r,这仅仅是一种符号处理,它将与能量相关的性质(它用实际关节速度向量q˙\boldsymbol{\dot{q}}来表示)转化为轨线控制性质(由实际速度误差向量s\boldsymbol{s}表示)。
  • 类似于单输入的情况向量​**s\boldsymbol{s}包含了q\boldsymbol{q}q˙\boldsymbol{\dot{q}}的有界性和收敛性的信息**。
    这是因为s的定义(9.9)也可以看作是关于q~\boldsymbol{\tilde{q}}的一个稳定的一阶微分方程(其中s\boldsymbol{s}看作是输入)。于是,假设了初始状态是有界时,只要说明了s\boldsymbol{s}的有界性就证明了q~\boldsymbol{\tilde{q}}q~˙\boldsymbol{\dot{\tilde{q}}}的有界性,从而证明了q\boldsymbol{q}q˙\boldsymbol{\dot{q}}的有界性;类似地,如果当tt \rightarrow \infty时,s0\boldsymbol{s} \rightarrow 0,那么有q~0\boldsymbol{\tilde{q}} \rightarrow 0,且q~˙0\boldsymbol{\dot{\tilde{q}}} \rightarrow 0

定义能量函数VV

V=12sTHs(9.11)V=\frac{1}{2}\boldsymbol{s}^T\boldsymbol{H}\boldsymbol{s} \tag{9.11}

求导得

V˙=sTHs˙+12sTH˙s=sT(Hq¨Hq¨r)+12sTH˙s=sT(τHq¨rCq˙Dq˙g)+12sTH˙s=sT(τHq¨rCq˙rDq˙g)+12sT(H˙2C=0)s  运用(9.10)  q˙=s+q˙r=sT(τHq¨rCq˙rDq˙gY(q,q˙,q˙r,q¨r)a)\begin{align*} \dot{V}&=\boldsymbol{s}^T\boldsymbol{H}\boldsymbol{\dot{s}}+\frac{1}{2}\boldsymbol{s}^T\boldsymbol{\dot{H}}\boldsymbol{s}\\ &=\boldsymbol{s}^T(\boldsymbol{H}\boldsymbol{\ddot{q}}-\boldsymbol{H}\boldsymbol{\ddot{q}}_r)+\frac{1}{2}\boldsymbol{s}^T\boldsymbol{\dot{H}}\boldsymbol{s}\\ &=\boldsymbol{s}^T(\boldsymbol{\tau}-\boldsymbol{H}\boldsymbol{\ddot{q}}_r-\boldsymbol{C}\boldsymbol{\dot{q}}-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g})+\frac{1}{2}\boldsymbol{s}^T\boldsymbol{\dot{H}}\boldsymbol{s}\\ &=\boldsymbol{s}^T(\boldsymbol{\tau}-\boldsymbol{H}\boldsymbol{\ddot{q}}_r-\boldsymbol{C}\boldsymbol{\dot{q}}_r-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g})+\frac{1}{2}\boldsymbol{s}^T(\underbrace{\boldsymbol{\dot{H}}-2\boldsymbol{C}}_{=0})\boldsymbol{s}~~\text{运用}(9.10)~~ \boldsymbol{\dot{q}}=\boldsymbol{s}+\boldsymbol{\dot{q}}_r \\ &=\boldsymbol{s}^T\underbrace{(\boldsymbol{\tau}-\boldsymbol{H}\boldsymbol{\ddot{q}}_r-\boldsymbol{C}\boldsymbol{\dot{q}}_r-\boldsymbol{D}\boldsymbol{\dot{q}}-\boldsymbol{g}}_{\boldsymbol{Y}(\boldsymbol{q},\boldsymbol{\dot{q},\boldsymbol{\dot{q}}_r},\boldsymbol{\ddot{q}}_r)\boldsymbol{a}}) \tag{9.12} \end{align*}

其中Y(q,q˙,q˙r,q¨r)\boldsymbol{Y}(\boldsymbol{q},\boldsymbol{\dot{q},\boldsymbol{\dot{q}}_r},\boldsymbol{\ddot{q}}_r)为已知函数,a\boldsymbol{a}为未知常数

参考

【1】Applied Nonlinear Control,Slotine and Li,Prentice-Hall 1991:Section 9
【2】https://www.bilibili.com/video/BV1Tk4y167kR?p=10&vd_source=b1a52fdb6c7481b4e8c78d03e9a9acb0