freescale semiconductor document number: drm152 …cache.nxp.com/zh-hans/files/drm152.pdf ·...

64
Freescale Semiconductor Document Number: DRM152 设计参考手册 Rev. 0, 04/2014 基于MC56F84789 DSC单芯片同时控制一个单相 PFC和两个无位置传感器的三相永磁同步电机的 空调系统 1 概述 1.1 参考方案简介 本文档描述了基于单颗控制器芯片设计的两 个三相永磁同步电机无位置传感器矢量控制 驱动器和一个单相交错并联式功率因数校正 PFC)变换器。本参考设计主要面向消费和 工业市场应用。得益于飞思卡尔电机控制专用 的数字信号控制器MC56F84789独一无二的 片内资源和特性,本方案设计的先进空调系统 具有节约成本、高能效、低噪声和可变功率等 优点。 目录 1 概述 1 2 控制原理 10 3 系统概念 27 4 硬件设计 32 5 软件设计 39 6 参考文献 63 © Freescale Semiconductor, Inc., 2014. All rights reserved. _______________________________________________________________________

Upload: ngokhuong

Post on 27-Jun-2018

247 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

Freescale Semiconductor Document Number: DRM152 设计参考手册 Rev. 0, 04/2014

基于MC56F84789 DSC单芯片同时控制一个单相

PFC和两个无位置传感器的三相永磁同步电机的

空调系统

1 概述

1.1 参考方案简介 本文档描述了基于单颗控制器芯片设计的两

个三相永磁同步电机无位置传感器矢量控制

驱动器和一个单相交错并联式功率因数校正

(PFC)变换器。本参考设计主要面向消费和

工业市场应用。得益于飞思卡尔电机控制专用

的数字信号控制器MC56F84789独一无二的

片内资源和特性,本方案设计的先进空调系统

具有节约成本、高能效、低噪声和可变功率等

优点。

目录

1 概述 1

2 控制原理 10

3 系统概念 27

4 硬件设计 32

5 软件设计 39

6 参考文献 63

© Freescale Semiconductor, Inc., 2014. All rights reserved. _______________________________________________________________________

Page 2: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

1.2 方案的构成和特点 本方案设计的目的是用来驱动两个无位置传感器的三相永磁同步电机和一个单相的PFC变换器。

以下是本方案系统的主要应用特点:

• 无位置传感器三相永磁同步压缩机的矢量控制

• 无位置传感器三相永磁同步风机的矢量控制

• 单相两通道交错并联式PFC变换器控制

• 三电阻电机相电流检测技术

• 双电阻交错并联式PFC变换器电流检测技术

• 直流母线电压检测

• 市电输入整流电压检测

• 三个独立温度点的温度检测

• 采用飞思卡尔MC56F84789数字信号控制器

• 单块功率驱动板搭配一块MC56F84789子卡的硬件架构

• 支持的输入交流电源:85 – 265V/40 – 70Hz

• RS232或RS485通讯接口

图 1 方案系统实物图

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

2 Freescale Semiconductor

Page 3: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

本参考方案将提供以下内容供用户参考和评估:

• 软件 – 基于飞思卡尔嵌入式电机控制软件库(FSLESL)的C代码例程

• 硬件 – 功率驱动板和MC56F84789子卡的原理图、BOM和PCB文件

• 文档 – 本文档以及所有参考文档

1.3 正弦永磁同步电机应用概述 在电机应用领域,正弦永磁同步电机正在替代传统的有刷直流电机、通用电机和其它类型电机成

为最广泛应用的电机类型。其主要原因是永磁同步电机具有高可靠性(没有电刷)、高能效、低

噪声和其它电子控制优点。当然,永磁同步电机驱动的劣势是需要更为复杂的电子电路。但在今

天,绝大部分的电机应用都需要电子电路来进行电机速度或转矩控制,以及其它功能控制。一旦

电机控制应用中使用了电子电路,那么就可以附加很少的系统硬件成本,使用数字控制的逆变器

实现更先进的诸如正弦永磁同步电机驱动系统。飞思卡尔MC56F84789数字信号控制器是一款高

性价比、具有强劲运算性能的电机控制专用控制器,非常适合正弦永磁同步电机控制应用。

相比于交流感应电机,永磁同步电机具有很多优点。由于转子带有永磁材料,转子磁场直接由转

子永磁体产生,这样永磁同步电机可以获得比交流感应电机更高的效率。基于这一优势,永磁同

步电机被广泛地应用于需要高可靠性和高能效的产品中,如白色家电(冰箱、洗衣机和洗碗机等)、

泵、压缩机、风机和其它电器。

三相永磁同步电机通常有两种最常见的类型:正弦永磁同步电机和方波无刷直流电机(BLDC)。

正弦永磁同步电机与方波无刷直流电机非常相似,但有以下两个主要差别:

• 电机结构

o 定子感应的反电动势:正弦永磁同步电机为正弦波,方波无刷直流电机为梯形波。

• 控制方式

o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

由于恒定的转矩控制,通常正弦永磁同步电机比方波无刷直流电机具有更好的性能,然而方波无

刷直流电机更易于控制。方波无刷直流电机的广泛使用有其历史原因,主要因为在当时先进的控

制技术和高性能的控制器还未成熟,而方波无刷直流电机因其总有一相处于非导通状态,使得使

用简单的算法便可实现无位置传感器的方波六步换向控制。正弦永磁同步电机虽然需要复杂的控

制技术,但却能提供更平滑的转矩、更低的噪声等好处。正如本文档所描述的,飞思卡尔

MC56F84789数字信号控制器能提供两个无位置传感器三相永磁同步电机矢量控制必需的所有功

能模块。

使用飞思卡尔的MC56F84789数字信号控制器,在几乎不增加系统硬件成本的情况下,可直接用

三相永磁同步电机控制系统替代方波无刷直流电机控制系统。正弦永磁同步电机常见的控制算法

有以下两种:

• 标量控制:V/Hz恒量控制是非常流行的标量控制技术

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 3

Page 4: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

• 矢量控制或磁场定向控制:相比于标量控制,矢量控制带来整体驱动性能的提升,如高能

效、全转矩控制、磁通和转矩解耦控制、和优异的动态性能等。

本文档所描述的永磁同步电机控制技术是更为高级的矢量控制。

对于永磁同步电机矢量控制系统,必需获得准确的电机转子位置信息。而本方案采用一种特殊的

无位置传感器算法来观测电机转子的位置和速度信息,无需物理位置传感器,进而提高系统的可

靠性并降低系统成本。本文档内容包含基本电机理论、系统设计概念、硬件设计、软件设计、以

及FreeMASTER可视化软件工具。

1.4 飞思卡尔数字信号控制器的优势和特点 飞思卡尔MC56F84789数字信号控制器不仅带有兼具DSP和MCU优点的内核,同时还集成了诸多

如脉宽调制器(PWM)、模数转换器(ADC)、定时器、DMA、内部模块互联单元(XBAR),

通信外设(SCI,SPI,IIC),和片内Flash和RAM存储器等专用外设模块,非常适用于数字电机

控制应用。

MC56F84789集成以下功能模块:

• 100 MHz内核

o 单周期32位乘以32位结果为32位或64位乘 – 累加指令,支持一个可选的32位并行数据搬

移指令

o 单周期16位乘以16位结果为16位或32位乘 – 累加指令,支持两个可选的16位并行数据搬

移指令

o 四个包含扩展位的36位累加器

• 片内288 KB Flash

• 片内32 KB RAM

• COP看门狗

• 中断控制器

• 系统集成模块

• 8通道高精度脉宽调制器

• 8通道标准脉宽调制器

• 定时器

• 两个16通道高速12位ADC

• 一个16通道16位SAR ADC

• 一个12位DAC

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

4 Freescale Semiconductor

Page 5: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

• 四个带6位参考DAC的模拟比较器

• 串行通信接口:IIC、SCI、SPI和CAN

• 四通道DMA

• 两个内部模块互联单元(XBAR)

• 与/或/非模块

• 低功耗控制模块

• 循环冗余校验码产生器

图 2 MC56F84789简化块图

永磁同步电机矢量控制和PFC控制对PWM和ADC模块有特殊的需求。MC56F84789的eFlexPWM模块提供了非常灵活的配置功能,可以实现高效的三相永磁同步电机和PFC的控制。更为甚者,

该eFlexPWM模块还能在中心对齐模式下产生非对称的PWM输出。

eFlexPWM模块有以下主要特点:

• 16位分辨率,支持中心对齐、边沿对齐和非对称PWM输出

• 高精度小数延时功能,同时支持高精度PWM频率和占空比

• 改善分辨率的抖频功能

• 支持互补或独立PWM输出

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 5

Page 6: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

• 支持符号数PWM生成

• PWM两个边沿的独立控制

• 支持与外部硬件或其它PWM模块同步功能

• 双缓冲PWM寄存器

• 每个PWM周期多个硬件触发输出

• 支持双开关PWM输出

• 每个故障输入能控制多个PWM模块输出

• 可编程的故障引脚输入滤波器

• 独立可编程的PWM输出极性

• 独立的上下管死区时间插入

• 每个互补PWM信号对有自己独立的PWM频率和死区时间

• 每个PWM输入支持独立的软件控制

• 通过FORCE_OUT事件,能同时更改所有PWM输出状态

• PWM_X能配置成为每个PWM模块第三个PWM输出信号

• 未作为PWM输出使用的通道能配置为带缓冲的比较输出功能

• 未作为PWM输出使用的通道能配置为输入捕获功能

• 增强的双边沿捕获功能

• 每个PWM互补对的源信号可以来自以下信号: o 外部数字引脚 o 内部定时器通道 o 内部模块互联单元(XBAR)输出 o 经过高低限幅寄存器处理的外部ADC输入

12位ADC模块有以下主要特点:

• 12位分辨率

• 支持最高20 MHz输入时钟

• 高达6.67 MSPS采样率

• 单次转换时间:8.5个ADC时钟周期

• 顺序转换时间:6个ADC时钟周期

• 并行同时转换模式下,完成8个通道转换仅需26.5个ADC时钟周期

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

6 Freescale Semiconductor

Page 7: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

• 通过内部模块互联单元,能实现与如eFlexPWM等模块的同步操作

• 顺序扫描模式可存储多达16个测量结果

• 并行扫描模式每个ADC模块可存储多达8个测量结果

• 支持扫描暂停并在新的触发输入来临时继续原来扫描序列

• 可配置输入信号增益:x1、x2和x4

• 如果转换结果超过限幅或有过零发生,可配置在转换完成后产生中断事件

• 当扫描结束或转换结果已经就绪,可触发DMA功能搬移转换结果数据

• 通过减去预编程的偏移值,可实现采样纠正功能

• 支持有符号或无符号结果输出

• 支持单端或差分输入

• 三个模拟输入支持滞环PWM输出

16位ADC模块有以下主要特点:

• 达到16位分辨率,基于线性逐次逼近算法

• 多达24个外部单端输入通道

• 输出模式: o 单端16位、12位、10位或8位

• 单端无符号右对齐格式输出

• 单次转换完成后自动返回空闲态

• 可配置的采样时间和转换速度/功耗

• 支持转换完成/硬件平均完成生成标志和中断

• 支持四个可选的时钟源输入

• 为降低噪声,可运行在低功耗模式

• 适合低噪声运行的异步时钟源,可配置为时钟输出

• 可配置的硬件通道选择和硬件转换触发信号

• 支持小于、大于、等于、在范围内或超出范围的自动比较和中断功能

