锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

实现PMSM电机正弦电压控制的理想低成本解决方案

时间:2022-11-09 05:30:00 1218s2ac接近传感器1226s2ac接近传感器

1 概述

1.1简介

本文介绍了如何使用dsPIC30F 数字信号控制器(Digital Signal Controller,

DSC)用位置传感器控制正弦电流驱动永磁同步电机http://bbsic.big-bit.com/(Permanent

Magnet Synchronous

Motor,PMSM)。使用电机控制硬件dsPIC30F数学运算由外设组成DSP完成引擎。充分利用它。 dsPIC30F 的特殊DSP

硬件采用操作性能C 语言编写,只有一些子程序用汇编语言编写。

1.2应用特性

▲使用空间矢量调制(Space Vector Modulation,SVM)该方法用于驱动PMSM

电机各相正弦电流;

▲正弦电压与PMSM 电机转子位置同步;

▲四象限运行可实现正、反、制动运行;

▲微分(Proportional Integral Derivative,

PID)闭环转速控制控制;

▲先进的相位技术可以实现更宽的调速范围;

▲ 由dsPIC DSC 的DSP 引擎实现小数学运算。

1.3利用数字信号控制器实现电机控制

dsPIC30F 电机控制系列设备专门用于控制,包括交流感应电机(AC Induction

Motor,ACIM)、刷直流电机(Brushed DC Motor, BDC)、无刷直流电机(Brushless DC

Motor, BLDC)与永磁同步电机(Permanent Magnet Synchronous

Motor,PMSM)大多数常用电机类型都包括在内。Microchip 目前应用文献已经发布,介绍如何使用dsPIC30F

电机控制系列设备实现交流感应电机控制(AN984、AN908 和GS004)控制无刷直流电机(AN901、 AN957

和AN992)。可从Microchip 网站(www.microchip.com)中英文版获取这些应用文献。

本应用文献介绍了如何使用dsPIC30F2010 实现有位置传感器PMSM

电机正弦电压控制。设计采用dsPIC30F特别适用于电机控制的外设模块:电机控制脉宽调节(Motor Control

Pulse Width Modulation,MCPWM)模块和高速A/D转换器。dsPIC30F2010 中的DSP

引擎可以提供所需的快速数学操作能力。

dsPIC30F2010系列器件28引脚16DSC,专为实现低成本、高效率的电机控制应用而设计。

dsPIC30F2010 具有以下重要特点:

▲30 MIPS处理性能;

▲六个独立PWM 专门用于电机控制的三组互补输出或可配置PWM 输出对;

▲六输入、1 Msps ADC,可同时对多达4 采样路输入;

▲各种串行通信方式:UART、I2C? 和SPI;

▲小型封装适用于嵌入式控制(6 mm x 6 mmQFN);

▲DSP发动机能保证控制环的快速响应。

1.4所需的硬件

本文介绍的电机控制应用需要以下硬件:

▲ PICDEM? MCLV 开发板(图1);

▲Hurst DMB0224C10002 BLDC 电机;

▲24 VDC稳压电源。

用户可从Microchip 购买上述所有硬件或个别组件。有关购买信息,请参阅 Microchip

网站的开发工具部分。

强烈推荐用户阅读PICDEMTM MCLV Development Board User’s Guide

”(DS5154)全面了解本应用文献中使用的硬件拓扑。Microchip网站下载用户指南。

图2 给出了正弦PMSM简化了电机控制应用程序的系统框图。这张图帮助用户开发自己的硬件电路。

拓扑的重要组成部分:

电位器R14 选择预期速度(给定速度);

▲通过连接至引脚RB3、RB4和RB5霍尔效应传感器实现转子位置检测;

▲电流反馈通过简单的操作放大器电路实现;

▲连接到电流反馈电路的比较器电路负责产生故障输入信号。电流采样通过0.1Ω的电阻(R26)实现。

用户可以根据应用中使用电机的电流额定参数选择不同的电流采样电阻值。另一方面,本应用中的电机驱动电路为24V PMSM

