Quanser-Aero学习笔记:PID控制器的设计+ 查看更多
在我的上一篇笔记中,我借助Quanser提供的本科教学平台,进行了电机/倒立摆PD控制实验。通过Quanser提供的实验程序,我回顾了自动控制原理的相关知识。
那么在学习的基础上,我们是否可以通过设计自己的控制器来做一次综合性的训练,使我们所学的知识能够与实际应用相结合呢?接下来我就向大家展示,我利用所学知识建立一个PID控制器控制便携式二自由度直升机Aero设备的过程,希望能对大家有所帮助。
现在所建立的控制器是完全基于理论,虽然简单,但我还是不太放心,所以我决定利用Quanser QLab软件进行仿真。QLab是Quanser基于数字孪生的理念开发的3D仿真实验平台,提供了Aero的3D仿真模型并可以和Matlab/Simulink连接,可以在不使用实物的基础上进行实验,并且能够最大限度还原实物实验效果。
我在QLab上测试了我的程序,实验效果如下
我对设备和程序进行了分析,终于得出了一个结论,QLab中的3D模型是对实物的一个还原,它和实物一样也是利用编码器原理来采集位置信号,而编码器信号是脉冲计数,由许多小的阶跃组成,这些数据反馈后再进行微分、积分操作,会有很大的偏差,一般来说是需要进行滤波,去除高频成分。我在设计时忽略了这一点,而利用QLab进行的测试帮我发现了这一问题。
接着,我为程序添加了低通滤波器,果然实验效果有了明显的改善。
在实物实验中,我进一步认识了PID控制器中比例、积分、微分增益的左右,我先将期望位置和所有增益设置为0,然后分别给定每个增益的值,观察输入量,可以发现当比例增益为10,微分、积分为0时,手动改变俯仰角,可以看到输入量立刻增大,并停留在某个值处,松开手后设备上下晃动,输入值也在不断变化;而当仅有微分增益为10,其余为0时,当俯仰角改变时,才会有输入量,当俯仰角不变时,输入量会为0;当仅有积分增益为10时,手动改变俯仰角并停在某处,输入量会逐渐变大,而不是像比例增益那样停在某处。