
01 电机测速方法介绍- K G6 n% E; P( p, Z1 y8 E 在电机控制类应用中,经常会需要对电机转速进行检测,测速常用的方式有M法测速和T法测速。, w) z$ ?) S* g3 b a% Y/ y7 b M法测速是利用在规定时间Ts内编码器输出脉冲数量M1计算电机转速,如下图所示,信号A和B为正交编码器的输出信号,C解码后的计数脉冲(4x)。 ![]() ▲ 图1. M法测速原理 单位时间(1s)内编码器输出脉冲数量,即脉冲频率:4 P# m6 W7 B/ H, ^* h![]() ![]() ![]() ![]() T法测速是测量编码器输出两个脉冲之间的间隔来计算转速,通过计算高频时钟脉冲数量M2来衡量编码器两个脉冲间隔的时间。 ![]() ▲ 图2. T法测速原理 假设高频时钟的频率为ft,那么编码器两个脉冲之间的时间:' V. ^9 N, i H![]() ![]() ![]() T法测速的误差率为:$ T# b- k, K' g* A$ ~4 g7 ] ![]() 02M法与T法测速在STM32中的实现 STM32中的很多定时器都带编码器接口,在对输入编码器信号进行计数的同时,还通过该接口可以将正交编码器的输入信号解码成脉冲输出映射到TIMx_TRGO,手册中的原文描述如下: a9 Q$ u+ ~; f$ C" P5 ^3 |1 } ![]() ![]() ▲ 图3. STM32定时器测速方案框图 使用两个32bit的定时器TIM2和TIM3来处理编码器信号,TIM3的编码器接口与外部的编码器信号连接直接实现4x计数;解码后的输出映射到TIM3_TRGO,并作为TIM2的定时器捕获和复位的触发源。TIM6作为基本定时器,实现一个ms级别的中断,在中断服务程序中实现M法和T法测速的计算。M法测速中,在TIM6的定时中断服务程序中读取TIM3的计数值TIM3_CNT,两次连续读取值的差值即为图1种的M1,TIM6的中断定时时间即为Ts,在Z为已知固定值的情况下,根据公式(1)即可计算出转速n。 T法测速中,在TIM6的定时中断服务程序中读取TIM2捕获值 TIM2_CCR1(TIM3_TRGO内部连接到TIM2_CH1),TIM2_CCR1即为图2中所示的编码器连续两个输出脉冲之间的高频脉冲数量M2,TIM2的时钟频率即为ft,在 Z为已知固定值的情况下,根据公式(2)即可计算出转速n。+ z$ |$ O) E0 r0 u' M, L9 ^ m! j* @; V6 `8 U 03方案测试结果( K. E! _% O1 G2 A, U" D 基于以上的方案,通过定时器模拟生成编码器输出信号A和B,分别的高速和低速情况下进行模拟测试,结果如下,图中Speed_M_Ref和Speed_T_Ref为速度参考值,Speed_M和Speed_T为测试结果值。7 v* N- F" B9 ^0 T) B 高速M法测试结果(1460rpm~2920rpm):) c& I- e( X. s; e. _$ U& P ![]() ![]() ![]() ![]() 5 a1 F k2 ?$ z) f$ `: Y( e 低速M法测试结果(19rpm~35rpm):: _& E3 j# l" Q9 \; @- t5 Z& C4 K( |* I ![]() ![]() 本文简单介绍了电机控制中M法和T法测速的原理,给出了在STM32中如何利用定时器的编码器接口和多个定时器合作的方式实现两种测速的方案,并对方案进行了模拟测试,给出测试结果,高速下M法的效果更好,在低速情况下M法测速偏差大,T法测速更适合低速测速。$ Q7 H: q) R6 D ▼▼▼; t% X9 u$ {/ M0 J' \7 ~1 P 下载《在STM32中实现电机测速的方法介绍》原文档。 ![]() |
基于STM32WBA55CG的直流电机驱动
自制STEVAL-IPM05F 3Sh板:FOC电机控制400V/8A 无感/有感霍尔/有...
意法半导体与伍尔特电子合作开发高性能电动工具
ST应对电机控制方案设计挑战(2)
ST应对电机控制方案设计挑战(1)
开发电机控制方案面临四大挑战
【数据摘要】1500 W电机控制电源板,基于STGIB15CH60TS-L SLLIMM™第2系列IPM
如何将电机控制应用程序软件从 SDK v4.3 迁移至 SDK v5.x
基于STM32直流电机中PID的控制
今天14:00 | 基于STM32的MATLAB电机控制方案直播