智能车制作

标题: 电磁---赛道线性化的问题 [打印本页]

作者: yangkuanqaz8598    时间: 2013-1-30 10:26
标题: 电磁---赛道线性化的问题
    官方的电磁检测方案中,感应电动势 E = h / (h^2 + x^2),是个偶函数。然后在乐山师范的技术报告中看到了,用分段处理和比值函数方法(没看懂这里),比例位置关系弄成直线了,想按着它的程序来仿真,但是仿不来呢,所以来求大神帮忙了。

/*******************************************************************************************************************************************************************************************/
    下面是乐师的程序:
if(max_num == 0)        //  最右边的传感器电压最大
{
    // 右端最小电压比设定值还小,判定下车处于严重左偏。处于0位置 (等于0)
    if(This_AD[0] <= ref_AD)   this_position = 0;   

    // 小车处于初级左偏,线性化公式2 (大于15)
    else if(This_AD[1] >  ref_AD)  this_position = 0 + 15*(This_AD[0]-ref_AD)/(This_AD[0]-This_AD[1]);
            
    // 小车处于中级左偏,线性化公式1 (小于15,大于0)
    else   this_position = 30 - 15*(This_AD[0]-This_AD[1])/(This_AD[0]-ref_AD);   
}
else if(max_num == 5)  //  最左边的传感器电压最大
{
    // 左端最小电压比设定值还小,判定下车处于严重右偏。处于180位置 (等于180)
    if(This_AD[5] <= ref_AD)   this_position = 180;  
   
    // 小车处于初级右偏,线性化公式2 (大于150,小于165)                                         
    else if(This_AD[4] > ref_AD)  this_position = 150 + 15*(This_AD[5]-This_AD[4])/(This_AD[5]-ref_AD);   
            
    // 小车处于中级右偏,线性化公式1 (小于180,大于165)   
    else   this_position = 180 - 15*(This_AD[5]-ref_AD)/(This_AD[5]-This_AD[4]);   
}
else      //  正常情况,传感器分布在黑线两侧,最大电压在中间部分
{
     /*******************    小车处于左偏状态,线性化公式1   *********************/
    if(This_AD[max_num-1] > This_AD[max_num+1])   
    this_position = max_num*30 + 15*(This_AD[max_num]-This_AD[max_num-1])/(This_AD[max_num]- This_AD[max_num+1]);      
   
    /*******************    小车处于右偏状态,线性化公式1   *********************/
    else
    this_position = max_num*30 - 15*(This_AD[max_num]-This_AD[max_num+1])/(This_AD[max_num]-This_AD[max_num-1]);   
}





/*******************************************************************************************************************************************************************************************/
下面是我写的一点MATLAB程序,我只是考虑了一下最左边传感器采集电压最大时候的情况,大侠帮忙看下思路对不。

    x = -25:0.01:25;
    y1 = 5 ./ (25+x.^2);
    figure
    plot(x,y1)
    hold on
    x = -25:0.01:25;
    y2 = 5 ./ (25+(x+5).^2);
    plot(x,y2)

    i = 1;
    for x = -25:0.01:25
        if y1(i) < 0.02     % 临界电压
            y3(i) = 0;
        else if y2(i) > 0.02
            y3(i) =  0 + 15 .* (y1(i) - 0.02) ./ ( y1(i) - y2(i) );
        else
            y3(i) = 30 - 15 .* ( y1(i) - y2(i) ) ./ (y1(i) - 0.02);
        end
        end
    i = i + 1;
    end

作者: yangkuanqaz8598    时间: 2013-1-30 10:34
坐等大神帮忙理解啊......
作者: yangkuanqaz8598    时间: 2013-1-30 10:39
补充一点资料
作者: yangkuanqaz8598    时间: 2013-1-30 11:46
额....帖子都下去了
作者: yangkuanqaz8598    时间: 2013-1-31 15:18
乐师的程序,技术报告有的........
作者: ivebeenready    时间: 2013-2-26 20:46
我觉得用官方的公式就能解算位置
作者: main    时间: 2013-3-26 18:31
好像不是完全线性化,只是相对的,0-15,15-10.。。。。这些区域还是存在非线性,有一定曲率,不过足够了。若不对,乐师大神勿怪
作者: kunder    时间: 2013-6-20 09:54
一样看不懂乐师的技术报告。




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