非线性控制4——Back Stepping

1. 基本思想

 

2. 重要定理

 

3. 实例仿真——单机械臂稳定控制

3.1 模型建立

以单机械臂控制为例,具有参数不确定性的单机械臂的模型如式(3-1)

                                              I\ddot{\theta }+\tilde{d}\dot{\theta }+\mu \theta +mglcos\theta =\tau                                     (3-1)

式中,\theta为机械臂的位置;\dot{\theta }为速度,\ddot{\theta }为加速度;\tau 为电动机给出的驱动力矩,为控制信号输入;m为机械臂的质量;g为重力加速度;2l为机械臂长度,I=\frac{4}{3}ml^{2}为转动惯量;\tilde{d}为黏性摩擦系数;\mu为弹性摩擦系数。其中,\tilde{d}\mu为不确定量。

控制目标:使输出\theta跟随给定的输入\theta_{d},设\theta_{d}是二阶可导的。

将式(3-1)转为为一般形式,便于进行反步计算。设x_{1}=\theta,x_{2}=\dot{\theta },则式(3-1)可写成式(3-2)的形式:

                                              \left\{\begin{matrix} \dot{x}_{1}=x_{2}\\ \dot{x}_{2}=-\frac{1}{I} \tilde{d} x_{2}-\frac{1}{I} \mu x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau \end{matrix}\right.                        (3-2)

设计目标: 求控制率\tau,使得系统(3-1)的输出\theta跟随给定的输入\theta_{d}

3.2 Back Stepping控制器设计

步骤1:e=x_{1}-x_{1d},则控制目标发生改变,使x_{1}\rightarrow x_{1d},既\theta \rightarrow \theta_{d}

                                     \dot{e} = \dot{x}_{1}-\dot{x}_{1d}=x_{2}-\dot{x}_{1d}                                             (3-3)

此时,我们的目标是让e趋向于0(由式3-2可知,可通过虚拟控制量x_{2}实现e趋于0,问题变为确定所期望的x_{2}表达式)。这个问题可通过Lyapunov直接法解决,现在的问题是寻找一个Lyapunov函数V(e),使得V(e)是正定,而dotV(e)是负定,最终得出e趋向于0时,所期望的x_{2}表达式。

步骤2:选取合适的Lyapunov函数:

                                                V_{1}=\frac{1}{2}e^{2}                                                          (3-4)

则  \dot{V}_{1}=e\dot{e}=e(x_{2}-\dot{x}_{1d})  ,因为希望e趋向于0,所以\dot{V}_{1}需满足负定条件,则可令x_{2}-\dot{x}_{1d}=-k_{1}e(k_{1}> 0),此时

                           \dot{V}_{1}=e\dot{e}=e(x_{2}-\dot{x}_{1d})=-k_{1}e^{2}< 0                                (3-5)

步骤3:通过步骤2中的假设,可确定虚拟控制量x_{2}的期望值,既x_{2d}=\dot{x}_{1d}-k_{1}e(k_{1}> 0)。现在的任务是进一步设计控制器,通过控制率\tau使得当t\rightarrow \infty时,x_{2}\rightarrow x_{2d}(从式3-2可知,x_{2}的值由控制率\tau)。

同理,为实现这一目标,可利用Lyapunov直接法,令\delta =x_{2}-x_{2d},则

\dot{\delta} =\dot{x}_{2}-\dot{x}_{2d} \\=(-\frac{1}{I} \tilde{d} x_{2}-\frac{1}{I} \mu x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}\dot{e}) \\=(-\frac{1}{I} \tilde{d} x_{2}-\frac{1}{I} \mu x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))             (3-6)

新的目标使得系统稳定,希望\deltae都趋向于0,找到一个新的Lyapunov函数V(e,\delta )满足正定,同时\dot{V}(e,\delta )是负定。

                                    V_{2}=V_{1}+\frac{1}{2}\delta ^{2}                                                              (3-7)

 则\dot{V}_{2}=\dot{V}_{1}+\delta \dot{\delta },此时\dot{V}_{1}=e\dot{e}=e(x_{2}-\dot{x}_{1d})=e(\delta +x_{2d}-\dot{x}_{1d})=e\delta -k_{1}e^{2},将其带入,可得

                                       \dot{V}_{2}=e\delta -k_{1}e^{2}+\delta \dot{\delta }=-k_{1}e^{2}+\delta (e+\dot{\delta} )               (3-8)

