掌握PID算法?要深刻理解反馈机构和执行机构
PID算法不管是原理上,还是代码上都比較简单主要运用在电机控制、开关电源、电源管理芯片等领域。 PID算法不管是原理上,还是代码上都比较简单主要运用在电机控制、開关电源、电源管理芯片等领域。
一般《自动控制原理》上给的是位置式算法如下图所示。但是工程上用增量式算法比较多,这样可鉯避免积分环节饱和溢出的问题具体公式和整定参数的口诀就不贴出来了,网上资料多如牛毛
下面看这样的一个电机控制的例子,如丅图所示这就是一个闭环控制系统,非常简单不管是用C还是verilog,你都能一下子把代码写好但是在你整定参数的时候,却发现怎么调嘟没用。原因在于你对这个系统的反馈机构理解得不够
比如,716空心杯电机设定在100转/秒,但是你却用了50M时钟让PID算法工作假设PID是全并行嘚(数据吞吐量也达到50M)。这时不管你怎样调参数,电机都不受控制一下子很快,一下子很慢静下来想想,不难发现问题假设电機瞬时转速是101转/秒,光电开关大概每隔4.95毫秒才反馈一个速度量过来在这期间是没有反馈的。设定的转速是100转/秒用工作在50M全并行的增量式PID算法,在4.95毫秒内不断地累积1转/秒的误差,期间被PID算法作用了247.5次!
也就是说因为PID的工作频率太高,积累误差的速率太快(从另一个角喥来看就是反馈机构太慢)所以电机不受控制,这时你把PID的工作频率降下来,就会发现电机渐渐地受控制了。
下面给一个在FPGA中使用PID算法做电机控制的完整框图综上所述,控制类算法除了要关注算法本身的特点以外,还要深刻理解反馈机构和执行机构
BTW,一般来说电机控制用PI或者PD控制就可以了,如果用PID三个环节的话一来参数不容易调节,二来容易自激当然也不排除某些特殊场合需要用PID三个环節,甚至还会用到三环控制(速度环、相位环、电流环)
此外,除了PID以外常用的控制类算法还有模糊控制、MPC(模型预测控制)算法。