最近写论文,要写死人了有木有!!正好论文里用到几个波形图,心血来潮做了几个动态图,说一说PID到底是咋回事,希望能够帮到大家~~ PID是一种经典的控制算法,应用于线性系统。飞行器是非线性系统,比如其中包含了大量的反三角函数运算,但是在姿态角偏移较小的情况下可以近似的看作是线性的,如果偏移大的话控制就不需要太精细,因此PID应用在这种系统上也算合理。 现在很少直接用角度做PID控制了,但是PID整定的方法还是很相似的。 一般PID程序中包含这样几个主要参数: 1.p参数:即比例项参数,将飞行器当前姿态与目标姿态的差值(误差)与p参数相乘得到P项输出,P项在控制中贡献了最大的力量。 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/PID%E5%8E%9F%E7%90%86-P.png) 2.i参数:即积分项参数,我没有将过去所有的误差值进行累加,因为我发现将所有值累加会造成系统响应过慢,目前使用的是将过去几个时刻误差的值求和与i参数相乘得到I项输出。I项的作用是消除稳态误差。 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/PID%E5%8E%9F%E7%90%86-I.png) 3.d参数:即微分项参数,将陀螺仪的输出进行滤波后与d参数相乘得到D项输出,D项的作用是减小超调量。 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/PID%E5%8E%9F%E7%90%86-D.png) 4.i_max参数:即积分项的限幅,积分项不能过大,否则会造成系统的不稳定 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/PID%E5%8E%9F%E7%90%86-Imax.png)
下面是春节期间做的仿真,用动态图简单介绍如何整定PID参数,请多指正,波形其实不是对应的,反正是那个意思了: 1.首先调整P参数,I、D置零: A.P过小,没有出现震荡 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/F22-P%E8%BF%87%E5%B0%8F-D%E6%B2%A1%E5%8A%A0.gif)
对应波形:
B.P过大,震荡过大 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/F22-P%E8%BF%87%E5%A4%A7-D%E6%B2%A1%E5%8A%A0%20%281%29.gif)
对应波形:
C.P恰好出现略微震荡 对应波形:
2.P固定不变,调整D参数 A.D没加或过小,对于消除震荡作用不大 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/F22-P%E6%AD%A3%E5%B8%B8D%E6%B2%A1%E5%8A%A0%20%281%29.gif)
B.D过大,无法迅速达到目标值 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/F22-P%E6%AD%A3%E5%B8%B8-D%E8%BF%87%E5%A4%A7.gif)
C.D为合适值 ![](http://school.2embed.com/pluginfile.php/1003/mod_forum/post/18455/F22-P%E6%AD%A3%E5%B8%B8-D%E6%AD%A3%E5%B8%B8.gif)
对应波形:
|