1. M 法测量频率

M 法 又叫做频率测量法。这种方法是在一个固定的定时时间内(以秒为单位),统计这段时间内编码器发出的脉冲数量,以此计算速度值。

设编码器单圈(旋转一圈)总脉冲数为 C C C,在时间 T 0 T0 T0 内,统计到的编码器脉冲数为 M 0 M0 M0,所以 T 0 T0 T0 时间段内旋转过的圈数 R R R

R = M 0 C R=\frac{M0}{C} R=CM0

那么在 T0 这段时间内的转速为

n = R T 0 = M 0 C T 0 = M 0 C T 0 (1) \begin{aligned} n & =\frac{R}{T0} & =\frac{\frac{M0}{C}}{T0} & =\frac{M0}{CT0} \end{aligned} \tag{1} n=T0R=T0CM0=CT0M0(1)

以上的公式中的编码器单圈总脉冲数 C 是常数,所以转速 nM0 成正比。这就使得在高速测量时 M0 变大,可以获得较好的测量精度和平稳性,但是如果速度很低,低到每个 T0 时间段内只有少数几个脉冲,此时算出的速度误差就会比较大,并且很不稳定。

注意拥有一个完整周期(包含高电平和低电平部分)的脉冲信号才算一个脉冲信号,而非仅有高电平部分就认为是一个脉冲

2. T 法测量周期

T 法 又叫做周期测量法。这种方法是建立一个已知频率的高频脉冲并对其计数,计数时间由捕获到的编码器相邻两个脉冲的间隔时间 T E TE TE 决定,计数值为 M 1 M1 M1。设编码器单圈总脉冲数为 C C C,高频脉冲的频率为 F 0 F0 F0

(1) 因为已知高频脉冲的频率为 F 0 F0 F0 所以高频脉冲的周期为 1 F 0 \frac{1}{F0} F01

(2) 因为单圈(旋转一圈)总脉冲数为 C C C ,假设相邻两个脉冲的间隔时间为 T E TE TE(相邻两个脉冲的间隔时间实际上就是说编码器脉冲信号的周期时间)

(3) 所以旋转一圈的时间就是 C ⋅ T E C·TE CTE

(4) 那么一秒可以旋转 1 s C ⋅ T E \frac{1s}{C·TE} CTE1s 圈,实际上这就是转速(即每秒可以旋转多少圈)。

现在来计算 T E TE TE

(5) 因为在 T E TE TE 的这段时间内捕获到已知的高脉冲 M 1 M1 M1 个。

(6) 所以 T E = M 1 ⋅ 1 F 0 TE=M1·\frac{1}{F0} TE=M1F01

(7) 所以将 T E TE TE 带回到第 (4) 步的表达式,得到

n = 1 s C ⋅ T E = 1 s C ⋅ M 1 ⋅ 1 F 0 = F 0 C ⋅ M 1 (1) \begin{aligned} n & =\frac{1s}{C·TE} & =\frac{1s}{C·M1·\frac{1}{F0}} & =\frac{F0}{C·M1} \end{aligned} \tag{1} n=CTE1s=CM1F011s=CM1F0(1)

公式中的编码器单圈总脉冲数 C C C 和高频脉冲频率 F 0 F0 F0 是常数,所以转速 n n n M 1 M1 M1 成反比。从公式可以看出,在电机高转速的时候,编码器脉冲间隔时间 T E TE TE 很小,使得测量周期内的高频脉冲计数值 M 1 M1 M1 也变得很少,导致测量误差变大,而在低转速时, T E TE TE 足够大,测量周期内的 M 1 M1 M1 也足够多,所以 T T T 法和 M M M 法刚好相反,更适合测量低速。

3. M\T 法

这种方法综合了 M M M 法和 T T T 法各自的优势,既测量编码器脉冲数又测量一定时间内的高频脉冲数。在一个相对固定的时间内,计数编码器脉冲数 M 0 M0 M0,并计数一个已知频率为 F 0 F0 F0 的高频脉冲,计数值为 M 1 M1 M1,计算速度值。

(1) 因为编码器的单圈总脉冲数为 C C C 在一段时间 T 0 T0 T0 内采集到编码器的脉冲个数为 M 0 M0 M0

(2) 所以在 T 0 T0 T0 这段时间转动的圈数是 M 0 C \frac{M0}{C} CM0 圈。

(3) 所以 T 0 T0 T0 这段时间的转速为 M 0 C ⋅ 1 T 0 \frac{M0}{C}·\frac{1}{T0} CM0T01 M 0 C T 0 \frac{M0}{CT0} CT0M0

现在来计算 T0

(4) 因为在 T 0 T0 T0 这段时间内捕获到高频脉冲 M 1 M1 M1 个,高平脉冲的频率为 F 0 F0 F0,所以高频脉冲的周期为 1 F 0 \frac{1}{F0} F01,那么捕获的总时间就是 M 1 ⋅ 1 F 0 M1·\frac{1}{F0} M1F01,这就是 T 0 T0 T0 的值。

(5) 将 T 0 T0 T0 带回到第 (3) 步表达式得到

n = M 0 C ⋅ T 0 = M 0 C ⋅ M 1 ⋅ 1 F 0 = M 0 ⋅ F 0 C ⋅ M 1 (1) \begin{aligned} n & =\frac{M0}{C·T0} & =\frac{M0}{C·M1·\frac{1}{F0}} & =\frac{M0·F0}{C·M1} \end{aligned} \tag{1} n=CT0M0=CM1F01M0=CM1M0F0(1)

由于 M/T 法公式中的 F 0 F0 F0 C C C 是常数,所以转速 n n n 就只受 M 0 M0 M0 M 1 M1 M1 的影响。电机高速时, M 0 M0 M0 增大, M 1 M1 M1 减小,相当于 M M M 法,低速时, M 1 M1 M1 增大, M 0 M0 M0 减小,相当于 T T T 法。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