AN984
使用 dsPIC30F MCU 控制交流感应电机
作者:
Steve Bowling
Microchip Technology
引言
此应用笔记说明了如何使用 dsPIC30F MCU 来控制交流
感应电机 (AC Induction Motor, ACIM)。本文中的讨
论基于 dsPICDEM™ MC 电机控制开发系统,但是您仍
可选择使用自己的硬件。 dsPICDEM MC 电机控制开发
系统带有电气隔离设备并且具有故障保护功能。有了这
些功能,就可以安全地开发电机控制应用程序并避免软
件错误对硬件造成损害。
此应用笔记中提供的代码是一个简单的示例,它实现了
对 ACIM 的基本变速控制。有助于您学习 dsPIC30F 架
构和 ACIM 控制的基础知识。
推荐使用的硬件
此应用笔记中给出的代码可以在下列 Microchip 设备上
运行:
®
• MPLAB
(部件号:DV164005)
• dsPICDEM MC1 电机控制开发板
(部件号:DM300020)
• dsPICDEM MC1H 3 相高压电源模块
(部件号:DM300021)
• 3 相 ACIM 高压电机 (208/460V)
(部件号:AC300021)
如果您喜欢,也可使用自己的 3 相或单相 ACIM。推荐
的功率范围为 1/6 到 1/2 HP。
ICD 2 在线调试器和器件编程器
背景知识
变速 ACIM 驱动从工业控制应用演变而来。过去更偏向
于使用绕组式直流电机,因为它们更易于控制。只要简
单地改变电机电流就可以调节转矩输出和电机速度。然
而,这些直流电机确实存在一些缺点。在工业应用中使
用的直流电机需要定期检修,以替换磨损的电刷和转子
绕组。由于直流电机的转子绕组在机壳内部,所以它们
的散热十分困难。
ACIM 具有简单的转子构造并且不使用电刷。由于这些
原因, ACIM 比直流电机更耐久。唯一需要保养的机械
组件只有转子轴承。该转子就是一个由磁性叠片构成的
钢笼,因此耐热性要好得多。 ACIM 的耐久性使它成为
了一种极具吸引力的选择。
ACIM 的变速控制从概念上说非常简单。必须改变驱动
电压的频率和幅值以改变电机速度。早期的 ACIM 驱动
电路采用 SCR 器件,连接方式如图 1 所示。通过在适
当的时间开通每个 SCR,可以在电机各相上产生非常近
似的正弦电压。由于有六种不同的方法可以使 SCR 器
件导通从而产生电机电流,这种类型的电路通常被称为
“六步”驱动电路。但是,六步驱动电路的高次谐波成
分会产生高热量,而且在低频时性能不佳。
从六步驱动时代至今,半导体技术已有了巨大的进步。
SCR 器件现在被 MOSFET 或 IGBT 器件取代,后面这
两种器件能以最小的功率损耗在相对较高的频率下导通
和关断。可以使用 PWM 信号控制这些器件以产生连续
变化的驱动电压和电流。
其他参考文档
以下应用笔记提供了有用的背景信息:
,“
• AN887
(DS00887)
• AN889
Motors Using PIC16F7X7 Microcontrollers
(DS00889)
• AN900,“Controlling 3-Phase AC Induction
Motors Using the PIC18F4431
• AN908
量控制》
2005 Microchip Technology Inc. DS00984A_CN 第 1 页
AC Induction Motor Fundamentals
,“
VF Control of 3-Phase Induction
”
(DS00900)
,《使用
dsPIC30F
(DS00908A_CN)
实现交流感应电机的矢
”
”
AN984
图 1: SCR 逆变器电路
交流
电源
SCR X6
3 相
ACIM
+
单相 ACIM 与三相 ACIM 的比较
大多数工业用电机具有三相绕组。三相电源广泛用于工
业环境。民用环境通常只使用单相电源,这就为在民用
环境中使用 ACIM 带来了问题。
三相电机是用来进行变速控制的最佳选择。在所有运行
速度下,三相电机均能提供良好的转矩性能。也可使用
单相电机,但是它们在低速范围内性能受限。某些单相
感应电机在低速运行时,可能会有强烈的转矩脉动。
三相电机通以三相电源后,可以在定子绕组中产生真正
的旋转磁场。但是,如果不做一些修改,只带有单个定
子绕组的 ACIM 将无法产生旋转磁场。可用以下几种方
法解决该旋转磁场的问题。
罩极电机具有由层叠铁片构成的磁极结构。在该结构中
放置了一个线圈。通过在两个关键位置将短路环环绕在
磁极叠片上可以产生 “旋转”磁场。短路环使磁通分布
不均,从而产生旋转磁场。
解决旋转磁场问题的另一个方法是在定子上的不同位置
放置两个电绕组。这种类型的电机称为分相 ACIM。在
大多数情况下,两个绕组中的一个绕组具有较低的电阻
抗,被指定为主绕组或“运转”绕组。另一个绕组具有
较高的阻抗,被指定为副绕组或 “起动”绕组。
通常,有三种类型的分相电机。第一种类型具有两个绕
组、一个离心式开关和一对输入端。这类电机通常用于
风扇和鼓风机。起动时,两个绕组并联。当电机接近全
速时,离心式开关会断开起动绕组。一旦电机以足够的
速度旋转之后,无需起动绕组就可运转。这类电机在起
动时效率不高,但是风扇或鼓风机在低速时通常也不会
带有很大负载。
第二种分相电机有两个绕组、一个离心式开关和一个与
起动绕组串联的电容。这个电容提供相移从而增大了起
动转矩并减小了起动电流。当电机接近全速后,离心式
开关断开起动绕组 (和电容) 。这类电机通常被称为
“电容起动”电机。
第三类分相电机省去了离心式开关,但是仍有一个电容
与副绕组串联。由于没有离心式开关,因此副绕组从不
会断开。这类分相电机通常被称为 “电容运转”电机,
在所有类型的分相电机中性能最佳。电容运转电机在运
行速度范围之内有最佳的转矩。在所有类型的单相
ACIM 中,电容运转电机是进行变速控制的最佳选择。
DS00984A_CN 第 2 页 2005 Microchip Technology Inc.
AN984
逆变电路
变速 ACIM 应用需要逆变电路来完成两个功能。首先,
输入的主交流电需要经过整形和滤波以产生直流母线电
压。其次,直流母线电压必须再转换为为电机供电的交
流电流。图 2 中的电路可用来控制三相电机。
您可能已注意到我说的是“交流电流”而不是“交流电
压”。我们将使用在 dsPIC
控制逆变器电路中的功率晶体管。如果将示波器探头放
在三相连接中的某相连接上,将会看到幅值大约与直流
母线电压相等的 PWM 信号。由于电机绕组是感性的,
输入电压将被积分产生与 PWM 占空比成比例的电机电
流。调制 PWM 占空比,即可产生任意波形的交流电流。
图 2: 三相逆变器电路
交流主
供电电压
®
MCU 上电机控制 PWM 来
+
根据想要控制的 ACIM 的类型可以使用不同类型的逆变
器电路。无论使用何种类型的逆变器电路,都可以把直
流母线上的每对互补的晶体管视作受 PWM 发生器控制
的单个器件,如图 3 所示。每对互补的晶体管均连接到
电机的一相绕组。
像使用数模转换器那样,使用 PWM 发生器同样可以产
生任何所需波形的电机电流。50% 的 PWM 占空比一般
被用作零电流参考点。如果所有的 PWM 占空比都是
50%,那么将对每相绕组施加同一个平均电压,电机中
流过的平均电流为零。如果 PWM 的占空比高于 50%,
那么在绕组中将产生正电流。如果占空比低于 50%,那
么在绕组中将产生负电流。
IGBT X6
3 相
ACIM
图 3: PWM 框图
PWM 发生器
dsPIC® PWM 外设
死区延迟
死区延迟
驱动器
驱动器
V
BUS(总线电压)
负载
2005 Microchip Technology Inc. DS00984A_CN 第 3 页
AN984
可供单相电机选用的逆变器电路
如果希望使用晶体管逆变器电路控制分相电机,有几种
不同的逆变器拓扑方案可供选择。如果希望省去电容而
用软件实现相移,可以使用上面介绍的三相逆变器电
路,如图 4 所示。使用逆变器驱动副绕组,可以在副绕
组上产生任意相移和幅值的电流。
图 4:用3 相逆变器驱动分相电机
交流主
供电电压
图 5:用H 桥逆变器驱动分相电机
+
分相电机也可以用 H 桥逆变器驱动,如图 5 所示。此
方案需要一个运转电容,但是省去了两个逆变器开关器
件。此电路的缺点在于电机的旋转方向是由电路中电容
的位置决定的。H 桥逆变器电路还可以用来驱动具有单
个绕组的罩极电机。
驱动分相电机或罩极电机的另一个方法是使用带 H 桥逆
变器的倍压电路,如图 6 所示。在此电路中,开关器件
上会有更高的直流母线电压。
副绕组
主绕组
公共端
交流主
供电电压
图 6: 用倍压器电路驱动分相电机
交流主
供电电压
运转电容
+
+
+
主绕组
公共端
副绕组
主绕组
公共端
DS00984A_CN 第 4 页 2005 Microchip Technology Inc.
AN984
产生正弦波
产生正弦波形最简便的方法就是使用查找表。也可以花
费 CPU 时间来实时计算正弦值,但是这样做不划算,因
此通常会使用一个包含正弦波所有点的查找表。每经过
一个周期性的间隔从该表读出正弦值,将该值进行换算
使之符合所允许的占空比范围,然后将它写入占空比寄
存器。
软件中的正弦指针变量用于定义表中的当前位置。必须
以周期性的间隔 (通常在每个 PWM 周期的开头)调节
此指针。如果在每个间隔将固定的调节值加给该指针,
则该软件指针将以固定的频率在表中前移。查找表的长
度通常被设置为 2 的偶次幂,如 64、128 或 256。因 此
每次改变指针的值后均无需软件检查该值。该指针计满
返回并复位为 0。
表中点的数量
这是在创建查找表时经常被问到的问题。对于此问题没
有明确的答案。表中的点太少将导致电机电流波形中的
“阶梯”效应。阶梯效应将引起电机电流失真,从而导
致更高的发热。而表中的点太多则会用尽 MCU 宝贵的
存储器空间。一个很好的经验方法是将 PWM 载波频率
除以所需的最大调制频率所得的值作为查找表中的点
数。通常选择刚超出音域的频率作为 PWM 载波频率。
假定为典型的 ACIM 选定了 16 kHz 的 PWM 载波信号,
并且最大调制频率为 60 Hz:
公式 1:
表中值的个数 = f
PWM/fMODMAX
= 16,000/60
= 267
正弦表指针
选定了正弦表的大小之后,就可以选择正弦表指针变量
的大小了。假定使用了含有 256 个值的表来获取正弦
值。乍一看,可能觉得 8 位指针值已经足够了。然而,
您会希望指针值大一些以便产生很低的调制频率。
此应用笔记中的代码示例使用了16 位的正弦表指针。该
指针可表示完整的 360度角度,其中 0x0000 表示0 度,
而 0xFFFF 表示 359.9 度。每次需要从查找表中获取新
值时,指针变量的高 8 位被用作指针索引,而低 8 位可
被视作小数位。
您可能想知道调制频率的分辨率。要确定此分辨率,需
要知道调节正弦表指针的频率。现在,假定每个 PWM
周期调节一次。假定 PWM 频率为 16 kHz,调制频率分
辨率将是:
公式 2:
调制频率分辨率 = f
= 0.244 Hz/ 位
因此,此角度分辨率和 PWM 载波频率允许每一步对调
制频率调节 0.244 Hz。对于我们的变速应用,当调制频
率为 60 Hz 时电机全速运行。要确定提供 60 Hz 调制频
率的表指针增量值,请使用以下公式:
公式 3:
f
/0.244 = 60/0.244
MOD
= 246 位
如果每次 PWM 中断时,将正弦表指针加上该值 246,那
么我们将会得到 60 Hz 的调制频率。
PWM
/216
对于此例,含有 256 个值的正弦表已经足够了。实际
上,此应用笔记提供的代码使用的是含有 64 个值的表,
而且能够提供良好的结果。
2005 Microchip Technology Inc. DS00984A_CN 第 5 页
AN984
如何产生带有相位偏移的多个正弦输出
我们想要产生具有不同相位的多个输出来驱动 ACIM。
通过将指针变量加上固定的偏移值可以为某个特定的输
出确定相位偏移。
三相输出
二进制计数很适合在三相系统中使用。假定使用的指针
大小为 16 位,那么 0x5555 提供 120 度的偏移,而
0xAAAA 提供 240 度的偏移。 在每次 PWM 中断时将这
两个偏移值加上正弦表指针从而为第二和第三相提供两
个另外的指针。由于使用了 16 位运算,因此若正弦表
指针加上偏移后导致了溢出,将会使指针绕回到起始位
置。
单相输出
如果希望使用 H 桥逆变器驱动一相电机绕组,那么可以
用 0 度相位偏移调制桥的一边,用 180 度偏移调制桥的
另一边。如果使用 16 位正弦表指针,偏移值 0x8000 将
提供 180 度偏移。可能需要 90 度偏移来驱动分相电机
的副绕组。在这种情况下,可以使用正弦指针偏移值
0x4000。
正弦表指针的获取
为了获得索引值以从表中查找正弦数据,将 16 位正弦指
针右移以丢弃在 “正弦表指针”部分中描述的 “小数”
位。如果使用含有 256 个值的表,则只需将指针的高 8
位用作查找表的索引。
正弦表中查找值的换算
一旦从表获得查找值之后,就会将这些值乘以比例值以
确定调制输出的实际幅值。“PWM 调制”部分提供了有
关换算的更多详情。
DS00984A_CN 第 6 页 2005 Microchip Technology Inc.