智能车制作

标题: PID调节经验总结 [打印本页]

作者: superyongzhe    时间: 2008-4-21 02:44
标题: PID调节经验总结
<>PID控制器参数选择的方法很多,例如试凑法、临界比例度法、扩充临界比例度法等。但是,对于PID控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。依据经验,一般PID参数确定的步骤如下[42]:<BR>(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定比例系数Kp<BR>确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为<BR>纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。<BR>(2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定积分时间常数Ti<BR>比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。<BR>(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定微分时间常数Td<BR>微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。<BR>(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统空载、带载联调<BR>对PID参数进行微调,直到满足性能要求。<BR>本文来自: DSP交流网(<A target=_blank href="http://www.hellodsp.com">www.hellodsp.com</A>) 详细出处参考:<A target=_blank href="http://www.hellodsp.com/bbs/viewthread.php?tid=688">http://www.hellodsp.com/bbs/viewthread.php?tid=688</A></P><P>&nbsp;</P><P>&nbsp;</P><P>PID代码</P><P>//定义变量<BR>float Kp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //PI调节的比例常数<BR>float Ti;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //PI调节的积分常数<BR>float T;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //采样周期<BR>float Ki;<BR>float ek;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //偏差e[k]<BR>float ek1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //偏差e[k-1]<BR>float ek2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //偏差e[k-2]<BR>float uk;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //u[k]<BR>signed int uk1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //对u[k]四舍五入取整<BR>signed int adjust;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //调节器输出调整量</P><P>//变量初始化<BR>&nbsp;&nbsp;&nbsp; Kp=4;<BR>&nbsp;&nbsp;&nbsp; Ti=0。005;<BR>&nbsp;&nbsp;&nbsp; T=0.001;<BR>// Ki=KpT/Ti=0.8,微分系数Kd=KpTd/T=0.8,Td=0.0002,根据实验调得的结果确定这些参数<BR>&nbsp;&nbsp;&nbsp; ek=0;<BR>&nbsp;&nbsp;&nbsp; ek1=0;<BR>&nbsp;&nbsp;&nbsp; ek2=0;<BR>&nbsp;&nbsp;&nbsp; uk=0;<BR>&nbsp;&nbsp;&nbsp; uk1=0;<BR>&nbsp;&nbsp;&nbsp; adjust=0;</P><P>int piadjust(float ek)&nbsp; //PI调节算法<BR>{<BR>&nbsp;&nbsp;&nbsp; if( gabs(ek)&lt;0.1 )<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adjust=0;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; else <BR>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uk=Kp*(ek-ek1)+Ki*ek;&nbsp; //计算控制增量<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ek1=ek; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uk1=(signed int)uk;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(uk&gt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(uk-uk1&gt;=0.5)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uk1=uk1+1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(uk&lt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(uk1-uk&gt;=0.5)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uk1=uk1-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; adjust=uk1;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; return adjust;<BR>}</P><P>下面是在AD中断程序中调用的代码。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 。。。。。。。。。。。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else //退出软启动后,PID调节,20ms调节一次<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);//误差较小PID调节稳住<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(EvaRegs.CMPR3&gt;=890)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EvaRegs.CMPR3=890; //限制PWM占空比<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P><P>本文来自: DSP交流网(<A target=_blank href="http://www.hellodsp.com">www.hellodsp.com</A>) 详细出处参考:<A target=_blank href="http://www.hellodsp.com/bbs/viewthread.php?tid=688">http://www.hellodsp.com/bbs/viewthread.php?tid=688</A></P>
作者: demon    时间: 2008-4-21 07:43
标题: Re:PID调节经验总结
好帖&nbsp; 顶
作者: lzyhx    时间: 2008-4-24 02:37
标题: Re:PID调节经验总结
怎么能判断出振荡呢??也不知道电机的模型????
作者: superyongzhe    时间: 2008-4-27 01:41
标题: Re:PID调节经验总结
车在跑的时候如果左右摆动不稳定,应该就是不稳定了。
作者: 天狼行空    时间: 2008-5-3 06:52
标题: Re:PID调节经验总结
<>不错,顶下</P>
作者: LCL_data    时间: 2008-5-7 04:49
标题: Re:PID调节经验总结
好贴,顶!!<br>
作者: whut_wj    时间: 2008-5-18 02:55
标题: Re:PID调节经验总结
不错啊
作者: tankthree    时间: 2008-6-13 23:15
标题: Re:PID调节经验总结
顶!
作者: luohua5280    时间: 2008-7-15 00:06
标题: Re:PID调节经验总结
<>不错啊 !!</P>
作者: 昊天    时间: 2008-7-15 06:27
标题: Re:PID调节经验总结
好帖 !!!顶
作者: glcc    时间: 2008-8-1 02:34
标题: Re:PID调节经验总结
好帖!不得不顶
作者: angelttlove    时间: 2009-2-10 12:40
ddddddddddddd啊
作者: longzaixiang    时间: 2009-2-23 21:53
ding
作者: lynd323    时间: 2009-2-24 11:15
不错,顶下,最近我刚好需要这个东东了,谢谢楼主了!!
作者: ysu8b204    时间: 2009-3-15 16:28

作者: 学做智能车    时间: 2009-3-15 16:33
很不错的帖子,顶!
作者: aijiujiu    时间: 2009-4-4 15:21
正要找的东西,谢谢楼主。。
作者: chenrunshe_007    时间: 2009-4-6 23:29
太强了,自动化人才啊
作者: Essien    时间: 2009-4-12 12:44

作者: 恋心    时间: 2009-4-24 11:02
不错,值得参考。变量定义为结构体可能看着更紧凑一点。
作者: tcwz000    时间: 2009-4-25 12:19
我觉得d控制也很重要吧,为什么楼主偏偏用的是积分,特别是高速跑的时候,需要调节更加灵敏吧?
作者: xiaoyao8745    时间: 2009-4-27 18:45
好帖 !!!顶
作者: 飞出天窗    时间: 2009-5-3 23:17
非常谢谢!
作者: Julia    时间: 2009-5-9 21:53
顶下
作者: billowen    时间: 2009-5-11 22:49
1# superyongzhe


直道和弯道系数是否要分开
作者: emorain    时间: 2009-5-12 00:16
很有参考价值!
收藏了  谢LZ了!
作者: lijiangyu    时间: 2009-5-21 20:06
支持
作者: master.D    时间: 2009-5-23 08:43

作者: zrs62123    时间: 2009-7-9 13:05
不错啊
作者: suifengxinfei    时间: 2009-7-9 14:33
hao
作者: wangguoxiao    时间: 2009-11-14 18:07
顶下~~~~
作者: lizhuoqi    时间: 2009-11-14 19:38
绝对要顶!
作者: lhl3108003039    时间: 2009-11-29 08:53
谢谢 楼主
作者: zhixiaolei    时间: 2009-12-11 23:39
谢谢啦
作者: zwhold    时间: 2009-12-12 15:54
支持了
作者: 简宁11    时间: 2010-1-31 20:19
DDDDDDD
作者: HDU_SPEEDER    时间: 2010-2-3 11:47
嗯,谢谢分享,再请教一下,一般舵机也用PID来控制的吗?
作者: 阿贵    时间: 2010-2-23 13:57
好东东!
作者: nishuihan1988    时间: 2010-4-3 22:33
回复 1# superyongzhe


    哈哈  谢谢
作者: justing88    时间: 2010-4-9 19:18

作者: cjj1987    时间: 2010-4-10 16:58
好好学习学习
作者: zncc    时间: 2010-4-12 19:24

作者: zncc    时间: 2010-4-12 19:24

作者: kexinmcu    时间: 2010-4-15 21:03

作者: daisyliz    时间: 2010-4-16 01:15
不错
作者: shuxinxiaozi    时间: 2010-4-18 16:59
ding!
作者: 灵水    时间: 2010-4-30 00:57

作者: 没翅膀的飞鱼    时间: 2010-4-30 07:31
好好好
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:31
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:31
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:31
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:35
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:35
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:35
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:35
不错啊
作者: 没翅膀的飞鱼    时间: 2010-4-30 07:36
不错啊
作者: ly3236579    时间: 2010-4-30 11:31

作者: zza197110    时间: 2010-5-2 20:50
好贴,顶顶
作者: kakasky    时间: 2010-11-27 01:12
很不错
作者: tutufanfan    时间: 2010-11-27 11:15

作者: 小布的梦    时间: 2014-1-22 01:06
hao

作者: 擦肩的阳光    时间: 2014-2-17 11:03
可惜乱码。。。
作者: YFIGHTING    时间: 2016-3-25 19:42
不错,楼组好人

作者: 孤牧执笙    时间: 2018-1-22 11:43
dd,解决了参数确定的大问题




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2