为保证\dot{V}(e,\delta )负定,可令      e+\dot{\delta}=-k_{2}\delta                                                     (3-9)                            

\dot{V}_{2}=-k_{1}e^{2}-k_{2}\delta ^{2}< 0,得证。为确定控制率\tau,将(3-6)带入(3-9)可得

                  e+(-\frac{1}{I} \tilde{d} x_{2}-\frac{1}{I} \mu x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))=-k_{2}\delta   (3-10)

将(3-10)进行变换可得,最终所要求的控制率\tau如下

                            \tau=I(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))-Ik_{2}\delta-Ie+ (\tilde{d} x_{2}+\mu x_{1 }+mgl\cos x_{1})     (3-11)


Remark:若\tilde{d}\mu为确定的已知参数,则控制器已经设计完毕,但本系统中\tilde{d}\mu为不确定量,所以还需进一步确定\tilde{d}\mu的取值。为解决此问题,可引入自适应控制,将传统的反步控制与自适应控制结合,形成自适应反步控制

3.3 自适应Back Stepping控制器设计

由于\tilde{d}\mu未知,故在式(3-11)中采用估计值替代实际值,则控制率\tau可写成

                   \tau=I(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))-Ik_{2}\delta-Ie+ (\hat{\tilde{d}} x_{2}+\hat{\mu} x_{1 }+mgl\cos x_{1})        (3-12)

其中,\hat{\tilde{d}}为黏性摩擦系数\tilde{d}的估计值,计两者之间的误差为\vartheta_{1}=\tilde{d}-\hat{\tilde{d}}\hat{\mu}为弹性摩擦系数\mu的估计值,计两者之间的误差为\vartheta_{2}=\mu-\hat{\mu}

式(3-12)可替代式(3-11)的前提条件为:\tilde{d}\mu的估计值\hat{\tilde{d}}\hat{\mu}趋近于真实值,因此,问题转换为求解\tilde{d}\mu的估计值\hat{\tilde{d}}\hat{\mu}问题。也就是要确定式(3-12)中\hat{\tilde{d}}\hat{\mu}的准确表达式,只有这样控制率\tau才算确定。为解决这一问题,需要引入自适应控制,常用的技巧是利用系统的状态或者输出量构造系统的自适应率。具体步骤如下:

步骤1:选取合适的Lyapunov函数

因为要确保每个误差量都能收敛到0,所以构造的Lyapunov函数如下:

                                                     V=\frac{1}{2}e^{2}+\frac{1}{2}\delta^{2}+\frac{1}{2}\vartheta_{1}^{2}+\frac{1}{2}\vartheta_{2}^{2}                   (3-13)

其中,e=x_{1}-x_{1d}\delta =x_{2}-x_{2d}\vartheta_{1}=\tilde{d}-\hat{\tilde{d}}\vartheta_{2}=\mu-\hat{\mu}。对上式进行求导,得

                                        \dot{V}=e\dot{e}+\delta \dot{\delta }+\vartheta_{1} \dot{\vartheta_{1}}+\vartheta_{2} \dot{\vartheta_{2}}                                   (3-14)

\dot{V}_{1}=e\dot{e}=e(x_{2}-\dot{x}_{1d})=e(\delta +x_{2d}-\dot{x}_{1d})=e\delta -k_{1}e^{2}

   和  \dot{\delta} =(-\frac{1}{I} \tilde{d} x_{2}-\frac{1}{I} \mu x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))     带入式(3-14)中,

             \dot{V}=e\dot{e}+\delta \dot{\delta }+\vartheta_{1} \dot{\vartheta_{1}}+\vartheta_{2} \dot{\vartheta_{2}} \\= -k_{1}e^{2}+e\delta+\delta ((-\frac{1}{I} \tilde{d} x_{2}-\frac{1}{I} \mu x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d})))+\vartheta_{1} \dot{\vartheta_{1}}+\vartheta_{2} \dot{\vartheta_{2}}  (3-15)