• 片内温度传感器输入

• 硬件平均功能

• 可选择的参考电源:外部或内部

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 7

Page 8: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

• 自校正模式

本方案使用ADC与PWM同步功能。此配置可以在所需的时间内完成对所需的逆变器电流和直流

母线电压等模拟信号的同时转换。

1.5 参考文档 1. DSP56800E and DSP56800EX Reference Manual (DSP56800ERM,Rev.3),可从 freescale.com

官网下载 2. MC56F847xx Reference Manual (MC56F847XXRM,Rev.1),可从 freescale.com 官网下载 3. AN4583: MC56F84789 Peripherals Synchronization for Interleaved PFC Control,可从

freescale.com 官网下载 4. AN4608: Use of PWM and ADC on MC56F84789 to Drive Dual PMS Motor FOC,可从

freescale.com 官网下载 5. FreeMASTER Software Users Manual,freescale.com/FreeMaster,飞思卡尔半导体提供 6. Freescale’s Embedded Software Libraries,freescale.com/fslesl,飞思卡尔半导体提供 7. 飞思卡尔电机控制,freescale.com/motorcontrol,飞思卡尔半导体提供

有关最新文档版本,请访问freescale.com。

1.6 缩略语和缩写 表 1 缩略语

术语 含义

AC 交流电

ADC 模数转换器

API 应用程序接口

FSLESL 飞思卡尔嵌入式软件函数库

BEMF 反电动势

BLDC 无刷直流电机

CCW 逆时钟方向

COP 看门狗

CW 顺时钟方向

DAC 数模转换器

DC 直流电

DMA 直接存储器访问模块

DRM 设计参考手册

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

8 Freescale Semiconductor

Page 9: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

术语 含义

DT 死区时间

GPIO 通用目的输入/输出

HSCMP 高速比较器模块

I/O 计算机系统与外部世界之间的输入/输出接口

ISR 中断服务例程

IIC 集成电路总线

LED 发光二极管

PFC 功率因数校正

DSC 数字信号控制器

PDB 可编程延时模块

PLL 锁相环

PWM 脉冲宽度调制器

RPM 每分钟转数

XBAR 内部模块互联单元

SCI 串行通信接口模块

SPI 串行外设接口模块

1.7 符号列表 表 2 符号索引列表

符号 定义

d,q 正交旋转坐标系

gω 自适应速度控制增益

uγ,uδ d,q 估计坐标系的电压空间矢量分量

isa、isb、isc a、b、c 相定子电流

isd,q,is(d,q) d,q 坐标系定子电流

iq′ iq 电流的一阶导数

is(d,q)∗,iγ,δ d,q 估计坐标系定子电流

isα,β,is(α,β) α,β 坐标系定子电流

𝚤𝑠𝑔���� 通用坐标系的定子电流空间矢量

isx,isy 通用坐标系的定子电流空间矢量分量

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 9

Page 10: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

概述

符号 定义

𝚤𝑟𝑔���� 通用坐标系的转子电流空间矢量

irx,iry 通用坐标系的转子电流空间矢量分量

J 机械惯量

KM 电机常数

ke 反电动势常数

Ls 定子相电感

Lsd,LD d 轴定子电感

Lsq,LQ q 轴定子电感

p 电机极对数

Rs 定子相电阻

s 导数算子

TL 负载转矩

usα,β,us(α,β) α,β 坐标系定子电压

usd,q,us(d,q) d,q 坐标系定子电压

a,b 定子正交坐标系

Ψs𝛼,𝛽 α,β 坐标系定子磁链

Ψsd,𝑞 d,q 坐标系定子磁链

ΨM 转子磁链

θr α,β 坐标系转子位置角

ω,ωr,ωel/ωF 转子电角速度/磁场角速度

2 控制原理

2.1 三相永磁同步电机 永磁同步电机是一种类似于感应电机带有三相定子绕组的旋转电机,其转子为永磁体(见图 3)。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

10 Freescale Semiconductor

Page 11: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

图 3 永磁同步电机 – 剖面图

从某种角度来说,永磁同步电机可以等效于感应电机,其合成气隙磁场中的转子磁场由永磁体产

生,且转子磁场是恒定的。在设计高性能的运动控制系统中永磁同步电机有很多优势。使用永磁

体产生气隙磁通可设计出非常高效的永磁电机。

2.2 永磁同步电机的数学模型 永磁同步电机有很多数学模型。用于矢量控制的模型可以从空间矢量理论的角度去分析。三相电

机物理量(诸如电压、电流、磁通等)可以用综合空间矢量来表示。这个模型适用于任何电压电

流瞬变状态,可以同时表征电机在稳态和瞬态的运行性能。综合空间矢量可仅使用两个正交坐标

轴来表示。因此我们可以将电机看成两相电机。使用该两相电机模型可以减少电机方程数量,从

而简化控制设计分析。

2.2.1 空间矢量的定义

我们假设 isa、isb、isc 是对称的瞬态三相定子电流: 𝑖𝑠𝑎 + 𝑖𝑠𝑏 + 𝑖𝑠𝑐 = 0

等式 1

这时我们可以定义如下的定子电流空间矢量:

i 𝒔��� = 𝑘(𝑖𝑠𝑎 + 𝑎𝑖𝑠𝑏 + 𝑎2𝑖𝑠𝑐)

等式 2

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 11

Page 12: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

这里的a和a2是空间算子a = ej2π/3, a2 = ej4π/3, k是基于磁势不变的变换常数,k=2/3。图 4所示为

定子电流空间矢量投影。

等式 2定义的空间矢量可以使用两相坐标理论表示。空间矢量的实部等价表示瞬态直轴定子电流

分量isα, 而虚部等价表示瞬态交轴定子电流分量isβ,因此在建立在定子上的静止参考坐标系里的

定子电流空间矢量可以表示为:

i 𝑠��� = 𝑖𝑠𝛼 + 𝑗𝑖𝑠𝛽

等式 3

图 4 定子电流空间矢量与投影

在三相对称电机里,交直轴定子电流分量是虚拟的两相电流分量,可以用如下三相定子电流表示:

𝑖𝑠𝛼 = 𝑘 �𝑖𝑠𝑎 −12𝑖𝑠𝑏 −

12𝑖𝑠𝑐�

等式 4

𝑖𝑠𝛽 = 𝑘√32

(𝑖𝑠𝑏 − 𝑖𝑠𝑐)

等式 5

β

i s β

phase- b

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

12 Freescale Semiconductor

Page 13: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

这里的k=2/3 是变换常数,所以最终的方程为:

𝒊𝒔𝜶 =𝟏𝟑

(𝟐𝒊𝒔𝒂 − 𝒊𝒔𝒃 − 𝒊𝒔𝒄)

等式 6

𝒊𝒔𝜷 =𝟏√𝟑

(𝒊𝒔𝒃 − 𝒊𝒔𝒄)

等式 7

其它的电机物理量的空间矢量(电压和磁链等)都可以用如上定子电流空间矢量的方法表示。

2.2.2 永磁同步电机数学模型

在对永磁电机数学模型分析之前,我们假设电机气隙均匀,绕组产生的磁场按正弦规律分布。那

么定子电压瞬态方程可以表示为:

𝑢𝑆𝐴 = 𝑅𝑆𝑖𝑆𝐴 +𝑑𝑑𝑡𝜓𝑆𝐴

等式 8

𝑢𝑆𝐵 = 𝑅𝑆𝑖𝑆𝐵 +𝑑𝑑𝑡𝜓𝑆𝐵

等式 9

𝑢𝑆C = 𝑅𝑆𝑖𝑆𝐶 +𝑑𝑑𝑡𝜓𝑆𝐶

等式 10

这里的uSA,uSB,uSC 是定子电压的瞬态值,iSA,iSB , iSC是定子电流的瞬态值,ψSA, ψSB,ψSC

定子磁链的瞬态值,以上分别对应A,B,C三相。

由于在等式 8,等式 9,和等式 10中含有大量的瞬态变量比较复杂,所以使用两相坐标系理论

(Clarke变换)重构电机瞬态方程会更简单实用。那么永磁同步电机在两相静止坐标系下可表示

为:

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 13

Page 14: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

𝑢𝑆𝛼 = 𝑅𝑆𝑖𝑆𝛼 +𝑑𝑑𝑡𝜓𝑆𝛼

等式 11

𝑢𝑆𝛽 = 𝑅𝑆𝑖𝑆𝛽 +𝑑𝑑𝑡𝜓𝑆𝛽

等式 12

𝜓𝑆𝛼 = 𝐿𝑆𝛼𝑖𝑆𝛼 + 𝜓𝑀 cos rθ

等式 13

𝜓𝑆𝛽 = 𝐿𝑆𝛽𝑖𝑆𝛽 + 𝜓𝑀 sin rθ

等式 14

𝑑𝜔𝑑𝑡

=𝑝𝐽�32𝑝�𝜓𝑆𝛼𝑖𝑆𝛽 − 𝜓𝑆𝛽𝑖𝑆𝛼� − 𝑇𝐿�

等式 15

相关符号术含义请参见表 2。

除了基于定子静止坐标系,电机电压矢量方程还可以基于一种更通用的旋转坐标系来表示,其旋

转速度为ωg。如果基于旋转坐标系,直轴交轴分量x,y以瞬时速度ωg=dθg/dt旋转,如图 5所示,这

里的角度θg 就是定子静止坐标系α轴与通用坐标系x轴的夹角,等式 16定义了通用坐标系下定子电

流空间矢量方程:

i 𝑠𝑔����� = i 𝑠

���𝑒−𝑗𝜃𝑔 = 𝑖𝑠𝑥 + 𝑗𝑖𝑠𝑦

等式 16

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

14 Freescale Semiconductor

Page 15: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

图 5 通用坐标的应用

同样,定子电压和磁链空间矢量也可以用通用坐标系表示。

同样的,转子电压,电流,磁链空间矢量也可以用类似的分析方法。定位于转子的坐标系实轴与

定子坐标系直轴夹角为θr。我们可以看到,转子坐标系的实轴与通用坐标系的实轴x的夹角为θg-θr,

所以在通用坐标系中,转子电流空间矢量可以表示为:

i 𝑟𝑔����� = i 𝑟

���𝑒−𝑗�𝜃𝑔−𝜃𝑟� = 𝑖𝑟𝑥 + 𝑗𝑖𝑟𝑦

等式 17

这里的 i 𝑟��� 是在转子参考坐标系里的转子电流空间矢量。

同样,转子电压和磁链空间矢量也可以用通用坐标系表示。

通用坐标系电机电压方程可以利用介绍过的坐标变换从静止坐标系旋转变换到通用坐标系来推导。

矢量控制经常使用永磁同步电机模型。矢量控制的目的就是使用类似直流电机的控制方案实现高

性能的交流电机动态控制。为实现这个目标,可以把参考坐标系定位于定子磁链空间矢量,转子

磁链空间矢量,或者气隙磁链空间矢量。最常见的就是定向在转子磁链空间矢量,其直轴为d交轴

为q。

经过dq坐标变换,电机模型可以表示如下:

𝑢𝑆𝑑 = 𝑅𝑆𝑖𝑆𝑑 +𝑑𝑑𝑡𝜓𝑆𝑑 − 𝜔𝐹𝜓𝑆𝑞

等式 18

β

x

y

g

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 15

Page 16: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

