智能车制作
标题:
电磁---赛道线性化的问题
[打印本页]
作者:
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