用MC9S12H256实现异步电机变频调速
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公司单片机特有片内资源异常丰富、开发工具优良等诸多优点,大大简化了变频调速系统的开发。
《用MC9S12H256实现异步电机变频调速(第3页)》