𝑢𝑆𝑞 = 𝑅𝑆𝑖𝑆𝑞 +𝑑𝑑𝑡𝜓𝑆𝑞 + 𝜔𝐹𝜓𝑆𝑑

等式 19

𝜓𝑆𝑑 = 𝐿𝑆𝑖𝑆𝑑 + 𝜓𝑀 等式 20

𝜓𝑆𝑞 = 𝐿𝑆𝑖𝑆𝑞 等式 21

𝑑𝜔𝑑𝑡

=𝑝𝐽�32𝑝�𝜓𝑆𝑑𝑖𝑆𝑞 − 𝜓𝑆𝑞𝑖𝑆𝑑� − 𝑇𝐿�

等式 22

考虑到下面内容都是基于 isd=0,等式 22可以简化为如下形式:

𝑑𝜔𝑑𝑡

=𝑝𝐽�32𝑝�𝜓𝑀𝑖𝑆𝑞� − 𝑇𝐿�

等式 23

从等式 23可以看到转矩是完全解耦的,只受控于电流isq。

2.3 永磁同步电机的矢量控制

2.3.1 矢量控制基本原理

高性能的电机控制表现为整个速度范围运行平稳,零速下全转矩控制,和快速的加减速特性。三

相交流电机一般使用矢量控制来实现上述目标。矢量控制技术又称磁场定向控制(FOC)。FOC最基本的思想就是将定子电流解耦成一个控制磁场的电流分量和一个控制转矩的电流分量。经过

解耦后,两个电流分量独立受控,互不干扰。这时电机的控制器结构就和他励直流电机控制器一

样简单。

图 6展示了永磁同步电机基本的矢量控制算法结构。为实现矢量控制,需要执行下列步骤:

1. 检测电机物理量(相电压和相电流)

2. 使用Clarke变换将三相定子电流变换到两相坐标系(α,β)

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

16 Freescale Semiconductor

Page 17: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

3. 计算转子磁链空间矢量的幅值和相角

4. 使用Park变换将αβ轴定子电流旋转变换到dq坐标系

5. 分别独立控制转矩电流 (isq)分量和磁场电流 (isd) 分量

6. 使用解耦模块计算输出定子电压空间矢量

7. 定子电压空间矢量经过反Park变换从dq坐标系变换到αβ两相坐标系

8. 使用空间矢量调制,产生三相电压输出

图 6 矢量控制的变换关系图

为了将定子电流分解为转矩分量和磁链分量,必需知道电机励磁磁通的位置,这需要精确检测转

子的位置和速度信息。在矢量控制系统中,通常使用安装在转子上的增量式编码器或解析器来作

为转子位置传感器。然而在一些应用中,不能使用位置传感器,那么需要采用一些间接的技术来

估计转子的位置,这种不直接使用位置传感器的算法叫做无位置传感器控制。

2.3.2 矢量控制算法

图 7所示的就是实现矢量控制算法系统框图。其它矢量定向控制方案和其类似,可以实现电机磁

场和转矩的独立控制。控制的目标是调节电机的转速。速度命令值由上层控制设定。具体算法由

两个控制环路实现。快速内环100微秒执行一次。慢速外环1毫秒执行一次。

为实现精确的永磁同步电机速度控制,需要采集反馈信号。必需的反馈信号是:三相定子电流和

电压。对于定子电压,使用电流环的输出电压。为实现准确运行,现有的控制架构需要一个位置

和速度传感器或者先进的位置速度观测器算法。

快速控制环执行两个独立的电流环控制。他们就是直轴和交轴电流(isd, isq) PI控制器。直轴电流

用于控制转子励磁磁通。交轴电流则控制电机转矩。电流PI控制器输出需要再加上相应的解耦电

压部分,这就得到了施加于电机上理想的定子电压空间矢量。快速控制环执行以下必要的任务来

完成对定子电流分量的独立控制:

• 三相电流重构

• Clarke变换

• Park变换和反Park变换

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 17

Page 18: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

• 定子电压解耦

• 直流母线电压纹波补偿

• 空间矢量调制 (SVM)

图 7 PMSM矢量控制算法架构

慢速控制环执行速度控制器和低优先级的控制任务。速度 PI控制器输出作为产生转矩的交轴电流 (isq)的参考值

2.3.3 空间矢量调制

空间矢量调制(SVM)可以直接将两相α,β坐标系电压转化为脉宽调制(PWM)信号(占空比)。

标准的输出电压产生方法是使用反Clarke变换得到三相电压值。得到三相电压值就可以计算相应

的用于功率开关的占空比。尽管上述做法效果很好,但是空间矢量调制更简单直接(直接从 α,β坐标系变换得到占空比)。

标准空间矢量调制技术的基本原理可以用如图 8所示的功率回路原理图来解释。图 8中所示的三

相功率回路可以产生8种开关状态(矢量)。这些矢量由相应的功率开关组合形成。图 9所示是由

所有的开关状态组合而形成的六边形。8个矢量由定义在 α,β 坐标系6个非零矢量U0,U60,U120,

U180,U240,U300和2个零矢量 O000 ,O111组成。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

18 Freescale Semiconductor

Page 19: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

图 8 功率回路原理图

每个电压矢量所对应的功率回路开关的开通关断状态将以图 8括号里的数字所示进行编码。一个

数字对应一相开关状态。对每一相来说,1代表上管开通,下管关断。0代表上管关断,下管开通。

表 3列出了这些状态组合,相应的瞬态线电压输出,相电压输出和电压矢量。 表 3 开关模态和对应的定子电压

a b c Ua Ub Uc UAB UBC UCA Vector

0 0 0 0 0 0 0 0 0 O000

1 0 0 2UDC-Bus/3 -UDC-Bus/3 -UDC-Bus/3 UDC-Bus 0 -UDC-Bus U0

1 1 0 UDC-Bus/3 UDC-Bus/3 -2UDC-Bus/3 0 UDC-Bus -UDC-Bus U60

B

CA

ib

ic

ia

R

R R

L

L L

u

uu u

u

u

u

u u

u /2DC-Bus =+

-

u /2DC-Bus =+

-

uAB

IA

Id0

S At SBt SCt

S Ab SBb SCbIB IC

uBC

uCA

ub

uc

uaO

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 19

Page 20: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

a b c Ua Ub Uc UAB UBC UCA Vector

0 1 0 -UDC-Bus/3 2UDC-Bus/3 -UDC-Bus/3 -UDC-Bus UDC-Bus 0 U120

0 1 1 -2UDC-Bus/3 UDC-Bus/3 UDC-Bus/3 -UDC-Bus 0 UDC-Bus U240

0 0 1 -UDC-Bus/3 -UDC-Bus/3 2UDC-Bus/3 0 -UDC-Bus UDC-Bus U300

1 0 1 UDC-Bus/3 -2UDC-Bus/3 UDC-Bus/3 UDC-Bus -UDC-Bus 0 U360

1 1 1 0 0 0 0 0 0 O111

图 9 基本的空间矢量和电压矢量投影关系

SVM其实就是作为矢量控制(电压空间矢量)和PWM之间的一座桥梁。

SVM技术由以下几步组成: 1. 扇区判断 2. 空间矢量分解为扇区对应的两个相邻电压矢量 Ux, Ux±60 3. PWM 占空比计算

SVM的原理就是利用固有非零电压矢量 UXXX 和 零电压矢量OXXX 在一个PWM周期TPWM 内合成

的平均矢量来等效期望的电压矢量。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

20 Freescale Semiconductor

Page 21: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

这个方法在一个PWM周期内可以灵活配置零电压矢量和非零电压矢量。可以选择以降低开关损耗

为目的的配置,也可以为达到不同的效果选择其它的配置,例如中心对齐的PWM,边沿对齐的

PWM,最少开关切换的PWM等。

对于SVM,我们定义以下规则:

• 期望的电压空间矢量由所在扇区的下列电压矢量合成:非零矢量(Ux, Ux±60)和零矢量 (O000 或 O111)。 SVM 原理可以用下面的表达式表示:

𝑇𝑃𝑊𝑀 ∙ 𝑈𝑆[𝛼,𝛽] = 𝑇1 ∙ 𝑈𝑋 + 𝑇2 ∙ 𝑈𝑋±60 + 𝑇0 ∙ (𝑂000 ∨ 𝑂111) 等式 24

𝑇𝑃𝑊𝑀 = 𝑇1 + 𝑇2 + 𝑇0 等式 25

为算出T0, T1,T2时间 ,就必须将空间电压矢量US[α,β]分解到非零电压矢量Ux,Ux±60上。

等式 24可以分解为等式 26和等式 27。

𝑇𝑃𝑊𝑀 ∙ 𝑈𝑆𝑋 = 𝑇1 ∙ 𝑈𝑋 等式 26

𝑇𝑃𝑊𝑀 ∙ 𝑈𝑆(𝑋±60) = 𝑇2 ∙ 𝑈𝑋±60 等式 27

通过计算这些方程,我们就可以计算出电压矢量所在扇区非零电压矢量在一个PWM周期内

的作用时间,以此来产生正确的定子电压。

𝑇1 = |𝑈𝑆𝑋||𝑈𝑋| 𝑇𝑃𝑊𝑀 非零电压矢量UX作用时间

等式 28

𝑇2 = |𝑈𝑆𝑋|�𝑈𝑋±60�

𝑇𝑃𝑊𝑀 非零电压矢量 UX±60作用时间

等式 29

𝑇0 = 𝑇𝑃𝑊𝑀 − (𝑇1 + 𝑇2) 零矢量 O000 和 O111作用时间

等式 30

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 21

Page 22: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

2.3.4 无位置传感器

本方案建议的整个控制架构的第一阶段是强制将永磁机转子对齐得到准确的初始位置。这可以实

现电机的全转矩启动。在第二阶段,磁场定向控制运行在速度开环模式,目的是让电机运行到一

定的速度以上,此时观测器可以提供比较准确的速度和位置估计信息。一旦观测器的估计值准确

性达到可接受范围,转子速度和位置信息就由基于旋转坐标系使用龙贝格(Luenberger)类型的

反电动势观测器提供。

2.3.5 电机转子位置对齐

在目前设计方案中,正交编码器可以作为电机位置和速度传感器。因为正交编码器不能给出绝对

位置,所以在电机起动之前,我们需要获得准确的转子位置。一种非常简单易用的方法就是将转

子对齐到预定的位置。对电机施加一个固定位置的电压矢量(通常选取正弦表中零度位置),将

转子对齐到预定的位置。这个对齐操作只在电机起动时执行一次。图 10展示了电机转子对齐过程

的示意图。在恒定的电流矢量施加到电机定子之前,转子位置是未知的,在对齐过程后转子磁链

将被对齐到与定子磁链重合的位置。只有当外部负载转矩足够小于对齐矢量产生的电磁转矩时,

该方案是可行的。

图 10 转子定位过程 - PMSM 起动模式

2.3.6 开环起动 在初始位置定向以后,磁场定向控制工作在开环模式(仅在无位置传感器控制方案中使用)。电

流的设定值由速度控制器决定,其输出作为转矩参考电流,且速度 PI控制器初始值设为最大允许

输出电流。在开环阶段运行,反馈角速度一开始不参与矢量变换,所以矢量变换的角度是由一个

对速度斜坡信号积分得到的角度信息提供。这个策略目的是驱动电机的速度达到观测器可以提供

准确的速度和位置信息的范围内。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

22 Freescale Semiconductor

Page 23: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

2.3.7 反电动势观测器 当永磁同步电机达到一个最小转速时,此时转子永磁体旋转将产生一定幅值的反电动势,反电动

