|
本帖最后由 《源》 于 2017-9-25 16:12 编辑 PID对于控制的重要性自然是不言而喻,所以我们应该好好花一番功夫来学习它,今天我们先通过PID公式来了解PID。 一、模拟PID公式 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsBF9.tmp.png 其中: Rin(t) 是输入量,即期望值; Rou(t) 是传感器所测实际值; e(t) 即偏差值,e(t) = Rin(t) - Rou(t); u(t)是PID输出,作用于需要PID控制的对象; 从公式可以看出PID之所以叫PID是因为PID公式包括三个部分: 比例环节:file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsBFA.tmp.png 积分环节:file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC1A.tmp.png 微分环节:file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC1B.tmp.png 从公式中我们还可以看出,不管是比例环节、积分环节或是微分环节,都是对期望值与实际值的偏差e(t),进行计算,这也是PID的一个特点:根据偏差值对被控对象进行调节。 二、模拟PID离散化 为什么要把模拟PID进行离散化处理呢? 因为单片机是数字的,通过在系统时钟的控下对被测量进行采样来工作的,也就是只有采样时刻才能取到有效数据,所以PID得到的输入值只能是离散的,因此需要将模拟PID转换成离散PID。 离散化处理: (1)位置式PID 方法:积分环节用加和的形式替换,微分环节用斜率替换。 1)我们学定积分的时候,知道求定积分就是求定积分曲线与坐标轴围成的区域的面积,当时间轴无限细分时,所求面积就近似等于积分的值。而无论时间轴再怎么细分它都是离散的,因此可以用求和的方法替换积分环节: 设:采样间隔为T,求KT(K=0,1,2....n)时刻的积分公式就可转换为: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC1C.tmp.png 注:这里的采样间隔就相当于dt,那么积分区域细分后每一份的面积就为长乘以高:T*e(j)。 2)微分就是求导,即斜率,我们知道只要知道两点坐标,就能计算出斜率,KT时刻的微分可转换为: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC1D.tmp.png 根据上面两歩,我们即可推出离散PID公式: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC2E.tmp.png 因为:Kp、Ti、Td、T都为常数,我们用Ki替换求和项的系数,用Kd替换微分项系数,kt简写为k,则可得离散PID公式为: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC2F.tmp.png file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC30.tmp.png 参数整定就是找最合适的Kp,Ki,Kd,因为比例,积分,微分三者是相互影响的,所以,这三个参数可没有那么好确定。 注:上面这个离散PID属于位置式PID,还有一种离散PID,叫增量式PID,接下来进行推导。 (2)增量式PID 增量式PID是根据位置式PID推导出来的,求增量式PID方法:file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC31.tmp.png。 将位置式公式带入file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC32.tmp.png,并用k-1替换k,得: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC43.tmp.png 则由file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC44.tmp.png得增量式PID公式为: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC45.tmp.png 简化可得: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC46.tmp.png 通过观察位置式PID和增量式PID,我们发现位置式和增量式PID的区别在于: 1)位置式PID的积分项与过去的所有偏差值相关; 2)增量式PID只与e(k)、e(k-1)和e(k-2)相关。 三、PID有什么作用? 我们根据PID的系统框图来理解PID: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC47.tmp.jpg 完整的PID是由比例环节、积分环节以及微分环节构成。通过对期望值与实际值之差进行比例、积分、微分运算,最后输出一个控制量作为被控对象动作的依据。 1)比例环节P 比例环节P,就是把偏差值乘以一个系数,放大偏差的幅值,让被控量以更快的速度达到我们设定的期望值,只要产生偏差,比例调节就立即起作用,减少偏差,所以比例环节是最灵敏的,也是其主要作用的。 当系统稳定后,纯比例调节会存在一个稳态误差,就是与我们的期望值还存在一定的偏差,为什么会这样呢? 我们从下面的图中还可以看到,P调节过程中当P的参数太小,稳态误差会很大,当P的参数过大时,又会出现很大的超调量。稳态误差总会存在,它不能利用纯比例调节消除,只是根据P的参数的不同,稳态误差的大小也不同。图中红色的曲线是最合适的。 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC57.tmp.jpg 2)积分环节I 从上面我们知道,纯比例调节不能消除静态误差,那有什么办法可以解决呢? 解决办法就是增加积分环节。积分项的作用就是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。所以当系统存在稳态误差时,可以加入积分项进行调节。 比例加积分(PI)控制,可以使系统进入稳态后无稳态误差。 3)微分环节 微分作用对误差的变化趋势很敏感,能够在误差信号出现之前就起到修正误差的作用,有利于提高输出响应的快速性,减少被控量的超调,增加系统的稳定性。之所以微分作用有这样的作用,我们也可以从纯微分阶跃响应曲线上看得出来: file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC58.tmp.jpg 图中,x0是期望值,标1的粗线表示实际值,标2的粗线表示波动幅度,TD表示微分时间。 从图中我们可以看到当实际值突然变大时,波动幅度变大,也就是偏差值e(t)变大,达到KD,但马上便会回归原来的状态,即保持原来的误差衡定不变。 综上而述:比例环节用以消除当前误差,积分环节用以消除历史误差,微分环节用以消除误差变化,保证误差衡定不变。且P是系统中的核心,I为辅助,D在三个环节中是权重最小的。 四、什么时候用位置式PID,什么时候用增量式PID? 通过对比位置式PID公式和增量式PID公式,我们会发现,位置式PID公式带有积分项,而增量式PID公式没有带积分项,而什么时候用位置式PID,什么时候用增量式PID,是根据执行元件是否带积分部件来决定的,若带积分部件则使用增量式PID(增量式PID没有积分项),若不带积分部件,则使用位置式PID(位置式PID带有积分项)。 那什么是带有积分部件,什么是不带积分部件? 带有积分部件就是指执行元件有记忆性,能够记录此次的运行状态,比如步进电机,当给步进电机一个脉冲后,在下一个脉冲到来前,它都会保持在这个位置。而直流电机就是不带积分部件的执行元件,它没有记忆性,给一个脉冲,它的位置不会保持在一个固定位置,它会因为惯性继续转动。 举例:我们如果做平衡小车,电机既可以选直流减速电机,也可以选步进电机,如果我们选择的是直流减速电机,就使用位置式PID进行控制,如果选择步进电机,则使用增量式PID进行控制。 五、位置式PID、增量式PID算法的C语言实现 以位置式PID为例: 1)定义PID变量结构体 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC59.tmp.jpg 2)变量初始化 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC6A.tmp.jpg 3)编程实现PID算法 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC6B.tmp.jpg 4)对算法进行验证 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC6C.tmp.jpg 5)实验结果 file:///C:\Users\dell\AppData\Local\Temp\ksohtml\wpsC6D.tmp.jpg 今天就写这些了。 能力有限,如果有写的不合适的地方,欢迎大家多多指正。如果有兴趣,也可以一起交流,互相学习。 (微信号公众号:电子知识分享联盟) |
| 楼主,你的图片都没传上来 |
| 你的图片全部没传上来。 |
| 没图片 |
| 我是来看看的哦 |
| 感謝分享~~ |
| 图片都没有显示,楼主看一下 |
微信公众号
手机版