PID(中)-1

2019-07-10  本文已影响0人  小可_34e0

(该文章参考了很多资料文献,作者只记录下自己所需的内容,所以有些凌乱,详细的文件可详看源文档)

首先,PID控制器是一个线性控制器,即被控系统需要是线性的,符合要求的。但是现实中却不尽如此,因此第一步是要保证我们的被控系统在被PID控制的区域‘表现为’一个线性系统。

Kp为比例带,TI为积分时间,TD为微分时间

以上的式子针对的是连续系统,一般在单片机使用中需要使用离散的控制模型,

位置式PID算法:

位置式

增量式PID:计算出的是控制量的增加量:

增量式

u(t)----- 控制器的输出值。   

e(t)----- 控制器输入与设定值之间的误差。

Kp------- 比例系数。

Ti------- 积分时间常数。

Td------- 微分时间常数。

T-------- 调节周期。

详细学习资料:

file:///C:/Users/ASUS/Documents/Tencent%20Files/2313861391/FileRecv/PID控制算法的C语言实现.(绝对的好东西).pdf

------------------

1.从系统的零极点来理解PID的原理

系统的极点确定系统的稳定性情况,零点不影响系统稳定性,零点和极点共同决定系统的响应。系统中的零点可以用来与系统中的不稳定(或者不想要)的极点对消来设计出理想的控制器(数学上),工程中我们考虑的是让零点与我们不想要的极点尽可能的靠近,就能削弱这个不想要的极点对系统的影响。

上图是PID控制器开环部分(就是上面推导的数学模型)常见的零极点分布情况,有两个固定在(0,0)和(1,0)位置的极点,两个对称分布的零点(手调参数时很难出现两个零点都在实轴上的情况而且我们也不希望那样),这两个零点的位置是可调的,微分时间常数Td主管零点位置的左右移(注意是‘主管’,也就是说对虚轴的位置还是有影响的),常数越大越靠右(也就是说临界稳定极点的影响越弱,抗噪声性能越好但到达0误差的稳态也就越困难,因为这个临界稳定的极点是在闭环系统中让系统到达稳态0误差的关键但很影响稳定性),积分常数Ti越大零点越靠近实轴

2.被控系统的小范围线性模型(案例示范)

3.用极点配置PID实现对系统的控制(案例示范)

!!注意:使用Kp Ti Td参数的优势:随意调整Kp,可以提高系统性能而且对闭环稳定性几乎没有影响,甚至对开环系统的稳定性完全没有影响

!!开环控制:通过对应的温度直接由函数转换计算出调节温度的执行机构的开度指令(无反馈)

闭环控制:完全依靠调节器进行运算,然后将指令送到执行机构(有反馈)

(通过开闭环的阶跃响应的曲线图来分析系统是否处于稳定状态)

Ziegler-Nichols整定法则前提:控制对象中既不能包含积分器,又不包含主导共轭复数极点(飞行器无法使用该法则)

PID该怎么调,我们该注意什么:

①先要保证电机的输出是线性的,微型四轴等没有电调的最好先对电机的油门行程和供电电压进行矫正,保证对电机的控制输入和电机输出的力矩程线性关系。

②严格注意自己控制程序中的每一步是否有线程安全的问题,不要让四轴的一次控制运算中使用了不是同一时间的状态测量值

③用陀螺作为微分项能减少姿态解算误差带来的干扰,但要小心有可能会破坏了PID的控制模型导致控制效果变坏。(前面所说的关注开环和闭环的阶跃响应曲线)

④作者强烈建议你使用Kp Ti Td的PID参数形式。

⑤记住Kp Ti Td参数变化对系统产生的影响是什么样的。

⑥注意调参的时候你是怎么固定你的四轴的。(文档中有详细的调参方法)

⑦选择我上面提到的我的两种调参方法的一种整定参数。

⑧不要相信仅用PID能调出完美的四轴控制器,PID仅仅能让你的四轴飞起来而已,更不要相信增量式PID能在四轴的姿态控制中有所作为,牛逼的开源不开源四轴都不仅仅使用了PID控制器。

文档来源:https://blog.csdn.net/xxworld22/article/details/51486517

(内附matlab的仿真代码)

明天加油继续肝!!!!fighting!!!

上一篇下一篇

猜你喜欢

热点阅读