势观测器就可以正常工作并将逐渐切换到闭环模式。整个闭环控制的位置和速度信息由反电动势

观测器提供。 本方案的观测器是基于一种扩展反电动势的电机数学模型推导的,这个扩展反电动势模型主要由

含有转子位置信息的传统反电动势和定子电感感应的反电动势两部分组成。这样就可以通过估计

的扩展反电动势获取转子位置和速度信息。

( )[ ]

⋅+′−⋅∆+

+

−+=

error

error

eeQDelDSQr

QrDS kiiLii

SLRLLSLR

uu

θθ

ωωω

ω

δ

γ

δ

γ

cossin

等式 31

扩展反电动势可以根据图 11 所示的观测器进行估计,其实就是一个永磁同步电机定子电流观测器。

这里介绍的扩展反电动势观测器是在 dq 旋转坐标系上实现的。定子电流观测器是基于估计的电机

电阻 R 和电感 L组成的一阶电机数学模型建立的。这个电流观测器是由施加在电机上的端电压、

交叉旋转耦合项和 PI补偿器校正输出组成。观测器将扩展反电动势信息作为一个扰动项来处理,

因为此反电动势信息没有直接出现在观测器模型中。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 23

Page 24: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

图 11 龙贝格类型定子电流观测器

2.3.8 速度和位置提取

为了从位置误差中提取速度和位置信息,我们要用跟踪观测器来实现这个任务。这个算法采用的

是锁相环机制。它使用相位误差作为单输入参数,以标准的PI控制器作为补偿器。上述的跟踪观

测器如图 12所示:

图 12 获取位置信息的PLL框图

2.4 基于平均电流模式PFC控制原理 功率因数校正的控制部分包括两个控制环路:电流控制内环和电压控制外环。电压控制外环通过

软件实现一个PI控制器,调节直流母线电压使其稳定在系统设计所要求的设定值,电压PI控制器

的输出作为PFC所要控制电流的幅度。 PFC控制算法就是通过数字信号控制器控制PFC硬件开关,

使得输入电流是正弦且相位和输入电压相位一致。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

24 Freescale Semiconductor

Page 25: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

交错并联式PFC硬件电路包括输入整流桥、PFC电感(L1和L2)、 PFC两极管(D1和D2) 和PFC开关(Q1和Q2)(见图 13)。其中需要采样的模拟量有整流后的输入电压、PFC输入电流和直流

母线电压。通过控制PFC开关的断开和接通,控制实际输入电流达到期望的输入电流值和直流母

线保持期望的电压值。

图 13 交错并联式PFC的拓扑

电流内环同样通过软件实现的PI控制器直接控制PFC的MOSFET开关,以得到正弦输入电流。PI控制器的输入是参考电流值和实际测得电流值的差值。其中参考电流值是正弦波,它是输入电压

锁相得到的正弦信号和电压外环PI控制器输出的参考电流幅值两者的乘积,所以该参考电流和输

入电压是同相的。电流环PI控制器输出对应PFC电感上产生的电压,通过控制该电压,让所需的

电流给直流母线上的电容充电。该电压由输入整流电压和PFC器件的寄生电阻的电压降决定,见

图 14。最终的PWM占空比等于PFC电感上的电压除以输入整流电压。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 25

Page 26: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

控制原理

图 14 PFC 电压

2.4.1 交错并联式PFC

PFC的能量传输是不连续的,是以一定的周期进行的,因为电感的充电和放电是和PWM同频率进

行的。如果系统负载很大时,直流母线的电容可能不足以维持直流母线电压为恒定值。同时因为

电感的充电和放电时间,会造成直流母线电压出现对应的纹波。为了减少这些影响,PFC硬件电

路采用交错并联的拓扑结构。

交错并联式PFC的PFC元器件,包括电感、二极管和开关管都是双份的。其中两个开关管工作在

彼此有180度相移的反相状态。在这种情况下,输出直流母线电压的纹波减小,因为在L1电感充

电时的输出直流母线电压由L2电感放电维持,反之亦然。

仅仅从这个方面看,这种交错并联的PFC似乎是很好的解决方案。但是,交错并联PFC只在大功

率的应用中使用,因为:

• 所有的元器件加倍,增加系统成本。

• PCB电路板空间变大,特别是需要一个额外的电感和控制信号。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

26 Freescale Semiconductor

Page 27: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

系统概念

3 系统概念

3.1 PFC 和双电机的控制系统 带数字PFC变换器的双电机控制系统的结构框图如图 15所示。这是一个空调室外机应用系统的典

型结构:一个电机驱动器驱动压缩机,另一个电机驱动器驱动风机。

图 15 带PFC的双电机控制系统

本应用包括两个无位置传感器的三相永磁同步电机的磁场定向控制(FOC)和一个单相交错并联

式功率因数校正(PFC)变换器控制。三个部分的规格说明分别如下:

• 电机1 —压缩机驱动器 o 无位置传感器的三相永磁同步电机的磁场定向控制(FOC) o 压缩机的转矩补偿 o 弱磁控制 o 转子位置对齐和开环启动 o 通过双电阻电流采样重构电机三相电流 o 10 kHz的PWM o 10 kHz 的快速电流环控制 o 1 kHz的慢速速度环控制 o 单向旋转 o 1500 W功率, 8.2 A峰值电流 o 3对极

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 27

Page 28: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

系统概念

o 机械转速范围为1400 – 7200 RPM o 电气转速范围为4200 – 21600 RPM(70 – 360 Hz) o 加速度为500 RPM/s

• 电机2—风机驱动器 o 无位置传感器的三相永磁同步电机的磁场定向控制(FOC) o 弱磁控制 o 转子位置对齐和开环启动 o 旋转条件下的自由启动 o 通过双电阻电流采样重构电机三相电流 o 10 kHz的PWM o 10 kHz 的快速电流环控制 o 1 kHz的慢速速度环控制 o 单向旋转 o 30 W功率, 0.3 A峰值电流 o 4对极 o 机械转速范围为200 – 1300 RPM o 电气转速范围为800 – 5200 PRM(13 – 87 Hz) o 加速度为100 RPM/s

• 功率因数校正 o 2个MOSFET 的交错并联工作模式 o 2个MOSFET双电阻电流采样 o 80 kHz 的PWM o 20 kHz的快速电流环控制 o 500 Hz的慢速电压环控制 o 13 A峰值输入交流电流

• 其它规格 o 基于SCI 到USB 的串口通信,以连接飞思卡尔的FreeMASTER可视化调试工具 o 电机过流,PFC过流,直流母线过压等硬件故障保护,以及交流输入的频率范围检测 o 预留RS232或RS485远程通信接口 o 热管温度、冷管温度以及环境温度检测。

3.2 系统控制结构 整个应用系统包括以下几部分硬件模块:

• 带输入数字功率因数校正(PFC)、可以驱动双电机的功率电路板

• 三相永磁同步压缩机

• 三相永磁同步风机

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

28 Freescale Semiconductor

Page 29: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

系统概念

• MC56F84789数字信号控制器子卡

MC56F84789数字信号控制器通过响应用户的FreeMASTER输入命令和硬件系统反馈的电压电流

信号,执行控制算法代码后产生一系列PWM控制两个IPM驱动两个无位置传感器的三相永磁同步

电机,和两个MOSFET驱动一个单相交错并联的PFC变换器,以完成对整个系统的控制过程。

3.2.1 电机控制过程

用来驱动压缩机和风机的控制软件的结构基本上是一样的,控制算法中使用了飞思卡尔的嵌入式

软件电机库FSLESL,不同的地方主要有: 1. 二者之间的控制参数不同; 2. 压缩机的快速电流环控制包括转矩补偿算法; 3. 风机启动包括抗台风的自由旋转情况下的启动。

图 16 无位置传感器永磁同步电机磁场定向控制算法框图

图 16所示的是三相永磁同步电机的无位置传感器磁场定向算法的框图。系统的每个电机的软件控

制模块都有一个开关变量,它有ON和OFF两个状态。控制程序周期性扫描这个开关状态。当开关

状态打开(ON)时,用户通过FreeMASTER输入的速度命令被控制系统接收,送入速度斜坡

(Speed-Ramp)算法。通过比较速度斜坡(Speed-Ramp)算法的输出和实际测得的速度,得到一

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 29

Page 30: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

系统概念

个速度误差值。然后将这个差值作为速度PI控制器的输入,PI控制器的输出则是定子电流中用来

产生转矩的电流分量的给定值。

直流母线电压和电机的相电流通过ADC采样得到。ADC采样时刻由PWM模块产生的硬件触发信

号来控制。采集的直流母线电压值经过一个数字滤波器处理后被使用,而相电流采样值不需要滤

波处理直接使用。电机的三个相电流通过采集三相逆变器的其中两相下桥臂的电流重构得到的。

重构得到的三相电流变换成电流空间矢量送给磁场定向控制(FOC)算法。

无位置传感器FOC算法的转子位置和速度是由反电动势观测器(BEMF Observer)和跟踪观测器

(Tracking Observer)获得。反电动势观测器通过𝑑 𝑞⁄ 轴的电压,𝑑 𝑞⁄ 轴的电流和转速计算得到一

个角度差(观测估计所在的 γ ⊿⁄ 坐标系和实际的𝑑 𝑞⁄ 坐标系之间的角度差)。这个角度差值再作

为角度跟踪观测器的输入,角度跟踪观测器输出当前转子的位置和速度信息。基于测得的电压电

流等反馈信号量,磁场定向算法运用矢量控制技术来控制电机的运行。有关磁场定向控制详见2.3.2矢量控制算法。

当直流母线电压低于电机感应的反电动势时,电机进入弱磁控制以维持运行速度。此时电机进入

恒功率运行模式,电机转速提高但输出转矩降低。通过判断Q轴电压的富余量(Q轴电压的限制值

和通过PWM控制实际得到Q轴电压的差值)和Q轴电流差值(需要的Q轴电流和实测的Q轴电流的

差值)这两个量的差值来决定进入弱磁的条件。如果这个差值是负值,弱磁控制的PI控制器开始

减小所需要的D轴电流;弱磁算法降低永磁体的磁链量从而降低实际反电动势(BEMF)。降低反

电动势,可以增加直流母线流入电机绕组的电流。通过弱磁控制,电机的速度增加了,但是输出

最大转矩能力也成比例地减小。这种弱磁控制方法已经被飞思卡尔申请了专利(WO/2009/138821)。

每个电机使用两个独立的电流PI控制器(分别在D轴和Q轴)来控制电机以获得期望的结果。磁场

定向控制(FOC)算法的输出是定子电压空间矢量。该电压空间矢量通过空间矢量调制技术转换

成PWM占空比。再通过三相电压逆变器产生三相定子电压,连接到功率电路板的三相输出端给电

机供电。

3.2.2 PFC 控制过程

数字功率因数校正(PFC)使用和电机控制相似的软件结构。PFC控制算法也使用了飞思卡尔的

嵌入式软件电机库FSLESL。数字功率因数校正(PFC)的控制框图如图 17所示。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

30 Freescale Semiconductor

Page 31: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

系统概念

图 17 PFC 控制算法框图

本应用系统的数字功率因数校正(PFC)的软件控制模块也有一个开关变量,它有ON和OFF两个

状态。控制程序周期性扫描这个开关变量。当开关状态打开(ON)时,用户通过FreeMASTER输入的电压命令被控制系统接收,送入电压斜坡(Voltage-Ramp)算法。通过比较电压斜坡