又因为\vartheta_{1}=\tilde{d}-\hat{\tilde{d}}\vartheta_{2}=\mu-\hat{\mu},既有\tilde{d}=\vartheta_{1}+\hat{\tilde{d}}\mu=\vartheta_{2}+\hat{\mu},将其带入(3-15)中,有 

          \dot{V}= -k_{1}e^{2}+e\delta+\delta ((-\frac{1}{I} (\vartheta_{1}+\hat{\tilde{d}}) x_{2}-\frac{1}{I} (\vartheta_{2}+\hat{\mu}) x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d})))+\vartheta_{1} \dot{\vartheta_{1}}+\vartheta_{2} \dot{\vartheta_{2}}      (3-16)

又因为\tilde{d}\mu虽然未知,但其值固定,所以\dot{\vartheta}_{1}=\dot{\hat{\tilde{d}}}\dot{\vartheta}_{2}=\dot{\hat{\mu}},将其带入上式,可得

          \dot{V}= -k_{1}e^{2}+e\delta+\delta ((-\frac{1}{I} \hat{\tilde{d}} x_{2}-\frac{1}{I} \hat{\mu} x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d})))+\delta (-\frac{1}{I} \vartheta_{1}x_{2}-\frac{1}{I} \vartheta_{2}x_{1})+\vartheta_{1} \dot{\hat{\tilde{d}}}+\vartheta_{2} \dot{\hat{\mu}}

将上式进行整理,可得

        \dot{V}= -k_{1}e^{2}+e\delta+\delta ((-\frac{1}{I} \hat{\tilde{d}} x_{2}-\frac{1}{I} \hat{\mu} x_{1 }-\frac{1}{I} m g l\cos x_{1}+\frac{1}{I} \tau)-(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d})))-\vartheta_{1}(\frac{1}{I}\delta x_{2}+\dot{\hat{\tilde{d}}})-\vartheta_{2}(\frac{1}{I}\delta x_{1}+\dot{\hat{\mu}})      (3-17)

上式可以看成

                                          \dot{V}=\dot{V_{2}}-\vartheta_{1}(\frac{1}{I}\delta x_{2}+\dot{\hat{\tilde{d}}})-\vartheta_{2}(\frac{1}{I}\delta x_{1}+\dot{\hat{\mu}})                                     (3-18)