设计电机。用户可以更改硬件电路,以满足特定电机的驱动要求。

最低电压极限为10V,最高极限为48V。应注意, IGBT 因此,散热器的散热效果有限PICDEMTM MCLV

开发板可能难以满足较高的功率要求。

在将PICDEMTM MCLV 本应用前应使用开发板参考表1 表2所示的跳线设置 和表3 电机连接如中所示。

完成代码开发,并将代码输入dsPIC30F 之后,用户可以通过点击开关S2 启动或停止电机。通过标记REF

的电位器(R14)可实现电机给定转速和旋转方向的设置。在电机停止后,可以改变电机的旋转方向。

1.5 使用dsPICDEMTM MCLV 开发板对dsPIC30F2010 编程

通过dsPICDEM MCLV 开发板可对dsPIC30F2010 在线编程。为了编程设备,应该是DIP 开关S4

拨至PRGM 位置。编程完成后,用户应该DIP 开关拨至DEBUG 执行代码的位置。如果需要的话。MPLAB ICD 2

连接到PICDEMTM MCLV 用户应使用开发板作为调试器RJ11 电缆连接到开发板J6 如果MPLABICD 2

仅作为编程器连接RJ11 电缆编程设备,并在正常执行程序中删除。

可通过以下配置应用PICDEMTM MCLV开发板工作:

振荡器源: 主振荡器

主振荡器模式: XT,带PLL 16x

通信通道选择: EMUC2 和EMUD2

可以使用或禁止其他设置或在应用程序中进行修改。

2关于BLDC电机

2.1背景知识

许多消费者和工业应用因其体积小、控制方便、效率高而被采用BLDC 电机。BLDC

电机越来越多地出现在汽车应用机越来越多地出现在汽车应用中,可以进一步增强功能,降低油耗。在机床设备、低噪声风机等高性能应用中,平稳的扭矩输出非常重要。

由于非正弦分布定子绕组,BLDC 在需要低扭矩脉动和低噪声运行的情况下,电机难以应用。如图3所示

所示非正弦绕组分布BLDC 电机会产生梯形波的反电势。梯形波反电势BLDC

电机专门设计为与电机转子角位置同步的方波电压驱动。这种控制方法通常称为六拍换相。如何通过六拍换相控制BLDC

详情请参阅电机Microchip 以下应用文献:

▲AN857 “Brushless DC Motor Control Made Easy ”(DS00857);

▲AN957 《使用 dsPIC30F2010 带传感器的控制BLDC 电机》(DS00957A_CN);

更好地理解BLDC 电机及其基本工作原理可参考AN885 “Brushless DC (BLDC) Motor

Fundamentals ”(DS00885)。

BLDC

由于电流也是梯形分布,电机中绕组的梯形分布会导致电机运行过程中的扭矩脉动。这种扭矩脉动会导致小速振荡和音频噪声。另一方面,具有正弦和反向电势BLDC

电机又称永磁同步电机(PMSM),采用正弦电流驱动,减少扭矩脉动,从而将音频噪声降到最低。

显示正弦绕组分布PMSM电机中产生的正弦波反电动势电压。

本应用文献假设控制对象为三相,具有正弦波反电动势和三个霍尔效应传感器PMSM 电机。

2.2基于位置传感器BLDC 电机工作原理

为了使电机正确更换,必须测量每个电周期中转子的绝对位置。通常使用三个霍尔效应传感器来获取转子位置信息。这三个位置传感器沿定子周期分布,在每个电周期中产生六种不同的逻辑状态。电周期与机械速度之间的比率关系取决于电机的磁极对数。例如,本应用文献中使用的电机有5台

对于磁极,电机每转一周需要5次 个电周期。常规电压激励方法(六拍换相)

,在每个电力周期中,需要进行六个等间距的更换操作。这通常是通过使用三个霍尔效应传感器或光电开关安装在转子上的相应磁极来实现的。没有连续的位置信息,只需要测换相时间。