(Speed-Ramp)算法的输出和实际测得的直流母线电压得到一个电压差值。然后将这个差值作为

电压PI控制器的输入,电压PI控制器的输出作为系统输入交流电流幅值的参考值。

系统采样输入整流后的电压值,通过特定算法得到输入电压的相位和频率。算法输出的是和输入

电压同相位的当前时刻的角度值。计算该角度的正弦值,再乘以参考电流幅值(电压PI控制器的

输出)得到输入参考电流。将此参考电流和实际测得的输入电流值比较,得到的电流差值经过电

流PI控制器,输出新的PFC电感电压给定值。

电感电压给定值再经过电压纹波消除算法处理。该算法使用电感电压给定值和输入电压的直流分

量来计算控制开关管的PWM的占空比。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 31

Page 32: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

4 硬件设计

4.1 电机控制板概述 本应用中,电机控制板由两部分构成,功率板和Freescale MC56F84789 DSC控制子卡,可以同时

完成两个三相电机的控制。电机1的驱动器使用了Fairchild公司的 IPM(U17),最大输出功率可

达1500W;电机2的驱动器使用了 Fairchild公司的IPM (U18),最大输出功率可达500W。功率板

同时设计了交错并联功率因数校正(PFC)功率电路,AC电源输入设计为宽电压范围输入,满足

110V/60Hz至230V/50Hz的全球市电范围。由于最大电流的限制,110V交流输入时,功率板最大

输出功率不能高于1KW。此外,功率板还包括以下接口,用于系统的扩展应用:母线过压制动电

阻接口、用于通信/调试的电气隔离USB接口、用于串行通信的电气隔离RS485接口、编码器接口、

用于温度检测的ADC接口和其它可扩展IO端子。

图 18所示为系统功率板、控制子卡实物图。

图 18 电机控制板

DSC 控制子卡

功率板

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

32 Freescale Semiconductor

Page 33: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

4.2 电机控制板规格参数 功率板:

• 输入电压范围 85 – 265 V AC,40 – 70Hz

• 输入采用交错并联式PFC变换器,2KW输出功率

• 两路三相电机变频控制器 (1500W + 500W),每路变频器均包括以下部分: o 具有过流、欠压保护的IPM o 电机三相电流检测 o 电机直流母线电流检测 o IPM错误信号(VFO)检测 o IPM过流截止控制电路

• AC输入整流电压检测

• 直流母线电压检测

• 电气隔离的USB/RS485接口

• 未隔离的UART通信接口

• 用于外部温度检测的ADC接口

• 电机编码器接口(可选)

• 用于状态指示的LED

• 直流母线过压制动电阻接口

• 用于连接DSC控制子卡的PCI接口

• 板载DC-DC电源,+15V,+5V,+3.3V和+3.3VA

DSC控制子卡:

• 100脚 LQFP封装的DSC MC56F84789

• 与功率板连接用的PCI 端子

• JTAG 调试接口

• 板载DC-DC电源, +3.3V,+3.3VA

• 电源指示LED

4.3 硬件描述 图 19所示为电机控制板的硬件框图。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 33

Page 34: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

图 19 电机控制板框图

上图中,粉色的DSC功能块代表DSC控制子卡,是整个电机控制板的核心,使用Freescale DSC数字信号控制器 MC56F84789。

4.3.1 输入滤波器

电机控制功率板上的输入滤波器能够降低PFC功率级的高频噪声干扰,实现良好的EMI效果。图 20所示为共模滤波器的原理图。根据不同产品EMI/EMC测试的要求,电容、电感的取值需另外计算

并通过实验获得。

图 20 输入滤波器

4.3.2 交错并联式PFC功率级

电机控制功率板设计容量为2KW,因此板载PFC功率级设计为交错并联式PFC拓扑,每一个PFC电感承担1KW的功率,可以简化PFC电路及EMI滤波电路设计的难度,有效降低输入/输出电压电

流纹波。图 21所示为基本的交错并联式PFC拓扑。

CY1

CX1CX1

CY1

CY1

CY1

AC1

AC2

PE

RV1

12

L

N

L141

2 3

PE

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

34 Freescale Semiconductor

Page 35: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

图 21 交错并联式PFC拓扑

电机控制功率板有源 PFC 功率级由 DSC 进行数字控制,通过检测两路 PFC MOSFET 电流、AC输入整流电压和直流母线电压,DSC 控制恒定的直流母线电压输出,同时实现输入 AC 电流的正

弦化。DSC PWM 控制信号通过 PFC MOSFET 驱动芯片,进行信号驱动能力的放大,进而控制两

路 MOSFET。MOSFET 驱动芯片由板载+15V 电源进行供电。精密采样电阻 R1,R2 实现 PFC MOSFET 的电流采样,电阻两端的电压降通过高精度运算放大器进行放大,接入 DSC 的 ADC 端

口。

4.3.3 板载辅助电源

直流母线电容器C20/C56/C57/C58存储电能,用于整个系统控制板的电源供给,同时为板载DC-DC辅助电源供电,产生+15V用于MOSFET/IGBT驱动芯片及IPM的供电,+5V用于编码器接口,

+3.3V/+3.3VA用于数字/模拟控制电路的供电。借助基准电源芯片LM4041,+3.3VA可以产生

+1.65VA的偏置电压用于电机电流检测电路。图 22所示为板载辅助电源的结构框图。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 35

Page 36: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

图 22 板载辅助电源结构框图

4.3.4 直流母线过压制动保护电路 制动电路用来处理功率板的直流母线过压保护。当母线电压过高时,如果不进行特殊处理,容易

损坏电路中的半导体器件甚至储能电容。制动电路包括用于多余电能消耗的功率电阻(需通过接

口外接)、用于控制制动电阻通断的 IGBT 及其驱动电路和控制电路。制动电阻可以通过 DSC 检

测直流母线电压进行控制,也可以直接通过硬件检测直流母线电压与参考电平比较进行控制,两

种控制模式均可以实现直流母线过压保护。硬件保护比较器设计成滞环比较模式,当直流母线电

压高于约 440V 时,启动制动电路,当直流母线电压低于约 400V 时,关断制动电路。图 23 所示

为制动电路的结构框图。

图 23 直流母线制动保护电路

4.3.5 三相电机驱动器 三相电机驱动器(IPM)适用于电机的直接驱动,IPM 内部包括 IGBT 逆变桥阵列、IGBT 门极驱

动器、三路自举电容充电二极管、欠压保护及过流保护电路等。图 24 所示为 IPM 模块及其外围

控制信号连接示意图。

Comparator+ Reference

MOSFET+ DRIVER

BRAKERESISTOR

GND

DC_Bus

+3.3V +15V

MCU_BRAKE

VoltageDivider

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

36 Freescale Semiconductor

Page 37: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

图 24 IPM及外围控制信号

DC_Bus 信号与直流母线连接,为 IPM 提供电机控制的电能。+15V 为 IPM 提供自身工作的直流

电源,为内部驱动器、内部模拟数字电路供电。6 路输入信号为 DSC 的 PWM 控制信号,基于+3.3V的标准,6 路输入信号通过内部驱动器,接入三相 IGBT 的栅极,6 路输入信号及内部相应的 6 个

IGBT 可分别独立控制。三相输出接到被控电机的三相端子。相电流及直流母线电流通过精密采

样电阻进行采样,如图 24 中电路拓扑所示。母线采样电阻 Rc 两端的电压降通过高精度运算放大

器放大后,接入 DSC 的 ADC 端口,同时借助 DSC 内部高速比较器,输出相应的高低电平代表 IPM是否过流,并接入 IPM 的 CSC 端口,控制 IPM 的过流保护。当 CSC 端口电平高于 0.5V 时,IPM内部控制电路将关闭所有的 6 个 IGBT,并通过 VFO(FLT_OUT)端口向 DSC 发送故障信号。

DSC 接收到 IPM VFO 故障信号后,禁止 6 路 PWM 控制信号输出,达到系统保护的目的。过流保

护电路需确保有最快的响应速度,保证系统的安全运行。 两路电机控制 IPM 具有相同的电路拓扑,唯一的差异点在于输出电流额定值的不同。

4.3.6 模拟差分放大电路 模拟放大电路实现电流采样电路电压小信号的放大,高精度运算放大器通过+3.3VA 进行供电,借

助+1.65VA 偏置电平,实现双向电流的检测。图 25 所示为模拟放大电路示意图。

POWERMODULE

DC_Bus

GND

U

V

W

Ru Rv Rw

CurrentSense Resistors

3-PHASEOUTPUT

+15V

Rc

CS

IN_UTIN_VT

IN_UB

IN_WT

IN_VBIN_WB

FLT_OUT

+ C2

GND

INPUTSFROMCONTROLDSC

FAULTOUTPUT

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 37

Page 38: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

图 25 模拟差分放大器

输入电阻 R1/R2 及电容 C1 构成高频输入滤波器,消除电路中的高频噪声。电阻 R5/R6 以及 R1~R4的值,决定了模拟放大器的放大倍数。模拟放大器的输出通过一个 RC滤波电路(靠近 DSC放置),

接入 DSC 的 ADC 输入端口。

4.3.7 SCI与USB 转换接口及UART串行通信接口 Freescale DSC 带有 SCI控制器,用于系统的在线调试或与外部系统进行串行通信。为了便于与 PC通信,电机控制功率板设计了 USB 端口与 PC 进行连接,采用 Silicon Labs 公司的标准 USB 串口

通信转换芯片(能够通过 PC 的 USB 端口进行供电),同时借助 Analog Devices 公司的 ADUM2201数字隔离器,实现功率板 SCI与 PC USB 通信转换的电气隔离。 为了减少功率板的干扰对 USB 调试的影响,功率板借助跳线完成了 UART 信号的直接引出接口,

方便与外部系统直接进行 UART 通信,如果需要必要的电气隔离,UART 通信必须外接隔离器。

4.3.8 RS485串行通信接口 RS485 串行通信采用差分信号负逻辑,标准定义方便与 TTL电路连接,具有较高的传输速率,抗

共模干扰能力强等优点,因此功率板集成了 Analog Devices 公司的 ADM2687 RS485 收发芯片,

用于 DSC UART 与外部系统进行 RS485 通信,ADM2687 自带电气隔离功能,故通信电路不需要

额外的电气隔离装置。

4.3.9 DSC控制子卡

DSC控制子卡是整个系统控制板的核心,装配Freescale公司100脚LQFP封装的MC56F84789数字信

号控制器。图 26所示为DSC控制子卡的系统框图。

OUTPUT

R3

R4

R1

R2C1

IN_pos

IN_neg

R5

+1.65V_REFR6

GNDA

+

-

U2A

OpAmp

3

21

84

+3.3VA

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

38 Freescale Semiconductor

Page 39: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

硬件设计

图 26 DSC控制子卡框图

电机控制板采用PCI 98针标准接口实现功率板与DSC控制子卡的电气连接。除了JTAG调试端口,

DSC上所有IO均与PCI接口有相互连接。正常工作时,DSC控制子卡由功率板直接供电。当调试、

程序烧录或其它独立使用时,为了电气安全,DSC控制子卡也能够通过板载的Buck DC-DC电源独

立供电。

板载模拟信号输入滤波器为简易的RC低通滤波器,可以消除DSC ADC采样的部分高频干扰。

DSC输出的PWM信号直接连接IPM/MOSFET驱动芯片,PCI接口引脚也包括了其它的GPIO信号。

