在上一篇博文中 ,我们介绍了反步法的基本原理及其应用设计。它的提出被认为是非线性控制研究的重大突破。然而反步法存在一种固有缺陷,即在每一步的反步设计中都涉及对之前反步设计的虚拟控制率进行求导。随着系统阶数的增加,这种计算将发生爆炸性膨胀。为了解决这个问题,Swarrop在2000年提出了一种动态面控制在(Dynamic surface control),它通过在每一步的设计中引入一个一阶低通滤波器,从而避免了对虚拟控制率的反复求导。
这里我们以单输入单输出系统为例,对动态面控制的设计步骤进行阐述,我们考虑如下严格反馈形式的系统
为系统的状态变量和控制输入变量。系统的非线性部分只与前i个状态变量相关
动态面控制的基本设计方法与反步法类似,也是从第一个系统开始,逐级往下设计控制,最终实现控制目标。在第i步中,将子系统
作为虚拟控制,通过适当的虚拟控制
,因此需要引入误差变量,我们依据Lyapunov稳定性设计,使得与虚拟控制之间的误差收敛。在反步法中,通过虚拟控制,我们定义了n个误差变量
其中,在每一步构造Lyapunov函数使得系统每一个状态变量误差满足渐进稳定。
Step 1:对求导可得
我们定义虚拟控制量
式中,是反馈增益。
输入到我们设计的一阶低通滤波器中
其中,T2为滤波器得到时间常数。我们把上式转换到时域有
这时我们定义下面的误差
的误差也要修改为
则上式中的误差倒数可以表示为
我们会构造如下Lyapunov函数
则
,则上式满足渐进稳定。但是一般情况下 ,因此,我们需要在引入虚拟控制量使其误差使其满足渐进稳定。
Step 2:对求导可得
,这里面的定义与上面滤波器内容的定义类似,在此不再赘述。
我们定义虚拟控制量
是反馈增益,则上式中的误差倒数可以表示为
我们会构造如下Lyapunov函数
,则上式满足渐进稳定。但是一般情况下 ,因此,我们需要在引入虚拟控制量使其误差使其满足渐进稳定。后面的设计以此类推。
Step n:对求导可得
我们设计控制输入
是反馈增益,则上式中的误差倒数可以表示为
我们会构造如下Lyapunov函数
足够小时,误差状态量是指数渐进稳定的。另外通过上面设计方法可知,在滤波器设计的时候不能选择过大,否则容易引起闭环系统的振荡甚至发散。
为了阐述上面的设计思路,我们以一个二阶非线性系统为例子进行设计说明,并在Matlab/Simulink环境下进行验证。
均为已知量,表示控制输入,表示系统的输出。
,则上面系统可以转化为
为期望的输出。于是系统跟踪误差定义为
Step 1:对求导可得
我们定义虚拟控制量
是反馈增益,则上式中的误差倒数可以表示为
我们会构造如下Lyapunov函数
则
,则上式满足渐进稳定。但是一般情况下 ,因此,我们需要在引入虚拟控制量使其误差使其满足渐进稳定。
我们定义如下滤波器:
同时我们定义下面的误差
Step 2:对求导可得
我们设计控制输入
是反馈增益,则上式中的误差倒数可以表示为
我们会构造如下Lyapunov函数
则
,则选择适当的、以及T后可以得到如下的仿真结果
同时我们也给出了滤波器误差的结果如下,可以发现它的值在小范围波动
接着我们在t=5s的时候进行参考值的突变,仿真结果如下:
同时我们也给出了滤波器误差的结果如下,可以发现它的值在小范围波动,但是在参考值切换的时候会有较大的突变,这个突变在实际过程中是否有很大的影响,仍然需要考虑,本文只做了仿真层面的验证,在实验中的效果还需要各位自行验证。
在本篇博文这种我们介绍了动态面控制的基本原理及其应用设计,它改善了反步控制中微分计算“爆炸膨胀”的问题。然而上述方法只能针对严格反馈非线性系统,对于非仿射的结构如何应用动态面控制?则需要结合其他的控制方法,在此不做深入讨论。