|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 S" }2 o5 y& s. v) l摘要:比较了常见的转速测量方法,指出了它们的不足,提出一种基于单片机的转速测量算法。它可
) x l- J0 s" D8 p以使所测转速的周期数随转速变化而线性变化,文中对算法中参数的选取作了讨论,并根据单片机的特- Y8 Z7 ]3 H% ?/ W
性提出了基2算法,简化了运算,设计了相关的实验软件。实验表明,该算法能实现高精度、宽范围测
8 f% Q5 X* J. ?- ^量,且实时性较强。$ { v7 A. C/ B( H- T4 z. D
@8 h" d' R+ i! S4 Q* ]关键词:转速测量高精度测量基⒉算法―单片机
) z. Z* p b& a6 j) x数字转速测量法主要有两种:测频法和测周% E7 N9 v# i* B- |, ^. E0 p4 o* W( {3 N
法。测频法在低转速时误差较大,仅适合高转速;/ Z3 k0 f' l8 i1 S: Q& Y2 b ?
测周法适用于低转速场合。在测周法中,当时基
3 N* w8 B5 t4 S+ \5 L2 y$ lt一定时,则有M×At =N×T(其中M为时基脉
& H; i( s; l6 u4 p* |' J4 J1 P冲数,N为脉冲数,T为相邻两个脉冲之间的时, D& Z9 C* U3 }( z. n
间)。在测某一转速时,若要提高M,则提高Ⅳ即
3 V0 R0 y0 v3 C9 A ~可,N不能无原则地取大,取得太大则影响实时性;4 w3 f% e" k% `
取得太小,则提高不了精度。所以N应当是可以
# }( W# s) ]; g* _随转速变化而能线性变化的适当大的值。为解决4 S' e* }- T$ k/ L% y! c" Q7 u* {
以上问题,文献[1]选用浮点定时计数法,但精度和) T( W2 ~: `2 f% A/ X7 S/ n5 Z& X' t
测量范围仍可以提高。文献[2]是根据不同的转! b' _$ E/ M0 f6 K B0 T. K3 f
速事先人为计算出需要测的脉冲数(在文献中由K; P4 M; P/ F( D$ q1 ^
表示),但K不是随转速线性变化的,故对不同的3 `( l9 [% a' J' |' X( K9 z
转速适应性不强,且范围不宽、精度不高。本文提! m* ?- k( `' @/ N
出的算法,能够确保所测的脉冲数Ⅳ随转速而改
& a. d9 P n) }; `0 Q+ v变。这是通过算法实现的,无须人为判断转速高6 x3 M/ d9 Z& s) S" Z9 W' _( r& G
低,同时所设计的软件结构简单,所占机时很少。9 C) u8 L6 g( H1 P
1转速测量算法' b/ X# D& G+ A- I
本文讨论快速响应且高精度的转速测量算
n% _9 ^% H t6 X e F3 o' `% s法。假设转速脉冲信号是方波,且转子转动一转
* V. D" v# b3 s* j7 b对应一个方波。
4 j7 k W) H* C$ t% {' T由于算法的一个重要步骤就是确定所测的脉
: t6 I: W6 y/ ^* ?7 ?& k冲数N,为保证脉冲数Ⅳ随转速变化而线性变化,
6 d+ u# @/ z% G k) d2 I' t本文将转速的上次测量值n除以一个常数E后; u3 w. }9 m4 h. N- B7 u- `; c3 v
加1作为本次测量的设定脉冲数N。为了使除法: ^! J2 U( q& ]0 [7 J0 {# ~& t
/ k1 U! b g& P, K; `8 n, E
8 ]# R# G* M m) Y2 r7 L9 e
1 c: L. ]3 h' l; l5 C2 j附件下载:
) h1 W" M7 v3 j9 O# S+ e4 A% g* m1 t& m. J9 c0 n9 F( k9 c
|
|