1 简介

与传统的单相交流电机相比,PMSM电机的效率更高、噪声更低,因此被广泛应用于家用 电冰箱压缩机中。典型的冰箱电气控制系统包含2个控制板,一个用于控制冰箱系统,另一 个用于控制压缩机。

本冰箱压缩机开发参考设计(Refrigerator Compressor Development Reference Design, RCDRD)旨在帮助工程师使用dsPIC®数字信号控制器(Digital Signal Controller,DSC) 开发PMSM压缩机控制应用。本开发参考设计的目标是为内置永磁同步电机( Interior Permanent Magnet Synchronous Motor,IPMSM)和表面永磁同步电机(Surface Permanent Magnet Synchronous Motor,SPMSM)压缩机提供一种极具竞争力的无传感器控制解决方 案,兼具硬件和软件。 额定连续输出电流为0.65A(RMS)。当在室温环境下以187V至264V单相输入电压运行 时,最高可达到约250W的连续输出功率。对于压缩机的瞬时高压操作,峰值输出功率为 350W。有关RCDRD硬件的更多详细信息,请参见第2章“硬件说明”。 本文档介绍如何使用RCDRD原型1。下面的图1-1给出了此参考设计的图片。

 

1-1 冰箱压缩机开发参考设计

 

1.1 系统和工具要求

1.1.1 基本要求

1.1.2 高级要求

以下要求适用于诊断和测试用具功能。

 

2 硬件说明

2.1 简介

RCDB由220V交流电网供电,使用dsPIC33EP64MC202控制压缩机电机。输入的220V交 流电压经过滤波器和保护电路,然后通过整流器电路转换为直流电压。辅助电源电路为 MCU、反馈电路和三相逆变桥电路提供非隔离15V和3.3V电压。下面的图2-1给出了开发板 的图片,而图2-2给出了框图。

 

2-1 冰箱压缩机开发板

2-2 RCDB框图

 

2.2 关键功能模块

RCDB具有各种功能模块:EMI滤波器和保护电路、整流器、辅助电源、MCU、逆变器、反 馈电路以及通信端口。图2-3和表2-1中标记了这些模块。

2-3 RCDB
 


2.2.1 EMI滤波器和保护电路

开发板的输入电源先经过EMI滤波器和保护模块,如下面的图 2-4 所示。 F300 是一个 250 VAC/10A快速熔断器,在电流达到其额定值的1000%时,断开时间为0.03s。Vst300是一个名称为TVR14561D的氧化锌压敏电阻,用于浪涌保护。EMI滤波器包含两级。如果只有一 级滤波器有效,则应将CY300、CY303、CX302、L301和CX300脱焊,并将L301短路。

2-4 EMI滤波器和保护电路

2.2.2 整流器 此模块包括一个浪涌电流保护电路、一个单相全桥整流器和一个直流母线电容,如下面的 图2-5所示。开发板上电时,功率电阻R305会抑制浪涌电流。直流母线电容完全充电后,继 电器RL30会将功率电阻短路。单相桥式整流器DB300会将工频输入交流电压转换为恒定的 直流电压。

2-5 整流器电路

 

2.2.3 辅助电源

辅助电源将分别为IGBT驱动器和dsPIC33EP64MC202生成15V和3.3V电压。

图2-6给出了辅助电源的框图。15V电源轨将整流器输出直接降压得到。这样可以省去反激 方法中使用的变压器和高额定电压元件。MCP16331用于将此15V电压降至5V。MIC5239 LDO将电压从5V稳压至3.3V,以便为控制芯片dsPIC33EP64MC202提供干净的电源。除了 控制芯片之外,此3.3V电源轨还将为其他数字和模拟控制电路供电,例如ADC参考和反馈 电路。这种方法可提供良好的辅助电源,而功耗却很低。

2-6 辅助电源

2.2.4 MCU
本设计中选择的是dsPIC33EP64MC202。另外,还有一种方法是由单个芯片同时控制冰箱 系统和压缩机。Microchip提供了dsPIC33EP或dsPIC33CK系列的许多其他产品,可以很好 地满足应用的需求。

下表列出了本设计中的芯片引脚功能。

