亿加合和智能车制作

标题: 校赛失败,准备考研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
954281769 发表于 2016-6-1 21:53
大神速度多少米啊?能不能给我讲解一下模糊

.我是渣渣。。。。2.7m/s...模糊基本就是修改模糊表,不用的等级可以对应不同的赛道类型

作者: 954281769    时间: 2016-6-1 21:56
tang999 发表于 2016-6-1 21:55
.我是渣渣。。。。2.7m/s...模糊基本就是修改模糊表,不用的等级可以对应不同的赛道类型

哦~买代码不?



作者: tang999    时间: 2016-6-1 21:56
申继鹏 发表于 2016-6-1 21:54
谢谢楼主,祝楼主考研顺利!

哈哈,,,搞了半天还是回去考研

作者: tang999    时间: 2016-6-1 21:57
954281769 发表于 2016-6-1 21:56
哦~买代码不?

别捣乱撒,。。。。私聊。。。。

作者: huangqianqiu202    时间: 2016-6-1 22:00
楼主叼叼叼
作者: 浮游    时间: 2016-6-1 22:08
楼主能聊下模糊控制吗,一直调不好
作者: 不如不见?    时间: 2016-6-1 22:09
电机PID具体呢   楼主 我加你了
作者: tang999    时间: 2016-6-1 22:09
浮游 发表于 2016-6-1 22:08
楼主能聊下模糊控制吗,一直调不好

ec就是误差变化率,e就是误差。。。
float PFF[7]={-24,-12,-6,0,6,12,24};这是偏差范围,然后进行缩小


作者: tang999    时间: 2016-6-1 22:10
不如不见? 发表于 2016-6-1 22:09
电机PID具体呢   楼主 我加你了

电机PID我都贴上了代码啊。你是要问调节方法还是?

作者: zhou1994    时间: 2016-6-1 23:40
5ms一个控制计算周期。10ms的舵机输出频率。。。。计算频率比输出频率咋还大了

作者: HRY    时间: 2016-6-1 23:55
请问电机PID参数调试时候,是拿手里空转看虚拟示波器吗
作者: tang999    时间: 2016-6-2 16:57
zhou1994 发表于 2016-6-1 23:40
5ms一个控制计算周期。10ms的舵机输出频率。。。。计算频率比输出频率咋还大了

我是5ms一周期,两个周期控制舵机


作者: tang999    时间: 2016-6-2 16:58
HRY 发表于 2016-6-1 23:55
请问电机PID参数调试时候,是拿手里空转看虚拟示波器吗

嗯。是的,你给个设定的理想速度,拿在手上空转,。然后看波形反应


作者: g847279681    时间: 2016-6-2 17:46
tang999 发表于 2016-6-2 16:58
嗯。是的,你给个设定的理想速度,拿在手上空转,。然后看波形反应

不带负载?

作者: 仰望空空    时间: 2016-6-2 18:13
模糊那个表应该怎么测啊
作者: tang999    时间: 2016-6-2 19:20
g847279681 发表于 2016-6-2 17:46
不带负载?

带不带负载无所谓,你最终只是要让电机迅速反应


作者: tang999    时间: 2016-6-2 19:21
仰望空空 发表于 2016-6-2 18:13
模糊那个表应该怎么测啊

根据赛道类型。。matlab拟合曲线,,然后假定数值猜测。然后测试。我是这么干的


作者: zhou1994    时间: 2016-6-2 19:50
tang999 发表于 2016-6-2 16:57
我是5ms一周期,两个周期控制舵机

迷之周期

作者: tang999    时间: 2016-6-2 20:06
zhou1994 发表于 2016-6-2 19:50
迷之周期

迷之舵机


作者: g847279681    时间: 2016-6-2 20:56
tang999 发表于 2016-6-2 19:20
带不带负载无所谓,你最终只是要让电机迅速反应

那稳定呢?带不带稳定性不同,能不能响应到指定速度都是问题
作者: tang999    时间: 2016-6-2 21:08
g847279681 发表于 2016-6-2 20:56
那稳定呢?带不带稳定性不同,能不能响应到指定速度都是问题

我是直接用蓝牙改的速度。CCD什么屏蔽,,,然后蓝牙修改速度,看能不能达到指定速度。看波形


作者: tang999    时间: 2016-6-2 21:08
zhou1994 发表于 2016-6-2 19:50
迷之周期

你是怎么控制的呢?


作者: 346500452    时间: 2016-6-2 21:14
增量式不应该是先调节I吗
作者: tang999    时间: 2016-6-2 21:55
346500452 发表于 2016-6-2 21:14
增量式不应该是先调节I吗

个人经验,。先调节kp


