AN901
dsPIC30F 在无传感器 BLDC 控制中的应用
著者:
合著者:
Charlie Elliott
Smart Power Solutions, LLP
Steve Bowling
Microchip Technology Inc.
引言
本应用笔记描述了一种完全可行且高度灵活的软件应
用,使用 dsPIC30F 来控制无传感器无刷直流
(brushless DC ,BLDC)电机。 此软件将 dsPIC30F 外
设广泛应用于电机控制。所实现的无传感器控制算法特
别适用于风扇和泵。 程序使用 C 语言编写,经过特别优
化,并附有详细的注释以便于理解和程序修改。给定
软件特点
• 采用反电动势过零检测程序,无需使用位置传感元
件。
• 应用程序包含可调节参数和两种可选的起动方法以
适应特定负载。
• 可检测无传感器算法是否失效。
• 可重新起动无传感器控制而无需停止电机。
• 可控制放电电流以调节 DC 母线电压。
• 换相方案支持随速度增加而线性引入达 30°的相
位超前,进而获得更高的电机效率和更宽的速度范
围。
• 四种不同方式来控制电机速度。
• 简单的用户界面,带 LCD 显示,可通过按钮调节超
过 40 项参数。
• 软件大约占用 5 MIPS(最大),需要大约 16KB 的
程序存储空间。
• 不包含用户界面和调试代码时,应用代码可以装入
不到 12 KB 的程序存储器中,可与已设计的最小
存储器 dsPIC30F 器件 (dsPIC30F2010 )兼容。
已知限制
• 使用时,无传感器系统能可靠工作的最大输出频率
大约为 150 Hz 。 但是,这一限制可以让很常见的
4 极电机的最高运转速度达到 4500 RPM。
• 如果使用相位超前,输出频率最高可达 250 Hz( 4
极电机可达 7500 RPM )。 通过修改软件,可达到
更高速度。
• 支持对角逆变器开关器件的硬调制。
• 系统支持在闭环换相模式下运行,通常风扇和泵都
需要这种支持。
背景知识
无刷直流 (BLDC )电机体积小、可控制且效率高,因
此在消费和工业应用中得以采用。这种电机还越来越多
地被应用于汽车应用中,以避免使用皮带和液压传动系
统,并提供更多功能和改善燃料利用率。 BLDC 电机控
制所需磁性元件和电子元器件成本的不断降低使得无刷
直流电机的应用越来越广泛,同时还被用于更高的功率
级别。
由于电励磁必须与转子位置同步,BLDC 电机运行时通
常带有一个或多个转子位置传感器。 由于成本、可靠性
以及机械装配等因素,尤其是当转子浸没在液体中运行
时,要求电机不带位置传感器运行 (即所谓的无传感
器运行)。
本文假设读者已经熟悉了带有位置传感器的 BLDC 的工
作原理,因此不再详细阐述该技术。 Microchip 应用笔
记 AN857 中对 BLDC 电机控制进行了非常有用的介绍。
在参考书目列出的书籍中可以找到其他相关内容。 需要
注意的是,本文讲述的无传感器方案是 AN857 所述的
更高级形式。 最后应该指出,本文中所有论述以及应用
软件均假定使用三相电机。
2004 Microchip Technology Inc. DS00901A_CN 第 1 页
AN901
BLDC 电机换相的无传感器技术
本文讨论的方法仅适用于标准结构的三相电机(不含搜
索线圈或不对称设计) 。 另外,本文还假定采用常规
120 °通电方式,这样在一些时间段会出现某相上电流
为零、不通电的现象。 为使电机运行,必须按照周期性
间隔切换通电的相 (即换相)。
要使电机正确换相,必须测量电周期中的绝对位置。 对
于常规通电,每个电周期需要六次等距换相。 这通常是
通过三个霍尔效应开关或光学开关(转子上要有相应的
圆盘)实现的。 并不需要连续的位置信息,只要检测所
需换相情况即可。图 1 给出了三个传感器的输出和每相
的相应反电动势 (Back EMF , BEMF )电压波形。
图 1 : BLDC 换相图
HALL R
HALL Y
HALL B
导通
霍尔状态
RYB
要通过监测电机的某项特性来检测转子位置,显然该特
性必须随位置发生变化。 此外,理想的情况是该特性能
在电周期中建立唯一的位置,这将增强无传感器技术的
鲁棒性。 相磁通链随位置发生的变化会产生转矩。 这种
效应可以从磁阻和 BEMF 两方面进行考虑,这两者不但
随电流变化,而且随位置变化。 BEMF 还随速度线性变
化。 可以直接监测磁阻或 BEMF 的变化,也可以监测它
们对间接量的影响。
o
60
Q1,Q5Q1,Q6Q2,Q6Q2,Q4Q3,Q4 Q3,Q5
546231546
Q1,Q5Q1,Q6 Q3,Q5
磁阻变化方法
如公式 1 的磁欧姆定律所示,磁阻是电阻的磁当量:
公式 1 : 磁欧姆定律
MMF
------------- -=
ℜ
Φ
在此公式中:
ℜ
= 磁阻
MMF
= 磁动势
Φ
= 磁通量
磁阻表示磁通流经由钢、气隙和磁体组成的磁路的难易
程度。 磁体是非常好的磁通源,相当于电流源。 相绕组
是良好的 MMF 源,相当于电压源。 在低磁负载时,钢
的磁阻很小,并处于磁不饱和状态。 在高磁负载(一般
为 >1.5 T )下,钢的磁阻会随磁饱和的开始迅速增加。
空气具有非常高的磁阻,它与磁负载无关。 磁性材料也
有相似的特性。
磁阻随位置而变化,因此可以作为无传感器运行的基
础。 在所有 BLDC 电机中,磁阻随角度也会发生某些变
化。 从电机来看,磁阻的变化与电感的变化一样明显。
磁阻变化有明显的优点,因为在零速度下可以检测到。
但是,需要先了解要控制电机的 L(i, θ) 特性。
不幸的是,对于很多 BLDC 电机,磁阻随位置的变化太
小,无法可靠地进行测量。尤其是对于表面安装了磁体
的电机,其有效气隙很大,所以此特性在这类电机上表
现得尤为明显。 因此,磁阻的主要部分是不变的,这使
随位置发生的剩余变化很难测量。 在专门设计为低转矩
脉动的电机中,磁阻变化也会较小,因为变化的磁阻会
产生多余的转矩。 隐磁或内磁电机的磁阻随角度变化很
大,但是它们一般用正弦电压通电,因此这里不再讨
论。
DS00901A_CN 第 2 页 2004 Microchip Technology Inc.
AN901
BEMF 法
电机的 BEMF 波形随位置和速度变化。 因此不可能在零
速度和低速时用 BEMF 检测位置。 但是,有很多应用
(例如风扇和泵)在低速时不需要位置控制或闭环运
行。 对于这些应用, BEMF 法就很适合。 有很多使用
BEMF 的方法,主要方法可以归纳如下:
• 电机端电压检测
- 通过直接测量或推算 (开关状态和 DC 母线
电压已知)。
• 中点电压检测
- 只适用于具有特殊 BEMF 特性的 Y 型连接电
机。
- 实际上不需要第 4 根线。 使用电阻网络和差
分操作,可以重新建立星型连接中心点。
• 母线电流梯度检测
- 因为换相随转子超前或滞后而发生变化,因此
取决于特定母线电流的形状。
- 无法使用快速母线电流控制。
磁通链变化法
检测磁通链随位置的变化可以有效地综合利用磁阻法和
BEMF 法。 公式 2 给出了相电压:
公式 2 : BEMF 相电压
选择所谓的 BEMF “过零检测”技术是因为:
• 它适用于多种电机。
• 理论上, Y 型连接和 ∆ 型连接的三相电机都可以使
用它。 某些类别的 ∆ 型连接电机可能无法应用这
种技术。
• 不需要详细了解电机特性。
• 对电机制造容许公差要求不太严格。
• 它对电压控制或电流控制都有效。
过零检测技术适用于速度接近零时不需要闭环操作的多
种应用,它尤其适合在风扇和泵中的应用。
假设速度大于零,则每个电周期中某相的 BEMF 为零的
位置只有两个,可以通过图 2 中所示通过过零点时
BEMF 的斜率来区分这些位置。
每一段对应电周期中的一个 60 °部分 (共有六个相等
的 60 °部分)。(段的编号完全任意,但要与整个软件
中使用的编号匹配。)换相发生在每一段的边界处。 因
此,需要检测段的边界。BEMF 过零点和需要换相的位
置之间有 30 °的偏移,必须对其进行补偿,以确保电机
平稳高效运转。
图 2 : 过零检测
30Þ
0
PH iR dΨ ()dt () ⁄+ =
V
此方法对方波或正弦波通电提供了从零速度起动的无缝
运行能力。 需要使用闭环观测器,以通过所加电压和所
测相电流的开环积分来正确确定位置, 这需要预先详细
了解电机的 ψ(i, θ) 特性和有效处理能力。
所选无传感器技术的实现
具体的实现方法基于检测不通电相的BEMF 为零时的情
况。 除了可选的母线电流检测信号放大以及功率开关门
驱动电路外,采用 dsPIC30F 单芯片实现提供所有的控
制功能。
0
0
SECTOR
图 2 还给出了理想情况下的各相 BEMF 波形。 假定只有
三个电机引线可以用于检测 BEMF ,则必须确定电机星
型连接中心点的电压,因为 BEMF 波形将被该星型连接
中心点的电压抵消。
501234501
= BEMF 过零点
2004 Microchip Technology Inc. DS00901A_CN 第 3 页
AN901
对于 ∆ 型连接的电机,操作方法有所不同,将在附录 D
中进行探讨。
前面讲过,在任一时刻只有两相是通电的,且流经这两
相的电流方向相反,图 3 说明 Y 相用于 BEMF 检测时的
情况。
图 3 : BEMF 检测硬件示例
z
=
Q1 Q3
DC
V
Q4
当 R 相内流经正向电流(定义为流向星型连接中心点的
电流)、B 相内流经负向电流时,Q1 和 Q6 将受到控制,
这与前面图 (图 2 )中的段 1 对应。假设通电相的两端
总是对称地分别连接到 DC 电源的两个轨上,则星型连
接中心点的电压总是 ½ V
上的电压极性无关。但是,只有在每相的 R 、L 和 BEMF
都相同,且每相的开关和二极管压降都相等的情况下,
星型连接中心点的电压值才为 ½ V
就是这样,因此 BEMF 过零点将被偏置为 ½ VDC ,这 很
容易估计到。
以最简单的形式,BEMF 过零检测方法可以这样实现:
• 通过分压器和 A/D 转换器来监测所有三相的端电压
DC。
和 V
• 在相应的时间段内检测相 BEMF 何时经过 ½V
对于某个特定的时间段,只需监测一相的电压。
• 使用一个可用的定时器测量 60 ° (即两次过零点
之间)的时间。将这个值除以 2 ,然后加载到另一
个定时器中,这样就可以取消正确换相所需的隐含
30°补偿。
RB
z
z
Q6
z
Y
DC,与加在这两个通电相绕组
DC。假设现在的情况
DC。
实际上,尽管所测的 BEMF 波形受下面几个次级效应的
影响,实际上也不会复杂多少:
• 通电结束时,相绕组去磁会导致其一端被感应并钳
位到其中一个 DC 母线电压,因为存储在绕组中的
能量会通过反向二极管回流到电源。必须注意,反
向二极管的作用不要造成错误的过零点。
• 由于 PWM 作用使得导通相之间产生互耦,导致
“噪声”被叠加到 BEMF 上。噪声往往会在过零
位置处降到最小。
• 星型连接中心点处的电压偏离 ½ VDC。
- 如果 PWM 周期的某段时间内相电流为零,则
通电相的输出端就会变为悬空状态。通常将一
个周期中某段时间内相电流为零的这种影响称
为不连续电流。
- 对于大多数系统来说,高端和低端器件之间开
关 / 二极管压降的不同,并不会导致明显的问
题。对于某些特殊的系统,会导致正向与负向
电流区的通电宽度有较小的不平衡。
- 非梯形的 BEMF 意味着星型连接中心点电压
有所偏离,这是因为两个通电相的 BEMF 不
相等,幅度一大一小。大部分 BLDC 电机的
BEMF 波形都介于梯形和正弦之间。实际上,
这一特性不会引起问题,因为它只会改变所监
测 BEMF 在过零点位置的斜率。
在软件中舍弃换相后的最开始几个 BEMF 采样点,很容
易避开相绕组的去磁问题。不对 BEMF 波形用硬件进行
明显滤波,并且根据PWM 波形仔细地选取信号采样点,
可排除互耦 PWM “噪声”和不连续电流问题。在开关
关闭之前,使用电机控制 PWM 模块的特殊事件触发器
来启动 A/D 信号转换。
DS00901A_CN 第 4 页 2004 Microchip Technology Inc.
AN901
应用软件
开发环境采用 MPLAB ® 6.40,并用 Microchip C30
optimizing compiler (v1.10.02) 进行编译。采用 MPLAB
ICD 2 进行调试和编程。 开发所使用的电机为 Hurst
Manufacturing NT Dynamo™ 标准产品系列。
大部分代码用 C 编写,为提高效率和增强功能,必要时
使用了嵌入汇编器。表 1 描述了这 16 个源代码文件的
内容和功能。
硬件资源
如前所述,在启用了编译器 1 级优化时,代码将占用
15,594 字节的程序存储空间。这包括用户界面代码以及
存储在程序空间中的一些常量。你可能会想在最终的应
用程序中删除用户界面代码。删除用户界面代码后,最
小的 dsPIC
空间。
表 1 : 源代码文件
defs.h
extern_globals.h
flash_routines.c
globals.h
hardware.h
inline_fns.h
ISRs.c
lcd_drivers.c
lcd_messages.h
main.c
medium_event.c
®
器件也很容易满足应用程序所占用的存储
文件名 文件用途 所包含函数
# 定义整个软件中使用的宏值
全局变量的外部声明
用于擦写闪存程序存储器的低级程序
全局变量声明
# 定义特定于 dsPIC30F 电机控制开发 PCB 的宏
头文件,包含可以提高效率的嵌入编译函数,这些函数由
ADC ISR 调用
所有中断服务程序以及所有陷阱服务程序
访问 2x16 LCD 显示器的低级程序 太多因此无法一一列出各
用于 LCD 显示器上显示消息的字符串常量
初始化以及后台代码
中等事件速率处理程序本身和由它调用的所有代码 (除了
user_interface 中包含的代码)。中等事件处理程序每 10ms 执
行一次。
应用程序需要 276 字节的数据存储器。其余的器件存储
空间可用于软件堆栈的动态存储。
如前所述,应用程序会分配两行(64 个程序存储单元)
的器件程序存储空间作为软件参数的非易失性存储空
间。应用程序中总共有 45 个参数。
该软件是为 7.38 MIPS 速度的 CPU 编写的。在 dsPIC
器件上使用 4X PLL ,并使用 7.38 MHz 晶振或外部时钟
源,可达到这一运行速度。该软件要求 5 MIPS 的最大
执行速度,所以大量的 CPU 带宽可用于其它应用任务。
可以通过修改 defs.h 文件中的常量值来修改软件,从而
实现在更高的 CPU 速度下运行。
尽管源代码有详尽的注释,但特定于电机控制的主要程
序还将在附录 C 的流程图中进行说明。表 2 说明使用了
哪些 dsPIC30F 外设及其用途。
erase_flash_row
program_flash
check_zero_crossing
current_control
acquire_position
AddressError
StackError
MathError
PWMInterrupt
FLTAInterrupt
ADCInterrupt
T1Interrupt
T2Interrupt
T3Interrupt
个程序
main
medium_event_handler
speed_loop
voltage_control
starting_code
2004 Microchip Technology Inc. DS00901A_CN 第 5 页
AN901
表 1 : 源代码文件 (续)
文件名 文件用途 所包含函数
parameters.h
setup.c
slow_event.c
user_interface.c
xlcd.h
表 2: dsPIC30F 外设的用途
dsPIC30F 外设 功能和配置
电机控制 PWM 模块 用对角开关的 16 kHz PWM 调制来驱动三相逆变器。输出配置为独立模式,
高速 10 位 A/D 转换器 用来在每个 PWM 周期中同时对母线电流、母线电压、速度给定和相电压
正交编码器接口 (Quadrature Encoder
Interface, QEI)
TIMER2
TIMER3
所有用户参数缺省值和关于最大值、最小值、递增率以及编辑
字符串的细节
在初始化过程中调用的所有外设的设置代码
只有缓慢事件处理程序。虽然用户界面函数从该处理程序调
用,但其代码是独立的。缓慢事件处理程序每 100ms 执行一
次。
通过 LCD 显示和按钮开关实现用户界面的各种程序。
# 定义供 lcd_drivers 使用的宏
而且特殊事件触发器用于在开关关闭之前启动 A/D 转换。
(三相中的一相) 4 个信号进行采样。采样与 PWM 模块同步。
禁止输入,但定时器用于 16 位自由模式,以提供过零检测的时间标记。
用于 16 位模式,以提供过零点事件和期望换相时间之间的延迟。
用来提供放电斩波器开关的 PWM 。
setup_ports
setup_motor_pwms
setup_adc
setup_qei
setup_timers
WriteConfig
slow_event_handler
screen_handler
process_switches
save_parameter
process_parameters
debounce_switches
edit_screen
uint_to_string
nibble_to_hex
run_screen
DS00901A_CN 第 6 页 2004 Microchip Technology Inc.
AN901
硬件
开发出的应用程序要在 dsPICDEM MC1 电机控制开发
板以及 dsPICDEM MC1L 三相低电压功率模块或
dsPICDEM MC1H 三相高电压功率模块上运行。控制板
或功率模块系统的照片参见图 4 。
图 4 :控 制 板/ 功率模块系统
这些开发工具可以从 Microchip 获得 (详情请登录
Microchip 网站查询)。或者,你也可以自己设计硬件,
但需要对软件做一些更改。
在使用 dsPICDEM 开发工具时,需要对 PCB 上的跳线
做一些改动。这些修改可参见“对功率模块的改动”和
“对电机控制开发板的改动”。
下面的框图 (图 5 )给出了电机控制的简化硬件结构。
为清晰起见,这里省略了 LCD 接口和按钮。
图 5 : 硬件框图
dsPIC30F6010
PWM3H
PWM3L
PWM2H
PWM2L
PWM1H
PWM1L
FLTA
AN0 VDC
AN1
AN2
AN12
AN13
AN14
Fault
给定
相电压反馈
三相
逆变器
IBUS
BLDC
准备
对功率模块的改动
为从功率模块获得所需的反馈信号,必须对其做一些改
动。改动要使相电压(x3 )、 V
反馈至控制板上的 dsPIC30F ,这样会使强、弱电之间
的隔离失去作用,这一点需要注意。按照以下步骤进行
修改:
1. 按照功率模块的用户手册所述去除盖子。
2. 把低阻值电阻 ( 47R 或更低)焊接到 LK22、
LK24-26 及 LK30 上。
3. 如果采用的是高压模块,为了在非隔离的模式下
修改以及使用系统,请严格遵循其它步骤。这包
括在 J5 和 J13 之间焊接一条地线,这条地线上
流过的电流值要适当。
注: 为了针对此应用进行修改,必定会使
高压功率模块的电气隔离失去作用。
务必要保证系统接地,并在主电源和
功率模块输入之间采用一个安全隔离
变压器。
4. 根据电机的目标用途,设置跳线 LK11-12 的电流
反馈比例。跳线 LK11-12 按比例缩小母线电流反
馈信号。如果有问题,可以去除 LK11-12 ,这样
可以提供最佳的保护和最高的增益反馈。
5. 如果功率模块工作在低于最大母线电压额定值
50% 的情况下,建议减小电压反馈比例,以获得
更高的反馈电压。可通过改变 R10 、R13 和 R14
的值来改变 V
DC 反馈电压,通过改变 R16- R21
的值来改变 VPH 反馈电压,这些改动是在印刷电
路板上方进行的,不需要拆卸功率模块。详情可
查阅功率模块的用户手册和原理图。
注: 为获得正确的无传感器操作,相电压
和 DC 母线电压的反馈比例必须匹配。
连接电机
应该按照正常的方式连接电机的 3 根引线和地线,引线
和地线的规格要根据电流额定值适当选择。无传感器系
统的一个优点在于电机引线的相序并不重要,因为它仅
定义哪个方向是正向的。如果有合适的位置反馈器件,
可将其用于诊断。
DC 和母线电流反馈信号
功率模块包括三相逆变器、母线电流检测电路和电压反
馈分压器。
2004 Microchip Technology Inc. DS00901A_CN 第 7 页
AN901
对电机控制开发板的改动
为了使应用软件正常工作,必须重新分配控制板上的
ADC 通道,这是因为同时对母线电流(I
压(VDC )、速度给定 (POT )和一相电压 (VPH )四
个信号进行采样。dsPIC30F 的 10 位 A/D 转换器采用专
门的输入引脚进行同时采样。 AN0 , 1 , 2 分别用于
DC、IBUS 和 POT 的采样,CH0 MUX 用于在原来为三
V
相电压所分配 AN12 ,13,14 的 VPH 信号之间切换。需
要在 PCB 上完成下列连接以重新分配模拟通道:
• 连接J6 的 AN11 引脚和 LK1 的引脚2 (LK1 的其他引
脚保持悬空)。
• 连接 J6 的AN8 引脚和 LK2 的引脚 2 (LK2 的其他引
脚保持悬空)。
• 连接 J6 的 AN2 引脚和 AN7 引脚。
注: LK1 和 LK2 用于重新分配 AN0 和 AN1 ,以
确保这些信号和 MPLAB ICD 2 之间没有冲
突,MPLAB ICD 2 将这些信号线用作缺省
的时钟和数据。
BUS)、母线电
使用 S2 和 MPLAB ICD 2
AN0 和 AN1 用来提供反馈信号,而且 MPLAB ICD 还
用它们来进行编程和调试。因此,必须在适当的时候使
用 S2 切换到 MPLAB ICD 时钟线和数据线。无论是否
调试都需要这样做。如果使用的是 dsPICDEM MC1 电
机控制开发板,并准备使用 MPLAB ICD 2 来调试,请
完成下列的第 1 至第 3 步。如果准备采用 MPLAB ICD
来进行器件编程,仅仅需要完成第 2 步到第 3 步。
1. 在 MPLAB IDE 中,在 Configure> Configuration
Bits>Comm Channel Select 窗口中选择 “Use
EMUC1 and EMUD1”选项。
2. 将 S2 调到对应于 MPLAB ICD 这边的位置,对
器件编程。
3. 编程完成后,把 S2 改到模拟位置并运行软件。
设置并调整用户参数
用户界面简单直观。LCD 显示屏和按钮开关允许调整许
多参数。在可能的情况下会出现帮助字符串。四个按钮
的功能如下:
S4
S5
S6
S7
大部分参数在其函数中都有说明。源文件 parameters.h
包括参数的补充解释和缺省值,同时还包含各个参数的
特性。如果某个语句在引号 ("")内,则该语句对应于
LCD 上显示的文本字符串。附录 A 列出了各个参数,并
包含一些参数取值的含义。系统上电后为参数 0 ,并且
开始循环访问 (从参数 0 移动至最后一个参数)。下面
有对起动参数的详细解释。
• 在待机或故障状态下激活编辑菜单。
• 在编辑菜单中回滚参数列表。
• 修改参数值时减少值。
• 运行时在两个不同的屏幕间切换。
• 在编辑菜单中向下滚动参数列表。
• 修改参数值时增加值。
• 选择要修改的参数。
• 存储新的参数值。
• 在编辑菜单没有激活的情况下起动 /停止
/ 复位系统。
• 从编辑菜单和修改参数状态退出。
推荐的设置方法
推荐使用缺省参数,以此作为设置的良好起点。缺省值
包含在 parameters.h 文件内,并在附录 A:“用户参数”
中描述。将系统配置为开环运行,也就是说起动和运行
都采用简单的电压控制,这样开始时就不需要调整速度
和电压控制环。
建议在开始时忽略与控制环相关的所有参数,集中注意
力调整起动参数 (参见 “起动参数”),以得到可靠的
无振荡起动。
一旦系统在无传感器的开环控制模式下运行,你可能希
望对控制环和其他系统参数进行一些试验。
DS00901A_CN 第 8 页 2004 Microchip Technology Inc.
AN901
硬件参数
在系统起动之前,必须确保与硬件相关的设置参数正确
无误。这些参数的设置主要取决于所选择的电机。设置
参数包括:
• Number Motor Pole
• Blanking Count
• Voltage Scale
• Current Scale
这些参数的解释可以在附录 A 中找到。
起动参数
由于低速时缺少 BEMF 信息,电机必须开环起动。如果
起动参数调整得与电机匹配,给定值不过高或过低,系
统应该无传感器运行。如果给定值过高,将会发生过电
流。如果给定值过低,系统将不能起动。良好的起点是
起动速度为速度给定的 1/2 。实现了两种不同的起动方
法,同时还要对几个参数进行调整,以根据特定的应用
调整起动。控制电机起动的参数如下:
• Direction Demand
• Lock Position 1 Time, Lock Position 2 Time
• Lock Position 1 Time, Lock Position 2 Time
• Ramp Start Speed, Ramp End Speed
• Ramp Start Demand, Ramp End Demand
• Ramp Duration
• Starting Control
• Acquire Method
• ZeroX Enable Speed
• Windmilling Demand
• Braking Ramp Time
首先要确定电机起动和运行的方向。可以通过修改
Direction Demand 参数来改变方向。在项目的最初开发
阶段,电机运转方向可能并不是很重要。但是,某些类
型的电机及一些负载需要特定的旋转方向。也可以通过
交换电机的两根电源线来改变电机运转方向。
起动程序使电机以较低的开环速度运转,随后加速到一
个最终值,以产生足够的 BEMF 电压,从而使无传感器
算法开始工作。BLDC 电机在开环模式下的运转类似于
步进电机,但是这是一个非常低效的运转模式,并且在
这种模式下运行时,电机不能产生额定转矩。
设定锁定参数
在电机运转之前,该算法在对两对绕组进行短时间通电
后,把转子定位在两个参考或锁定位置。这两个锁定位
置可以确保转子在开环起动算法开始运行之前已处于已
知的参考点上。开环起动开始前转子的位置稳定是非常
重要的,并且必须对这四个 Lock Position 参数进行相应
调整。如果 Lock Position Demand 参数设置过高,转子
会在到达锁定位置时发生振荡。如果这个参数设置过
低,转子将不会移动到参考位置。试着增大或减小 Lock
Position Demand 参数,直到转子以最小的振荡迅速移
动到两个锁定位置。在设置好给定参数之后,可以增大
或减小 Lock Position Time 参数来调整每个锁定位置的
保持时间。有些负载的惯性很大(例如大直径的风扇叶
片),转子振荡可能需要较长的保持时间才会消失。惯
性较小的负载的锁定时间可以设为一个很低的值,这样
可以使电机快速起动。配置软件时,试着使用 S7 按钮
起动电机,并在锁定时间内观察转子的运转。如果尚未
配置其余的参数,可以在锁定时间后按下 S7 按钮,退
出电机起动程序。
设定加速参数
在第二个锁定结束时,系统将自动开始以开环步进方式
对系统通电。你必须选择加速起动速度 (Ramp Start
Speed 参数)以及通电给定,使得转子锁定在通电顺序
上。
然后当系统在给定的 “Ramp Duration ”时间内加速到
“Ramp End Speed ”时,根据两个 Ramp Demand 的
值随速度线性改变给定值。开环步进速度介于起动速度
和最终速度之间,满足公式 3 给出的时间平方律函数:
公式 3 : 时间平方律函数
2
kt
ωω
其中, ω
End Speed 参数减去 Ramp Start Speed 参数得到的值,
t 表示由 Ramp Duration 参数决定的时间。
表示 Ramp Start Speed 参数,k 表示 Ramp
s
+ =
s
2004 Microchip Technology Inc. DS00901A_CN 第 9 页
AN901
通过选择加速方式来优化起动性能。加速结束时的速度
必须足够高,为系统提供足够高的 BEMF 电压,使系统
能可靠地检测过零点。
加速参数指南
首先要为加速选择起始和终止速度。这两个速度取决于
特定电机的额定速度和 BEMF 电压常量。要确保将电机
可靠地加速到某一速度,在此速度下无传感器程序能检
测到 BEMF 电压。可使用的经验法则是,将 Ramp Start
Speed 参数设置为电机额定速度值的 1/60。 Ramp End
Speed 参数可以设置为电机额定速度值的 1/6。例如,
当电机的额定速度为 3000RPM 时,可将 Ramp Start
Speed 设置为 50RPM,而将 Ramp End Speed 设置为
500RPM。
然后,需要设置 Ramp Start Demand 和 Ramp End
Demand 参数。如果使用电压控制模式 (软件缺省设
置),起始值在 50% 左右通常是合适的。设置这些给定
量的关键是,要在没有“滑转”或过多机械振动的情况
下将电机加速到最终速度。设置这些给定量最好的方法
是,在起动时观测转子,在给电机通电时监听其发出的
声音。在执行起动程序时,大多数电机会发出滴滴答答
的噪音,噪音的频率与加速的速度成比例。如果听到加
速的速度在增加,但是转子转速减慢或者只在某个固定
位置振动,就可能要增加加速给定量。如果转子看起来
加速适当,但在加速期间似乎出现过多的电机振动、过
电流或噪音过大,则加速给定量可能被设置得过高。在
大多数情况下,需要将 Ramp End Demand 参数设置得
比 Ramp Start Demand 参数高出 5% 到 15% 。如果这
两个参数相等,可以观察到电机开始加速时正常,但是
当加速的速度增加时电机开始滑转。
可调整 Ramp Duration 参数以优化起动时间。一般情况
下,应使用相对较长的加速时间起动,以确保电机正常
起动。 2 到 4 秒间的加速时间可适用于大多数电机和负
载组合。你会发现,惯性较大的负载需要较长的加速时
间达到适当的加速。当缩短加速时间时,也要增加
Ramp Start Demand 和 Ramp End Demand 参数,以
避免转子在起动时滑转。
设置起动控制
通过 Starting Control 参数(#40 )选择电流控制或电压
控制。
电流控制有利于消除由 DC 母线电压变化或电机阻抗引
起的起动电流变化。然而相对于电压控制,电流控制的
保持时间通常要延长,因为转子振动比电压控制时明
显。电流控制的 PID 环也需要调整。
如果使用电流控制,应当输入适当的过电流翻转电平,
因为它按比例修正给定量。要确保输入正确的电流反馈
比例 (如何选取恰当的值请参见 parameters.h )。
采用电压控制 (缺省设置)方法,不能检测母线电流,
且不能使用针对某些应用的相关软件。只有在很清楚
DC 母线电压的变化并且负载转矩可重复时,才能使用
电压控制方法。否则起动可能失败。
两种不同的采集方法
两种不同的采集方法,在本文和所有源代码中称为“方
法 1 ”和 “方法 2 ”,在无传感器运行之前,使用这两
种方法采集初始位置。通过 Acquire Method 参数(#43 )
来选择使用哪种方法。要根据具体的应用来选择适合的
方法。
方法 1
采用此方法时,一旦电机速度超过了 ZeroX Enable
Speed 参数 (#44 ),系统就开始查询过零点。如果在
电周期的两个连续段中检测到了过零点,就会起动无传
感器换相。应将 ZeroX Enable Speed 参数设置为某一
速度,此速度要高于可观测到平滑运转和产生足够反电
动势时的速度。调整起动参数时,用示波器监测一相或
多相电压,可以很好地确定此参数。通过 J6 连接器的
AN12 、AN13 和 AN14 信号,可很好地观测到相电压。
为了使此方法能正常工作,ZeroX Enable Speed 参数必
须低于 Ramp End Speed 参数。
当以开环步进方式通电,电机以恒定速度运转时,假定
可忽略负载扭矩,转子位置比无传感器控制下运转时的
位置大约超前 90 °(电角度)。所以,BEMF 过零点发
生在某相通电时,而不是不通电区,因此无法检测到过
零点。为了能检测到过零点,必须以某一速率使电机加
速。加速期间,电机和负载的惯性会引起位置上的滞
后,这样就消除了某些或所有自然的相位超前。加速速
率越高,滞后越严重。这样,通过选择正确的起动参数
和相对可预测的机械负载,在某相不通电期间会出现
BEMF 过零点并能被检测到,使系统起动。
DS00901A_CN 第 10 页 2004 Microchip Technology Inc.
AN901
由于方法 1 能提供快速且无缝的起动,因此对于许多应
用都可以选择这种采集方法。然而,为了使此方法能正
确工作,必须慎重选择控制加速的起动参数。如果机械
负载变化或不可重复,则可能导致采集失败。
方法 2
当加速时,方法 2 并不查询过零点。而是当加速结束时,
电机暂时断电。此时,三相电压均可检测到。当相电压
升高到零伏以上时,相电压当前值和前后值可用来确定
旋转方向和位置。当需要两个不同的相电压上升沿时,
系统采集最多需要一个旋转电周期。采集完后,系统重
新通电,并以无传感器换相运行。所以此方法的优点
是,不需要对电机和负载有很深入的了解。只需要有足
够的反电动势和惯性,以确保在采集时电机不停转。而
且,在加速结束前,不应有过多的速度振荡。这种采集
方法用来提供快速起动检测(系统一起动就发生明显的
旋转)和风力旋转检测 (参见表 3 )。
表 3 : 采集方法的比较
方法 1 方法 2
优点
• 快速起动
• 电机无停转风险
• 需要认真调整参数
• 需要可预测的负载
• 参数调整简便
• 可用于机械负载无法预
测情况
缺点
• 需要相当大的惯性或低
负载且在适当的速度下
运行,以避免停转
风力旋转
在风扇应用中,由于周围气流的作用,当电机断电时,
风扇的叶片常会旋转,这种现象被称作风力旋转。为了
提供稳定的起动,开始时要对速度和方向进行检测。如
果电机已经旋转,并且旋转方向和给定方向一致,则可
使用方法 2 实现快速起动。
如果电机正在旋转,并且旋转方向和给定方向相反,则
必须使电机减速直到停止。可使用正常的起动方法,以
希望的方向起动电机。这可通过对电机通电,从旋转检
测和降速期间检测到的速度开环起动来实现。达到 0 Hz
所需的时间由 Braking Ramp T 参数控制,以 10 ms 为
增量进行设置。 Windmilling Dem 参数设置风力旋转减
速期间使用的给定百分比。应该调整这两个参数,以确
保系统在制动时锁定。
起动参数检查修正
如果所选的参数设置不能使系统正确起动,则按照下面
建议的顺序进行调整:
锁定参数
首先,要确保初始定位正确。延长两次锁定的时间来观
测锁定时的运动。在电机确实可以正确响应后,将锁定
时间减至可接受的值。有时电机会在第一次锁定要求的
位置停止,这意味着在第一次锁定时没有观测到任何运
动。然而,相电压的检测将确保仍然正确通电。
通常,系统起动负载较小时,例如大多数风机,需要低
的速度给定起动转子。因为这种负载也可能阻尼较小,
因此速度给定太高可能引起不希望的振荡。而对于起动
负载较大的系统 (例如某些水泵),则需要较高的速度
给定来起动转子。幸运的是,这些负载通常阻尼较大。
某些具有高传动转矩或惯性的复杂负载可能需要较高的
速度给定起动和较长的锁定步骤时间,很适合于采用这
种无传感器控制。。
Ramp Start Demand
第二次锁定后,系统立即开始以预定的初始速率使电机
步进运转。转子必须与通电顺序同步。如果速度给定太
低或者速度太快,转子就可能在这一位置通电失败。相
反地,如果速度太慢而速度给定太高,转子可能会在某
一位置附近振荡,从而导致同步失败。
和 Speed 参数
2004 Microchip Technology Inc. DS00901A_CN 第 11 页