在电机控制板中,DSC的SCI通信端口用于FreeMASTER工具的在线调试,可以通过UART USB转换电路,直接连接PC的USB端口,同时也可以连接其他的外部系统;实际应用中也可以使用SCI的TX/RX端口直接进行UART通信。当使用控制板中的USB端口时,不需要额外的电气隔离装置,

但直接的UART通信需要外置电气隔离装置。DSC另外一路SCI通信 ,通过UART RS485转换电路,

实现与外部系统的RS485串行通信,RS485电路包含电气隔离,通信时不需要额外的电气隔离设备。

5 软件设计 本应用的软件开发环境使用飞思卡尔的集成开发工具CodeWarrior10.5,整个软件是用C 语言实现

的,并调用了飞思卡尔的嵌入式软件库(FSLESL)。该软件库包括各种数学运算库、电机控制

算法库、观测器库、信号滤波器库等。这些库和对应的文档可以从飞思卡尔网站freescale.com/fslesl直接下载 。想获得更多有关如何在CodeWarrior的工程中使用这些库,请从freescale.com下载参考

文档AN4586: Inclusion of DSC Freescale Embedded Software Libraries in CodeWarrior 10.2。

本章主要描述系统的软件设计。首先讨论如何用归一化的定点小数格式来表示控制器中的各个物

理量,然后介绍系统中电机和PFC控制算法的时序、同步问题,最后简单介绍控制软件的实现。

+3.3V

+3.3V

PWMOUTPUTS

ANALOGINPUTS

USB

GPIO

INPUTFILTERSDC/DC

SCI/USBJTAG

CONTROL DSCMC56F84789

+5 to +15V

GND GNDA

+3.3VA

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 39

Page 40: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

5.1 定点小数表示 应用程序中涉及到的电压、电流、角度和速度等物理量都是用定点小数表示的。飞思卡尔的数字

信号控制器的硬件支持归一化定点小数运算。程序和算法库通过将物理量表示成归一化小数形式

的定点数,充分利用DSC硬件指令特点提高计算速度。

对于一个N比特位的有符号数字,其归一化的定点小数表示形式为1.[N-1]。其中最高一位是符号

位,剩余N-1位是小数位。它表示的有符号小数值(SF)的范围为:

–1.0 ≤ SF ≤ + 1.0 – 2 –[N – 1]

对于字型和长字型的变量,其可以表示的最小负数为-1,内部表示格式分别为0x8000和0x80000000。字型变量可以表示的最大正数是1.0 – 2-15,对应的内部格式为0x7FFF;长字型变量可以表示的最

大正数是1.0 – 2-31,对应的内部格式为0x7FFFFFFF。

5.2 模拟量的定点表示 物理量的实际值和归一化的定点小数表示之间满足下面等式。

小数值 =实际值

实际量化范围

等式 32

其中:

• 小数值=物理量的归一化小数表示

• 实际值=用物理单位表示的实际物理量的值

• 实际量化范围=系统定义的用物理单位表示的物理量的最大值

下面几个小节分别举例介绍如何用归一化的定点小数来表示电压、电流和角度。

5.2.1 电压的定点表示

电压值一般是通过ADC采样分压电阻上的电压获得的。所以被采样电压的最大值和ADC输入电压

的范围成正比。在本应用中,电压最大值是458V。下面的例子显示如何使用归一化的小数电压变

量。

电压最大值: Vmax = 458 V

被采样的电压: Vmeasured = 352 V

(Frac16)voltage_variable =Vmeasured

Vmax=

352V458V

= 0.76856

等式 33

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

40 Freescale Semiconductor

Page 41: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

这个16位小数值内部存储为16位整型值:

(𝐈𝐧𝐭𝟏𝟔)𝐯𝐨𝐥𝐭𝐚𝐠𝐞𝐯𝐚𝐫𝐢𝐚𝐛𝐥𝐞 = (𝐅𝐫𝐚𝐜𝟏𝟔)𝐯𝐨𝐥𝐭𝐚𝐠𝐞𝐯𝐚𝐫𝐢𝐚𝐛𝐥𝐞 ∙ 𝟐𝟏𝟓

= 𝟎.𝟕𝟔𝟖𝟓𝟔 ∙ 𝟐𝟏𝟓 = 𝟐𝟓𝟏𝟖𝟒 等式 34

上面的公式可以用下面的图 27表示。

图 27 电压测量

5.2.2 电流的定点表示

电流采样电阻的压降经过运算放大器输出到ADC进行采样,获得对应的电流值。如果电流的方向

是双向的,则运放的输出信号还要有个偏置量。偏置量的大小等于ADC输入范围的一半。这种情

况下,可检测电流的最大值和ADC输入最大电压的一半值成正比。如图 28所示。电流变量的小数

表示过程和电压变量类似。

图 28 电流测量

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 41

Page 42: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

5.2.3 角度的定点表示

转子位置的角度也是用16位的有符号的小数表示的,其范围为[-1, 1),对应的角度范围是[−π, π)。例如用16位有符号整数表示−π和π分别为:

−π = 0x8000

π = 0x7FFF

5.3 参考方案的同步设计

本参考设计基于单颗控制器芯片同时控制两个三相永磁同步电机无位置传感器矢量控制驱动器和

一个单相交错并联式功率因数校正(PFC)变换器。这三个控制对象要用一颗数字信号控制器芯

片来同时控制,彼此间的时序相互关联,因此整个系统的控制算法需要合理安排时序并且它们之

间要精准地同步。

图 29 算法的同步时序

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

42 Freescale Semiconductor

Page 43: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

5.3.1 电机控制算法的时序同步设计

首先两个电机的控制算法必须要同步。本参考设计所用的数字信号控制器MC56F84789运行的时

钟频率是100 MHz。控制两个电机的PWM模块的运行频率都是10 KHz。为了避免同一时刻两个电

机同时从直流母线电容消耗能量,控制两个电机的PWM彼此相差180度相位(如图 29所示)。

为了产生180度的延时,设置电机M1的所有PWMA信号和PWMA的子模块SM0同步,设置电机M2的所有PWMB信号的同步信号为EXT_SYNC。然后由PWMA的SM0子模块的VAL0产生180度延时

的硬件触发信号,该触发信号通过芯片的内部模块互连单元XBAR连接到PWMB的外部同步信号

EXT_SYNC。从而使得PWMA和PWMB有180度相位延迟。

当每个电机电流采样完成后,对应的磁场定向控制(FOC)算法在中断服务例程中计算。因为电

机相电流采样和相应的PWM信号同步,所有两个电机的FOC算法执行时序也彼此相差180度。图 29显示了PWM信号之间的同步。两个电机PWM都是半周期重载(Reload),当下桥臂MOSFET开通时采样对应的相电流,当下桥臂MOSFET断开时采样零电流偏差(0A电流对应的采样值)。

当采样第一个电机相电流时同时采样另一个电机的零电流偏差。然后安置一个PWM比较中断来计

算第一个电机的FOC算法并更新PWM,同时计算第二个电机的慢速速度环控制。这样安排的好处

是,当控制压缩机的算法在计算转矩补偿时运算量比较大,可以将转矩补偿的部分运算放在慢速

速度环控制里面,充分利用风机控制算法的时间间隙,最终使得两个电机的控制算法运行所占的

时间相当。

5.3.2 PFC 控制算法的时序同步设计

两个电机直接同步后,PFC的PWM也必须和两个电机的PWM同步。PFC的PWM工作频率是80 kHz(是电机PWM频率的8倍),但是PFC控制算法是每四个PWM周期计算一次,也就是20 kHz,所

以PFC的控制频率是电机控制频率的2倍。

从图 29可以看到,PFC控制算法安排在两个电机控制算法的间隙。这样安排使得PFC控制和两个

电机控制这三者彼此之间互不干扰。同时可以看到在PFC控制计算完成到上次FOC计算对应的

PWM 的重载(reload)时刻之间还有时间间隙。同时在有转矩补偿算法的压缩机控制中,运算量

大,有可能在下一个PFC控制中断到来前无法完成本次控制所有运算。为了能充分利用上面提到

的时间间隙。系统设置PFC中断的优先级高于电机控制中断。这样在不打断PFC运行的前提下,

电机可以利用这个时间间隙在对应的PWM的重载( Reload)信号到来之前完成计算。

为了避免PFC开关产生的毛刺对电机电流采样的影响,要求电机的电流采样点(实际下桥臂PWM中间点)始终对准PFC的PWM的中间点(见图 29所示)。为了达到这个目的,所有PWM都设定

为中心对齐模式。同时考虑到实际硬件延时,系统设定两个电机PWM同步是通过硬件同步完成的,

具体参考5.3.1电机控制算法的时序同步设计。PFC的PWM同步是通过在第一个电机PWMA运行后,

通过设定一个PWM比较中断,在中断中开始运行PFC的PWM。这个比较中断的比较值由系统硬

件决定的,可以离线测量。目的使得实际电机下桥臂的MOSFET脉冲中心点对准PFC的MOSFET脉冲中心点。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 43

Page 44: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

5.4 主状态机

状态机结构可以集成所有的应用模块,主要有四部分组成,这些状态见如下所述:

• Fault – 系统遇到错误所处的状态

• Init – 变量初始化

• Stop – 系统初始化完成后等待Run命令

• Run – 系统运行状态,可以被Stop命令停止。

在这些主状态内还有如下的过渡函数:

• Init -> Stop –系统完成初始化后系统向Stop状态切换

• Stop -> Run –当施加Run命令生效时,系统将进入Run状态。

• Run -> Stop –当Stop命令生效时,系统将进入切换到Stop状态

• Fault -> Init – 错误标志被清除时,系统将切换到初始化状态

• Init,Stop,Run -> Fault – 状态中发生错误时,系统将切换到Fault状态

主状态机使用如下的标志实现各个主状态之间的切换:

• SM_CTRL_INIT_DONE – 当此标志置位时,系统将从Init状态切换到Stop状态。

• SM_CTRL_FAULT – 当此标志置位时,系统将从Init,Stop,Run任一当前状态切换到Fault状态。

• SM_CTRL_FAULT_CLEAR – 当此标志置位时,系统将从Fault状态切换到Init状态

• SM_CTRL_START – 这个标志将通知系统有一个命令要从Stop状态切换到Run状态。尽管这

个动作必须被执行,但是也要调用这个过渡函数。这是因为在系统准备切换时将花费一定

的时间。

• SM_CTRL_RUN_ACK – 这个标志就是承认系统可以从Stop状态切换到Run状态

• SM_CTRL_STOP – 这个标志将通知系统有一个命令要从Run状态切换到Stop状态。尽管这

个动作必须被执行,但是也要调用这个过渡函数。这是因为在系统准备切换时将花费一定

的时间。

• SM_CTRL_STOP_ACK – 这个标志就是承认系统可以从Run状态切换到Stop状态。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

44 Freescale Semiconductor

Page 45: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 30 主状态机框图

此状态机结构应用在 state_machine.c和state_machine .h生成。该状态机描述如下: /* State machine control structure */ typedef struct { __pmem SM_APP_STATE_FCN_T const* psState; /* State functions */ __pmem SM_APP_TRANS_FCN_T const* psTrans; /* Transition functions */ SM_APP_CTRL uiCtrl; /* Control flags */ SM_APP_STATE_T eState; /* State */

} SM_APP_CTRL_T;

状态机结构体有四个组成部分:

• psState –指向客户端状态机函数。当系统运行在特定的状态时,将调用客户端指定的状态机

