用第二个方法试试吧。既然有编码器,那就增加位置闭环吧。
除了速度的积累误差,可能还和你计算速度的算法有关,用编码器算速度有M法和T法,在速度高和低时要切换这两种方法以减小误差。你可以试一下这样有没有改善。
另外任何车都不可能保证永远走直线,即使你让两个轮子固定在同一根轴上也会因为轮子半径不同或打滑等等原因而转弯。你的控制只要达到一定精度就可以了。根本的解决办法就是增加控制方向的闭环,比如巡线装置,或者导航装置,或者人为的遥控(人在闭环回路中)使之保持任意的路线。
关于M法和T法:
(1)在规定时间内测量所产生的脉冲个数来获得被测速度,称为M法测速;
(2)测量相邻两个脉冲的时间来测量速度,称为T法测速;
(3)同时测量检测时间和在此时间内脉冲发生器发出的脉冲个数来测量速度,称为M/T法测速。
M法适合于测量较高的速度,能获得较高分辨率;T法适合于测量较低的速度,这时能获得较高的分辨率;
建议你选用运动控制器,实现同轴传动,能使电机完全同步,因为普通的伺服控制器运算速度都不是很快,因此很难做到同步。英国的翠欧运动控制卡在同步的运动控制领域做的很强,他们的控制器最多多轴联动达64轴,本地控制方式,若加总线控制的话,可以控制无数个电机,北京阿沃德自动化设备有限公司是这款控制器的独家代理商,他们做了很多相关的工程,建议你问问。