1
在机器人、AGV、数控机床以及高精度运动控制行业中,伺服控制器扮演者重要的角色,它是运动控制的关键组成部分,目前常采用基于矢量控制技术的电流、速度以及位置三闭环控制策略,而速度检测的准确与否直接影响了系统的控制精度。
特别是矢量控制的极低速度处理方法,更是彰显了开发者的技术实力。
直流无刷电机的速度检测通常有模拟测速以及数字测速两种,模拟测速通常使用旋转变压器以及测速发电机实现,由于这两种设备体积较大,安装不方便,还会增加电机转轴的转动惯量,输出信号噪声较大,现实中很少应用。
数字测速主要包括霍尔位置传感器以及旋转编码器两种;霍尔位置传感器分辨率较低,只能给出转子的位置扇区和一些特定的位置角,很难适应高精度伺服控制系统,而旋转编码器能够提供较高的位置分辨率,是目前伺服控制系统中应用较多的一种位置传感器。
旋转编码器常用的有绝对位置型光电编码器和增量型光电编码器。
下面以增量型光电编码器为例,分析光电编码器的测速原理。
2
增量型光电编码器采用光电转换原理,将转速信号转换成脉冲电信号,如下图所示,主要由光源、码盘、光栅、光电检测原件和转换电路组成,当电机轴带动码盘旋转时,光线透过码盘和检测光栅上的缝隙照射到光电检测原件上,输出一组相位差 90° 的类正弦信号,再经过转换电路输出一组规整的正交脉冲信号,具有低惯量、低噪声、高精度的优点,但是增量型光电编码器无法输出旋转轴的绝对位置信息。
输出的信号分三相,包括 A、B 和 Z,A 和 B 是互差 90° 的方波信号,Z 相为圆周位置矫正信号,一圈输出一个 Z 脉冲。
常用的速度测量方法包括 M 法和 T 法。
M 法也称频率法,通过测量固定时间间隔内的编码器输出脉冲数来计算转速,实际编程测试中可以使用 STM32 的滴答定时器作为测速基准定时器,比如给定滴答定时器的中断频率为 f=4KHZ,每次中断计算捕获的编码器脉冲数,以 1000 线编码器为例,假设某次捕获的编码器脉冲数为 P,那么转速 n 可以通过下式计算:
这里的 4 指的是编码器的 4 倍频,即同时检测 A 和 B 两相的上升沿和下降沿,提高分辨率。M 法测量的是平均速度,不能及时反映电机的运行情况,而且当转速太低时,检测到的脉冲数 P 很小,误差较大;高速时,采集到的编码器脉冲数较多,测量误差较小,因此 M 法适合高速测量。T 法也称为周期法,通过测量编码器输出的相邻两个脉冲之间的时间间隔来计算速度。实际测试时,使用 STM32 的一个定时器作为计数器,假定计数器的频率为 f,且在相邻两个脉冲之间的计数值为 M,那么电机的转速可以计算为:
当转速较低时,M 值很大,测量的相对误差随之降低,因此 T 法测速适合低速阶段。如果转速过低,响应时间也会加长,因此也要考虑到系统响应时间问题。
3
当然 T 法测速也会存在一定的误差。
编码器输出脉冲的上升沿与高频脉冲计数器前沿存在一定的时差,即实际测速时,两个脉冲不能完全同步。可以通过提高计数脉冲的频率来减小这个同步误差,但是由于硬件的限制,不可能无限制的提高计数脉冲频率。T 法测速的最大误差为一个计数脉冲周期。
当选定高频脉冲计数器的频率后,在额定转速一定的情况下,计数脉冲 M 会有一个最小值。当检测到比该值还小的值时,可以使用限幅滤波去掉。假定额定转速为 3000rpm,编码器为 1000 线,高频计数脉冲频率为 84MHZ,那么相邻两个编码器脉冲之间的高频脉冲计数 M 的最小值为:
可以认为,在检测到脉冲数小于 420 的情况都是无效的。由于光电编码器的安装或者机械振动造成的输出信号不稳定或者脉冲丢失等现象也是造成误差的另一个原因。编码器的输出有时也会夹杂一些毛刺干扰,一个方波周期中含有多个高频假脉冲,造成多次输出,从而影响速度的计算。
必须有效的去除这些干扰或脉冲丢失,才能提高系统的速度测量精度。可以加入分段速度限幅滤波,在一定的速度区间内,如果速度的偏差大于理论计算值,那么可以认为该次速度采样无效。实际开发中,往往使用 M 法和 T 法相结合的方法。