函数。

• psTrans –指向客户端状态过渡函数。当系统准备切换到另一个特定状态时,将调用指定的

过渡函数。

• uiCtrl –基于上面讲到的多种标志,此个变量用于控制状态机行为。

• eState –这个变量指示当前实际的状态机所处状态。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 45

Page 46: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

客户端状态机函数定义如下所示结构: /* User state machine functions structure */ typedef struct { PFCN_VOID_VOID Fault; PFCN_VOID_VOID Init; PFCN_VOID_VOID Stop; PFCN_VOID_VOID Run;

} SM_APP_STATE_FCN_T;

客户端过渡状态机函数定义见如下结构: /* User state-transition functions structure*/ typedef struct { PFCN_VOID_VOID FaultInit; PFCN_VOID_VOID InitFault; PFCN_VOID_VOID InitStop; PFCN_VOID_VOID StopFault; PFCN_VOID_VOID StopInit; PFCN_VOID_VOID StopRun; PFCN_VOID_VOID RunFault; PFCN_VOID_VOID RunStop;

} SM_APP_TRANS_FCN_T;

控制标志的变量见如下定义: typedef unsigned short SM_APP_CTRL; /* State machine control command flags */ #define SM_CTRL_NONE 0x0 #define SM_CTRL_FAULT 0x1 #define SM_CTRL_FAULT_CLEAR 0x2 #define SM_CTRL_INIT_DONE 0x4 #define SM_CTRL_STOP 0x8 #define SM_CTRL_START 0x10 #define SM_CTRL_STOP_ACK 0x20 #define SM_CTRL_RUN_ACK 0x40

状态标识变量见如下定义: /* Application state identification enum */ typedef enum { FAULT = 0, INIT = 1, STOP = 2, RUN = 3,

} SM_APP_STATE_T;

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

46 Freescale Semiconductor

Page 47: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

状态机必须使用如下的内联函数在程序中周期性地调用。这个函数输入就是指向上述状态机结构

的指针。此结构在程序调用的地方被声明和初始化。 /* State machine function */ extern inline void SM_StateMachine(SM_APP_CTRL_T *sAppCtrl) { gSM_STATE_TABLE[sAppCtrl -> eState](sAppCtrl); }

如何初始化并使用状态机结构的例子将在电机,功率因数校正和应用状态三个状态机中展示。

5.5 电机状态机 电机状态机是基于主状态机结构的。Run主状态的子状态嵌在顶层主状态机结构内,合理地控制

电机的运行。首先,对主状态机的描述如下: • Fault –当系统有错误发生时一直处于此状态,直到错误的标志被清除。在电机 1 由于过载

启动失败时,在此状态里定义了一段压力平衡时间(4 分钟),之后系统才可以再次起动

电机。因为压力太大,电机 1 是无法起动成功的。在此状态内,采样直流母线电压并滤波

处理。 • Init – 此主状态执行变量初始化 • Stop – 系统完成初始化等待 Run 命令。此状态内 PWM 输出被禁止。直流母线电压被采样

并滤波处理。 • Run – 系统处于运行状态,当有 Stop 命令时可以停止系统的运行。Run 的子状态在此状态

内被调用。

在这些主状态内还有如下的过渡函数: • Init -> Stop –在这个函数中执行空任务。 • Stop -> Run –占空比被初始化为 50%;PWM 输出被使能。电流 ADC 通道初始化。Calib 子

状态被设置为 Run 子状态的初始状态。 • Run -> Stop – 当 Stop 命令生效时,系统将进入 Stop 状态。如果系统在特殊的 Run 子状态

时,系统不会直接进入 Stop 状态,会先过渡到自由停车状态。 • Fault -> Init – 在这个函数中执行空任务。 • Init -> Stop – 禁止 PWM 输出。 • Run -> Fault – 电流和电压变量被清零。禁止 PWM 输出。一旦电机 1 因为过载起动失败,

压力平衡时间就被初始化。

当主状态机在Run状态时Run子状态机就会被调用,Run子状态机如下所述: • Calib – 电流偏置ADC自校准。执行完此状态后系统将切换到Ready状态。在此状态内,采

样直流母线电压并滤波处理。PWM占空比设为50%且禁止输出。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 47

Page 48: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

• Ready – PWM占空比设为50%且使能输出。采样电流,配置ADC通道。初始化变量。 • Align –采样电流,配置ADC通道。调用转子定位算法。更新PWM。在指定时间内执行完

此状态,系统将切换到Startup子状态。采样直流母线电压并滤波处理。采样相电流偏置并

滤波。 • Startup –采样电流并配置ADC通道。调用反电动势观测器算法估计转子速度和位置。调用

FOC算法,更新PWM。如果起动成功,系统将切换到Spin子状态,否则,切换到Freewheel子状态。采样直流母线电压并滤波处理。采样电流偏置并滤波处理。调用开环起动算法。

对估计的速度进行滤波处理。 • Spin – 采样电流并配置ADC通道。调用反电动势观测器算法估计转子速度和位置。调用FOC

算法。更新PWM。电机开始旋转,采样直流母线电压并滤波处理。采样电流偏置并滤波处

理。对估计的速度进行滤波处理。调用速度斜坡命令,弱磁,速度环控制器算法。电机速

度范围和过载将被监控。 • Freewheel –PWM占空比设为50%且禁止输出。采样电流并配置ADC通道。采样直流母线电

压并滤波处理。采样电流偏置并滤波处理。由于转子惯性,系统将在此子状态等待一段时

间,即等到转子静止为止。然后系统将评估现有条件,以确定切换到Align或者Ready状态。

如果有错误发生,系统将进入Fault状态。

Run子状态机也有对应的过渡函数,在子状态相互切换前调用。过渡子状态函数描述如下: • Calib -> Ready –自校准完成,进入Ready状态。 • Ready -> Align –当Ready状态出现非零速度命令时,将准备进入Align子状态。初始化一些

变量(电压,速度,位置),起动计数设为1。确定对齐时间。 • Align -> Ready –当Align状态时出现零速度命令,将进入Ready子状态。电压和电流相关的

变量清零。PWM占空比设为50%。 • Align -> Startup –定位完成后系统将进入Startup子状态。初始化滤波器和相关的控制变量。

PWM占空比设为50%。 • Startup -> Spin –起动成功后,将进入闭环Spin子状态。 • Startup -> Freewheel –在起动状态时如果起动失败后,将进入Freewheel子状态。初始化相关

变量(电压,速度,位置),起动计数设为1。确定自由停车的时间。 • Spin -> Freewheel –在Spin状态时,当出现零速度命令时,将进入Freewheel子状态。初始化

一些变量(电压,速度,位置),起动计数设为1。确定自由停车的时间。 • Freewheel -> Ready –在Freewheel子状态,速度命令还是零时,系统将进入Ready子状态。 • Freewheel -> Align –在Freewheel子状态,当速度命令非零时,系统将进入Align子状态。禁

止PWM输出。初始化一些变量(电压,速度,位置),确定对齐的时间。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

48 Freescale Semiconductor

Page 49: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 31 电机运行的子程序框图

在M1_statemachine.c .h 和M2_statemachine.c .h两个头文件中定义了上述电机状态机的应用。电机1的主状态机结构描述如下:

主状态机客户端函数原型: static void M1_StateFault(void); static void M1_StateInit(void); static void M1_StateStop(void); static void M1_StateRun(void);

主状态机客户端切换函数原型: static void M1_TransFaultInit(void); static void M1_TransInitFault(void); static void M1_TransInitStop(void); static void M1_TransStopFault(void); static void M1_TransStopInit(void); static void M1_TransStopRun(void); static void M1_TransRunFault(void); static void M1_TransRunStop(void);

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 49

Page 50: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

主状态机函数表初始化: /* State machine functions field (in pmem) */ __pmem static const SM_APP_STATE_FCN_T msSTATE = {M1_StateFault, M1_StateInit, M1_StateStop, M1_StateRun};

主状态机过渡函数初始化: /* State-transition functions field (in pmem) */ __pmem static const SM_APP_TRANS_FCN_T msTRANS = {M1_TransFaultInit, M1_TransInitFault, M1_TransInitStop, M1_TransStopFault, M1_TransStopInit, M1_TransStopRun, M1_TransRunFault, M1_TransRunStop};

最后介绍一下主状态机结构初始化: /* State machine structure declaration and initialization */ SM_APP_CTRL_T gsM1_Ctrl = { /* gsM1_Ctrl.psState, User state functions */ &msSTATE, /* gsM1_Ctrl.psTrans, User state-transition functions */ &msTRANS, /* gsM1_Ctrl.uiCtrl, Deafult no control command */ SM_CTRL_NONE, /* gsM1_Ctrl.eState, Default state after reset */ INIT };

子状态机也是类似的声明。因此Run子状态机状态变量有如下定义: typedef enum { CALIB = 0, READY = 1, ALIGN = 2, STARTUP = 3, SPIN = 4, FREEWHEEL = 5, } M1_RUN_SUBSTATE_T; /* Run sub-states */

对于Run子状态机有两套函数定义。一套供快速电流环使用,另一套供慢速速度环使用。因此对

于客户端状态函数原型如下: static void M1_StateRunCalib(void); static void M1_StateRunReady(void); static void M1_StateRunAlign(void); static void M1_StateRunStartup(void); static void M1_StateRunSpin(void); static void M1_StateRunFreewheel(void);

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

50 Freescale Semiconductor

Page 51: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

static void M1_StateRunCalibSlow(void); static void M1_StateRunReadySlow(void); static void M1_StateRunAlignSlow(void); static void M1_StateRunStartupSlow(void); static void M1_StateRunSpinSlow(void); static void M1_StateRunFreewheelSlow(void);

子状态机客户端过渡函数原型如下: static void M1_TransRunCalibReady(void); static void M1_TransRunReadyAlign(void); static void M1_TransRunAlignStartup(void); static void M1_TransRunAlignReady(void); static void M1_TransRunStartupSpin(void); static void M1_TransRunStartupFreewheel(void); static void M1_TransRunSpinFreewheel(void); static void M1_TransRunFreewheelAlign(void); static void M1_TransRunFreewheelReady(void);

子状态函数表初始化: /* Sub-state machine functions field (in pmem) */ __pmem static const PFCN_VOID_VOID mM1_STATE_RUN_TABLE[6][2] = { {M1_StateRunCalib, M1_StateRunCalibSlow}, {M1_StateRunReady, M1_StateRunReadySlow}, {M1_StateRunAlign, M1_StateRunAlignSlow}, {M1_StateRunStartup, M1_StateRunStartupSlow}, {M1_StateRunSpin, M1_StateRunSpinSlow}, {M1_StateRunFreewheel, M1_StateRunFreewheelSlow} };

如前章节所述,系统状态机在中断服务例程中调用。在中断服务例程里调用的状态机有两个: 一个是用于快速电流环控制,另一个用于慢速速度环控制。如何调用快速环的方法如下: /* Fast loop calculation */ geM1_StateRunLoop = FAST; /* StateMachine call */ SM_StateMachine(&gsM1_Ctrl);

同样地慢速环状态机的调用方法如下: /* Slow loop calculation */ geM1_StateRunLoop = SLOW; /* StateMachine call */ SM_StateMachine(&gsM1_Ctrl);

在客户端Run状态机里,子状态机函数调用如下:

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 51

Page 52: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

/* Run sub-state function */ mM1_STATE_RUN_TABLE[meM1_StateRun][geM1_StateRunLoop]();