2-2 dsPIC33EP64MC202引脚功能(SSOP 

引脚

编号

引脚功能

有效功能

说明

I/O

ANSEL

PPS

1

MCLR

MCLR

RESET

 

 

 

2

AN0/OA2OUT/RA0

OA2OUT

IOUT

 

1

 

3

AN1/C2IN1+/RA1

C2IN1+

I+

 

1

 

4

PGED3/VREF-/AN2/C2IN1-

/SS1/RPI32/CTED2/RB0

C2IN1-

I-

 

1

 

5

PGEC3/VREF+/AN3/OA1OUT/R PI33/CTED1/RB1

AN3

VBUS

I

1

 

6

PGEC1/AN4/C1IN1+/RPI34/RB2

RPI34

RX1

I

 

1

7

PGED1/AN5/C1IN1-/RP35/RB3

RP35

TX1

O

 

1

8

VSS

VSS

VSS

 

 

 

9

OSC1/CLKI/RA2

RA2

LED1

O

 

 

10

OSC2/CLKO/RA3

RA3

时钟输出/测试点

I/O

 

 

11

FLT32/RP36/RB4

RB4

测试点

I/O

 

 

12

CVREF2O/RP20/T1CK/RA4

RA4

继电器

O

 

 


引脚

编号

引脚功能

有效功能

说明

I/O

ANSEL

PPS

13

VDD

VDD

VDD

 

 

 

14

PGED2/ASDA2/RP37/RB5

PGED2

调试

I

 

 

15

PGEC2/ASCL2/RP38/RB6

PGEC2

调试

I

 

 

16

SCK1/RP39/INT0/RB7

RP39

RX2

I

 

1

17

TCK/CVREF1O/ASCL1/SDO1/R P40/T4CK/RB8

RP40

TX2

O

 

1

18

TMS/ASDA1/SDI1/RP41/RB9

PR41

Square_INPUT

I

 

1

19

VSS

VSS

VSS

 

 

 

20

VCAP

VCAP

VCAP

 

 

 

21

TDO/RP42/PWM3H/RB10

PWM3H

PWM3H

O

 

 

22

TDI/RP43/PWM3L/RB11

PWM3L

PWM3L

O

 

 

23

RPI44/PWM2H/RB12

PWM2H

PWM2H

O

 

 

24

RPI45/PWM2L/CTPLS/RB13

PWM2L

PWM2L

O

 

 

25

RPI46/PWM1H/T3CK/RB14

PWM1H

PWM1H

O

 

 

26

RPI47/PWM1L/T5CK/RB15

PWM1L

PWM1L

O

 

 

27

AVSS

AVSS

AVSS

 

 

 

28

AVDD

AVDD

AVDD

 

 

 

 

2.2.5 逆变器电路

三相逆变器采用分立IGBT和单电流检测电阻以节省系统成本。其中包括:

MCU将PWM信号提供给3个半桥驱动器以开关6个IGBT,从而为电机各相供电。单电流检 测电阻在负直流母线上以串联方式连接,用于电流反馈和过流保护。

为简单起见,图2-7中仅给出了三相逆变器电路中的一相。

2-7 单相逆变桥电路图

自举电路 MIC4608的上桥臂驱动器用于驱动源极端子以HS引脚为参考的浮动N沟道IGBT。MIC 4608 中的电平转换电路将以VSS引脚为参考的下桥臂电路与以HS引脚为参考的上桥臂驱动器隔 离。当HS引脚的电压升高时,上桥臂驱动器由自举电容(CBST)供电。

HS节点钳位 建议在开关节点与HS引脚之间使用二极管钳位,以最大程度地减少HS引脚上较大的负毛刺 或脉冲。

有关自举电路和HS节点钳位的更多详细信息,请参见MIC4608数据手册。  2.2.6 反馈电路 通过对直流母线电压和电机相电流进行采样,实现电机控制和保护。

图2-8给出了反馈电路的位置。

2-8 反馈电路图

2.2.7 通信端口
RCDB提供了三个端口,用于与调试工具和/或系统控制板之间相互收发数据。所有这些端 口均由3.3V电源轨供电。

图2-9给出了通信端口的位置。

 

2-9 通信端口

 

2.3 用户接口

2.3.1 连接器和插座

(1) 电源插座

(2) 信号插座

UART插座有4个端子。方波插座有2个端子。调试器插座有5个端子。表2-3列出了每个端子 的功能。

2-3 信号插座的端子功能

插座

编号

插座名称

 

引脚

 

端子功能

 

SON200

隔离式方波接收器

1

+

2

隔离式GND

 

 

CON201

 

 

隔离式UART2

1

隔离式VCC

2

TXD2

3

RXD2

4

隔离式GND

 

 

CON202

 

非隔离UART1

1

3.3V

2

GND

3

RXD1

4

TXD1

 

 

CON203

 

 

PICkit™ 3/PICkit 4在线调 试器插座

1

MCLR

2

3.3V

3

GND

4

PGD

5

PGC

 

所有插座的位置均可在图2-10中找到。

 

2-10 所有插座和LED指示灯


 2.3.2 LED指示灯

开发板上有两个LED指示灯。图2-10中给出了两个LED的位置。 LD300指示3.3V电源轨是否可用。当3.3V电源轨就绪时,此LED点亮。 LD200指示开发板的运行状态和错误消息。开发板上电后,此LED始终闪烁。客户可通过 LED闪烁获得运行信息。当RCDB按预期运行(例如压缩机正常运行)时,下表列出了其所 有可能的运行状态。

2-4 运行状态LED闪烁模式

系统状态

LED闪烁模式

重启

熄灭

正在启动

15/16点亮@0.625 Hz

正在运行

1/16点亮@0.625 Hz

正在停止

15/16点亮@0.625 Hz

已停止

50%点亮@0.625 Hz

如果驱动压缩机的开发板处于故障状态,则LED将按以下错误代码形式闪烁。

2-5 LED闪烁模式错误代码

故障类型

LED闪烁模式

陷阱

 

ERR_OSC_FAIL

+ + - - -

ERR_ADDRESS_ERROR

+ + + - - -

ERR_HARD_TRAP

+ + + + - - -

ERR_STACK_ERROR

+ - + + - - -

ERR_MATH

+ + - + + - - -

ERR_RESERVED_TRAP5

+ + + - + + - - -

ERR_SOFT_TRAP

+ + + + - + + - - -

ERR_RESERVED_TRAP7

+ - + + + - - -

应用程序错误

 

ERR_STALL

+ - + - + + - - -

ERR_INVALID_STARTUP_FSM_STATE

+ + - + - + + - - -

ERR_HW_OVERCURRENT

+ + + - + - + + - - -

ERR_DCLINK_OVERVOLTAGE

+ + + + - + - + + - - -

ERR_DCLINK_UNDERVOLTAGE

+ - + + - + + - - -

ERR_DIRECTREVERSE

+ + - + + - + + - - -

ERR_SPEEDERROR

+ + + - + + - + + - - -

复位错误

 

ERR_RCON_TRAPR

+ - + - + + + - - -

 

故障类型

LED闪烁模式

ERR_RCON_IOPUWR

+ + - + - + + + - - -

ERR_RCON_CM

+ + + - + - + + + - - -

ERR_RCON_WDTO_ISR

+ + + + - + - + + + - - -

ERR_RCON_WDTO_MAINLOOP

+ - + + - + + + - - -

 

 

ERR_UNEXPECTED_INTERRUPT_BASE

+ - + - + - + - + + - - -

在上表中,“+”表示LED以50%占空比 @ 1.67Hz闪烁一次。“-”表示LED在1.67 Hz的 整个周期内熄灭。

2.4 电气规范 

下表列出了RCDB开发板的电气规范:

2-6 RCDB开发板的电气规范

编号

参数

规范

1

额定输入电压

220 VAC 50/60 Hz

2

输入电压范围

90V~264 VAC

3

数字电压

3.3V

4

额定功率

250W

5

最大功率

250W

6

PWM频率范围

2.5 kHz~15 kHz

7

工作温度

-10°C ~ +60°C

8

开发板效率

94%

9

开发板待机功率

0.5W

10

开发板尺寸

130 mm × 120 mm × 40 mm

11

整流器

12

辅助电源

13

PFC电路

14

电源电路

分立

15

电流检测

dsPIC® DSC中的单电流检测电阻和内部 运放

16

直流母线电压检测

有,dsPIC DSC中的内部运放

17

温度检测

18

硬件过流保护

有,dsPIC DSC中的内部比较器

19

直流母线的浪涌电流保护

有,功率电阻和继电器



3 设置和运行

RCDRD的软件已针对基本操作进行了配置。本章介绍如何设置软件、运行压缩机和调试 代码。

3.1 基本操作

基本操作包括打开软件项目、配置和编译代码,以及对开发板上的芯片进行编程。

(1) 启动MPLAB X IDE V5.10,然后打开项目“RCDRD_V1.0.X”。

注:此项目需要MPLAB X IDE V5.10或更高版本。

 

(2) 在左侧名为“Project”(项目)的选项卡上右键单击此项目,选择最后一项“Properties”(属性)。

 

在“Project Properties”(项目属性)页面上,可以在“Hardware Tool”(硬件工 具)部分选择编程器/调试器,并且在“Compiler toolchain”(编译器工具链)部分选 择编译器(XC16 V1.33或更高版本)。将编程器/调试器连接到计算机后,即可在Hardware Tools(硬件工具)列表中找到“PICkit 3”/“PICkit 4”项。单击“Apply”(应用),应用选择。

 

(3) RCDB开发板采用热地线设计。当它与任何其他非隔离工具和设备(例如计算机和示波 器等)连接时,禁止为其供电。建议使用编程器/调试器对芯片进行编程,因为编程器/ 调试器可以为开发板提供3.3V电压来进行编程。

应用编程器/调试器选择(PICkit 3/PICkit 4)后,可以在“Project Properties”窗口的 “Categories”(类别)列表中找到“PICkit 3”/“PICkit 4”项。在“PICkit 3”/“PICkit 4”页面上的“Option categories”(选项类别)中,选择“Power”(电源)项。选中“Power target circuit from PICkit 3”(通过PICkit 3为目标电路供电)项, 然后为“Voltage level”(电压值)项选择“3.25”。单击“OK”(确定),应用选择。


 

 (4) 单击工具栏或“Production”(生产)菜单中的“Clean and Build Project”(清除并编 译项目)按钮,编译代码。

 (5) 成功编译之后,将PICkit 3/PICkit 4连接到RCDB CON203。

单击工具栏上的“Make and Program”(编译并编程)按钮,将代码下载到芯片中。

 

注:在执行此步骤之前,请确保交流电源已断开与开发板的连接。

(6) 断开PICkit 3与开发板的连接。确保RCDB未与任何其他非隔离开发板或设备连接。

(7) 在CON100上连接压缩机或电机,在CON300上连接交流电源。为开发板上电。开发板 现在处于“已停止”状态,LED会以50%占空比@0.625 Hz闪烁。
 

3.2 使用诊断内核运行

就RCDRD原型1而言,运行压缩机的惟一方法是使用代码中的诊断内核功能。与诊断内核 功能配合使用的工具是X2C Scope 插件和MCP2200 隔离式 USB 转 UART 演示板。 X2C Scope是MPLAB X IDE的插件,用于简化调试工作。它能够提供通过UART在dsPIC数据存 储器中读写变量的完整功能,还可以在实时模式下绘制这些变量。

(1) 安装X2C Scope插件。从“Tools”(工具)菜单中选择“Plugins”(插件)项。在 “Downloaded”(已下载)页面上,单击“Add Plugins...”(添加插件...)按钮,选择 “at-lcm-x2c-mplabscope.nbm”文件。单击“Install”(安装),安装X2C Scope插件。

 (2) 打开project properties(如3.1(2)中所示),在“Loading”(装入)页面的生产编译期 间使能“Load symbols when programming or building for production (slows process)”(为生产进行编程或编译时装入符号(减慢过程))。

(3) 通过杜邦线将MCP2200隔离式USB转UART演示板连接到计算机和RCDB。

(4) 将代码下载到驱动板(如3.1(4)(5)(6)中所述),断开所有非隔离器件的连接。 注:每次开发板掉电和上电时均需要下载代码,以将X2C Scope连接到板上MCU。

(5) 断开编程器/调试器的连接,然后为开发板上电。

 

(6) 从“Tools”菜单上的“Embedded”(已安装工具)中单击“X2CScope”,启动X2C Scope。“X2C Scope Configuration”(X2C Scope配置)窗口将打开。

(7) 按下图所示设置参数,在“Select Project”(选择项目)按钮中选择此RCDRD项目。 然后单击“Disconne...”(断开...)按钮,将计算机连接到驱动板。

(9) 在“Data Views”(数据视图)页面上,单击“Open Scope View”(打开示波器视 图),打开“X2C Scope Scope”(X2C Scope示波器)窗口。此窗口用于显示变量的 波形。单击“Open Watch View”(打开观察视图),打开“X2C Scope Watch”窗 口。此窗口用于显示和更改变量值。这两个窗口中只能添加全局变量。

例如,下图的“X2C Scope Watch”窗口中选择了systemData.X2CVelocityReferencesystemData.X2CSystemStatesFlagmotor.faultDetect.faultDetectFlagBackup 这三个 变量。 变量 systemData.X2CVelocityReference 是压缩机电 机的参考电 磁速度(以 RPM 为单 位)。变 量 systemData.X2CSystemStatesFlag 是系统状 态标志。 变量 motor.faultDetect.faultDetectFlagBackup是故障标志。有关标志的更多详细信息,请参 见附录A. 标志说明。另外,也可以添加其他关注的变量。

(10) 在“X2C Scope Scope”窗口中添加要观察的变量。例如,添加参考速度和反馈速 度、参考id/iq和检测到的id/iq以及输出vd/vq等。单击“SAMPLE”(采样)按钮,开始 采样变量并显示波形。

(11) 使用大于最小速度的数据配置参考速度变量systemData.X2CVelocityReference。压缩 机将开始运行。Scope(示波器)窗口将实时显示变量波形。

 

(12) 操作结束时,切记单击“Connected”(已连接)按钮,断开X2C Scope与开发板的 连接。

(13) 有关X2C Scope的更多详细信息,请参见文件“X2CScope Documentation”。

3.3 通过测试用具进行调试和测试 

FDCRD提供了一个测试用具组件,可用于轻松修改换相和电机控制环的控制工作模式。它 代表几个运行时参数,这些参数用于将系统置于某些测试模式。通过结合电机控制应用中

使用的其他可调参数,可以调试和测试压缩机及开发板以确保其正常运行。它与换相和电 机控制环紧密耦合,如下图所示。  

3.3.1 通过测试用具进行调试和测试操作

在“X2C Scope Watch”窗口中,可以设置所有调试和测试操作。
(1) 启动测试模式

设置密钥会使控制系统进入测试模式。否则,所有其他测试用具功能将不可用。
启动操作:

停止操作:

(2) 直接设置Vd和Vq 旁路速度环和电流环,并向其输出Vd/Vq馈入设置值。它用于调试和测试SVPWM占空 比计算功能。此功能仅设置输出电压的幅值。

启动操作:

停止操作: 相关功能:Ÿ
(3) 直接设置idCmd和iqCmd
旁路速度环并使能电流环,然后直接向电流参考id/iq馈入设置值。它可用于执行调试和 测试电流环、调整PI参数以及校准电流采样等操作。此功能仅设置输出电流的幅值。
启动操作:

停止操作:

相关功能:

(4) 直接设置参考速度 直接在FOC操作中设置参考速度,忽略原始参考速度。它用于调试和测试速度环并调整 PI参数。

启动操作:

停止操作:

(5) 直接设置电磁频率

直接在换相组件中设置电磁频率,忽略估算的电磁角。将此功能与功能(2)/功能(3)结合 使用,可设置输出电压/电流的频率。如果将频率设置为0,则输出电压/电流为直流。
启动操作:

停止操作:

(6) 设置电磁角 直接在换相组件中设置电磁角,忽略估算的电磁角。将此功能与功能(2)/功能(3)结合使 用,可将电机相电压/电流控制为设置值。

启动操作:

停止操作:

(7) 时间戳

16位时间戳数组是测试用具状态结构体的一部分。这些时间戳记录在各个位置中,以通过 实时诊断工具对主控制过程进行性能分析。时间戳使用以系统时钟速率(Fcy = 70 MHz) 运行的定时器1,因此定时器值指示经过的系统时钟时间。时间戳数组变量的说明:

3.3.2 测试用具设置的简要汇总 下表中汇总了测试用具的功能和设置:

3-1 测试用具功能和设置的简要汇总 

 

设置

 

 

功能

开-关

参数设置

控制设置

 

system Data.te sting.k ey

 

motor.t esting. overrid eVdqC md.d

 

motor.t esting. overrid eVdqC md.q

 

motor.t esting. overrid eIdqC md.d

 

motor.t esting. overrid eIdqC md.q

 

motor.tes ting.overr ideOmeg aElectric al

 

motor.tes ting.overr ideComm utationFr equency

 

motor.tes ting.overr ideTheta Electrical

 

motor.t esting. operati ngMod e

 

motor.t esting. overrid es

设置Vd和Vq

53670

——

——

——

——

——

1

——

设置Id和Iq

53670

——

——

——

——

——

2

——

设置速度

53670

——

——

——

——

——

——

3

1

设置频率

53670

——

——

1/2

2

设定角度

53670

——

——

1/2

4

禁止

!53670

——

——

——

——

——

——

——

——

——




4 运行其他压缩机

电机控制是一种极其依赖电机和应用程序的系统。每当机制发生变革时,压缩机电机控制 都会在可靠启动和不平衡负载方面带来更大的挑战。RCDRD旨在提供一种简单的方法来运 行其他部件编号的压缩机。本章介绍如何使用RCDRD来运行并非供开发人员用于调试和测 试的压缩机。 要运行其他压缩机,需要修改某些参数以便与压缩机匹配。除了文件夹“hal”中的一个C 源文件“opamp_comparator.c”之外,所有需要修改的代码文件均为文件夹“parameters” 中的头文件。

4.1 修改理论算术参数 

(1) 由于dsPIC是一种定点控制器,因此不能直接在代码中使用电机参数,因为它们是 小数数据。 因此,我们 必须将物理 单位转换为 定点 PU 格 式(主要是 Q15 )。 “tuning_params.xlsx”用于实现这种转换。“tuning_params.xlsx”文件中有多个参 数,具体说明如下。 

4-1tuning_params.xlsx”中的参数类型

类型

属性

标记

 

输入

硬件板参数的物理单位。

 

输入

电机参数的物理单位。


 

输出

定点格式的开发板和电机参数。在 “xxxx_parms.h”中设置该常数。

 

输出

定点格式的启动算法参数。在 “startup_params.h”中设置该常数。

其他

 

临时计算数据。

要获得定点参数,应按如下所示在“tuning_params.xlsx”中输入电机参数。

随后将在紫色背景单元格中生成定点格式的值。为避免Q15实现引起的饱和、分辨率损 失和截断错误,建议定点数据应处于6000-26000范围内。如果定点数据超出建议范围

(大于26000),则应调整换算值“Q”以符合建议范围。

(10)  返回第3章“设置和运行”,编程并运行代码。

4.2 调试参数

4.2.1 调试启动参数 RCDRD中的启动算法专用于压缩机应用。它不仅有助于改善启动可靠性,还能减少振动。 所有启动算法参数均位于头文件“parameters/startup_params.h”中。更换压缩机时,需 要调试其中一些参数。

请参见表4-2“tuning_params.xlsx”的“启动算法参数”部分,“值”列是理论计算值, “归一化”列是归一化值。“修正”列是调试值,“修正归一化”列是归一化调试值。

4-2tuning_params.xlsx”的“启动算法参数”部分

更换压缩机时,上表中只有几个参数需要微调,具体说明如下。

4-3 启动的关键参数

参数

说明

调试

STARTUP_FINALTOR QUE

开环电流

如果启动负载很大,则增大此参数

STARTUP_ACCELER ATION0

第一速度加速状态的加速度

如果需要更短的启动时间,则增大此参数

STARTUP_ACCELER ATION1

第二速度加速状态的加速度

如果需要更短的启动时间,则增大此参数

STARTUP_RAMPDO WN_END_CURRENT

从开环切换到闭环的电流阈值

此参数始终等于压缩机应用中的开环电流

 

4.2.2 调试PI参数 更换压缩机时,可能需要调整电流环和速度环的PI控制器参数。所有PI参数均位于头文件 “parameters/for_params.h”中。

Kxx_Q(KIP_Q、KII_Q、KWP_Q和KWI_Q)是换算值。将Kp和Ki乘以2^Kxx_Q可以得到 代码中使用的最终PI控制器数据。在调试工作的早期阶段,更改此换算值而不是Kp(Ki) 将有助于缩短调试时间,最终找到大致的Kp(Ki)值。