通过变频技术和脉宽调制技术对交流电动机转速和位置进行数字控制是电动机控制的发展趋势,永磁式同步电动机(PMSM)具有结构简单、体积小、易于控制、性能优良等优点。用单片机对电动机进行数字控制是实现电动机数字控制的最常用的手段。
本文介绍了采用Renesas公司M16C/28和R8C/11系列的CPU产品,运用120°梯形波交变,通过电动机感应电压的过零点来估测转子位置,从而实现表面安装永磁式同步电动机(SPMSM)的无位置传感器型驱动的方法。
一 与电动机控制有关的基本概念
1 逆变器控制
电能(商用电源)一般是通过一个电源系统来提供的。在这种场合,商用电源的电压、频率和相位在严格的控制之下被固定于一个精确的水平上。如果把一个商用电源直接提供给电动机的负载,则感应式电动机(IM)可以被起动,而同步电动机(比如永磁式同步电动机PMSM)则不能被起动。
在逆变器控制过程中,商用电源未与负载相连。一个转换器件首先把交流(AC)电流转换成直流(DC)电源,然而再由一个逆变器将直流电源转换成交流电源,以便向电动机输送具有期望电压和频率的交流电源。如果输出电压和频率是根据负载和扰动来控制的,则这将使得同步电动机能够起动和旋转,并达到节能的效果。
2 感应电压
电动机可以起发电机的作用。因此,当把一盏灯连接至电动机并旋转电动机的轴时,灯将会发光。这是因为产生了感应电动势的缘故,而产生的电压就被称为“感应电压”。
当电动机停止转动时,将不会产生感应电压。因此,当起动电动机时,将强迫它在某一特定方向上旋转,以找到转子的位置。
在采用180°正弦波交变的电动机控制中,由于电动机中有电流连续流过,故不能直接监视电动机中产生的感应电压。因此,在无位置传感器的控制中,转子位置是通过电动机电流来估测的。
二 用于电动机控制的硬件和软件规范
1 硬件构成
l 表面安装永磁式同步电动机(SPMSM)
l A/D转换器
l 三相PWM输出
l 感应电压的过零点检测
四部分组成的框图如下:
2 软件功能
控制方法 | 采用梯形波的120°交变 |
转子位置检测 | 由电动机的感应电压来检测 |
载频 | 20kHz |
转速控制的范围 | 正转:500rpm~3000rpm (-33.3×2π至200×2πrad/s) |
反转:-500rpm~-3000rpm (-33.3×2π至-200×2πrad/s) | |
误差检测 | 由于MCU起到了防止正相和负相同时处于运行状态的作用,因此有可能在上臂和下臂(布线分支)之间引起短路的波形将不会被输出。 |
IPM的FO信号(强制停机信号)是至MCU的NMI引脚的输入信号。因此,如果FO信号电平走低,则三相输出被强制停止,而且三相输出引脚被置于高阻抗状态。 | |
在正常操作期间,如果连续500ms未检测到来自编码器的Z信号,则认为电动机被锁定,而且三相输出引脚上的输出将被关断。 注:编码器的Z信号以这种方式来使用,旨在确保更高的安全性。不过,在电动机控制中并未采用Z信号。 |
三.用于电动机控制的CPU及其周围设备的功能说明
(1)A/D转换
项目 | 说明 |
转换模式 | 重复扫描模式0 |
扫描引脚 | AN0~AN7(8个引脚) |
触发器类型 | 软件 |
转换定时 | 在完成了A/D转换的初始设置之后,A/D转换在重复扫描模式0中继续进行。 |
Vref的连接 | Vref被连接。 |
分辨率 | 10位 |
A/D转换模式 | 利用采样及保持电路进行操作 |
A/D转换端口 | P10端口组 |
频率 | fAD/2 |
A/D转换中断 | 未用 |
(2)三相PWM输出
l 采用锯齿波来进行调制和采用了三相模式0实现120°交变驱动电机
l 在采用梯形波的120°交变中,转速基本与电压成正比。
(3)三相电动机感应电压的过零点检测
在本软件中,感应电压的过零点是通过按下表对外部中断功能进行配置的方法来检测的。
项目 | 说明 |
中断检测 | 两个脉冲边沿 |
INT中断 | 未使用中断。 通过中断请求位的轮询来检测INT中断(外部中断) |
四 用于利用梯形波交变来实现SPMSM的无位置传感器型驱动的软件描述
软件描述了如何使用梯形波的120°交变来实现SPMSM的无传感器型驱动。内容包括:
(1) 由电动机中的感应电压来检测转子位置和采用梯形波的120°交变控制旋转速度在±500 rpm~3000 rpm范围。系统配置入系统构成框图。
(2) 对8个控制模块的描述。包括:
l A/D转换器、
l 感应电压的检测、
l 实际转速的计算、
l 目标转速的计算、
l PWM占空比的计算、
l 确定输出模式、
l 初始启动处理、
l 其他一些CPU关于系统异常动作的监测和检测。
(3) CPU寄存器的存储变换
Ø CPU具有12个寄存器,包括:
l 数据寄存器、
l 地址寄存器、
l 帧寄存器、
l 中断表寄存器、
l 程序指针寄存器、
l 用户堆栈指针(USP)寄存器
l 中断堆栈指针)(ISP)寄存器、
l 状态寄存器、
l 标志寄存器:进位标志寄存器、调试标志寄存器、0标志寄存器、符号标志寄存器、寄存器组选择标志寄存器、溢出标志寄存器、中断使能标志寄存器。
l 堆栈指针选择标志寄存器
l 处理器中断优先级寄存器
l 预留域寄存器
Ø 存储变换
包括:
l 线性地址空间、固定中断的矢量、内部RAM、SFR区域、特殊的页面矢量等的地址分配。
l 用于本软件的存储变换和段配置
(4)系统的主要软件模块
模块名称 | 标签名称 | 参数 | 说明 | |
输入 | 输出 | |||
电动机控制主处理 | main_pwm_120slc20() | — | — | 用于通过120°交变来实现一个SPMSM的无传感器型驱动的主处理。 |
初始化处理 | initial() | — | — | 设定A/D转换的初始值,感应电压过零点检测,以及三相PWM。 |
PWM中断处理 | pwm_int() | — | — | 调用停止、启动和正常处理功能。 |
停止处理 | pwm_stop() | — | — | 关断三相PWM输出,并检查是否继续进行启动操作。 |
启动处理 | pwm_kido() | — | — | 执行启动操作(将旋转速度命令和电压命令固定1秒的时间),并检查正常操作转换。 |
正常处理 | pwm_tujo() | — | — | 执行无传感器型控制(感应电压过零点检测和输出模式转换)。 |
实际转速计算处理 | cal_sub_wr_duty() | — | — | 计算实际转速和PWM占空比。 |
转速命令计算处理 | cal_wr_ref() | UI16 AD5 输入值 | SI16转速命令 | 将A/D输入值转换为转速命令。 |
总线电压计算处理 | cal_vdc_ref() | UI16 AD5 输入值 | — | 将A/D输入值转换为总线电压。 |
电动机锁定检测处理 | motor_lock_chk() | — | — | 检测电动机锁定状态。 |
停止检查处理 | stop_chk() | — | SI16停止检查结果 | 检查处理是由一个转速命令停止的还是由一个误差停止的。 |
(5)与三相输出有关的SFR的初始设定值
l AD转换器的控制寄存器0~3的设置
l 电动机感应电压检测
l 三相输出PWM设置(24个寄存器)
(6)通过120°梯形波交变来实现SPMSM无传感器型驱动控制流程
l 用于通过120°梯形波交变来实现SPMSM的无传感器型驱动的主处理
l 初始化处理
l PWM中断处理
l 停止处理
l 启动处理
l 正常处理
l 实际转速计算处理
l 转速命令计算处理
l 总线电压计算处理
l 电动机锁定检测处理
l 停止检查处理