0. 动态面反步法概述
反步法是一种非常优美且系统的非线性控制器设计方法。它的核心思想是“递归设计”。它像下台阶一样,从系统的输出(最外层)开始,一步步向后(向控制输入)推导,为每一层设计一个“虚拟控制量”来稳定该层,最终设计出实际控制律。
动态面反步法(Dynamic Surface Control, DSC)是一种针对非线性严格反馈系统(strict-feedback systems)设计的先进非线性控制方法,由 Swaroop 等人在 2000 年提出,旨在克服传统反步法(Backstepping)中的“微分爆炸”(explosion of terms)问题。
1. 系统模型
假设带有外部扰动的二阶严格反馈非线性系统如下:{x˙1=x2+f1(x1)x˙2=f2(x1,x2)+g(x1,x2)u+d(t)y=x1\begin{cases}
\dot{x}_1=x_2+f_1\left( x_1 \right)\\
\dot{x}_2=f_2\left( x_1,x_2 \right) +g\left( x_1,x_2 \right) u+d\left( t \right)\\
y=x_1\\
\end{cases}⎩⎨⎧x˙1=x2+f1(x1)x˙2=f2(x1,x2)+g(x1,x2)u+d(t)y=x1其中f1,f2,gf_1,f_2,gf1,f2,g为已知的光滑非线性函数,d(t)d\left( t \right)d(t) 是未知的外部扰动,但其幅值有界,即∣d(t)∣⩽D\left| d\left( t \right) \right|\leqslant D∣d(t)∣⩽D。
控制目标为:设计一个鲁棒的控制律 uuu,使得系统输出 x1x_1x1 能够全局渐近跟踪一个给定的期望轨迹 x1d(t)x_{1d}\left( t \right)x1d(t)。
2. 系统拆分与虚拟控制引入
2.1 定义第一个动态面和虚拟控制
- 定义跟踪误差:z1=x1−x1dz_1=x_1-x_{1d}z1=x1−x1d
- 设计虚拟控制律:
如果把 x2x_2x2 看成是第一个子系统的“控制输入”,那么可以设计一个虚拟控制律 α1\alpha _1α1 ,作为状态 x2x_2x2 的期望值,使得 z1z_1z1 渐近稳定。基于Lyapunov稳定性思想,设计虚拟控制律为α1=−k1z1+x˙1d−f1(x1)\alpha _1=-k_1z_1+\dot{x}_{1d}-f_1\left( x_1 \right) α1=−k1z1+x˙1d−f1(x1)其中,k1>0k_1>0k1>0 是一个设计参数,决定了跟踪误差收敛的速度。
2.2 引入一阶滤波器,定义第二个动态面
这是DSC方法的核心,用于解决“微分爆炸”问题。
- 引入一阶低通滤波器来平滑 α1\alpha _1α1:τα˙1f+α1f=α1\tau \dot{\alpha}_{1f}+\alpha _{1f}=\alpha _1τα˙1f+α1f=α1α1f\alpha _{1f}α1f 是滤波后的虚拟控制信号。τ\tauτ >0 是滤波器的时间常数,为一个小的正数。
这个滤波器的物理意义是:让 α1f\alpha _{1f}α1f 平滑地跟随 α1\alpha _1α1,而不是瞬时跟随。 - 定义第二个动态面的误差
现在,我们的目标不再是让 x2x_2x2 直接跟踪 α1\alpha _1α1,而是让 x2x_2x2 跟踪滤波后的信号 α1f\alpha _ {1f}α1f
定义第二个跟踪误差为:z2=x2−α1fz_2=x_2-\alpha _{1f}z2=x2−α1f
此时,整个系统的状态变为 [z1,z2]\left[ z_1,z_2 \right][z1,z2],新系统的状态空间方程如下:{z1=z2−k1z1z2=f2(x1,x2)+g(x1,x2)u+d(t)−α˙1f\begin{cases} z_1=z_2-k_1z_1\\ z_2=f_2\left( x_1,x_2 \right) +g\left( x_1,x_2 \right) u+d\left( t \right) -\dot{\alpha}_{1f}\\ \end{cases}{z1=z2−k1z1z2=f2(x1,x2)+g(x1,x2)u+d(t)−α˙1f 状态 z1z_1z1 代表跟踪误差;状态 z2z_2z2 代表实际速度与期望速度的偏差,其中包含了原始系统的控制输入 uuu。此时控制目标就转化为:设计控制律 uuu ,使得 z1z_1z1 和 z2z_2z2 都收敛到0。
2.3 基于Lyapunov函数的控制律设计
构造一个包含两个动态面误差的Lyapunov函数:V=12z12+12z22V=\frac{1}{2}z_{1}^{2}+\frac{1}{2}z_{2}^{2}V=21z12+21z22对V求导并进行推导,为了保证 V˙\dot{V}V˙ 负定,考虑扰动项 d(t)d\left( t \right)d(t),需要加入鲁棒项来抵消扰动的影响,因此最终设计的控制律为u=1g[−f2+α˙1f−k2z2−z1−η⋅sat(z2/ϕ)]u=\frac{1}{g}\left[ -f_2+\dot{\alpha}_{1f}-k_2z_2-z_1-\eta \cdot sat\left( z_2/\phi \right) \right] u=g1[−f2+α˙1f−k2z2−z1−η⋅sat(z2/ϕ)]其中,k2>0k_2>0k2>0为控制增益,η\etaη 是一个正的设计参数,必须满足 η⩾D\eta \geqslant Dη⩾D(即大于扰动的上界),ϕ>0\phi>0ϕ>0 为边界层厚度,是一个小的正数(如 0.05, 0.1)。
通过设计 uuu,强制执行 x2x_2x2 驱动到 α1f\alpha _{1f}α1f ,而 α1f\alpha _{1f}α1f又通过一个快速的一阶滤波器跟随 α1\alpha _1α1 。当 x2x_2x2 跟踪上 α1\alpha _1α1 时,此时根据第一个子系统的推导可得到 z1(t)→0z_1\left( t \right) \rightarrow 0z1(t)→0,此时 x1x_1x1 跟踪上 x1dx_{1d}x1d。在真实系统中,由于滤波器的存在和实际控制的有限响应速度,此时 x2x_2x2 无限接近 α1\alpha _1α1 ,最终 x1x_1x1 仍能高精度跟踪上 x1dx_{1d}x1d。
3. 仿真示例
对于存在外部扰动的平面2R机器人的动力学方程:M(q)q¨+c(q,q˙)+G(q)+d=τ M\left( q \right) \ddot{q}+c\left( q,\dot{q} \right) +G\left( q \right) +d=\tau M(q)q¨+c(q,q˙)+G(q)+d=τ M(q)M\left( q \right)M(q) 是对称正定的质量矩阵,c(q,q˙)c\left( q,\dot{q} \right)c(q,q˙) 是包含科氏力和向心力的矢量,G(q)G\left( q \right)G(q) 是重力矩矢量,τ\tauτ 是关节力矩。ddd 是外部扰动。
首先转换为严格反馈形式:{[x˙1x˙2]T=[x3x4]T[x˙3x˙4]T=M(x1,x2)−1⋅(τ−d(t)−c(x1,x2,x3,x4)−G(x1,x2))\begin{cases} \left[ \begin{matrix} \dot{x}_1& \dot{x}_2\\ \end{matrix} \right] ^T=\left[ \begin{matrix} x_3& x_4\\ \end{matrix} \right] ^T\\ \left[ \begin{matrix} \dot{x}_3& \dot{x}_4\\ \end{matrix} \right] ^T=\boldsymbol{M}\left( x_1,x_2 \right) ^{-1}\cdot \left( \boldsymbol{\tau }-\boldsymbol{d}\left( t \right) -\boldsymbol{c}\left( x_1,x_2,x_3,x_4 \right) -\boldsymbol{G}\left( x_1,x_2 \right) \right)\\ \end{cases}{[x˙1x˙2]T=[x3x4]T[x˙3x˙4]T=M(x1,x2)−1⋅(τ−d(t)−c(x1,x2,x3,x4)−G(x1,x2))其中,[x1x2x3x4]=[q1q2q˙1q˙2]\left[ \begin{matrix} x_1& x_2& x_3& x_4\\ \end{matrix} \right] =\left[ \begin{matrix} q_1& q_2& \dot{q}_1& \dot{q}_2\\ \end{matrix} \right][x1x2x3x4]=[q1q2q˙1q˙2]。
控制目标为:
- 关节角度 q1q_1q1 和 q2q_2q2 跟踪给定的期望轨迹 q1d(t),q2d(t)q_{1d}\left( t \right) , q_{2d}\left( t \right)q1d(t),q2d(t);
- 抵抗外部扰动 d(t)=[0.5sint, 0.5sint]Td(t) = [0.5\sin t,\ 0.5\sin t]^Td(t)=[0.5sint, 0.5sint]T。
- 使用动态面反步控制法避免“微分爆炸”问题。
3.1 根据反步法设计控制器
对两个关节分别设计虚拟控制律,并引入两个一阶滤波器,最终合成控制输入τ=[τ1τ2]T\boldsymbol{\tau }=\left[ \begin{matrix} \tau _1& \tau _2\\ \end{matrix} \right] ^Tτ=[τ1τ2]T,即z11=q1−q1dz12=q2−q2dz_{11}=q_1-q_{1d} \\ z_{12}=q_2-q_{2d}z11=q1−q1dz12=q2−q2d后续具体设计流程略,最终输出控制力矩 uuu。
3.2 仿真分析
第一、二关节角度跟踪曲线与角速度跟踪曲线如下图所示:

从仿真结果可得,一二关节的角度和角速度在2s内跟踪上了期望轨迹,后续的稳态误差较小,总体来说跟踪控制效果良好。
总结
动态面反步法通过引入一阶低通滤波器,实际上是用一个微小的滤波误差(α1\alpha _1α1与α1f\alpha _{1f}α1f的差别)换取了计算复杂度的大幅降低和控制信号的平滑性。
动态面反步法是传统反步法的“工程友好版”:,它的优缺点在于:
- 优点:结构简单(仅需滤波器即可实现)、避免微分爆炸、适合高阶系统、易于工程实现、支持扰动抑制;
- 缺点:对非严格反馈系统无效、不能渐近稳定(因存在滤波误差,有界稳定)、依赖滤波器参数选择。
DSC 要求系统具有严格反馈结构:即每个状态的导数只依赖于前面的状态和当前状态,且控制输入仅出现在最后一级。

本文介绍了一种针对存在外部扰动的2R型平面机器人的鲁棒跟踪逆推控制器设计方法,并通过Matlab实现了该控制器。文章详细阐述了动力学方程的构成,并给出了仿真结果。

3880

被折叠的 条评论
为什么被折叠?