作者: xiaocheng    时间: 2016-6-2 22:11
楼主可以留个扣吗
作者: tang999    时间: 2016-6-2 22:17
xiaocheng 发表于 2016-6-2 22:11
楼主可以留个扣吗

有的,帖子上面有QQ


作者: 月影y    时间: 2016-6-3 16:09
楼主CCD曝光时间5ms不会抖吗
作者: tang999    时间: 2016-6-4 00:44
月影y 发表于 2016-6-3 16:09
楼主CCD曝光时间5ms不会抖吗

环境光线稳定的话没什么问题

作者: SWKR    时间: 2016-6-4 09:56
舵机的D楼主有什么好的方法给,和偏差应该保持什么样关系,正相关么
作者: tang999    时间: 2016-6-4 14:10
SWKR 发表于 2016-6-4 09:56
舵机的D楼主有什么好的方法给,和偏差应该保持什么样关系,正相关么

我舵机的D是和P成比例关系的,

作者: SWKR    时间: 2016-6-4 14:28
tang999 发表于 2016-6-4 14:10
我舵机的D是和P成比例关系的,

就是P大的时候D也大么?还有就是长直道入弯你有减速么?靠什么判断长直道入弯的好办法,50度的弯,在长直道感觉两米多有点难过

作者: 346500452    时间: 2016-6-4 14:42
开源代码最好了
作者: SWKR    时间: 2016-6-4 14:58
tang999 发表于 2016-6-4 14:10
我舵机的D是和P成比例关系的,

你的速度还有是匀速还是变速

作者: tang999    时间: 2016-6-4 16:42
SWKR 发表于 2016-6-4 14:58
你的速度还有是匀速还是变速

弯道差速,直道匀速


作者: SWKR    时间: 2016-6-4 16:44
tang999 发表于 2016-6-4 16:42
弯道差速,直道匀速

但是在长直道入弯我需要减速,但是靠偏差识别减,会有弯道速度也慢的情况。你有好办法么

作者: tang999    时间: 2016-6-4 16:47
SWKR 发表于 2016-6-4 14:28
就是P大的时候D也大么?还有就是长直道入弯你有减速么?靠什么判断长直道入弯的好办法,50度的弯,在长直 ...

弯道差速


作者: tang999    时间: 2016-6-4 16:48
SWKR 发表于 2016-6-4 16:44
但是在长直道入弯我需要减速,但是靠偏差识别减,会有弯道速度也慢的情况。你有好办法么

前瞻,前瞻远的话,这个不成问题,还有你电机调好了的话,基本不成问题的


作者: SWKR    时间: 2016-6-4 16:49
tang999 发表于 2016-6-4 16:47
弯道差速

这样普通弯道我不需要,就是洗澡有没有好办法识别长直道入弯,不然直道不敢加速

作者: SWKR    时间: 2016-6-4 16:49
tang999 发表于 2016-6-4 16:48
前瞻,前瞻远的话,这个不成问题,还有你电机调好了的话,基本不成问题的

多远比较好

作者: tang999    时间: 2016-6-4 16:51
SWKR 发表于 2016-6-4 16:49
这样普通弯道我不需要,就是洗澡有没有好办法识别长直道入弯,不然直道不敢加速

我直道没有加速。。


作者: tang999    时间: 2016-6-4 16:51
SWKR 发表于 2016-6-4 16:49
多远比较好

他们上3米的大神基本都是双CCD


作者: SWKR    时间: 2016-6-4 16:58
tang999 发表于 2016-6-4 16:51
他们上3米的大神基本都是双CCD

我也两个,但是远的怎么用是问题

作者: tang999    时间: 2016-6-4 17:19
SWKR 发表于 2016-6-4 16:58
我也两个,但是远的怎么用是问题

你加我QQ吧,这个聊着不习惯


作者: tang999    时间: 2016-6-8 16:42
SWKR 发表于 2016-6-4 16:49
多远比较好

我的前瞻是40


作者: tang999    时间: 2016-6-8 16:44
tang999 发表于 2016-6-4 17:19
你加我QQ吧,这个聊着不习惯

有两种方案,一个是CCD一纵一横。一个判断加减速,一个判断赛道类型、
另一种是两个都是横的,,,两个CCD获取的中值进行比例式子,,,输出最终的中值偏差


作者: 不如不见?    时间: 2016-6-13 12:04
SWKR 发表于 2016-6-4 16:49
这样普通弯道我不需要,就是洗澡有没有好办法识别长直道入弯,不然直道不敢加速

直道计数到一定程度后再允许差速,舵机偏角计数也可以

作者: 古先森    时间: 2016-7-14 09:34
楼主舵机用模糊PID,打角会不会很僵硬?
作者: liangzhineng    时间: 2016-7-14 16:36
好帖!
作者: 智能车121    时间: 2018-2-27 10:23
好好厉害




欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2