在相应的电机绕组中显示三个传感器输出信号和驱动电压波形。

从图5可以看出,每个特定的60

当霍尔效应传感器的信号组合发生变化时,电压在度电角范围内不会发生变化,直到检测到新的电机位置或变化。本应用文献介绍的技术与六拍换相技术相同,采用三个霍尔效应传感器检测转子位置。然而,电机绕组中施加的驱动电压是连续的正弦波电压,而不是方波电压。

显示了正弦波相电压与三个霍尔效应传感器位置信号之间的对应关系。正弦电压的振幅决定了特定机械负载条件下的电机转速。

3 正弦波电压控制

3.1实现正弦波电压控制

图7 给出了应用软件的原理框图。当电机运行时,从速度测量值中减去速度给定值(预期速度), PID

控制器对转速误差进行处理,其输出作为正弦波幅值的给定控制量。可通过外部位器设定转速给定值,而电机转速测量值则根据霍尔效应传感器的反馈信号来计算。一旦正弦波幅值已给定,还需其余两个参数来实现正弦波的发生。第一个参数是正弦波的周期,该值可通过其中一个霍尔效应传感器的反馈信号来获得。另一个参数是相位,该参数可通过使用相位超前模块来计算,取决于转速范围需求和来自霍尔效应传感器的转子位置。幅值变量设置了电机电流和产生的电机转矩的大小。转矩的增加对应转速的增加。转速控制环仅对幅值进行控制。来自相位超前模块的相位值根据霍尔效应传感器信息进行计算以保持正弦电压与转子位置同步。

以软件原理框图作为基准点,本应用文献中的后续章节将对软件功能作详细说明。介绍将从主状态机开始,该模块将与其他所有使用全局变量的软件模块进行交互。随后,介绍将主要针对转速测量(给定转速和测量转速)并引导出对PID

控制器软件实现的说明。其中讨论的内容包括有关PID 控制的一些背景知识。

接下来,将对产生三相正弦波所需的参数计算进行讨论,包括转子位置区间和相位超前的计算。最后,使用空间矢量调制实现正弦电压发生,其中参数包括幅值、相位和周期。

3.2主状态机

图8

中的状态图显示了每一个中断(以粗体、黑线显示)是如何同电机控制软件进行交互的。在上电复位时,软件将对所有程序变量进行初始化并对应用中所使用的所有外设模块进行使能。在对变量和外设进行初始化后,软件执行进入电机停机状态并保持该状态直至用户点按外部按钮开关执行起动指令(按下S2)。当按下S2

时,调用RunMotor() 子程序并将执行该子程序中的第一个进程(ChargeBootstraps())。逆变器电路使用N

沟道MOSFET 作为上下桥臂器件。自举电路将产生用于上桥臂功率器件门极驱动的浮地电压源。自举电路产生的电压可比逆变器电压轨高出15V

以确保上桥臂器件的导通。在每次电机运行之前首次上电时需通过ChargeBootstraps()子程序对自举电容进行充电。ChargeBootstraps()

子程序将首先导通下桥臂功率器件并使之导通10 ms 以确保这些电容能够充电到足够高的电压,随后输出控制将被转交给PWM

控制模块。

接下来,将对电机控制所使用的变量进行初始化。随后是对PID 转速控制器中使用的PID

系数、误差累计和控制输出变量进行初始化。在RunMotor()

子程序中,定时器计数器将被初始化为零,用于存放霍尔效应传感器周期捕获值的变量也将被初始化。在子程序的最后,将清除中断标志并使能中断。

一旦RunMotor()子程序完成变量初始化,状态机中所有的其他功能皆由中断服务程序(ISR)实现。表4

对所有中断服务程序进行了汇总,并对其调用条件和每个特定ISR 执行的操作进行了说明。

当在电机运行中按下S2 时, StopMotor() 子程序将禁止所有中断并停止电机。

3.3转速计算

