




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京理工大学 智能车模糊PID控制方法 王新宇, 温小锋, 胡伟光电智能车模糊PID控制方法王新宇, 温小锋, 胡伟(北京理工大学)由于光电组智能车传感器数量少,造成了识别路径时得到的结果分辨率很低,远远低于回控量的分辨率(舵机分辨率在几百分之一);故在使用传统PID进行控制时会出现一些问题。又因为智能车跑道情况复杂,使用传统PID很难达到需要的智能化程度。主要问题如下:1 由于传感器分辨率低,采样速率快,舵机PID控制中的D项很难得到真实可信的值,使得车在偏离跑道后容易在跑道两边画龙。2 使用传统的PID控制时很难对车速进行合理的控制,使得车速和舵机转角经常不匹配。如在弯道中难以找到合适的出
2、弯加速点,只能靠经验,不合理。3 Kp,Kd两项的调节很难适应整条跑道。有可能造成直线效果较好,弯道转向不足,或弯道效果好,直线摆动过大的问题。使用模糊PID控制和一些辅助算法后以上三点问题被有效的解决了。一、 传感器数据处理在路径识别过程中,我们希望得到黑线相对于传感器的位置和黑线相对与传感器的运动速度两个量,下面说明如何处理得到这两个量。由于光电管数量少,造成传感器返回值离散度过大,不适合进行回控。故应加快采样速率(2KHz),进行过采样,然后进行一阶迭代滤波:poslong = (poslong * 40 + posold * 1000)/41;其中poslong为滤波后的值,poslo
3、ng为滤波前的值。效果参看下图(横轴为时间轴,单位:ms)北京理工大学 智能车模糊PID控制方法 王新宇, 温小锋, 胡伟得到滤波后的poslong后我们就可以计算黑线扫过传感器的速度了,但通过试验我们发现使用poslong计算得到的黑线扫过速度依然波动过大,故再对其进行一次滤波得到err1,两次滤波得到err2,分别用于下文中对舵机和车速的模糊控制。poslong1 = poslong;poslong = (poslong * 40 + posold * 1000) / 41; err1 = (err1*150 + 100 *(poslong - poslong1) ) / 151; err
4、2 = (err2*100 + err1) / 101;通过模拟黑线在传感器上的几种运动方式可以得到err1和err2的范围。黑线扫过传感器速度最慢时,只扫过一个光电管的情况:黑线以较快速度扫过所有光电管时:北京理工大学 智能车模糊PID控制方法 王新宇, 温小锋, 胡伟由以上两图可得到:err1应取900-3500为有效范围,err2应取600-3000为有效范围。故将err1,err2按以下算法整形:if(err1 <= -900) err11 = err1 + 900; /对err1的整形else if(err1 >= 900) err11 = err1 - 900; els
5、e err11 = 0;if(err2 <= -600) err22 = err2 + 600; /对err2的整形 else if(err2 >= 600) err22 = err2 -600; else err22 = 0;至此我们得到了poslong, err1, err2三个有价值的量。二、 模糊化使用三角形隶属函数及最大值法对poslong, err1, err2 进行模糊化。北京理工大学 智能车模糊PID控制方法 王新宇, 温小锋, 胡伟通过隶属函数可以计算出三个变量分别属于NB,NS,ZO,PS,PB的范围。if(posold < 7) POS = 1; /NB
6、 else if(posold >=7 && posold < 14) POS = 2; /NS else if(posold >=14 && posold < 21) POS = 3; /ZO else if(posold >=21 && posold < 25) POS = 4; /PS else if(posold >=25) POS = 5; /PB if(err11 < -1575) ERR1 = 1; /NB else if(err11 >=-1575 && err
7、11 < -525) ERR1 = 2; /NS else if(err11 >=-525 && err11 < 525) ERR1 = 3; /ZO else if(err11 >=525 && err11 < 1575) ERR1 = 4; /PS else if(err11 >=1575) ERR1 = 5; /PB if(err22 < -1425) ERR2 = 1; /NB else if(err22 >=-1425 && err22 < -475) ERR2 = 2; /NS e
8、lse if(err22 >=-475 && err22 < 475) ERR2 = 3; /ZO else if(err22 >=475 && err22 < 1425) ERR2 = 4; /PS else if(err22 >=1425) ERR2 = 5; /PB这样就得到了POS, ERR1, ERR2三个语言变量。北京理工大学 智能车模糊PID控制方法 王新宇, 温小锋, 胡伟三、 使用模糊控制确定舵机PID参数以及期望车速为了得到舵机PID参数以及期望车速,首先,我们需要根据上面计算出来的POS, ERR1, ERR2
9、三个值建立一个2个输入,1个输出的模糊控制规则表。舵机PID和期望车速的规则表分别如下:对舵机PID的模糊控制规则表包括两个部分,一是对参数Kp的模糊控制规则表,二是对参数Kd的模糊控制规则表。对参数Kp的模糊控制规则表:注:PB,PS,ZO,NS,NB分别为加乘量,在实际中按需要自行设定。其在分别在程序中对应的是数组angle_k0,angle_k1,angle_k2,angle_k3,angle_k4.对参数Kd的模糊控制规则表:对期望车速的模糊控制规则表:注:SS,S,M,H,HH分别为设定的五档速度,在实际中按需要自行设定。其分别在程序中对应的是数组speed_k0, speed_k1
10、, speed_k2, speed_k3, speed_k4.实际调试中,只要针对于不同的POS, ERR1, ERR2,我们就可以找到不同的Kp,Kd和期望车速与之对应。北京理工大学 智能车模糊PID控制方法 王新宇, 温小锋, 胡伟四、 使用PID控制最终输出舵机和电机的控制量在得到当前路况适合的Kp和Kd后便可进行舵机的位置式PID控制。err_a = posold- 18; /角度的误差 rudder_pwm = angle_mid + Kp2 * err_a * K /10 + Kd2 * err1 * 0.001 * K /10; /角度的模糊PD if(rudder_pwm>
11、;angle_max)rudder_pwm = angle_max;if(rudder_pwm<angle_min)rudder_pwm = angle_min;使用传统的PID控制将速度调整为当前路况适合的期望速度。speed_err2 = speed_err1;speed_err1 = motor_pwm - speednow;temp = PWMDTY45 + 0.08 * speed_err1 + 0.08 * (speed_err1 - speed_err2)if(temp > 1999)PWMDTY45 = 1999;elseif(temp < 1) PWMDTY45 = 1;els
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毛里求斯协议书
- 创设和谐教育环境的学校幼儿园教研计划
- 道路通行协议书模板
- 车房装修协议书范本
- 民宿包场协议书
- 河里取土协议书
- 演员合同协议书
- 业务承揽合同与业务行为规范承诺书
- 乡村集体经济合作协议
- 建筑业农民工劳动合同书
- 心力衰竭试题及答案
- 公安治安管理培训
- 平面向量及其应用 章末题型归纳总结(基础篇)(10大题型)原卷版-2024-2025学年高一数学(人教A版必修第二册)
- 债权管理制度
- 运动营养学知到课后答案智慧树章节测试答案2025年春黑龙江冰雪体育职业学院
- 2025高级插花花艺师核心备考试题库及答案(浓缩300题)
- 光伏发电站施工规范完整版2025年
- 煤矿防洪专项应急预案
- 2025年陕西省初中学业水平考试英语 例析与指导 试卷示例题
- 汽轮机保护装置原理与应用考核试卷
- 2025年春季学期 形势与政策 第四讲 厚植绿色底色 建设美丽中国讲义
评论
0/150
提交评论