thekingofmotor 发表于 2010-4-12 06:11

关于电机工业控制PID结构及参数选择算法(大家谈谈自己的看法)

在电机控制中,无论是DTC控制方法还是FOC控制方法,最后都要基于PID控制器来实现。想与大家具体的讨论下对PID控制器的自己的理解和感悟^_^

PID结构图如下:(simulink)


可以清晰的看到三个部分:
Kp(比例部分):可以减少系统的稳态误差但不能消除它彻底,可以减少系统飞上升时间。
Ki(积分环节):可以彻底消除稳态误差但是会使系统的瞬态响应变的更不稳定。
Kd(微分环节):提高系统的稳定性,减少超调量,和提高瞬态响应的性能。

一般设计一个PID控制在一个系统上,可以得到理想的结果通过以下步骤:

1.通过对系统开环的响应分析,决定什么性能是需要提高的。
2.增加一个比例环节先提高系统上升到稳态的时间。
3.增加一个积分环节彻底消除稳态误差。
4.增加一个微分环节彻底消除超调量。
5 综合调整PID参数得到一个理想的输出结果。

并不是每个系统都需要PID我觉得,有时候PI能达到效果就好,对于控制器的设计,越简单越好。

当然也可以通过分析PID控制器的性能来判断,如阻尼比,自然频率等等。

其实,真是调节的时候,按照上面基本的方法有时候并不能得到好的输出,必须通过很多算法来得到,有很多种算法现在,每个都声称自己最好,每个系统都会根据自己的参数性能有个特定的算法,个人觉得没有什么使用面很广的PID的算法。基本大众的如Self Tuning Ziegler Nichols 。在这里上传一篇关于这方面的文章和自己写的程序,供大家参考


文件格式不支持,截个图吧:


a1,a2,b1,b2是系统传递函数的参数,最后可以算出Kp,ki,Kd。非常基本的一个。


电机控制中,有个比较实际的问题如:控制器的driving signal有时候受限制于实际情况,所以,这时候也会印象到系统的性能。

在simulink模型中后加个saturation模块模拟受限的实际情况,系统系统如图:



比较平缓无明显棱角上升时间较慢的是受限于实际情况后的系统性能,可以看出某些系统的特质变化挺明显的。


最后一个就是PID控制器中的积分环节,当你突然加入一个非常大的负载到电机中时,系统的PID控制器会工作,这是积分环节不断积分调节超出最大值会溢出,这种情况称为Integtal windup.所以。通常会加一个限制在控制器后(Simulink中用saturation来表示),第3秒时施加个vaule为6的step来表示突然加的负载。



红色为不加饱和器的系统性能,可以看到,稳态时有微微的上下波动
蓝色为加饱和器的系统性能,稳态时波动明显减小。

这是PID simulink



说了这么多,只是自己的小小看法,最后送上几篇关于PID,电机的文章,供大家分享





欢迎大家讨论共同进步

renzando 发表于 2010-4-12 14:07

不错的原创文章!值得大家学习和讨论

roccy 发表于 2010-4-12 22:47

PID控制器的设计基于模型,但其参数的调试又不能完全依靠模型参数,因此在实际应用中存在参数整定的困难,大家实践中有什么妙招巧策,不妨共同讨论一番~

thekingofmotor 发表于 2010-4-14 07:56

额,个人感觉实践中和理论上差距还是挺大的,感觉P部分在实践中挺重要的,做个一次SSI项目,里面的闭环控制仅仅用到的是控制增益Proportion。{:1_432:}

archdevil 发表于 2010-4-14 16:00

PID调试,一般都是先只加一个P参数,调节系统响应速度,然后再增加I。注意PI累加后的饱和限幅处理。一般单独加P参数后,系统稳定后值应达到最终值的90%以上P才算合适。I太大稳态时系统会有细小的波动,太小时稳定时间比较长。

maugham0902 发表于 2010-4-20 11:12

