上一篇
介绍了建立系统模型的三种方法,这一篇介绍如何调节pid,并用MATLAB仿真调节pid的目标就是使得从模型中得到的增益能够使物理系统正常工作
调节pid的理论分析
pid的一般形式如下图
经过移动化简可以得到
现在我们的问题就简化成了在哪里放置这两个极点,和设置多大的增益?
在给微分器加上滤波器,相当于系统多了一个极点,滤波器的相关内容之后介绍
MATLAB仿真
仿真使用的模型还是我们上一篇使用的电机模型
随便取一个之前的模型进行pid控制仿真
先初始化电机模型的变量,再加上pid的必要模型,开始仿真
随便调了几下pid参数,得到下图的效果
调节零点位置和增益的方法
新名词介绍
根轨迹图(root locus)是控制理论及稳定性理论中,绘图分析的方式,可以看到在特定参数(一般会是反馈系统的环路增益)变化时,系统极点的变化。
说实话,这东西以前我听都没听过,在经过线上线下查找资料才算知道了这么个东西。
简单的说,这个图可以用来判断非时变系统系统的稳定性,以及计算系统增益并实现它的控制器
手画这个图是有许多规则的,不过我没有去了解,毕竟我时间也不多,只知道可以用MATLAB画
进入主题
有两种方法用于调节:Pole placement 和 Loop shaping
Pole placement
一个简单的开环系统,他的根轨迹图是这样的
在加入PID后,会引入新的零点和极点,就会变成这样
这种调节方法就是通过调节增益,从而得到希望的系统性能
Loop shaping
这个方法和上面的类似,换了种形式的图
据论文介绍,这两种方法的性能都是差不多的,loop-shaping多了两个优点,(i)不需要在FRF上拟合LTI模型来设计控制器,并且(ii)随着控制器系数的平滑变化,增益调度的实现更加缓慢。
对于我来说,暂时只管怎么用,好不好用,就没有深入学习了
MATLAB仿真
下图是我用之前的模型随意调的pid的阶跃响应,可以看出是不符合我们的期望的,下面我们就使用MATLAB进行pid调节
我们首先需要做的是打开analysis->control design->control system designer,然后按照下面三张图所示,添加需要调节的pid模块,添加需要的信号
在control system designer的菜单栏中点击tuning methods,在下拉框中选择root locus editor,就可以得到下图
在new plot下选择new step,在弹出窗口按下图配置
最终效果如下
手动pid调节
手动调节说实话我是不太懂,我这里只是随便乱调一下表示可以手动修整而已
这里使用的是pole placement的方法,loop shaping也是类似的
自整定pid
这里主要还是介绍自整定pid,毕竟方便,不需要懂太多相关知识
在tuning methods下选择pid tuning
可以在弹出窗口中选择pid控制器的类型、性能等等,最后附上调节效果图
最后弄完后要在菜单栏选择update blocks
结尾
调节好的模型已上传github的项目库
缺失的链接在留言中
参考资料
Design Compensator Using Automated PID Tuning and Graphical Bode Design
Designing PID Controllers with PID Tuner