搜索
bottom↓
回复: 6

关于分段PID程序如何编写?

[复制链接]

出0入0汤圆

发表于 2010-5-3 17:29:31 | 显示全部楼层 |阅读模式
我最近在做智能小车,采用CCD摄像头作为传感器对白底黑线(黑色的一条线为引导线,地板为白色)的赛道进行寻迹。

目前系统中写了两套PID算法,

PID_Stright;用于直道环境和波动很小的小S弯道(小S弯可看成直道直接冲过去而不飞出跑道),这套PID,P值很小,目的是使其波动小。

PID_Bend;这套PID用于大弯(如普通直道入弯,U型弯,不可直冲的大S弯,发夹弯),这套PID的P值很大,目的是让其能提供舵机较大转角顺利过弯。

问题:

调试发现,参数调整到较好状态后,车体处于连续弯道或者连续直道时候,都是很稳定的(因为此时车体应用的只是其中一套PID参数),但是车体在直道变为弯道时候,PID切换瞬间,或者弯道变为直道,PID切换瞬间,舵机都出现无规则摆动,此时就会跑出跑道。

历遍大量技术报告,以上问题可以总结为:很多队伍舵机控制采用直道弯道不同PID参数的方法,这样会导致弯道与直道切换时会带来跳动,在直道入弯道,弯道恢复到直道,甚至在弯道中(弯道中也会存在短暂时间的直道),带来舵机的无规则摆动。
我现在的小车出现的正是以上的问题。


万能的坛啊,热心的朋友啊,不管是否是做智能车的,写过PID控制算法的朋友,恳请提高点意见,解决一下不同参数的两套PID切换瞬间如何消除扰动的方案,小弟不胜感激~!!!

P.S.
目前我采用的是PD控制算法,因为I参数较难调,所以先应用PD控制算法。

出0入0汤圆

 楼主| 发表于 2010-5-3 17:31:29 | 显示全部楼层
尝试过在两套切换瞬间对PID参数的累加项进行清零,让它从新执行的办法,未见成效。

已经为这个问题调试一周多了,

万能的坛啊,热心的朋友啊,不管是否是做智能车的,写过PID控制算法的朋友,恳请提高点意见,解决一下不同参数的两套PID切换瞬间如何消除扰动的方案,小弟不胜感激~!!!

出0入0汤圆

发表于 2010-5-3 17:41:44 | 显示全部楼层
如果瞬间切换的P,I,D值比较大一定会有很大的扰动
除非你的PID可以自动调节
就是P值,I值,D值自己调整

那个是模糊加智能控制了

我都不懂帮不了楼上了

出0入0汤圆

 楼主| 发表于 2010-5-3 23:07:56 | 显示全部楼层
float Increment;
// 计算本次误差
pp->Err0 = 0 - Turn ;//本次误差=设定期望值-当前采样值
Increment = Kp * (pp->Err0-pp->Err1);
//Increment = Kp * (pp->Err0);//Increment为输出增量=P参数*(本次误差-前一次误差)

// 加上微分量
Increment += Kd * (pp->Err2+pp->Err0-2*pp->Err1);//detaul输出增量=PI环节后输出的增量+D参数*(本次误差-上次误差*2+上上次误差)

// 得到当前输出
pp->Uk0 = pp->Uk1 + Increment; //本次舵机输出值=上次舵机输出值+本次计算后的输出增量

// 保存当前的数据与下次数据的传递
pp->Err2 = pp->Err1;//上次误差传递给上上次
pp->Err1 = pp->Err0;//本次误差传递给上次
pp->Uk1 = pp->Uk0;//本次舵机实际输出传递给上次

Steer=Steer_Center-pp->Uk0;//采用增量式PID,舵机输出=舵机中心-当前输出.(负反馈)

出0入0汤圆

 楼主| 发表于 2010-5-4 18:26:52 | 显示全部楼层
万能的坛啊,热心的朋友啊,不管是否是做智能车的,写过PID控制算法的朋友,恳请提高点意见,解决一下不同参数的两套PID切换瞬间如何消除扰动的方案,小弟不胜感激~!!!

出0入0汤圆

发表于 2010-5-7 11:55:57 | 显示全部楼层
你可以在转换处设置一个标志位,然后扫到标志位之后转换。当然转换的过程中可以稍加处理,如果实在不行,可以让车扫到弯道表之后停止,再启动换用弯道PID算法。再次扫到时停止,再启动换用直道PID算法。当然停止得控制好,要确保其停在线上。有什么问题可以交流下。我的QQ:862054272。

出0入0汤圆

发表于 2011-12-4 01:22:48 | 显示全部楼层
我也想问这个问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-10 17:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表