抓蚊 发表于 2008-7-30 20:55

参加飞思卡尔智能车大赛的新人,希望老师们指点!

<br /><br />参加飞思卡尔智能车大赛的新人,希望老师们指点!<br /><br />各位前辈!飞思卡尔智能车大赛清华大学队的队员,我写了一篇关于检测周期和控制周期的**,希望各位老师指点。也希望老师们多多到我的博客投票支持,凡是参与投票的老师都有可能获得参加飞思卡尔技术论坛的机会。<br /><br />只要到飞思卡尔技术论坛首页,然后点击“当前活动”就可以看到投票页面。请老师们多多指教!<br /><br /><br />关于检测周期,控制周期和响应周期!&nbsp;<br />&nbsp;<br />&nbsp;<br />作为一个以MCU为核心的控制系统,智能车主要包括&nbsp;信息检测,控制算法,执行单元的响应三个部分.<br /><br />检测系统的主要任务是&nbsp;获取赛道信息和速度信息.<br /><br />而控制系统,其任务是根据检测系统的信息,通过一定算法,计算出控制量,向执行单元发出控制命令.<br /><br />对于执行单元,其任务就是将控制系统送过来的控制量转变成实际的动作,如驱动电机舵机等.<br /><br />&nbsp;<br /><br />按照一般的控制理论,在这个闭环控制系统中,检测的精度决定了整个系统的稳定性.<br /><br />而对于我们的光电智能小车,情况却好象不是这样.<br /><br />我们的程序结构是这样的:<br /><br />#include&nbsp;&quot;declare.h&quot;<br /><br />void&nbsp;main()<br /><br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;system_int&nbsp;(&nbsp;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(;;)<br /><br />&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check();&nbsp;&nbsp;&nbsp;//检测<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deal();&nbsp;&nbsp;&nbsp;&nbsp;//计算控制量<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver();&nbsp;//输出驱动<br /><br />&nbsp;&nbsp;&nbsp;}&nbsp;<br /><br />}<br /><br />&nbsp;<br /><br />主程序周期大概是&nbsp;80us,<br /><br />也就是说,我们的赛道信息检测周期是80us,控制周期也是80us.<br /><br />速度检测周期通过40ms的定时中断实现.<br /><br />&nbsp;<br /><br />原来一直以为这个80us就是我们整个系统的控制周期,却忽略了电机和舵机的响应时间,<br /><br />经过我们进一步的测试,<br /><br />我们的电机和舵机的有效响应时间大概如下:<br /><br />电机10ms,舵机30ms&nbsp;(不一定精确哦~~)<br /><br />&nbsp;<br /><br />汗,,,换句话说,我们的控制系统存在很大的问题,<br /><br />打个比方,,某个时刻,check()检测到小车跑偏了,然后通过deal()和driver()控制小车,但如果此时舵机刚刚响应了上一次动作,那么此刻的检测信息是无法产生有效的控制动作的.<br /><br />&nbsp;<br /><br />30ms小车会做出什么事情来呢,按照3M/S的速度,大概可以跑9cm,一段很长的距离了.再差一点点或许就冲出赛道啦.而这个时候再根据check()的值做出控制动作,又可能引起过调振荡,,,,从而出现冲弯道出来进直到,却一直在走s路线,,,<br /><br />&nbsp;<br /><br />电机和舵机的响应周期是固定的,能改变的只有控制算法,<br /><br />试试积分和微分,或许有用,好象又回到我们曾经抛弃的PID算法了...........<br /><br />不行,我们应该抛弃这种结构!<br /><br />&nbsp;<br />

icecut 发表于 2008-7-30 20:56

这是最原始的

高中小孩都会的算法.<br />根本不叫算法.

dadong 发表于 2008-7-30 21:43

re

检测用什么方法,是检测小车当前位置吗,不行就加个摄像头,检测小车前方10cm的路线,这样就可以避免启动时延了。

秋窗 发表于 2008-7-30 22:19

我也参与了这活动,说实话有的还是比较有意思的

页: [1]
查看完整版本: 参加飞思卡尔智能车大赛的新人,希望老师们指点!