运动控制系统中的跟踪误差(Following Error)
主要软件: Driver Software>>NI-Motion/FlexMotion
主要软件版本: 7.2
主要软件修正版本:
次要软件: Utility Software>>FlexMotion Servotune, Utility Software>>Measurement & Automation Explorer
硬件: Motion Control>>Controllers
问题: 什么是跟踪误差(following error),这类错误会对我的运动控制系统产生什么影响?
解答:
什么是跟踪误差(following error)?
NI 73xx运动控制卡上含有一个板载的PID控制环,从而允许系统使用反馈得到的位置和速度信息来调整输出的命令信号。这些反馈信号可以以模拟电压的形式或脉冲序列(编码器输出) 的形式获得,它们表明了当时电机真实的位置和速度信息。控制器将其控制信号与反馈信号进行比较,从而验证电机是不是正按照所给定的命令在运行。控制命令中给定的值与反馈值之间的差值便是跟踪误差(following error)。
当我发指令执行一次运动时,为什么应用程序会报告超出了跟踪误差(following error)的极限值?
在执行某一次运动时,跟踪误差(following error)的极限值是可以调整的。当实际误差超过设定的极限值时,便会出错,并报告超过极限值的错误。由多种因素都由可能导致跟踪误差(following error)超限,如机械系统方面的缺陷、不合适的输入输出、控制回路缺陷等。虽然跟踪误差(following error)问题不大容易调试,但大多数情况下都是由下面所列的原因导致的。
· 原因1:编码器输入的分辨率设置有误
为了提高反馈精度,NI的运动控制卡对编码器反馈脉冲信号的每一个边沿都会读取。对于正交编码器来说,编码器的每一组正交脉冲都对应有四个脉冲边沿(A项和B项的上升沿河下降沿)。因此,如果您所用的编码器没转一周输出2000组正交脉冲,那么,控制卡实际每周将读到8000个边沿——并且,每一个边沿将会被作为一次“计数”来对待。
当在MAX 中设置“Encoder counts per revolution”参数时,大家往往会错误地输入编码器的物理分辨率。而事实上,这里需要输入的是控制卡实际会读到计数值,既,四倍的物理分辨率。
· 原因2:命令/反馈信号的外部连线接反了
当发送一个顺时针方向运动的命令时,得到的反馈信号表明确实是在做顺时针方向的运动吗?如果反馈信号表明是在做反向的运动,则很有可能是输出给电机的模拟信号极性接反了或者编码器的A项和B项接反了。可以检查一下可能的连线错误来弥补这一错误。
如果确认是编码器的极性接反了,那么也可以在MAX 中将二者改正过来。如果确实需要改变编码器的极性,选择有问题的轴,并找到窗口中相应的编码器设置位置。在编码器选项卡上改变A、B两项中任意一项的极性,注意,不是两项都改,如果使用了索引,那么相应的索引也要改。
· 原因3:在伺服电机控制系统中所用的PID环没有调到合适的参数
由于NI的伺服电机控制板卡是针对各种应用方案设计的,所以,针对某一特定的应用场合,板载的PID控制环都需要进行有针对性的配置。在MAX 中合适地调节PID环(设置Kp、Kd、Ki等参数)对于确保电机按照设定的方案运行是有必要的。如果系统对振动、不确定性运动等产生的命令作出相应,那么控制环有可能会偏离原定的轨迹。在调节电机系统时的一些注意事项可以参考Understanding Servo Tune。
· 原因4:发出的指令要求的运动太快
高速的运动要求运动控制系统有高的相应速度。如果高速或高加速度的指令频繁地导致跟踪误差(following error)超限情况发生,那么,电机或工作台很有可能无法达到所给定的目标速度和加速度。(可能的原因很多,比如过大的摩擦力、机械部件不在同一直线上或者电机扭矩太小等。)可以考虑调整机械结构或者使用更小的速度或加速度来解决这个问题。I
如何修改允许的最大的跟踪误差(following error)?
在MAX中的Trajectory Settings界面下,可以为每一个轴单独设置跟踪误差值(following error)。还有,如果使用MAX 中的“1-D Interactive”或者“2-D Interactive” 界面来发送运动指令,选择Advanced 选项卡。在Advanced Data group下,调整标签为“Following Error”的控件的值。
当在LabVIEW中使用FlexMotion API时,可以使用Load Following Error.flx VI来设置允许的跟踪误差值。
当在C或Visual Basic下编程时,可以使用flex_load_follow_err函数。
相关链接: KnowledgeBase 320HJPOV: Motor Spins at Full Torque Until it Trips a Following Error on the 734x or 735x
附件:
报告日期: 10/17/2005
最近更新: 01/03/2008
文档编号: 3QGEF7D3