为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

AN1083-dsPIC BLDC电机控制

2014-01-23 34页 pdf 1MB 381阅读

用户头像

is_344428

暂无简介

举报
AN1083-dsPIC BLDC电机控制 AN1083 简介 本应用笔记说明了无传感器无刷直流(Brushless DC, BLDC)电机控制算法,该算法采用 dsPIC® 数字信号控 制器(digital signal controller, DSC)实现。 该算法对 电机每相的反电动势(back-Electromotive Force,back- EMF)进行数字滤波,并基于滤得的反电动势信号来决 定何时对电机绕组换相。 这种控制技术不需要使用离散 式低通滤波硬件和片外比较器。 BLDC 电机的应用非常广泛。 本应用笔记中描述的算法 适合于电气 RPM 范围...
AN1083-dsPIC BLDC电机控制
AN1083 简介 本应用笔记说明了无传感器无刷直流(Brushless DC, BLDC)电机控制算法,该算法采用 dsPIC® 数字信号控 制器(digital signal controller, DSC)实现。 该算法对 电机每相的反电动势(back-Electromotive Force,back- EMF)进行数字滤波,并基于滤得的反电动势信号来决 定何时对电机绕组换相。 这种控制技术不需要使用离散 式低通滤波硬件和片外比较器。 BLDC 电机的应用非常广泛。 本应用笔记中描述的算法 适合于电气 RPM 范围在 40k 到 100k 的 BLDC 电机。 运行于此 RPM 范围内的一些 BLDC 电机应用可以是模 式化 RC 电机、风扇、硬盘驱动、气泵以及牙钻等。 本应用笔记中描述的算法可在以下两个 Microchip 开发 板平台上实现: • PICDEM™ MC LV 开发板 • dsPICDEM™ MC1 开发板 PICDEM™ MC LV 开发板包括一片 dsPIC30F3010 DSC。上述算法在该器件上得以实现,因为该器件包含 在 PICDEM™ MC LV 开发板中。 然而,您也可使用 dsPIC30F2010 作为替代处理器以节约成本。 该板的默认配置包含一个5 MHz的晶振。 在测试该算法 时使用 7.37 MHz 的晶振。 PICDEM MC LV 开发板上所使用的资源如下: dsPICDEM MC1 开发板上所使用的资源如下: 以下适用于上述两种硬件平台: • 最大电机速度:100,000 电气 RPM • 可调节的 PID 速度控制环 • 可配置的开环起动加速过程 • 支持 DMCI 工具(见本文档的 “实现算法”部 分) 图 1: PICDEM™ MC LV 开发板 图 2: 带附加功率模块的 dsPICDEM™ MC1 开发板 处理器类型: dsPIC30F3010 或 dsPIC2010 MIPS: 21 MIPS 程序存储器: 2000 个 24 位指令字 RAM: 280 字节 晶振: 7.68 MHz 作者: Reston Condit Microchip Technology Inc. 处理器: dsPIC30F6010A MIPS: 21 MIPS 程序存储器: 2089 个 24 位指令字 RAM: 280 字节 (1) 注 1:在信号缓冲器使能的情况下,RAM的使用 率为 4400 字节。 使用反电动势滤波进行无传感器 BLDC控制  2007 Microchip Technology Inc. DS01083A_CN 第1 页 AN1083 BLDC 电机结构 该算法已在下列电机上经过测试: • 4极、12V、10A风扇电机,最高转速为29,000 RPM • 14极、12V航空发动机模型,最高转速为13,000 RPM • 4极、24V、1A Hurst BLDC电机模型DMB0224C10002 这些电机已使用与转速成正比的负载进行了测试——低 速时负载较轻,高速时满载。 在 Y 型连接的 BLDC 电机(见图 3)中,电机具有三条 引线,每条引线与一个绕组相连。 每个绕组(或串联绕 组)与一个公共点相连,该公共点为所有三个绕组共同 使用,如图 3 中上部所示。 一个简单的 BLDC 电机的基 本构造如图 3 的下部所示。 图 3: Y 型连接的 BLDC 电机 电机外层是定子,包含电机绕组。 电机内部是转子,转 子由围绕电机圆周的极性相反的磁极组成,图 4 显示了 仅带有两个磁极(南北磁极)的转子。 在实际应用中, 大多数电机的转子具有多对磁极。 当电流流过电机绕组时(如图 4 中的箭头(1)所示), 电机起动。 在该示例中,红色 (R)引线上施加了正电 势,而绿色(G)引线上施加了反电势。 在这种情况下 给电机绕组充电会在定子上产生磁场,由 N 和 S 标记指 示。 然后转子旋转,以使转子的北磁极与定子磁场的南 磁极对齐。 同样的,转子的南磁极与定子磁场的北磁极 对齐。 图 4: 流过绕组的电流 R GB 100 N S R B r r g g b b G com com com 110 010 011 101 001 Y 型连接的 BLDC 电机原理图 BLDC 电机结构 公共点 R GB 1 100 N S R B r r g g b b G com com com N N S S N N S S 110 010 011 101 001 电流 流过绕组的电流在定子上产生磁场(由 N 和S来标识),使得转子的北极和南极分别 与定子的南极和北极对齐。 DS01083A_CN 第2 页  2007 Microchip Technology Inc. AN1083 六步(梯形)换相 在本应用笔记描述的无传感器算法中,使用六步梯形或 120° 换相法为电机绕组通电。图 5 说明了六步换相的工 作原理。 每一步或每一区间,相当于 60 个电角度。六 个区间组成了 360 个电角度或一次电气旋转。 绕组图中的箭头显示了在每一步中流过电机绕组的电流 方向。 图中显示了在六步换相期间每个电机引线上施加 的电势。 六步换相序列使电机进行了一次电气旋转。 图 5: 六步换相 每一区间上都有两个绕组通电,一个绕组未通电。 每一 区间均有一个绕组未通电,是六步控制的重要特征,无 传感器控制算法就是基于此实现的。 本应用笔记使用下面的术语来说明电机速度: • 每分钟电气旋转次数 (RPMElec) • 每秒钟电气旋转次数 (RPSElec) 使用这些术语来说明电机速度比机械RPM要容易的多, 因为在涉及到电气 RPM 时,不用考虑电机极数这个因 素。机械 RPM 和电气 RPM 之间的关系可用以下来 表示: 公式 1: 机械 / 电气 RPM 关系 要保持定子中的磁场超前于转子磁场,那么一区间到另 一区间的转变必须发生在转子处于特定位置的时刻,从 而获得最佳转矩。 下一部分将讨论在带传感器的 BLDC 控制应用中如何确定转子位置。 R GB 15 4 6 2 3 60° 1 2 3 4 5 6 蓝色绕组 绿色绕组 红色绕组 区 +VBUS -VBUS +VBUS -VBUS -VBUS +VBUS 间 步骤 换相 1 给红色绕组加正电。 给绿色绕组加负电。 蓝色绕组未通电。 2 保持红色绕组电势为正。 给蓝色绕组加负电。 绿色绕组未通电。 3 给绿色绕组加正电。 给蓝色绕组加负电。 红色绕组未通电。 4 给绿色绕组加正电。 给红色绕组加负电。 蓝色绕组未通电。 5 给蓝色绕组加正电。 给红色绕组加负电。 绿色绕组未通电。 6 给蓝色绕组加正电。 给绿色绕组加负电。 红色绕组未通电。 RPMMech = (2 * RPMElec) ( 电机极数 ) RPMElec = (RPMMech * 电机极数 ) 2 RPSElec = RPMElec 60  2007 Microchip Technology Inc. DS01083A_CN 第3 页 AN1083 带传感器的 BLDC 控制 在大多数带传感器的 BLDC 控制应用中,霍尔效应传感 器用于确定转子位置。 霍尔效应传感器位于电机壳内, 每个传感器输出状态每经 180 个电角度就会变化一次 (见图 6)。 传感器 B 输出信号的上升沿与传感器 A 输 出信号的上升沿之间有 120 个电角度的偏移。传感器 C 输出信号的上升沿相对于传感器B也有120个电角度的 偏移。这样放置传感器是为了在电机换相时,传感器的 输出状态会发生改变。 图 6: 带传感器的控制 图 7 是 BLDC 电机的基本驱动电路。 每个电机引线都连 接到一个高边 / 低边开关。 区间和开关状态之间的相互 关系由驱动电路开关(如图 6 所示)表示。 图 7: BLDC 驱动电路 驱动电路开关 绿色绕组 Q1,Q5 Q1,Q6 Q2,Q6 Q2,Q4 Q3,Q4 Q3,Q5 60° 霍尔效应传感器 A 霍尔效应传感器 B 霍尔效应传感器 C Q1,Q5 Q1,Q6Q3,Q5 区间 6 霍尔状态 1 2 3 5 4 6 2 4 3 5 1 6 5 1 4 2 6 蓝色绕组 红色绕组 BR G Q1 Q3Q2 Q4 Q6Q5 DS01083A_CN 第4 页  2007 Microchip Technology Inc. AN1083 为什么使用无传感器控制? 在带传感器的控制中,使用传感器来确定电机转子相对 于电机定子的位置。 这可使电机的控制相当简单。 处理 器只需等待霍尔效应传感器改变状态,然后根据三个霍 尔效应传感器的输出来确定转子所处的区间,并相应的 对电机绕组进行换相。 带传感器的控制具有如下缺点: • 传感器价格昂贵。 除了需要购买传感器外,还需要 在制造期间将传感器安装在电机上,这就增加了安 装和接线费用。 • 传感器给电机添加了潜在的故障因素。 如果传感器 发生故障,则电机也无法继续工作。 • 在某些环境下,使用传感器不符合实际需要。 例 如,在电机处在浸没的环境中(如压缩机或泵), 传感器可能首先会发生故障。 基于各种各样的原因,在许多应用中需要使用无传感器 的BLDC控制。 本应用笔记的下一部分将介绍所述无传 感器 BLDC 控制技术的理论知识。 无传感器的 BLDC 控制 确定电机绕组换相的时刻或一区间到另一区间转换的适 当时间的关键就是转子的位置。 如果使用带传感器的控 制,则可立刻获得转子的位置。 然而,在无传感器控制 中,则必须采用其他方法确定转子位置。 该算法中使用的方法是分析电机的反电动势 (EMF)。 简单的说,反电动势是永磁式电机转子转动时,由定子 绕组所产生的电压。 反电动势的幅值与电机转速成正 比。 图 8 将有助于理解反电动势。 该图显示了带有传感器控 制的电机在转动时三条引线上的电势。 产生的三个信号 的形状与图 5 中的梯形形状非常相似。 图中添加了竖线 以帮助区分六个区间。 PWM 信号给每个绕组供电。 例 如,每三个区间,A 相就失电一次。 然而,在不驱动某 一特定相的区间内,在电机引线上仍可看到电压。 这个 电压就是反电动势。 图 8: 反电动势 A 相 B 相 C 相 注: 使用dsPIC30F6010A对运行的BLDC电机引线上的信号进行采样以捕获到这些波形。 使用MPLAB® IDE 的数据监控界面(Data Monitor and Control Interface,DMCI)工具可显示这些采样。 本文档的“实现 算法”部分对 DMCI 工具做了更加详尽的讨论。  2007 Microchip Technology Inc. DS01083A_CN 第5 页 AN1083 在未驱动区间期间的反电动势信号实际上是由于磁性转 子转过定子绕组而产生的。反电动势信号具有三个对无 传感器控制来说非常重要的特征。 这些特征包括: • 速度上升时,反电动势信号的电压幅值也增大。 • 速度上升时,反电动势信号的斜率变大。 • 反电动势信号以 0V 电压为中心对称 (假设驱动电 源轨为对称的正 / 负电压)。 第三个特征的细节如图 9 所示,它表示 A 相在非驱动区 间期间的反电动势信号。在本例中,电机由 ±12V 电压 驱动。 反电动势信号以0V为中心对称。(如果驱动电源 轨为 12V 和 0V,则信号以 6V 为中心对称。) 如果反 电动势信号为一条直线,那么信号将在该区间的一半处 (也就是该区间的 30° 电角度处)通过零线。 该点称为 过零点。 在过零事件后再经过 30° 电角度进行下一次换 相。 因此,给出一个可精确识别过零事件的算法,从而 可估算转子位置,使电机绕组在正确的时间进行换相。 理想状态下,未驱动区间的反电动势信号是一条直线。 实际情况下,反电动势信号耦合有来自驱动区间的噪 声。使用 PWM 信号来改变电压,从而改变电机转速。 由于电机绕组位置十分接近,一个绕组的 PWM 驱动信 号可耦合到另一个绕组的反电动势信号上。 存在耦合的 PWM 噪声时很难检测到过零事件。 例如, 如果单片机需要识别在某一相的未驱动区间内反电动势 信号首次穿过 0V 阈值的事件,由于 PWM 噪声导致信 号过早穿过 0V 阈值,从而使得单片机不能在该区间的 30°电角度位置检测到过零事件。 在图 9中,显而易见, 反电动势信号在 30° 电角度标记已过零两次。 能否准确地检测到过零事件是实现该无传感器算法的关 键。 图 9: 过零电压 0 50 100 150 200 250 300 350 400 450 1 9 17 25 33 41 49 57 65 73 81 89 97 105 113 121 129 137 145 +12V -12V 0V 高驱动区间 低驱动区间 未驱动区间 30° 60° 过零事件 A D C 结 果 采样数 ( 10 位 分 辨 率 ) DS01083A_CN 第6 页  2007 Microchip Technology Inc. AN1083 数字滤波 再次重申,反电动势信号不是一个平滑的信号。 从其他 相耦合的 PWM 噪声使得不能准确检测到该信号的过零 事件。图 10 显示了实际的反电动势信号,理想的反电 动势信号标识在它上面。 通过使用 dsPIC® DSC 来实现数字滤波,即可获得与理 想信号类似的滤波反电动势信号。 这是本应用笔记所讨 论的算法的前提——给出一个滤波反电动势信号,则可 更准确且方便地检测出实际过零事件(30° 电角度标 记)。 当检测到一个过零事件时,dsPIC DSC 启动一个 定时器从设定值开始向下计数,定时器为 0 时电机绕组 换相。 但是,对信号进行滤波也存在一个缺点。 无论信号滤波 是以数字式完成还是在硬件中完成,滤波信号与实际信 号相比总是存在一些相位延迟。 图 11 对相位延迟进行 了说明。 图 10: 实际和理想的反电动势信号 图 11: 与理想信号存在相位延迟 0 50 100 150 200 250 300 350 400 450 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 理想的反电动势 实际的反电动势 过零 阈值 0 50 100 150 200 250 300 350 400 450 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 理想的反电动势 实际的反电动势 过零 阈值 相位延迟  2007 Microchip Technology Inc. DS01083A_CN 第7 页 AN1083 幸运的是,使用数字滤波器时,给定滤波器规范以及反 电动势信号的频率就可计算出相位延迟。 然后将向下计 数器的值减去计算出来的相位延迟。 针对该算法,Microchip dsPIC DSC 数字滤波器设计 ( Digital Filter Design)工具用来设计反电动势 滤波器。该设计工具可自动计算滤波器的相位延迟。 下面几段将介绍如何使用 dsPIC DSC 数 字 滤 波器设计工具来设计20 kHz PWM信号的滤波器。 数字滤波器设计工具需要输入下列信息: • 滤波器类型 • 采样频率 • 带通频率 • 带阻频率 • 带通纹波(db) • 带阻纹波(db) • 滤波器阶数 本应用中使用了 IIR 滤波器,而不是 FIR 滤波器,因为 IIR 滤波器执行时间相对较短。 与具有类似响应特征的 IIR 滤波器相比,FIR 滤波器需要更高阶数。 此外, IIR 滤波器与有类似响应的 FIR 滤波器相比,具有更短的相 位延迟周期。 该算法中使用的滤波器参数如表 1 所示。 表 1: 滤波器参数 指定这些参数后,dsPIC DSC 数字滤波器设计工具即可 计算 IIR 滤波器的系数,并生成实现滤波器所必需的源 文件和头文件。然后将这些文件添加到 MPLAB® IDE 中 的无传感器 BLDC 电机控制项目中。 dsPIC DSC 数字滤波器设计工具使用几个图来显示滤 波器的响应。 这些图包括: • 幅频关系曲线 • 对数幅频关系曲线 • 相频关系曲线 • 群延迟与频率关系曲线 • 冲激响应与时间关系曲线 • 阶跃响应与时间关系曲线 本应用笔记中描述的算法着重强调了群延迟与频率关系 曲线,如图 12 所示。 图 12: 群延迟曲线 群延迟曲线显示了滤波信号相对于给定电气旋转频率的 实际反电动势信号的延迟(单位为秒)。 假设电机最大 转速为 100,000 电气 RPM,则每秒最大电气旋转为 1666。按照群延迟曲线,在 1666 Hz 处滤波信号将有约 90 µs 的相位延迟。在 0 Hz 时,相位延迟约为 87 µs。 两个延迟时间的差异可忽略,因此在电机的整个速度范 围中可将相位延迟当作一个常量。 下一部分将介绍相位延迟对无传感器BLDC电机控制算 法的影响。 参数 值 滤波器类型 低通 Butterworth IIR 采样频率 49152 Hz 带通频率 4000 Hz 带阻频率 8000 Hz 带通纹波 0.1 db 带阻纹波 60 db 滤波器阶数 5 阶 注: 实际上在无传感器 BLDC 算法中使用了两 个滤波器。 使用两个滤波器的原因及其规 范将在本文档后面给予介绍。 DS01083A_CN 第8 页  2007 Microchip Technology Inc. AN1083 反电动势的特征 电机转速的快慢使得反电动势信号的特征完全不同。 因 此无传感器 BLDC 控制算法根据电机速度,可使用两种 方式对反电动势进行分析。 要了解为什么会存在两种实 现方法,首先应该先了解反电动势信号在电机高速和低 速运行时的特征。 低速反电动势特征 速度非常低时,不会产生明显的反电动势。 某一特定相 的非驱动区间的反电动势信号基本上是平的。 因此也无 法分辨过零点。 随着电机转速加快,反电动势信号开始 出现斜坡。 除非反电动势信号具有足够的斜率以允许准确的确定过 零事件,否则无传感器算法将不起作用。 所以,所有无 传感器 BLDC 算法必须具有一个开环起动加速度,然后 无传感器算法才能够起作用,并对电机绕组换相。 在开 环起动加速期间,直到反电动势信号开始呈现梯形形状 时电机才开始明确换相,如图 8 所示。 电机低速运行时 的反电动势信号如图 13 所示。 在低速时,由于反电动势信号的斜率较小,使得很有可 能在非驱动区间中心的某点检测到过零事件。 反电动势 信号上的所有噪声,甚至是滤波信号,都可导致过早地 检测到过零事件。 对无传感器算法来说,对所有三个反电动势信号进行采 样和分析非常重要。通过在电机的所有三相中查找过零 事件,算法可在下一区间纠正由过早检测到过零事件而 导致过早换相。 图 13 显示了理想滤波信号的相位延迟。 在低速时,相 位延迟相对于区间长度来说非常的小。 注意,滤波反电 动势信号上的过零事件在下一次换相之前发生。 这点非 常重要,因为低速时,一旦算法确定发生了过零事件, 就将开始准备进行下一次换相。 图 13: 电机低速运行时的反电动势 0 50 100 150 200 250 300 350 400 450 1 9 17 25 33 41 49 57 65 73 81 89 97 105 113 121 129 137 145 过零 阈值 30° 非驱动区间 相位延迟 实际的过零点 检测到过零点  2007 Microchip Technology Inc. DS01083A_CN 第9 页 AN1083 高速反电动势特征 当电机高速运行时,反电动势具有不同的特征,如图 14 所示。 一个明显的区别为在区间开始处反电动势信号具 有较大的电压尖峰。 该电压尖峰由感应冲击所导致。 高 速时,电机绕组可存储更多的能量。 当电机的某一相从 被驱动变为三态时,绕组中的能量将流向某处,因此会 出现大电压尖峰。 在高速时,反电动势信号斜率更大。 因此可更容易地 检测到过零事件。 随着电机速度的增加,每区间所消耗的时间变短。 这具 有两个影响: • 因为电气旋转频率变高,滤波器的相位延迟相比区 间宽度来说变得更长。 因此,将在下一次换相之后 检测到滤波信号的过零事件。 • 若在电机的整个速度范围内,使用同一个恒定的采 样频率,则在电机高速运行时,每区间 ADC 所能 采样到的 BEMF 数也将减少。 也就是说,与区间 长度有关,随着电机速度变快,检测到过零事件的 几率将降低。 图 14: 反电动势和电机高速运行 0 50 100 150 200 250 300 350 400 450 1 13 25 37 49 61 73 85 97 109 121 133 145 157 169 181 193 205 217 感应冲击造成的 0V 特征: • 换相后的立即失真 • 滤波器相位延迟明显 • 每个区间的采样数大大减少 磁场“崩溃” 未驱动区间 导致大电压尖峰 实际 过零点 检测到的 过零点 DS01083A_CN 第10 页  2007 Microchip Technology Inc. AN1083 无传感器实现 根据反电动势在电机低速和高速运行时的特征,有两种 实现方法可优化无传感器算法的低速和高速性能。 从 低速到高速实现方法的转换为无缝转换 (反之亦然), 且具有内置的磁滞区。 默认情况下认为电机转速增加 时,从低速到高速实现方法的转换发生在电机转速达到 每秒 300次电气旋转时;电机转速减小时,从高速到低 速的转换发生在电机转速为每秒200次电气旋转时。 用 户可设置转换速度 (见 “调节过程”部分以获得更多 详细信息)。 低速实现 在该算法的低速实现方案中,dsPIC30F ADC 模块对电 机的所有三个相进行采样。 得到三个采样结果之后,将 产生一个 ADC 中断。 然后这些采样被送至三个相同的 IIR 滤波器,每相一个,以产生三个滤波采样。 每相的 采样频率为 49,152 Hz,比 PWM 频率(20 kHz)快两 倍多。 在所有区间(无论驱动与否)都要对每相进行采样。 由 于采样频率大于 PWM 频率的两倍,如果采用 PWM 信 号对相通电,则滤波信号反映在各区间期间施加到电机 绕组上的平均电势。这有助于创建一个类似梯形的滤波 信号。 图 15 显示了对两相进行采样得到的反电动势信号。此 外,还在图中标注了各自的理想滤波信号(带相位延 迟)。 通过比较滤波信号和过零阈值来确定过零事件。 算法目前正在分析的相,以及反电动势信号是在上升还 是下降,都由电机目前所处的区间来决定。 图 15: 低速实现 注: 从技术上来讲,反电动势仅指电机引线上 的电势,该电势是电机作为发电机时产生 的。 也就是说,当 PWM 信号施加到电机 上时,产生的不是反电动势。 然而,为简 单起见,本文档将每相的连续采样描述为 “采样反电动势信号”。 0 100 200 300 400 500 0 100 200 300 400 500 A 相 B 相 Timer1 Timer3 Timer3 超时时电机换相 检测到的 过零点 实际 过零点 带相位延迟的理想反电动势 信号 0V 0V  2007 Microchip Technology Inc. DS01083A_CN 第11 页 AN1083 dsPIC30F 数字信号控制器有五个片上 16 位定时器。 Timer1 用于测量从一个过零事件到下一个过零事件所 消耗的时间。 该时间相当于一个 60° 电角度。 假设在检 测过零事件时没有相位延迟,则下一次换相将在经过 30° 电角度时发生。 将 Timer1 捕获到的值除以 2,得到 经过 30° 电角度所需的时间。 理论上,该值可被装入 Timer1周期寄存器,以用于另一个称为换相定时器的定 时器。 当产生换相定时器中断时,将电机绕组换相到下 一状态。 必须从 30° 电角度的时间中减去几种延迟。 第一个是数 字滤波器的相位延迟。 使用 dsPIC DSC 滤波器设计工 具,该延迟约为 90 µs。 另一个延迟是处理 ADC 中断所需的时间。 ADC 中断服 务程序(Interrupt Service Routine, ISR)先执行三个 IIR 滤波器,然后才能确定是否发生了过零事件。 该过 程约需要 1.7 µs。必须从 30° 电角度的时间中减去每个 延迟,然后才能将其装入换相定时器周期寄存器。 Timer3 用作换相定时器。 当发生过零事件时,将由公式 2 指定的值装入 Timer3 周期寄存器。 公式 2: 针对低速实现方案的 TIMER3 周期 其中: PR3 = Timer3 周期寄存器的值 T30 = 计算得到的转过 30° 电角度的值 DFILT = 低速滤波器相位延迟 DPROC = 低速 ADC 中断处理延迟 DPA = 相位超前 (见“相位超前” 部分以获得更多 详细信息) 随后启动Timer3并允许Timer3中断。 Timer3中断发生 时,电机绕组换相到下一状态。 图 16 所示为低速实现方案的结果。 图 16: 低速实现方案的结果 PR3 = T30 – DFILT – DPROC – DPA 0 50 100 150 200 250 300 350 400 450 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 0 50 100 150 200 250 300 350 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 未滤波的 反电动势 (低速) 数字 滤波后的 反电动势 (低速) DS01083A_CN 第12 页  2007 Microchip Technology Inc. AN1083 总的来说,低速实现方案的工作原理如下: 1. 电机的所有三相都是由 ADC 模块以 49,152 sps 采样速率采样得到的。 2. 所有三相的采样信号都经过滤波。 3. 根据电机当前状态,对相应相滤波后的采样信号 进行分析以查看是否发生了过零事件。 4. 当检测到过零事件时,保存 Timer1 的值,然后 将 Timer1 复位。 5. 将所保存的 Timer1 值 (与经过 60° 电角度的时 间相同)除以2,再减去 IIR滤波器相位延迟、处 理延迟以及相位超前, 得到的结果表示到下一次 换相的时间。 6. 将该结果装入 Timer3 周期定时器,随后启动 Timer3,并允许 Timer3 中断。 7. 当发生Timer3中断时,Timer3停止计数并复位, 且禁止Timer3中断。 电机绕组换相到下一状态。 图 17 所示为无传感器 BLDC 算法的低速实现方案的流 程图。 图 17: 低速实现方案的流程图 采样 反电动势 ADC 中断 滤波采样 检测到 过零事件? 计算到区间更改 所经过的时间 装载 Timer3 启动 Timer3 退出 ADC ISR 是 否 Timer3 中断 执行 区间更改 停止 Timer3 退出 Timer3 ISR  2007 Microchip Technology Inc. DS01083A_CN 第13 页 AN1083 高速实现方案 图 18 中所示为该算法的高速实现方案。 在此实现方案 中,仅采样和滤波一相的信号。 采样频率增加到 81,940 sps。 低速实现使得电机转速低于约 40,000 电气 RPM(假设 没有相位超前)。随着速度加快,滤波器和处理延迟将 大于转过 30° 电角度所需要的时间。 运行速度过快可导 致在电机绕组应该被换相的时刻之后才检测到过零事 件。 在低速实现方案中,由于电机低速运行时反电动势的斜 率较小而要采样所有三相。 反电动势信号的斜率较小会 使过早检测到过零事件的可能性升高。 如果检测到每一 次过零事件,将最大限度地减小无传感器算法失效的可 能性。 在电机高速运行时,由于反电动势信号斜率加大,对过 零事件的检测就更加准确。 因此就没有必要对所有三相 都进行采样。 此外,仅采样电机的一相可释放带宽以更 加快速地对该相进行采样。 这可增加过零事件检测的准 确性。 图 18: 高速实现方案 在图 18 中,滤波信号的过零点比实际过零点滞后超过 30°。 高速实现方案在下一区间换相,而不是在实际过零 事件之后立即对电机绕组进行换相。 也就是说,算法超 前 90° 电角度,而不是 30° 电角度。 Timer1测量一相上的两个过零事件之间所消耗的时间。 该时间相当于一个 180° 电角度。 然后对 Timer3 进行设 置,除由经过 90° 电角度的时间减去适当的延迟得到的 时间来装载 Timer3 周期寄存器外,与低速实现方案一 样。公式 3 显示该关系。 公式 3: 针对高速实现方案的 TIMER3 周期 其中: PR3 = Timer3 周期寄存器的值 T90 = 计算得到的经过 90° 电角度的值 DFILT = 高速滤波器相位延迟 DPROC = 高速处理延迟 DPA = 相位超前延迟(见“相位超前” 部分以获得 更多详细信息) 0 50 100 150 200 250 300 350 400 450 0 50 100 150 200 250 300 350 400 450 过零阈值 Timer1 Timer3 在此换相 90° A 相 B 相 PR3 = T90 – DFILT – DPROC – DPA DS01083A_CN 第14 页  2007 Microchip Technology Inc. AN1083 Timer3中断发生时,电机绕组换相到相应区间。 Timer3 中断仅在每三区间对电机进行换相。其他区间由 Timer2 进行换相。检测到过零事件后,将相当于经过 60° 电角 度的时间值装入 Timer2 周期寄存器。 Timer2 在后台递 增运行,将电机绕组换相到下一区间。 如果 Timer2 在后台独立运行,那么如何将它应用到实 际过零事件呢?答案是 Timer3 中断始终强制每三区间 将电机换相到特定区间状态。 当 Timer3 中断事件发生 时,Timer3清零并停止计数。 此外,Timer2也在Timer3 中断期间被复位。 因此,Timer3 与 Timer2 在区间边界 同步。图 19 显示了上述过程。 前面已经讨论过,当电机高速旋转时,反电动势信号中 会出现感应冲击。反电动势信号中的这种干扰太大很难 被滤掉。因此应在滤波前,首先将其“移除”,否则它 将导致过零检测错误。 要解决此问题,无传感器算法具 有一个称为 Blanking Count 的可配置参数。 Blanking Count 指的是 ADC 采样数,算法应在每区间开始时忽略 该值(见图 20)。 图 19: 高速模式下的定时器工作 图 20: BLANKING COUNT Timer1 Timer3 Timer2 Timer2 :在后台运行,每经过 60° 电角度对电机换相一次。 Timer3 :根据过零位置(Timer2 为零)每三次换相强制电机进入特定的状态 来确保算法精准。 180° 90° 60° 0 50 100 150 200 250 300 350 400 450 1 13 25 37 49 61 73 85 97 109 121 133 145 157 169 181 193 205 217 Blanking Count 是受感应冲击影响的 ADC 采样数。 在这期间最后一次滤波采样被取代。 Blanking Count  2007 Microchip Technology Inc. DS01083A_CN 第15 页 AN1083 实际上,算法在消隐(Blanking)期间并未忽略反电动 势信号。 相反,在每区间开始,送入数字滤波器的是最 后滤波的采样,而不是 blanking count 期间的实际反电 动势采样。 图 21 中所示为高速实现方案的结果。 图 21: 高速实现方案的结果 未滤波的 反电动势 (高速) 数字 滤波后的 反电动势 (高速) 0 50 100 150 200 250 300 350 400 450 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 0 50 100 150 200 250 300 350 400 450 1 28 55 82 109 136 163 190 217 244 271 298 325 352 379 406 433 460 487 DS01083A_CN 第16 页  2007 Microchip Technology Inc. AN1083 总的来说,高速算法的工作原理如下: 1. 使用 ADC 模块在 81,940 sps 采样速率下对电机 的某一相进行采样。 2. 对采样进行滤波。 3. 当检测到过零事件时,保存 Timer1 的值,然后 将 Timer1 复位。 4. 将 Timer1 的值(与转过 180° 电角度的时间相 同)除以 2,再减去 IIR 滤波器相位延迟、处理 延迟以及相位超前延迟, 得到的结果表示到下一 次换相发生(在实际过零事件发生后又转过 90° 电角度)的时间。 5. 将结果装入 Timer3 周期定时器,随后启动 Timer3,并允许 Timer3 中断。 6. Timer2 周期寄存器装入用于计时60°电角度的时 间的数值。 7. Timer2 在后台继续运行。 Timer2 中断发生时, 电机绕组换相到下一区间。 8. 当发生 Timer3 中断时,Timer3 停止并复位,这 时禁止 Timer3 中断。 电机绕组换相到预先确定 的区间。 9. Timer2 也复位。 这可确保 Timer2 恢复到与实际 过零事件同步。 图 22 所示为无传感器 BLDC 算法高速实现方案的流程 图。 图 22: 高速实现方案的流程图 注: 在高速实现中使用的数字滤波器与 “数字滤波”部分中描述的滤波器相 同,但采样频率不同——采样频率为 81,940 Hz 而不是 49,152 Hz。 ADC 中断 滤波一个采样 检测到 过零事件? 计算 60° 时间 装载 Timer2 和 Timer3 启动 Timer3 退出 ADC ISR 是 否 计算 90° 时间减去 Timer3 中断 执行区间 更改 停止 Timer3 退出 Timer3 ISR 复位 Timer2 Timer2 中断 执行区间 更改 退出 Timer2 ISR 延迟后的值  2007 Microchip Technology Inc. DS01083A_CN 第17 页 AN1083 相位超前 相位超前可使电机在高于其额定转速的条件下运行。 当 发生相位超前时,电机绕组在每一区间都提前换相。 相 位超前以电角度来表示。 该算法可实现最大 30° 电角度 的相位超前。图 23 说明了相位超前。 图 23: 相位超前 使用相位超前来提高电机速度的方法代价昂贵。 电机比 以额定条件运行时要消耗更多的电流,这可使电机过 热,从而缩短电机寿命。 过零电压补偿 理想情况下,过零电压阈值位于驱动 BLDC 电机的电压 满幅值的中心点。 如果驱动电压为± 12V,那么过零电 压阈值为 0V。 如果驱动电压的范围为 0-12V,那么理想 的过零电压阈值为 6V。 图24显示了用来提前调节要施加到dsPIC DSC上ADC 通道的反电动势电压的电路。 将电压调节到dsPIC DSC 的模拟输入电压范围之内。 图 24: 反电动势反馈电路 理想状态下,ADC 通道将对母线电压进行采样,将其结 果除以 2 (驱动电压的两轨分别为零和正电压)以确定 过零电压阈值。 该阈值与滤波后的反电动势采样信号进 行比较来确定是否发生了过零事件。 如果滤波信号在过 零阈值处不对称,则不能准确确定过零事件。图 25 显示 了上述条件下将发生的情况。 图 25: 滤波后的反电动势信号在过零阈 值处不对称 有两个滤波器源用于滤波反电动势信号: • 反馈电路中的 RC 滤波器 (见图 24)用于滤除高 频瞬态干扰 • 数字低通滤波器 低通滤波时,信号并不总是围绕过零电压对称。 随着电 机速度增加,反电动势信号的实际过零点相对于过零电 压阈值略有上升。 要进行补偿,反电动势滤波采样与过零阈值进行比较。 软件累加器记录大于过零阈值和小于过零阈值的采样数 的差值。 如果大于和小于阈值的采样数不等,那么随着 时间推移累加器的值将变成一个非常大的有符号数。 累 加器的高位加在一起以作为相对于过零阈值的偏移量。 这可确保反电动势信号始终关于过零阈值对称。 注: 请参考前面章节中的公式 2 和公式 3,以查 看相位超前对低速和高速实现方案的影 响。 相位超前 而不是这里 在此换相 AN0 电机 绕组 22 kΩ 300Ω 47 nF 2.4 kΩ 注: 在 源 代 码 中,过 零 阈 值 存 储 在 变 量 signal_average 中。可在 CheckZero- Crossing() (motor_isr.c)中对 signal_average进行计算。 理想滤波信号 过零阈值 DS01083A_CN 第18 页  2007 Microchip Technology Inc. AN1083 速度控制 您可选择启用一个 PID 速度控制环。 速度控制环可通过 数据监控界面工具来使能。 “调节过程”部分将给出使 能和调节 PID 速度控制环的详细信息。 PID 速度控制环由 MediumEvent() 函数调用。 在主 程序循环中每 1 ms 调用一次 MediumEvent()。 实现算法 要运行本应用笔记中所描述的算法,您必须: • 设置硬件。 • 设置开发工具并在 MPLAB IDE 中载入项目工作 区。 • 使用数据监控界面(DMCI)工具来调节电机。 硬件设置 无传感器 BLDC 算法是针对以下两个硬件平台开发的: • PICDEM™ 低电压电机控制(MC LV)开发板 (DM183021) • dsPICDEM™ MC1 电机控制开发板 (DM300020),与 dsPICDEM™ MC1L 三相低压 功率模块(DM300022)相结合。 这些开发板及其相关文档可从 Microchip 网站 (www.microchip.com)上下载。 PICDEM™ MC LV 开发板 该开发板上提供了电机接线排、三相电压源逆变器桥、 传动装置输入、过流保护、温度传感器、按钮式开关、 9 个 LED、电机电流和反电动势检测的测试点、速度控 制电位器以及一个 RS-232 端口。 该板必须如表 2 所示 进行配置。 电机必须如表 3 所示进行连接。 表 2: PICDEM™ MC LV 开发板的跳线 设置 表 3: 到 PICDEM™ MC LV 开发板的电 机连接 该无传感器BLDC电机控制算法设计为在30 MIPS下运 行。 为达到 30 MIPS, PICDEM MC LV 板上的 5 MHz 晶振必须由 7.37 MHz 晶振来取代,这样就可使算法在 29.49 MIPS 下运行。 按表 2 和表 3 来配置该板与 dsPIC30F3010 器件连接, 以使器件上的引脚功能如表 4 所示。 该表仅显示了该算 法要用到的引脚。 注: 本算法中所使用的 PID 函数为由 Microchip C30 C编译器提供的DSP库的一部分。《16 位语言工具函数库》(DS51456D_CN)中 给出了本应用笔记中所使用的PID函数的详 细信息。 跳线 设置 J7 短路引脚 2 和 3 J8 开路 J10 短路 J11 短路引脚 2 和 3 J12 开路 J13 短路引脚 2 和 3 J14 开路 J16 短路 J17 短路 J19 开路 J15 开路 J9 上的标号 连接 M1 A 相 M2 B 相 M3 C 相 G 接地线(如果适用) +(1) 12-36V -(1) 接地 注 1: 仅当未使用 J20 连接器时,才可将开发板 / 电机电源和地连接到 J9。请参见 “PICDEM™ MC LV Development Board User’s Guide”(DS51554A)以获得更多 信息。 注: 限制性测试将显示算法在默认 5 MHz 晶振 (20 MIPS)下运行的情况。 使用 5 MHz 晶 振运行代码需要用户将 Fcy 的定义从 29490000 改为 20000000 (在 general.h 中)。  2007 Microchip Technology Inc. DS01083A_CN 第19 页 AN1083 表 4: dsPIC30F3010 引脚功能 “PICDEM™ MC LV Development Board User’s Guide” (DS51554A) 提供了如何对需要大于 36V 的 电机使用该板的详细信息。 如果要在额定电压小于24V的电机上运行BLDC电机控 制算法,则需要对此开发板进行修改,特别是电阻反馈 网络。 该用户指南还给出了此修改的详细信息。 PICDEM MC LV 板上的触点开关提供了一些功能,如表 5 所示。 表 5: 开关功能 dsPICDEM™ MC1 电机控制开发板和 dsPICDEM™ MC1L 三相低压功率模块 dsPICDEM MC1电机控制开发板包括dsPIC30F6010A、 各种外设接口以及用户定制的接口接头系统,从而可以 将不同的电机功率模块连接到 PCB。 该开发板还包括用 于连接诸如增量旋转编码器和霍尔效应传感器等机械位 置传感器的连接器,以及用于定制电路的实验布线区。 由接插式变压器为主控制板供电。 dsPICDEM MC1L 三相低压功率模块经过优化,可适用 于一些要求直流母线电压小于 50V、输出功率达到 400W 的三相电机应用。 dsPICDEM™ MC1 电机控制开发板 必须如表 6 所示对 dsPICDEM MC1 电机控制开发板进 行跳线设置。 表 6: dsPICDEM™ MC1 跳线设置 此外,可将 dsPICDEM MC1 电机控制开发板进行如下 配置: 1. 将开关 S2 设定在 ICD 位置。 2. 将R37和R40短路。 如果电路中存在这两个电阻, 那么MPLAB ICD 2不可用于 dsPIC30F6010A的调 试模式。 3. 确保 DSC 是 dsPIC30F6010A。 4. 在接地点和实验布线区的 AN12、AN13 和 AN14 连接之间添加 3 个 4 nF 电容,可将反电动势反 馈线路上的高频瞬态噪声滤除。 在 dsPICDEM MC1 电机控制开发板上运行的无传感器 算法也允许电机以带传感器模式运行。 如果需要该功 能,可如表 7 所示连接霍尔效应传感器。 引脚 名称 功能 1 MCLR 器件通过 S1 复位 2 AN0 母线电压检测 3 AN1 电机电流检测 4 AN2 电位器(R14)输入 5 AN3 相 1 反电动势检测 6 AN4 相 2 反电动势检测 7 AN5 相 3 反电动势检测 8 VSS 接地 9 OSC1 晶振输入 10 OSC2 晶振输入 11 RC13 开关 (S3)输入 12 RC14 开关 (S2)输入 13 VDD +5V 14 EMUD2 在线调试器数据引脚 15 EMUC2 在线调试器时钟引脚 16 FLTA 过电流故障输入 (由 R60 设置的电流跳闸 值) 17 PGD 在线串行编程数据引脚 18 PGC 在线串行编程时钟引脚 19 VSS 接地 20 VDD +5V 21 PWM3H 驱动相 3 上高端 MOSFET (Q5) 22 PWM3L 驱动相 3 上低端 MOSFET (Q6) 23 PWM2H 驱动相 2 上高端 MOSFET (Q3) 24 PWM2L 驱动相 2 上低端 MOSFET (Q4) 25 PWM1H 驱动相 1 上高端 MOSFET (Q1) 26 PWM1L 驱动相 1 上低端 MOSFET (Q2) 27 AVSS 接地 28 AVDD +5V 按钮 功能 S1 器件复位 S2 开始起动加速 S3 全部停止 跳线 设置 LK1 开路 LK2 开路 LK3 开路 LK4 短路引脚 2 和 3 LK5 短路引脚 2 和 3 LK6 开路 LK7 开路 LK8 开路 LK9 开路 DS01083A_CN 第20 页  2007 Microchip Technology Inc. AN1083 表 7: 霍尔效应传感器连接 (可选) 将 dsPICDEM MC1 电机控制开发板进行如上配置,并 按照 “dsPICDEM™ MC1L 三相低压功率模板”部分 对低压功率模块进行配置后, dsPIC30F6010A 的引脚 将实现表 8 中所描述的功能。 dsPICDEM MC1 板上的触点开关提供了以下功能: 表 9: 开关功能 dsPICDEM™ MC1L 三相低压功率模板 必须为无传感器算法配置低压功率模块,这需要卸下功 率模块上的金属盖子。 卸下低压功率模块的盖子后,将 51 Ω电阻跨接到表 10 所示的连线上。 J3 上的标号 连接 +5 霍尔效应电源 G 霍尔效应传感器地 A R 相位置霍尔传感器 B Y 相位置霍尔传感器 C B 相位置霍尔传感器 表 8: dsPIC30F6010A 引脚功能 引脚 名称 功能 6 RG6 开关 (S4)输入 7 RG7 开关 (S5)输入 8 RG8 开关 (S6)输入 9 MCLR 器件通过 S1 复位 10 RG9
/
本文档为【AN1083-dsPIC BLDC电机控制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索