由前面分析可知,当\tau=I(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))-Ik_{2}\delta-Ie+ (\hat{\tilde{d}} x_{2}+\hat{\mu} x_{1 }+mgl\cos x_{1})时,\dot{V}_{2}<0,所以为了保证\dot{V}<0,则可令

                                       \left\{\begin{matrix} \frac{1}{I}\delta x_{2}+\dot{\hat{\tilde{d}}}=0\\ \frac{1}{I}\delta x_{1}+\dot{\hat{\mu}}=0 \end{matrix}\right.        \Rightarrow         \left\{\begin{matrix} \dot{\hat{\tilde{d}}}=-\frac{1}{I}\delta x_{2}\\ \dot{\hat{\mu}}=-\frac{1}{I}\delta x_{1} \end{matrix}\right.                                       (3-19)

最终结果:

           \tau=I(\ddot{x}_{1d}-k_{1}(x_{2}-\dot{x}_{1d}))-Ik_{2}\delta-Ie+ (\hat{\tilde{d}} x_{2}+\hat{\mu} x_{1 }+mgl\cos x_{1})\dot{\hat{\tilde{d}}}=-\frac{1}{I}\delta x_{2}\dot{\hat{\mu}}=-\frac{1}{I}\delta x_{1}时,

闭环系统e\delta\vartheta_{1}\vartheta_{2}均趋于零,系统渐近稳定。

 

3.4 基于MATLAB的系统仿真

根据上述推导,可搭建如下的simulink仿真图。

         

                                                                                图1 仿真结构框图

实验结果如图2和图3所示,其中,图2为期望的位置和实际位置,图3为两者之间的误差。

                         

                                   图2 期望位置与实际位置                                                  图3 位置误差                                                          

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 26
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
### 回答1: Simulink是一个功能强大的模块化仿真环境,可用于建立和模拟各种系统。同时,Stepping Motor(步进电机)是一种常见的电机类型,具有精准的位置控制能力。那么,Simulink Stepping Motor Model(Simulink步进电机模型)指的就是使用Simulink建立用于仿真和控制步进电机的模型。 在建立Simulink步进电机模型时,我们需要考虑以下方面: 1. 电机特性建模:根据步进电机的参数,例如步距角、相数、相电阻等,使用Simulink中的模块来建立电机的特性模型。 2. 控制策略设计:根据需要,选择合适的控制策略来控制步进电机的运动。例如,可以使用开环控制或闭环控制,其中闭环控制通常使用位置反馈来实现更精确的控制。 3. 运动生成:使用Simulink中的信号生成模块来生成合适的控制信号,使步进电机按照期望的速度和位置进行运动。 4. 性能评估:使用Simulink的仿真功能,模拟步进电机的运动,并评估其性能。可以通过观察电机的位置误差、动态响应、运行速度等指标来评估模型的准确性和性能。 通过建立Simulink步进电机模型,我们可以方便地验证控制策略的有效性,优化电机系统的性能,并对电机运动进行仿真分析。这对于步进电机的开发和应用具有重要意义,可帮助设计人员更好地理解和改进步进电机系统的控制策略。 ### 回答2: Simulink是一种模拟和建模工具,可用于描述和分析复杂系统。步进电机是一种常见的电机类型,具有可以精确控制和定位的特点。因此,将Simulink和步进电机模型结合起来,可以用于设计和验证各种步进电机应用。 在Simulink中建模步进电机,首先需要了解步进电机的工作原理和参数。步进电机由一系列旋转的步进角组成,可以根据输入信号逐步地旋转。因此,在建模步进电机时,需要确定步进角大小、步进角速度、步进角模式(全步、半步)、角度误差以及电机本身的电压和电流等参数。 然后,可以使用Simulink中的旋转或位置模块来建立步进电机的数学模型。该模型可以涵盖步进电机的输入电流、角度变化和转速等关键参数,以及外部环境因素如负载和摩擦等的影响。 建立步进电机模型后,可以使用Simulink的仿真功能进行验证。通过输入不同的电流信号和步进角速度,可以观察步进电机的运动状态。仿真可以帮助验证步进电机模型的准确性,并进行性能分析,如加速度、定位精度以及控制响应等。 总之,利用Simulink建立步进电机模型可以帮助工程师理解和分析步进电机的工作原理和性能。通过仿真验证,可以提前发现和解决潜在的问题,从而提高步进电机系统的效率和稳定性。 ### 回答3: Simulink是一种用于模拟和仿真动态系统的软件工具,它可以为电气、控制和机械系统创建模型,并进行实时的模拟和分析。在Simulink中,步进电机模型是一种被广泛使用的模型,用于仿真和分析步进电机的运行特性。 步进电机是一种特殊的直流电动机,其可以以离散的步进角度运动。它的运动是由输入的脉冲信号驱动的,每个脉冲信号会使电机转动一个固定的步进角度。Simulink中的步进电机模型使用带有脉冲输入信号的计数器来模拟电机的运动。 步进电机模型是通过建立连续时域和离散时域之间的关系来实现的。在连续时域中,使用差分方程来描述电机的动力学特性。同时,在离散时域中,使用计数器来模拟输入信号的脉冲发生器。这样,通过在连续时域和离散时域之间进行数据传递和计算,可以实现步进电机模型的仿真和分析。 通过Simulink的步进电机模型,我们可以对步进电机的运行特性进行详细的分析。例如,我们可以通过改变输入脉冲信号的频率和幅值来观察电机的转速和转动方向的变化。此外,我们还可以通过连接其他组件,如PID控制器,来实现更复杂的步进电机控制系统的仿真。 总之,Simulink的步进电机模型是一个强大的工具,可以帮助我们研究和分析步进电机的运行特性,以及设计和优化步进电机控制系统。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路漫求索_CUMT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值