没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
2004 Microchip Technology Inc. DS00901A_CN 第 1 页
AN901
引言
本应用笔记描述了一种完全可行且高度灵活的软件应
用,使用 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 所述的
更高级形式。 最后应该指出,本文中所有论述以及应用
软件均假定使用三相电机。
著者:
Charlie Elliott
Smart Power Solutions, LLP
合著者:
Steve Bowling
Microchip Technology Inc.
dsPIC30F 在无传感器 BLDC 控制中的应用
AN901
DS00901A_CN 第 2 页 2004 Microchip Technology Inc.
BLDC 电机换相的无传感器技术
本文讨论的方法仅适用于标准结构的三相电机(不含搜
索线圈或不对称设计) 。 另外,本文还假定采用常规
120°通电方式,这样在一些时间段会出现某相上电流
为零、不通电的现象。 为使电机运行,必须按照周期性
间隔切换通电的相 (即换相)。
要使电机正确换相,必须测量电周期中的绝对位置。 对
于常规通电,每个电周期需要六次等距换相。 这通常是
通过三个霍尔效应开关或光学开关(转子上要有相应的
圆盘)实现的。 并不需要连续的位置信息,只要检测所
需换相情况即可。图 1 给出了三个传感器的输出和每相
的相应反电动势 (Back EMF, BEMF)电压波形。
图 1: BLDC 换相图
要通过监测电机的某项特性来检测转子位置,显然该特
性必须随位置发生变化。 此外,理想的情况是该特性能
在电周期中建立唯一的位置,这将增强无传感器技术的
鲁棒性。 相磁通链随位置发生的变化会产生转矩。 这种
效应可以从磁阻和 BEMF 两方面进行考虑,这两者不但
随电流变化,而且随位置变化。 BEMF 还随速度线性变
化。 可以直接监测磁阻或 BEMF 的变化,也可以监测它
们对间接量的影响。
磁阻变化方法
如公式 1 的磁欧姆定律所示,磁阻是电阻的磁当量:
公式 1: 磁欧姆定律
在此公式中:
= 磁阻
= 磁动势
= 磁通量
磁阻表示磁通流经由钢、气隙和磁体组成的磁路的难易
程度。 磁体是非常好的磁通源,相当于电流源。 相绕组
是良好的 MMF 源,相当于电压源。 在低磁负载时,钢
的磁阻很小,并处于磁不饱和状态。 在高磁负载(一般
为 >1.5 T)下,钢的磁阻会随磁饱和的开始迅速增加。
空气具有非常高的磁阻,它与磁负载无关。 磁性材料也
有相似的特性。
磁阻随位置而变化,因此可以作为无传感器运行的基
础。 在所有 BLDC 电机中,磁阻随角度也会发生某些变
化。 从电机来看,磁阻的变化与电感的变化一样明显。
磁阻变化有明显的优点,因为在零速度下可以检测到。
但是,需要先了解要控制电机的 L(i,θ) 特性。
不幸的是,对于很多 BLDC 电机,磁阻随位置的变化太
小,无法可靠地进行测量。尤其是对于表面安装了磁体
的电机,其有效气隙很大,所以此特性在这类电机上表
现得尤为明显。 因此,磁阻的主要部分是不变的,这使
随位置发生的剩余变化很难测量。 在专门设计为低转矩
脉动的电机中,磁阻变化也会较小,因为变化的磁阻会
产生多余的转矩。 隐磁或内磁电机的磁阻随角度变化很
大,但是它们一般用正弦电压通电,因此这里不再讨
论。
导通
60
o
HALL R
HALL Y
HALL B
霍尔状态
RYB
546231546
Q1,Q5Q1,Q6Q3,Q5
Q1,Q5Q1,Q6Q2,Q6Q2,Q4Q3,Q4Q3,Q5
ℜ
MMF
Φ
--------------=
ℜ
MMF
Φ
2004 Microchip Technology Inc. DS00901A_CN 第 3 页
AN901
BEMF 法
电机的 BEMF 波形随位置和速度变化。 因此不可能在零
速度和低速时用 BEMF 检测位置。 但是,有很多应用
(例如风扇和泵)在低速时不需要位置控制或闭环运
行。 对于这些应用, BEMF 法就很适合。 有很多使用
BEMF 的方法,主要方法可以归纳如下:
• 电机端电压检测
- 通过直接测量或推算 (开关状态和 DC 母线
电压已知)。
• 中点电压检测
- 只适用于具有特殊 BEMF 特性的 Y 型连接电
机。
- 实际上不需要第 4 根线。 使用电阻网络和差
分操作,可以重新建立星型连接中心点。
• 母线电流梯度检测
- 因为换相随转子超前或滞后而发生变化,因此
取决于特定母线电流的形状。
- 无法使用快速母线电流控制。
磁通链变化法
检测磁通链随位置的变化可以有效地综合利用磁阻法和
BEMF 法。 公式 2 给出了相电压:
公式 2: BEMF 相电压
此方法对方波或正弦波通电提供了从零速度起动的无缝
运行能力。 需要使用闭环观测器,以通过所加电压和所
测相电流的开环积分来正确确定位置, 这需要预先详细
了解电机的 ψ(i,θ) 特性和有效处理能力。
所选无传感器技术的实现
具体的实现方法基于检测不通电相的BEMF 为零时的情
况。 除了可选的母线电流检测信号放大以及功率开关门
驱动电路外,采用 dsPIC30F 单芯片实现提供所有的控
制功能。
选择所谓的 BEMF “过零检测”技术是因为:
• 它适用于多种电机。
• 理论上,Y 型连接和 ∆ 型连接的三相电机都可以使
用它。 某些类别的 ∆ 型连接电机可能无法应用这
种技术。
• 不需要详细了解电机特性。
• 对电机制造容许公差要求不太严格。
• 它对电压控制或电流控制都有效。
过零检测技术适用于速度接近零时不需要闭环操作的多
种应用,它尤其适合在风扇和泵中的应用。
假设速度大于零,则每个电周期中某相的 BEMF 为零的
位置只有两个,可以通过图 2 中所示通过过零点时
BEMF 的斜率来区分这些位置。
每一段对应电周期中的一个 60°部分 (共有六个相等
的 60°部分)。(段的编号完全任意,但要与整个软件
中使用的编号匹配。)换相发生在每一段的边界处。 因
此,需要检测段的边界。BEMF 过零点和需要换相的位
置之间有 30°的偏移,必须对其进行补偿,以确保电机
平稳高效运转。
图 2: 过零检测
图 2 还给出了理想情况下的各相 BEMF 波形。 假定只有
三个电机引线可以用于检测 BEMF,则必须确定电机星
型连接中心点的电压,因为 BEMF 波形将被该星型连接
中心点的电压抵消。
V
PH iR dΨ()dt()⁄+=
501234501
SECTOR
0
0
0
= BEMF 过零点
30Þ
AN901
DS00901A_CN 第 4 页 2004 Microchip Technology Inc.
对于 ∆ 型连接的电机,操作方法有所不同,将在附录 D
中进行探讨。
前面讲过,在任一时刻只有两相是通电的,且流经这两
相的电流方向相反,图 3 说明 Y 相用于 BEMF 检测时的
情况。
图 3: BEMF 检测硬件示例
当 R 相内流经正向电流(定义为流向星型连接中心点的
电流)、B 相内流经负向电流时,Q1 和 Q6 将受到控制,
这与前面图 (图 2)中的段 1 对应。假设通电相的两端
总是对称地分别连接到 DC 电源的两个轨上,则星型连
接中心点的电压总是 ½ V
DC,与加在这两个通电相绕组
上的电压极性无关。但是,只有在每相的 R、L 和 BEMF
都相同,且每相的开关和二极管压降都相等的情况下,
星型连接中心点的电压值才为 ½ V
DC。假设现在的情况
就是这样,因此 BEMF 过零点将被偏置为 ½ VDC,这 很
容易估计到。
以最简单的形式,BEMF 过零检测方法可以这样实现:
• 通过分压器和 A/D 转换器来监测所有三相的端电压
和 V
DC。
• 在相应的时间段内检测相 BEMF 何时经过 ½V
DC。
对于某个特定的时间段,只需监测一相的电压。
• 使用一个可用的定时器测量 60° (即两次过零点
之间)的时间。将这个值除以 2,然后加载到另一
个定时器中,这样就可以取消正确换相所需的隐含
30°补偿。
实际上,尽管所测的 BEMF 波形受下面几个次级效应的
影响,实际上也不会复杂多少:
• 通电结束时,相绕组去磁会导致其一端被感应并钳
位到其中一个 DC 母线电压,因为存储在绕组中的
能量会通过反向二极管回流到电源。必须注意,反
向二极管的作用不要造成错误的过零点。
• 由于 PWM 作用使得导通相之间产生互耦,导致
“噪声”被叠加到 BEMF 上。噪声往往会在过零
位置处降到最小。
• 星型连接中心点处的电压偏离 ½ VDC。
- 如果 PWM 周期的某段时间内相电流为零,则
通电相的输出端就会变为悬空状态。通常将一
个周期中某段时间内相电流为零的这种影响称
为不连续电流。
- 对于大多数系统来说,高端和低端器件之间开
关 / 二极管压降的不同,并不会导致明显的问
题。对于某些特殊的系统,会导致正向与负向
电流区的通电宽度有较小的不平衡。
- 非梯形的 BEMF 意味着星型连接中心点电压
有所偏离,这是因为两个通电相的 BEMF 不
相等,幅度一大一小。大部分 BLDC 电机的
BEMF 波形都介于梯形和正弦之间。实际上,
这一特性不会引起问题,因为它只会改变所监
测 BEMF 在过零点位置的斜率。
在软件中舍弃换相后的最开始几个 BEMF 采样点,很容
易避开相绕组的去磁问题。不对 BEMF 波形用硬件进行
明显滤波,并且根据PWM波形仔细地选取信号采样点,
可排除互耦 PWM “噪声”和不连续电流问题。在开关
关闭之前,使用电机控制 PWM 模块的特殊事件触发器
来启动 A/D 信号转换。
RB
Q1 Q3
Q4
Q6
Y
=
V
DC
z
z
z
z
2004 Microchip Technology Inc. DS00901A_CN 第 5 页
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
®
器件也很容易满足应用程序所占用的存储
空间。
应用程序需要 276 字节的数据存储器。其余的器件存储
空间可用于软件堆栈的动态存储。
如前所述,应用程序会分配两行(64 个程序存储单元)
的器件程序存储空间作为软件参数的非易失性存储空
间。应用程序中总共有 45 个参数。
该软件是为 7.38 MIPS 速度的 CPU 编写的。在 dsPIC
器件上使用 4X PLL,并使用 7.38 MHz 晶振或外部时钟
源,可达到这一运行速度。该软件要求 5 MIPS 的最大
执行速度,所以大量的 CPU 带宽可用于其它应用任务。
可以通过修改 defs.h 文件中的常量值来修改软件,从而
实现在更高的 CPU 速度下运行。
尽管源代码有详尽的注释,但特定于电机控制的主要程
序还将在附录 C 的流程图中进行说明。表 2 说明使用了
哪些 dsPIC30F 外设及其用途。
表 1: 源代码文件
文件名 文件用途 所包含函数
defs.h
# 定义整个软件中使用的宏值
extern_globals.h
全局变量的外部声明
flash_routines.c
用于擦写闪存程序存储器的低级程序
erase_flash_row
program_flash
globals.h
全局变量声明
hardware.h
# 定义特定于 dsPIC30F 电机控制开发 PCB 的宏
inline_fns.h
头文件,包含可以提高效率的嵌入编译函数,这些函数由
ADC ISR 调用
check_zero_crossing
current_control
acquire_position
ISRs.c
所有中断服务程序以及所有陷阱服务程序
AddressError
StackError
MathError
PWMInterrupt
FLTAInterrupt
ADCInterrupt
T1Interrupt
T2Interrupt
T3Interrupt
lcd_drivers.c
访问 2x16 LCD 显示器的低级程序 太多因此无法一一列出各
个程序
lcd_messages.h
用于 LCD 显示器上显示消息的字符串常量
main.c
初始化以及后台代码
main
medium_event.c
中等事件速率处理程序本身和由它调用的所有代码 (除了
user_interface 中包含的代码)。中等事件处理程序每 10ms 执
行一次。
medium_event_handler
speed_loop
voltage_control
starting_code
剩余35页未读,继续阅读
资源评论
ioaniu
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 520马上到了两款动态爱心表白HTML代码(附源码)李峋同款爱心,快送给你爱的她或(他)吧12 情侣纪念日代码.zip
- 电子设计竞赛的单相不间断电源设计
- cutcamera1715961370938.png
- 基于MATLAB的图像处理课程设计报告.doc
- tensorflow-gpu-2.6.0-cp38-cp38-manylinux2010-x86-64.whl
- mmexport1715960553858.png
- tensorflow-gpu-2.6.0-cp37-cp37m-manylinux2010-x86-64.whl
- 通过 .NET 应用程序中的源代码查找 SQL 注入
- 电子设计竞赛2007年B题 无线识别装置.doc
- Wox全局搜索工具,一款win下的全局搜索软件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功