3.3.1给定转速计算

A/D 中断中将读入通过A/D 转换器(AN2 输入引脚)转换后的转速给定值(见图7)。将A/D

转换器配置为中断触发模式且中断频率为PWM 速率(本应用中为20 kHz)。在A/D ISR 中, A/D

转换缓冲器中的内容将以有符号小数格式存放到变量(RefSpeed)中。该变量表征期望转速范围从-1.0 至0.99997。表5

汇总说明了这一变量的最小值和最大值,及其对本应用笔记中所使用电机的实际意义。

3.3.2测量转速计算

电机的实际转速根据一个霍尔效应传感器(霍尔B)的反馈信号进行计算。计算使用输入捕获通道(IC7

输入引脚)测量霍尔效应传感器B 的相邻两个信号跳变沿之间的时间间隔。图9

中的时序图中显示了捕获事件和用于存放相邻两次捕获值的变量(用于测量霍尔效应传感器B

的相邻两个信号跳变沿之间的时间间隔)。为更清楚地表示霍尔效应传感器 B 反馈信号与电机实际机械运动之间的关系,在同一图中绘出了5

对磁极电机的机械旋转角变化曲线。

用于存放相邻跳变沿间隔时间的变量称为Period (周期)。该变量在Timer 1 ISR 中进行计算。该ISR 每隔1

毫秒调用一次并执行转速控制操作。用于计算当前电机转速的公式如下所示:

其中ActualCapture (当前捕获)和PastCapture(上一次捕获)包含霍尔效应传感器B

相邻两个跳变沿的时序信息,如图9 中所示。Period

用来计算用于产生正弦波的指针的步长,因为产生的正弦电压需要与霍尔效应位置传感器反馈信号保持相同的频率。

对于转速计算,以下公式用来将相邻两个跳变沿之间的时间间隔(Period)转换为测量转速(MeasuredSpeed):

MINPERIOD 为一个常数值。如果根据霍尔效应传感器反馈信号检测到最大转速6000 RPM,用于计算产生0.99997

的小数值。MINPERIOD 的公式为:

表6给出了根据存放在PastCapture(上一次捕获)和ActualCapture(当前捕获)中的输入捕获值进行转速计算(MeasuredSpeed)的示例。

是否为MeasuredSpeed(测量转速)添加符号取决于变量CurrentDirection

(当前转向)。该变量在霍尔效应传感器中断服务程序中进行计算。

CurrentDirection

的计算是根据相邻两个霍尔效应传感器信号组合(或相邻两个区间)来进行的。如果电机正向旋转(CW),MeasuredSpeed

将保持为正值。如果电机反向旋转(CCW), MeasuredSpeed 将转换为负值。

3.4 PID转速控制器

每隔1 毫秒在T1 中断服务程序(Timer 1 ISR)中执行一次PID

转速控制。其子程序为SpeedControl(),该子程序将对有符号小数格式的给定转速(RefSpeed)和电机当前实际转速(MeasuredSpeed)进行处理。通过从RefSpeed

中减去MeasuredSpeed

以确定转速误差(Error),该值可确定电机应升速还是减速。为确保电机能够平稳运行,误差值将被解析为比例、积分和微分分量以产生一个合成输出控制量,该输出量用于补偿转速误差。

PID控制器的实现利用了dsPIC

DSC的MAC指令以实现快速执行。用于产生控制器输出(ControlOutput)的公式根据前三次T1 中断中获取的三个误差值(C o

n t r o l D i f f e r e n c e [ 0 ] 、ControlDifference[1]

和ControlDifference[2])以及PID

系数(PIDCoefficients[0]、PIDCoefficients[1]和PIDCoefficients[2])进行计算。公式为:

表7 提供了 PID 控制变量的简要说明。

PID 的实现过程中使用了MAC 指令以及执行MAC 操作时dsPIC DSC 的自动饱和功能。当对PID

增益进行整定时,用户应避免PID 系数达到或超过最大值。这些值为小数值,必须在以下取值范围内:

Kp + Ki + Kd < 0.9999 (0x7FFF)

-Kp -2*Kd > -1.0(0x8000)

Kd < 0.9999(0x7FFF)

图10 的流程图中说明了SpeedControl() 函数的实现。

Required_Direction 取自PID 控制器输出(ControlOutput)的符号,该参数告知软件是使电机CW

(正向)还是CCW(反向)运行。以下代码示例说明了软件中是如何进行所需转向的计算:

3.4.1 PID 的背景知识

本应用文献不提供有关比例-积分-微分(PID)控制器的完整介绍。不过仍将对PID

控制器基本工作原理的相关内容进行简要介绍。

PID

控制器将对闭环控制环中的误差信号进行处理并试图对被控量进行调节以获得期望的系统响应。被控参数可以是任何可测量的系统参量,如转速、转矩或磁通。PID

控制器的优点在于可根据经验对一个或多个增益值进行整定并观察系统响应变化情况来确定合理的增益参数。

数字PID

控制器以周期性采样方式执行。假定控制器的执行频率足够高可以满足系统控制要求。误差信号通过将被控参数的期望设定值减去该参数的实际测量值来获得。误差的符号表明控制输入所要求的变化方向。

PID 控制器的比例(P)项由误差信号乘以P 增益形成,该项使PID

控制器产生的控制响应为误差幅值的函数(即比例关系)。当误差信号增大时,控制器的P 项也将变大以实现更大的校正效果。P

项的效果是随着时间变化趋向于使系统总误差减小。然而,当误差趋近于零时,P

项的效果将不明显。在大多数系统中,被控参数的误差将十分接近于零但并不收敛。因此仍存在小的静态误差。

PID 控制器的积分(I)项用来消除小的静态误差。I

项将对误差信号连续累计。因此,随着时间变化小的静态误差可累计为较大的误差值。将该累计误差信号与I 增益因子相乘即可获得PID

控制器的I 输出项。

PID 的微分(D)项用于改善控制器的速度并响应误差信号的变化率。D

项输入通过将前一误差值减去当前误差值来获得。两者的差值乘以D 增益因子便获得PID 控制器的D 输出项。系统误差变化越快,则控制器的D

项将产生的控制输出越大。

PID 增益整定

PID 控制器的P 增益设定了整个系统的响应。当开始调节控制器时,应将I 和D 增益设置为零。随后,可增加P

增益直至系统对设定点变化响应良好,没有过大的超调或振荡发生。使用较小的P 增益值将使得系统响应较慢,而较大的P

增益值将使得系统响应较快。此时,可能无法使系统响应收敛到设定值。

在确定合适的P 增益之后,可缓慢增加I 增益值以使系统误差为零。在大多数系统中只需设置较小的I增益值。需要注意的是,如果I

增益取值过大,其效果可能抵消P 项的作用,即使得整体控制响应变慢并使系统在设定点附近振荡。如果发生振荡,减小I 增益并增大P

增益通常可以解决这一问题。

D 增益可加快系统响应。然而,在使用该增益时必须注意,该项可能产生较大的输出摆动,从而可能引起电机机械损坏。

3.5 转子区间计算

根据图2 中的软件原理框图,需要获得转子区间值来实现正弦电压的产生。转子区间是转子的绝对位置,以电角度为单位,每60

度电角度划分为一个转子区间。通过读入来自三个霍尔效应传感器的反馈信号数据值可获得转子区间信息。转子区间计算软件模块使用了三个霍尔效应传感器中断(CN5、IC8

和IC7 中断,如图8 所示)。根据表8中给出的关系进行转子区间信息的计算 :

在计算当前电机转向(Current_Direction)时,需对过去相邻两次霍尔效应传感器中断中获得的转子区间值进行比较。根据表9

汇总了相邻两个转子区间值组合下的转向计算结果。

转速计算模块将使用当前电机转向参数。如果当前转向为CCW,转速将为负值。