额,个人感觉实践中和理论上差距还是挺大的,感觉P部分在实践中挺重要的,做个一次SSI项目,里面的闭环控制 ...
thekingofmotor 发表于 2010-4-14 07:56 https://bbs.simol.cn/images/common/back.gif


    不是吧,对于速度环,只有比例的时候,无负载可以做到无静差,有负载之后,变成有静差的系统。你的这个项目是什么??怎么可能只有比例??

dare_li 发表于 2010-4-20 19:07

还是能知道系统模型为好,调节起来比较方便

thekingofmotor 发表于 2010-4-21 23:38

回复 7# maugham0902


    一个直流电机的SSI系统,负载是用磁力 模拟的,比较简单

tianshilande 发表于 2010-4-24 20:07

对于直流机用模型还行,这个书本上有讲,
但模型复杂后,还得靠试凑吧

gengxiao 发表于 2010-4-25 21:42

pid里面参数的整定确实很麻烦,我最近也在想方法呢,呵呵
不过貌似很多时候模拟出来的值在实际应用中也有差别

autotzc 发表于 2010-4-26 19:23

PID的参数好象没什么特别的方法去设定,只能依据经验和无穷多次的试验慢慢调,有的时候在实际应用中并不是每个都要用到,曾经用过一个,直接定P,另外两个都不用,效果反而最好,理论没去深究。

fresh101 发表于 2010-4-29 08:04

本帖最后由 fresh101 于 2010-4-29 08:09 编辑

说的很清楚,而且仿真可行,是个很好的帖子。
实际当中,特别是数字PID当中,PI是很常见的,目前大部分都是它。
而且数字PI的实现和简单,代码较少,并集成了防饱和积分部分。

roccy 发表于 2010-4-29 19:43

并不是每个系统都需要PID我觉得,有时候PI能达到效果就好,对于控制器的设计,越简单越好。
thekingofmotor 发表于 2010-4-12 06:11 https://bbs.simol.cn/images/common/back.gif

至于采用何种控制规律的调节器,大体上还是要根据控制对象来决定的
对于双积分及更高型别的控制对象,如果只用PI的话,由于PI中包含一次积分,导致最终系统存在90度或更高的的相位滞后,从而无法达到稳定的控制结果~~

thekingofmotor 发表于 2010-4-30 07:10

各位所言极是{:aa13

龍が如く 发表于 2010-5-1 10:21

呵呵 很好的帖子 对pid有大体了解 看完这个帖子对它有了进一步的认识

leolilee 发表于 2010-5-4 09:46

不知PID方面可否采用硬件电路来实现呢!

roccy 发表于 2010-5-4 19:35

本帖最后由 roccy 于 2010-5-4 19:36 编辑

回复 21# roccy

模拟电路控制时代,PID都是用硬件来实现的~~~

ooii 发表于 2010-5-9 20:10

我觉着对于一般电机控制, PI就够了,加上一个抗饱和积分可以减少波动,再加上一个误差阈值的识别就更好了, 毕竟电机响应速度很快啊

wuduojian 发表于 2010-5-10 09:29

是英文文档,看起来似乎要费尽啊

ccjj 发表于 2010-5-11 00:11

曾经做过一个项目, 模拟电路搭建的PID调节器,用电位器调参,采用低频方波驱动,先把Kp, Ki, Kd全调至最小,慢慢增大Kp, 略起振后,再试着一点点增加Ki、Kd, 调得很累,因为各个环节的R、C参数并不见得合理,有时还要改硬件。后换成数字控制,试过DSP和FPGA,因每次调参都需要下载程序,无法在线调参,也很辛苦。最近在尝试MATLAB+Dspace快速原型仿真,调参倒真是方便。

感觉PID算法还是有很多局限性,不能普适使用,当然也可能是我用得不够精到,PID的变形种类太多了。

个人认为除非是很简单的应用,控制指标要求不高或者工程经验非常丰富的话,可以直接用PID来调,否则最好还是先对控制对象建个模,即使不是很准,对调参也能起到指导作用,要不就太盲目了。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 关于电机工业控制PID结构及参数选择算法(大家谈谈自己的看法)