LADRC的学习——用simulink搭建仿真模型
用simulink搭建仿真模型
前面两篇博客主要讲了ADRC的相关概念和知识,并且尝试着搭建模型和仿真,之后学习了PID的相关知识,了解了Kp,Ki,Kd三个参数的意义。 接下来,主要根据高志强教授的论文,按照其方法来搭建模型。 参考文献: [1] Zhiqiang Gao. Scaling and bandwidth-parameterization based controller tuning[P]. American Control Conference, 2003. Proceedings of the 2003,2003.
一、LADRC的介绍
LDRC - Linear Active Disturbances Rejection Controller,按照翻译,它就是一个线性的自抗扰控制器,这是ADRC的简化,但是简化不一定功能就很差,而且比PID有着更好的控制效果。原ADRC的结构框如图所示: 其中LADRC在这个基础上减少了安排过渡过程,非线性反馈改为PD控制,保留ESO,从而达到进行精确控制的效果。
控制对象的表达形式需要化为这样的形式: 则f为: 在这里,y和u是输入信号和输出信号,w为外部扰动,a和b是微分方程的y‘和y的系数,我们可以通过控制对象的传递函数来化解为微分方程,从而得到被控对象的标准形式。f 可以被看做一般性扰动,它可以代表未知的内部动态,最后期望是通过ESO观测出来进行补偿。 因为 f 作为扰动,我们最基本的想法是获得 f_ ,用它在控制律里面,从而得到 这样系统就变为了带增益的双积分器的问题,从而有 则扰动为 f - f_.
然后系统些为状态方程的形式: x3 = f 作为一个增加的扰动, h = f‘(一阶导) 作为未知扰动,则 f 的估计就可以使用状态观测器,如下: 则状态观测器就可以改写为扩张状态观测器(ESO),其结构如下: L 为观测器增益向量,其可以用一些现有的方法来得到,比如极点配置的方法。则控制器可以写为: 然后忽略z3,这个系统就可以变为带有增益的双积分器,其中 z3 = f ;这样其就可以用PD控制器来控制: 其中 r 为设定值。注意 -Kdz2 代替了 -Kd(r’ - z2),这样r微分以后为0,这样就有:
因此下面通过一个具体例子,来搭建simulink。
二、LADRC的模型的搭建
现在举一个例子: 其中被控对象的标准微分方程为: 其中Td为转矩,为一常量,可以写为: LADRC扩张状态观测器的标准型为: 这里通过 z1 估计 y ,z2 估计 y’ , z3 估计 f ,f 为扰动,如上面说的那样化简。然后PD控制器标准型为: 其中 omega_c 为可调参数。 通过ESO,PD控制器,被控对象,因此搭建模型如下。
a.LESO模型的搭建 把它封装为一个子系统,为LESO,如下所示:
b.加上PD控制器成为LADRC 接下来得到LADRC, 接下里加入被控对象得到一个整体的系统,通过调节参数来检验系统的情况。
c.整体框图 这是整体框图,这是加上被控对象以后得到的仿真图。接下来通过调节参数,用不同的信号来看控制效果。
d.控制效果的检验 其中有一些全局参数,用这样的方式来赋值,如图所示: 这个文件得和仿真图片在同一个文件目录下,先调节参数,再运行这个文件,再运行仿真图。
1.方波,omega_c = 5;
2.方波,omega_c = 20 3.方波,omega_c = 40; 4.正弦波,omega_c = 50; 5.锯齿波,omega_c = 50;
可以看出,LADRC在这个被控对象的情况下,与输入基本重合,控制效果特别好,而且只用调节一个omega_c 参数,一般在一定范围内往大了调效果会比较好。
接下来准备看清华大学 陈星 的硕士论文,自抗扰控制器参数整定方法及其在热工过程中的应用,通过换被控对象来看控制效果,并且深入理解ADRC,为以后用程序变成得到通过的控制算法做准备。