以下代码说明了这一过程:

通过测量转速和最大相位超前可实现转子区间计算值的修改以设定正弦电压的相位角。

3.5.1 相位超前

正常条件下,电机转速受到逆变器提供给电机绕组的电压大小的限制。从图11 中A 相电压和霍尔A

位置信号的相位关系可见,电机绕组中所施加的电压通常与转子位置保持同步。这一情形将使得定子中产生相位超前于转子磁场 90

度电角度的旋转电枢磁场,从而在电机中产生最大每安培转矩。

如果定子电枢磁势相对于常规情况超前某个角度(θ),则定子磁势和转子磁势之间的夹角将增加。相位超前技术将在电机中产生一个相对于转子磁场为负的去磁分量,这将削弱转子永磁体产生的磁场。相位超前技术的一些重要影响包括:

▲由于相位超前技术使定子磁势和转子磁势之间的夹角增加,因此在电机额定转速的基础上进一步扩展了转速范围。

▲由于产生了一个去磁分量,相位超前技术削弱了转子磁场。 磁场削弱使得电机的总转矩输出能力降低。

▲当使用相位超前技术时电机电流消耗、电机运行温度和音频噪声都将增加,这是因为定子磁场削弱了转子磁场。

对于需要扩展电机转速范围的应用场合,建议使用相位超前算法。该算法可通过在SinusoidalBLDC v1.1.c

文件中定义PHASE_ADVANCE 来使能。在本应用文献中该功能被禁止。

3.6 使用空间矢量调制实现正弦波发生

PMSM电机正弦控制的最后一步是产生用于三相电机电压信号的脉宽调制信号。通过使用空间矢量调制(Space Vector

Modulation,

SVM),三相中每一相电压信号的脉宽产生过程将简化为几个简单的公式。三个逆变器输出中的任何一个都将处于以下两个状态之一:连接至+

母线轨或- 母线轨。因此,如表10所示,输出可具有8 种可能的状态(23 = 8)。

所有三相输出全部连接至+ 母线或-

母线的两个状态被认为是无效状态,因为在任意两相之间不存在线电压。这两个状态对应的空间矢量在SVM

星型的原点绘出。其余的六个状态表示为六个空间互差60 度的基本空间矢量,如图12 所示。

空间矢量调制可采用相邻两个基本空间矢量的矢量和来表征任一合成矢量。在图13 中,UOUT 是期望的合成矢量。该矢量位于U60

和U0 之间的区间内。如果在给定的PWM 周期T 内, U0 的输出时间为T1/T

而U60的输出时间为T2/T,则整个周期内的平均矢量将为UOUT。

T1 和T2 的值将从查找表中获取。该表包含0 至60 电角度之间的172 个小数正弦值。因此,对于6

个区间中的任何一个区间,将有一个轴与此对应,另外两个轴对称分布在该区间边界。沿这两个边界轴的的矢量分量值等于T1

和T2。有关计算的详细内容,可参阅本应用文献附带的SVM.c 文件。

如图14 中所示,在PWM 周期T 中,矢量T1 输出时间为T1/T,矢量T2

输出时间为T2/T。在一个周期内的剩余时间内将输出空矢量。dsPIC30F 器件配置为中心对齐PWM

模式,即强制沿周期中心对称。这种配置将在每一个周期内产生两个线-线脉冲。有效的开关频率加倍了,在不增加功率器件开关损耗的情况下可降低纹波电流。

图15显示了采用SVM时的一个完整电周期内的占空比波形。表征占空比的值在0% 和100% 之间。

产生的线-线电压如图16 所示。将满幅输出的正弦电压施加到电机绕组。

4 结论

dsPIC30F2010可提供实现PMSM电机正弦电压控制的理想低成本解决方案。电机控制外设,如MCPWM,联同器件的快速处理能力,使得用于产生正弦波的空间矢量调制算法和控制电机转速所需的PID

控制环算法的实现成为可能。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章