PID控制算法,单片机实现的办法里面感觉有2个比较为难的问题,希望高手提示一下

就是在保证系统响应时间的基础上怎么保证不震荡。比如:电机调速系统里面怎么保证系统在ms级达到目标转速,数控机床的主轴就能实现瞬间达到目标转速,我在调试的时候能保证瞬间达到目标值,但是这样也带来了在稳态附近剧烈的震荡,很难稳定下来,不知有没有高手指点小弟一二,非常感谢啦

第1个回答  2011-11-04
最短多长时间达到目标值,是由执行机构来决定的。但如果控制软件做不好就会增加控制时间。
在稳态附近剧烈的震荡是由于PID参数不合适或电路有问题造成的。
首先要排除电路上的问题,例如测量转速如果是用数字方法测试时要确保不能有漏数据,否则本来很稳定的转速单片机测出来是不稳定的,那样就会输出一个相反的不稳定的信号给电机,当然会振荡了。如果用模拟方法测得转速信号,要选择合适的滤波时间,确保送入单片机的模拟量是稳定的,而且单片机电源也要稳定。
在确保电路没有问题后就要开始调整PID参数。像你说的很快就能达到目标值,但会振荡,很可能是D值过高,也要考虑I值过高,最主要是确保程序没有计算错误,否则你再调也没有用。最后,你要有些耐心,这不是个很快就能搞定的活。
这同温度控制PID算法很类似,你可以参考温控PID的算法。
这么棒的砖~家,如此专业的回答,你要是不给加够100分就实在不够意思~~追问

电机控制我只用了PI控制,电路是没有问题的,采样也准确,还有就是我用的是多层PI,最底层的是有非常好的响应的是ms级,但是系统总体会有1S左右的间歇性震荡。如果P值和I值不够大的话就很难有ms的响应速度,但是大了就波动,像你说的温度的话好办多了,最起码是S级的响应,我需要的是ms级响应。不知是否有这方面的经验供参考,如果有好的建议帮助我做好这个控制别说100分了500分我都给。

追答

只用PI:我以前试过效果不好,就是会振荡。多层PI:没试过,给不了更多建议

相似回答