第一维变量里先区分Run的子状态,然后才是快速环和慢速环的区分。

对于电机2,代码也是以同样的方式进行。只是不再用M1命名,而是M2命名。

5.6 PFC 控制状态机 PFC的状态机也是基于主状态机结构。PFC的Run状态的各个子状态机,也被实现在主状态机结构

中去控制PFC。首先描述一下主状态机的状态函数: • Fault –系统有错误发生并等待错误标志被清除。

o 此状态中PWM输出禁止。 o 仍然采样直流母线电压和输入整流电压并进行滤波处理。

• Init – 变量初始化 • Stop –系统完成初始化后等待 Run 命令

o 此状态中PWM输出禁止。 o 采样直流母线电压和输入整流电压并进行滤波处理。 o 从输入电压的直流成分中计算阀值用以检测输入电压相位。

• Run –系统运行状态,此状态可以被 Stop 命令终止 o 采样直流母线电压和输入电压并滤波处理。 o 电流相位检测并调用子状态机处理程序完成PFC控制。

在这些状态函数之间有状态过渡函数: • Init >Stop – 为了满足主状态机结构需要的空函数,没有任何实质性操作。 • Stop -> Run :

o PWM的占空比初始化为0%。 o PWM输出禁止。 o 控制变量初始化。 o 设定ADC校正时间。 o 设定PFC_Calib 子状态作为Run状态的第一个子状态。

• Run -> Stop : o 给PFC子系统发送Stop命令。 o 经过控制软件确认后,系统进入Stop状态。

• Fault -> Init –为了满足主状态机结构需要的空函数,没有任何实质性操作。 • Init, Stop -> Fault – PWM 输出禁止. • Run -> Fault :

o PWM输出禁。 o PWM占空比设为0%。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

52 Freescale Semiconductor

Page 53: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

当PFC的状态机进入Run状态时,Run状态的子状态处理程序被调用,Run状态的子状态函数包括: • Calib –程序计算并得到输入电压的相位,如果输入电压的频率在允许的范围内,系统进入

Ready子状态,否则设置一个错误标志位以标示错误。 • Ready – PFC 获得并跟已经随输入电压的相位信息,正在等待设定输出直流母线的电压命

令。 • Run – 运行PFC控制算法,包括快速电流环和慢速电压环。避免输出电压突变,使用了电压

阶斜坡(voltage-ramp)算法。

Run状态的子状态之间也有状态过渡函数。当状态在子状态之间切换时,这些函数被调用。 子状

态过渡函数包括: • Calib -> Ready – 锁相完成,准备进入Ready子状态。 • Ready -> Run – 收到非零的输出直流母线电压命令,准备进入Run子状态,同时相应的控制

变量被初始化。 • Run -> Ready – 收到直流母线电压值为0的命令,准备进入Ready子状态。PWM占空比设置

为0%,同时要求的电压电流变量值设为0。

图 32 PFC的Run子状态机

在PFC_statemachine.h和PFC_statemachine.c 两个文件分别定义和实现了上述状态机函数。PFC状态

机主要函数和结构分别介绍如下:

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 53

Page 54: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

主状态机函数原型: static void PFC_StateFault(void); static void PFC_StateInit(void); static void PFC_StateStop(void); static void PFC_StateRun(void);

主状态机过渡函数原型: static void PFC_TransFaultInit(void); static void PFC_TransInitFault(void); static void PFC_TransInitStop(void); static void PFC_TransStopFault(void); static void PFC_TransStopInit(void); static void PFC_TransStopRun(void); static void PFC_TransRunFault(void); static void PFC_TransRunStop(void);

主状态机函数数组初始化代码如下: /* State machine functions field (in pmem) */ __pmem static const SM_APP_STATE_FCN_T msSTATE = {PFC_StateFault, PFC_StateInit, PFC_StateStop, PFC_StateRun};

主状态机过渡函数数组初始化代码如下: /* State-transition functions field (in pmem) */ __pmem static const SM_APP_TRANS_FCN_T msTRANS = {PFC_TransFaultInit, PFC_TransInitFault, PFC_TransInitStop, PFC_TransStopFault, PFC_TransStopInit, PFC_TransStopRun, PFC_TransRunFault, PFC_TransRunStop};

主状态机结构初始化代码如下: /* State machine structure declaration and initialization */ SM_APP_CTRL_T gsPFC_Ctrl = { /* gsPFC_Ctrl.psState, User state functions */ &msSTATE, /* gsPFC_Ctrl.psTrans, User state-transition functions */ &msTRANS, /* gsPFC_Ctrl.uiCtrl, Default no control command */ SM_CTRL_NONE, /* gsPFC_Ctrl.eState, Default state after reset */ INIT };

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

54 Freescale Semiconductor

Page 55: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

类似的,对应的Run状态的子状态标识类型定义如下: typedef enum { PFC_CALIB = 0, PFC_READY = 1, PFC_RUN = 2 } PFC_RUN_SUBSTATE_T; /* Run sub-states */

Run状态的子状态机函数原型: static void PFC_StateRunCalib(void); static void PFC_StateRunReady(void); static void PFC_StateRunRun(void);

Run状态的子状态机过渡函数原型: static void PFC_TransRunCalibReady(void); static void PFC_TransRunReadyRun(void); static void PFC_TransRunRunReady(void);

Run状态的子状态机函数数组初始化代码如下: /* Sub-state machine functions field (in pmem) */ __pmem static const PFCN_VOID_VOID mPFC_STATE_RUN_TABLE[6] = { PFC_StateRunCalib, PFC_StateRunReady, PFC_StateRunRun };

状态机在中断服务程序中被调用,从而完成相应的PFC算法计算。调用方式如下: /* State machine call */ SM_StateMachine(&gsPFC_Ctrl);

5.7 芯片内存使用情况 表 4是DSC MC56F84789应用开发中存储空间的使用情况。丰富的存储空间足以应对其它额外的

任务。 表 4 内存使用情况

Memory Available MC56F84789 Used

FLASH 288 kB 24.7 kB

RAM 32 kB 2.7 kB

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 55

Page 56: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

5.8 外设的使用情况 对于应用中特定的功能,需要使用下列外设(表 5)。这些外设具有特定的用途。

表 5 外设使用情况

Module Purpose

PWM A • 电机 1的 3相 PWM • PFC的 PWM • 系统同步和时序控制

PWM B • 电机 2 的 3 相 PWM

ADC A & B

• 电机 1 & 2 电流 • 直流母线电压 • PFC 电流 • PFC输入电压

CMP A, B, C and D

• 电机2过流错误保护 • PFC2 过流错误保护 • PFC1过流错误保护 • 电机1过流错误保护

Cross bar A • PWMA到PWMB之间同步信号 • 电机1和电机2的过流信号到PWMA和PWMB的错误 • PFC双路过流信号到PWMA的错误

Cross bar B & AOI • PWM到ADC硬件触发信号

UART 0,1 • 上位机的通信 UART,连接 FreeMASTER • 远程通讯

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

56 Freescale Semiconductor

Page 57: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 33 外设使用情况

5.9 示波器时序图 下面是示波器的截图,这些图显示了不同运行条件下的控制时序。

• 第一个通道(黄色)是控制压缩机的PWM波形。其频率是10 kHz。 • 第二个通道(红色)是GPIO的输出信号。该GPIO在进入PFC控制中断设置为1,离开中断

时清零。我们可以看到其频率是20 kHz。 • 第三个通道(青色)是GPIO的输出信号。该GPIO在进入电机M1控制中断设置为1,离开

中断时清零。电机我们可以看到其频率和电机的PWM频率一样的。 • 第四个通道(绿色)是GPIO的输出信号。该GPIO在进入电机M2控制中断设置为1,离开

中断时清零。电机我们可以看到其频率和电机的PWM频率一样的。

PFC控制中断的优先级比两个电机控制中断的优先级要高。当压缩机计算转矩补偿算法时,可以

看到显示电机控制计算时间的GPIO信号和显示PFC控制计算时间的GPIO信号重叠。这时候因为

PFC中断优先级高所以抢占了正在运行的电机的中断。电机控制在PFC计算结束后继续完成计算。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 57

Page 58: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 34 PFC和两个电机都停止时的时序图

图 35 PFC运行,两个电机停止时的时序图

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

58 Freescale Semiconductor

Page 59: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 36 PFC和风机M2运行,压缩机M1停止时的时序图

图 37 PFC和两个电机都运行时的时序图

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 59

Page 60: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 38 PFC和两个电机都运行时的重叠时序图

图 39 PFC中断抢占压缩机中断放大时序图

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

60 Freescale Semiconductor

Page 61: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 40 PFC中断抢占风机中断放大时序图

5.10 总结 图 41和图 42分别为FreeMASTER可视化工具显示的电机1和电机2的三相电流,以及PFC输入电压

和电流。系统工作条件分别如下: • 输入电压230 V,50 Hz • 输入电压 110 V,60 Hz

同时两图运行时的负载分别是,电机1运行在4500 RPM(重载) 和1200 RPM(轻载)。 可以看

驱动风机的电机2 的电流和功耗都很低。

PFC的正弦电流幅度正比于压缩机的负载。输入电压和输入电流成反比,当输入电压高时,PFC电流降低。

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 61

Page 62: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 41 电机1 & 2 电流,PFC输入整流电压和电流(230 V/50 Hz)

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统,设计参考手册, Rev. 0, 04/2014

62 Freescale Semiconductor

Page 63: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

软件设计

图 42 电机1 & 2 电流,PFC输入整流电压和电流(110 V / 60 Hz)

6 参考文献 • DRM139: Dual Sensorless PMSM Field-Oriented Control With Power Factor Correction on

MC56F84789 DSC

基于MC56F84789 DSC单芯片同时控制一个单相PFC和两个无位置传感器的三相永磁同步电机的空调系统, 设计参考手册, Rev. 0, 04/2014

Freescale Semiconductor 63

Page 64: Freescale Semiconductor Document Number: DRM152 …cache.nxp.com/zh-Hans/files/DRM152.pdf · 控制原理 10 3 系统概念 27 4 ... o 正弦永磁同步电机采用三相正弦波控制,而方波无刷直流电机采用方波六步换向控制。

How to Reach Us:

Home Page: www.freescale.com

Web Support: www.freescale.com/support

本文档中的信息仅供系统和软件实施方使用 Freescale 产品。 本文并未 明示或者暗示授 予利用本文档信息进行设计或者加工集成电路的版权许 可。 Freescale 保留对此处任何 产品进行更改的权利,恕不另行通知。

Freescale 对其产品在任何特定用途方面的适用性不做任何担保、表示或 保证,也不承 担因

为应用程序或者使用产品或电路所产生的任何责任,明 确拒绝承担包括但不局限 于后果性

的或附带性的损害在内的所有责任。Freescale 的数据表和 / 或规格中所提供 的 " 典型 " 参数

在不同应用中可能并 且确实不同,实际性能会随时间而有所变化。 所有 运行参数,包括 " 经典 值 " 在内,必须经由客户的技术专家对每个客户的应用程序进行 验证。Freescale 未转让

与其专利权及其他权利相关的许可。 Freescale 销售产品时遵 循以下网址中包含的标准销售

条款和条件:freescale.com/SalesTermsandConditions.

Freescale, the Freescale logo are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. All other product or service names are the property of their respective owners. © 2014 Freescale Semiconductor, Inc.

Document Number: DRM152 Rev. 0 04/2014