用MC9S12H256实现异步电机变频调速
2012-10-25 来源:单片机及嵌入式系统应用
引言
SPWM变频调速系统由于具有调速范围宽、功率因数高、对电网影响小、电机运行平稳、可有效抑制低次谐波、可实现较大容量等诸多优点,而越来越受到人们的重视,一直被视作非常有发展前途的变频方案,越来越多的科研技术人员开始讨论这一课题。由于电力电子技术的高速发展和智能控制技术的广泛应用,当前人们设计的SPWM电机变频调速系统,摒弃了过去依赖逻辑电路,如比较器、三角波发生器等陈旧的实现方式,而采用高性能MCU加上一些专门的PWM集成电路,如HEF4752、SLE4520等构成。文本介绍的系统由于MC9S12H256具有独立的PWM通道,实现起来更为容量;加之Motorola出品的MCU一向具有产品线丰富,片内资源众多等优点,所以比较使用Intel 80196实现的方案,无论是调试方式还是工作速度以及实现难易度都有一定的优势。
1 MC9S12H256 PWM模块介绍
MC9S12H256是Motorola公司16位单片机系列中定位于电机控制的机型,它秉承了Motorola单片机资源丰富的传统优势,最高工作频率为24MHz,内部具有256K Flash ROM、12K RAM、4K EEPROM、2个SCI、1个SPI、1个I2C总线接口、8通道16位定时器、1个6通道PWM模块、16通道10个A/D转换器、2个CAN2.0接口、1个LCD驱动器。其中专门用于电机控制的PWM模块可以很方便地生成双极式三相脉宽调制波形。下面详细介绍该芯片的PWM模块。
PWM模块含有6个PWM通道,每个通道可以独立产生左对齐或者中心对齐的波形。每个通道的波形周期和占空比以及对齐方式都可以单独编程,同时每个通道还配有一个专门的计数器来灵活选择不同的时间源,以提供更宽的变频。综合起来PWM模块具有以下性质:
*6个独立的PWM通道,其周期、占空比、对齐方式都可以单独编程;
*每个PWM通道都配有计数器,用来选择时钟源;
*每个PWM通道都可以通过编程来开启或者关断;
*每个通道的起始极性能可以编程;
*周期和占空比寄存器是双缓冲的,也就是说只有一个周期结束之后才可以转化为新的指定的周期和占空比;
*6个8位的PWM通道可以合并成更高精度的3个16位PWM通道;
*可以编程选择4个时钟源,所以可提供宽厂的变频范围;
*具有突发事故通道关断功能。
由此可见,该芯片的PWM模块是相当强大的。毫无疑问,这将有助于缩短我们设计电机变频调整系统的时间。该PWM模块框图如图1所示。
图2 主电路图
由图1可以看出,PWM波形的生成和修改,都是通过改变每一通道所包含的寄存器以及系统寄存器来实现的,所以明确这些寄存器的含义是成功实现SPWM波形的关键。但是,由于该PWM模块含有31个寄存器,数目众多,限于篇幅,这里只概略介绍一下。
在这31个寄存器中,有一部分为芯片出厂测试之用,具体功能如表1所列。其中的偏移地址指的是该寄存器相对于PWM基址的偏移量。
寄存器中PWMCLK、PWMPRCLK、PWMSCLA、PWMSCLB是与时钟源选择有关的。在PWM模块中共有四种不同的时钟源:ClockA、ClockB、ClockSA、ClockSB。其中ClockA和ClockSA用于0、1、4、5通道;ClockB和ClockSB用于2、3通道。ClockA、ClockB是由总线时钟除以一定的比例因子(最大为128)生成的,而ClockSA、ClockSB是由ClockA、ClockB除以一定的比例因子(最大为512)生成的。对应地,PWMCLK寄存器用来设置每个通道的时钟源,PWMPRCLK用来设置生成ClockA、ClockB时钟时的比例因子;而PWMSCLA、PWMSCLB则设置生成ClockSA、ClockSB的比例因子。由此我们可以看出,如果芯片的工作频率为16MHz,那么理论上,IGBT的关断频率可以达到1Hz~16MHz。这是一个非常宽的频率范围,当然实际中还需要考虑IGBT可以承受的关断频率。
表1 PWM寄存器功能描述
偏移地址 | 寄存器名称 | 功 能 | 访问权限 |
$_00 | PWME | 6通道PWM关断控制 | 读/写 |
$_01 | PWMPOL | 指定起始电平 | 读/写 |
$_02 | PWMCLK | 选择时钟源 | 读/写 |
$_03 | PWMPRCLK | 设置ClockA/B比例因子 | 读/写 |
$_04 | PWMCAE | 选择波表对齐方式 | 读/写 |
$_05 | PWMCTL | 控制是否合成为16位PWM通道 | 读/写 |
$_06~07 | PWMTST,PWMTRSC | 出厂测试用 | 读/写 |
$_08 | PWMCLA | 设置ClockSA比例因子 | 读/写 |
$_09 | PWMCLB | 设置ClockSB比例因子 | 读/写 |
$_0A~B | PWMSCNTA,PWMSCNTB | 出厂测试用 | 读/写 |
$_0C~11 | PWMCNT0~PWMCNT5 | PWM通道0~5专用计烽器 | 读/写 |
$_12~17 | PWMPER0~PWMPER5 | 设置PWM通道0~5脉冲周期 | 读/写 |
$_18~1D | PWMDTY0~PWMDYT5 | 设置PWM通道0~5“1”电平宽度 | 读/写 |
$_1E | PWMSDN | 突发事故关断PWM | 读/写 |
2 硬件选型与系统框图
由前面对MC9S12H256芯片的介绍可以知道,它的内部资源非常丰富。毫无疑问,这给硬件设计带来了极大的方便,基本上们不需要再行扩展大的外围器件了;主要扩展的是IGBT的驱动装置、人机接口部分的键盘和LCD以及用于测定电机转速的光电编码器四个部分。
考虑到可购买性和价格,IGBT选用IMB150-120,其驱动器选用EVB840。它们都具有价格适中,应用成熟等特点。LCD选用东芝JR07用来显示电机转速、频率、工作状态等。至于光电编码器,以前以国外产品为主,价格一般非常昂贵;现在已有不少国内厂家可以生产,不光价格要便宜得多,性能也并不逊色,所以我们选用了长春三峰传感器技术公司的PZF系列传感器,键盘则使用市售普通型号。
SPWM电机变频调速系统由电机主电路和控制电路两部分构成。主电路采用交-直-交电压型IGBT-PWM变频电路,如图2所示。控制电路以MC9S12H256为核心,如图3所示,接受外部键盘输入的速度数据,送LCD显示的同时,通过此输入的速度和光电编码器测得的速度,根据一定的控制算法,计算出电机的频率,然后计算出SPWM波形参数,再通过内置的PWM模块使EXB840驱动IGBT产生脉宽调帛波形,来使电机按照期望的频率转动。其中6个PWM通道与IGBT的接口安排为:通道5接A+;4接A-;3接B+;2接B-;1接C+;0接C-。图2中T1~T6表示的是6只IGBT。
表2 调制度和载波比取值表
逆变器输出频率/Hz | 载波比N | 调制度M | 开关频率/Hz |
32~62 | 18 | 0.56~0.8 | 576~1116 |
16~31 | 36 | 0.24~0.56 | 576~1116 |
8~16 | 72 | 0.16~0.24 | 576~1080 |
4~7.5 | 144 | 0.08~0.16 | 576~1080 |
3 算法与控制策略
3.1 调制度与载波比的选择
SPWM变频有一个原则,即在尽可能的范围内保持转子磁通不变。所以,我们在设计算法时规定了输出频率和电压的关系。为了充分利用本型号单片机强大的计算功能,我们采用分段同步调制的方法;在一定的频率范围内,采用同步调制,保持输出波形对称;当频率下降幅度较陡时,将载波比分段一级一级增加。具体来说就是使逆变器整个变频范围划分为多个频段,在每个频段内维持载波比恒定。如表2所列,调制定M定义为正弦调制波参考信号峰值Urm与三解载波峰值Utm之比,载波比N定义为三角载波频率ft与正弦调制波频率fr之比。表2可建于Flash中,方便在程序中读取,查表时调制度要进行插值运算。
3.2 PWM波形的生成
考虑到工程上的可实现性以及输出波形的精度,采用了规则采样二法进行采样,如图4所示。
在三角载波的固定负峰值位置找到正弦调制波的采样电压值,也就是图4中E点,然后过E点作水平线,截得三角波A、B两点,从而确定脉宽时间t2。在这种采样法中,每个周期的采样时刻是固定的。根据脉冲电压对三角载波的对称性以及三相电压的特性,可知三相脉宽t和周期t2a~t2c的计算公式如下:
t2a=T[1+Msin(ω1te)]/2
t2b=T[1+Msin(ω1te+2π/3)]/2]
t2c=T[1+Msin(ω1te+4π/3)]/2
t=T[3+Msin(ω1te)]/4
其中:T—三角载波的周期;
ω1—正弦调制波的角频率;
te—三角载波的负峰值时刻。
考虑到该型号单片机的高速计算能力,我们采用以实时计算为主的波形生成方法:即先在芯片自带Flash中存储正弦函数的值,根据键盘输入的期望速度和光电编码器的反馈速度,按照一定的控制算法,计算出电机的工作频率。然后,查表2取出M和N,再查正弦表,根据上述公式计算出每一相的脉冲宽度和周期,再设置相应通道的PWM模块寄存器来产生期望的PWM波形。
3.3 控制策略和PWM通道系统参数设置
控制策略采用转差矢量变换,此外还有过电流、过电压保护等其它一些细节问题。限于篇幅,此处不详细介绍。由表2可知,为了匹配相应的开关频率,我们必须为每一个PWM通道选用恰当的时钟源。经过分析,将ClockSA作为0、1、4、5通道时钟源;将ClockSB作为2、3通道时钟源,并将PWMCLK设为$FD;将PWMPRCLK设为$55;将PWMSCLA/B设为$40,这样ClockSA=ClockSB=16M/32/128=2048Hz,所以开频率范围为(2048/512,2048)=(4,2048)Hz。显然,表2所要求的开关频率在个范围之内。
4 软件开发工具
开发工具采用Windriver公司的嵌入式C编译器。为了优化编译质量,采取汇编和C混合编程的模式,其中PWM波形等需要计算速度的任务使用汇编编写,其余LCD显示、键盘处理等使用C语言编写。实际上,由于MC9S12H256集成了绝大多数功能模块,这也给软件编程带来了方便。整个软件功能主要包括处理键盘输入、LCD显示、控制算法实现、PWM波形生成。程序分为主程序和两个定时中断服务子程序T0、T1。主程序完成转差矢量变换、LCD显示、键盘处理。T0每隔一个三角载波周期中断一次,以便将实时计算出的PWM波形数据送入相关寄存器;T1每隔一个调制波周期中断一次,以便对定时器和累加器清零,消除积累误差。
结语
由MC9S12H25构成的SPWM变频电机调速系统,充分利用了Motorola公司单片机特有片内资源异常丰富、开发工具优良等诸多优点,大大简化了变频调速系统的开发。
下一篇:单片机通信协议处理