智能车制作
标题: 校赛失败,准备考研CCD组散尽经验 [打印本页]
作者: tang999 时间: 2016-6-1 21:46
标题: 校赛失败,准备考研CCD组散尽经验
K60-光电 前瞻40cm 控制周期5ms ccd 舵机100HZ。。
2.对于CCD来说,图像稳定是关键。我用的是蓝宙4代CCD,总结说,CCD的运放千万不要调节过度。
我参考的是蓝宙的修改的曝光时间
void CCD_Sample(void)
{
uint8_t i=0;
/* Æô¶ˉé¨Ãè */
CCD1_SI = 1;
Delay_Us(CCD_Us);
CCD1_CLK = 1;
Delay_Us(CCD_Us);
CCD1_SI = 0;
Delay_Us(CCD_Us);
/*é¨Ãèμú1¸öμã */
CCD_GrayVal1[0] = ADC_GetConversionValue(ADC1_SE7_PE3);
CCD1_CLK = 0;
Delay_Us(CCD_Us);
/* é¨Ãèμú2-128¸öμã */
for(i=1; i<128; i++)
{
CCD1_CLK = 1;
/* AD2éÑù£¬ê±¼äÔ¼12us */
CCD_GrayVal1 = ADC_GetConversionValue(ADC1_SE7_PE3);
CCD1_CLK = 0;
Delay_Us(CCD_Us);
}
/* ·¢Ëíμú129¸öCLK */
CCD1_CLK = 1;
Delay_Us(CCD_Us);
CCD1_CLK = 0;
Delay_Us(CCD_Us);
}
3.图像滤波,我采用的大众化的普通滤波,每隔3个点处理波形。
4.舵机控制方面建议50-120hz。频率越高舵机反应越灵敏。
我从最初的固定PID,到分段PID,然后二次PD。最后试过三次P和模糊PD;
对于二次P的效果,我总结为,过弯道效果非常好。可能是我调的不够好,不同的error对应的二次P衔接不好,直道入弯道效果不是很好。二次P如下:
// Servo_Hanshu= ( 0.0823) * Servo_Error * Servo_Error + 30 ;
// Servo_Sqrt= sqrt(Servo_Hanshu);
// Servo_PWM_Vaule= (int32)( Servo_Sqrt * Servo_Error + S_Common.D* (Servo_Error-Servo_Error_old) );
// //Servo_PWM_Vaule= (int32)( S_Common.P * Servo_Error + S_Common.D* (Servo_Error-Servo_Error_old) );
// Servo_Add = Servo_Middle + Servo_PWM_Vaule;
我经过试验,最终的二次P可以不需要开根号,那样效果会好一些。因为任何数字的变化,开根号后的变化率基本是非常小了。
三次P来说,我建议和二次p一起用。
模糊PID,一句话,难调。我就给个大致的我调节的模糊表吧
// -2 -1 0 1 2 ec e
{ 1, 1, 1, 0, 0}, // -3
{ 4, 2, 1, 0, 0}, // -2
{ 6, 4, 1, 1, 0}, // -1
{ 3, 3, 0, 3, 3}, // 0
{ 0, 1, 1, 4, 6}, // 1
{ 0, 0, 1, 2, 4}, // 2
{ 0, 0, 1, 1, 1} // 3
3.电机控制,理想速度由舵机得到,参考哈工大的技术方案,实际速度和编码器成线性关系,当然我也试过二次函数关系,也可以。
Currentspeedr = 90.398*Average_DMA_R +192.69; //实际右轮速度
Currentspeedl = 90.398*Average_DMA_L +192.69; //实际左轮速度
调节电机的PID,
我采用的增量式,
Motor_L_Pwm = (int)(Motor_L_Pwm + Motor_L.P*(error_l-last_error_l)+Motor_L.I*error_l+Motor_L.D*(error_l+pre_error_l-2*last_error_l));
用虚拟示波器调节,先调节Kp。。使得阶跃大致稳定在理想速度附近。
然后调节kd使得周期稳定。最后调节ki,使得响应速度很快,但是一般ki的数值很小。
最后祝各位加油,大神不要喷我哈,小白一个。
有什么错误大家帮忙修改,最后大家加油。。。
不要问我车速多少。2.7m/s。。
有特殊可私聊QQ:2801559274
作者: 954281769 时间: 2016-6-1 21:53
大神速度多少米啊?能不能给我讲解一下模糊
作者: 申继鹏 时间: 2016-6-1 21:54
谢谢楼主,祝楼主考研顺利!
作者: 954281769 时间: 2016-6-1 21:55
本帖最后由 954281769 于 2016-6-1 21:58 编辑
楼主这代码有水平 求指导
作者: tang999 时间: 2016-6-1 21:55
.我是渣渣。。。。2.7m/s...模糊基本就是修改模糊表,不用的等级可以对应不同的赛道类型
作者: 954281769 时间: 2016-6-1 21:56
哦~买代码不?
作者: tang999 时间: 2016-6-1 21:56
哈哈,,,搞了半天还是回去考研
作者: tang999 时间: 2016-6-1 21:57
别捣乱撒,。。。。私聊。。。。
作者: huangqianqiu202 时间: 2016-6-1 22:00
楼主叼叼叼
作者: 浮游 时间: 2016-6-1 22:08
楼主能聊下模糊控制吗,一直调不好
作者: 不如不见? 时间: 2016-6-1 22:09
电机PID具体呢 楼主 我加你了
作者: tang999 时间: 2016-6-1 22:09
ec就是误差变化率,e就是误差。。。
float PFF[7]={-24,-12,-6,0,6,12,24};这是偏差范围,然后进行缩小
作者: tang999 时间: 2016-6-1 22:10
电机PID我都贴上了代码啊。你是要问调节方法还是?
作者: zhou1994 时间: 2016-6-1 23:40
5ms一个控制计算周期。10ms的舵机输出频率。。。。计算频率比输出频率咋还大了
作者: HRY 时间: 2016-6-1 23:55
请问电机PID参数调试时候,是拿手里空转看虚拟示波器吗
作者: tang999 时间: 2016-6-2 16:57
我是5ms一周期,两个周期控制舵机
作者: tang999 时间: 2016-6-2 16:58
嗯。是的,你给个设定的理想速度,拿在手上空转,。然后看波形反应
作者: g847279681 时间: 2016-6-2 17:46
不带负载?
作者: 仰望空空 时间: 2016-6-2 18:13
模糊那个表应该怎么测啊
作者: tang999 时间: 2016-6-2 19:20
带不带负载无所谓,你最终只是要让电机迅速反应
作者: tang999 时间: 2016-6-2 19:21
根据赛道类型。。matlab拟合曲线,,然后假定数值猜测。然后测试。我是这么干的
作者: zhou1994 时间: 2016-6-2 19:50
迷之周期
作者: tang999 时间: 2016-6-2 20:06
迷之舵机
作者: g847279681 时间: 2016-6-2 20:56
那稳定呢?带不带稳定性不同,能不能响应到指定速度都是问题
作者: tang999 时间: 2016-6-2 21:08
我是直接用蓝牙改的速度。CCD什么屏蔽,,,然后蓝牙修改速度,看能不能达到指定速度。看波形
作者: tang999 时间: 2016-6-2 21:08
你是怎么控制的呢?
作者: 346500452 时间: 2016-6-2 21:14
增量式不应该是先调节I吗
作者: tang999 时间: 2016-6-2 21:55
个人经验,。先调节kp
作者: xiaocheng 时间: 2016-6-2 22:11
楼主可以留个扣吗
作者: tang999 时间: 2016-6-2 22:17
有的,帖子上面有QQ
作者: 月影y 时间: 2016-6-3 16:09
楼主CCD曝光时间5ms不会抖吗
作者: tang999 时间: 2016-6-4 00:44
环境光线稳定的话没什么问题
作者: SWKR 时间: 2016-6-4 09:56
舵机的D楼主有什么好的方法给,和偏差应该保持什么样关系,正相关么
作者: tang999 时间: 2016-6-4 14:10
我舵机的D是和P成比例关系的,
作者: SWKR 时间: 2016-6-4 14:28
就是P大的时候D也大么?还有就是长直道入弯你有减速么?靠什么判断长直道入弯的好办法,50度的弯,在长直道感觉两米多有点难过
作者: 346500452 时间: 2016-6-4 14:42
开源代码最好了
作者: SWKR 时间: 2016-6-4 14:58
你的速度还有是匀速还是变速
作者: tang999 时间: 2016-6-4 16:42
弯道差速,直道匀速
作者: SWKR 时间: 2016-6-4 16:44
但是在长直道入弯我需要减速,但是靠偏差识别减,会有弯道速度也慢的情况。你有好办法么
作者: tang999 时间: 2016-6-4 16:47
弯道差速
作者: tang999 时间: 2016-6-4 16:48
前瞻,前瞻远的话,这个不成问题,还有你电机调好了的话,基本不成问题的
作者: SWKR 时间: 2016-6-4 16:49
这样普通弯道我不需要,就是洗澡有没有好办法识别长直道入弯,不然直道不敢加速
作者: SWKR 时间: 2016-6-4 16:49
多远比较好
作者: tang999 时间: 2016-6-4 16:51
我直道没有加速。。
作者: tang999 时间: 2016-6-4 16:51
他们上3米的大神基本都是双CCD
作者: SWKR 时间: 2016-6-4 16:58
我也两个,但是远的怎么用是问题
作者: tang999 时间: 2016-6-4 17:19
你加我QQ吧,这个聊着不习惯
作者: tang999 时间: 2016-6-8 16:42
我的前瞻是40
作者: tang999 时间: 2016-6-8 16:44
有两种方案,一个是CCD一纵一横。一个判断加减速,一个判断赛道类型、
另一种是两个都是横的,,,两个CCD获取的中值进行比例式子,,,输出最终的中值偏差
作者: 不如不见? 时间: 2016-6-13 12:04
直道计数到一定程度后再允许差速,舵机偏角计数也可以
作者: 古先森 时间: 2016-7-14 09:34
楼主舵机用模糊PID,打角会不会很僵硬?
作者: liangzhineng 时间: 2016-7-14 16:36
好帖!
作者: 智能车121 时间: 2018-2-27 10:23
好好厉害
欢迎光临 智能车制作 (http://dns.znczz.com/) |
Powered by Discuz! X3.2 |