STM32上SVPWM输出的实现方案

时间:2013-08-05来源:网络

2.4 波形输出
TIM1的CH1、CH1N、CH2、CH2N、CH3、CH3N通道对应的GPIO引脚须设为GPIO_Mode_AF_PP模式才能正常输出。根据各个基本空间电压矢量的作用时间,可以计算出TIM1上三个通道各自的OCRx值。图2为各个通道OCRx的值对应的输出波形。

c.JPG


2.5 中断子程序
为了减少中断的时间,在中断程序中仅保留了输出SVPWM所必要的运算及对TIM1必要的操作。整个程序中的所有的电压量全部转化为标幺值。由于STM32是一款32位的控制器,所以需要参与计算值都采用Q15的形式,这样可以在提高精度的同时保证乘法运算不会溢出。中断子程序的流程如图3所示。

d.JPG


2.6 CPU资源占用分析
由图2可以看出,在定时器输出波形时有两个触发产生。TIM1_CH4可以用来触发芯片的其他功能(如ADC采样),这样就可以自动完成一些工作,避免消耗CPU资源。
为了在一个周期调制完成后马上进行下一个周期的调制,下次调制的时间需要提前计算,此时就必须打开定时器的预装载功能。在发生计数器溢出中断后,计算下一次调制时各个通道的时间。计算完成后将结果写入预装载寄存器,以便在下次更新时写入新的比较值。可以看出,SVPWM只在中断中耗费了CPU的一点资源用来计算,其余全是定时器自动完成,而且在两次调制之间没有任何延迟。

3 系统实验
3.1 实验硬件电路
实验硬件电路包括主控芯片及外围电路、MOS驱动器和由6个MOS管组成的逆变器。其部分电路如图4所示。ADUM3223驱动器的输入来自STM32F103VET6中TIM1的CH1和CH1N,两者为互补输出。使能输入端连接到芯片的PE15引脚,并且有一个4.7 KΩ的上拉电阻。在输出端的高端设计了一个泵电源,保证高端MOS管能够可靠导通。R1用来保证充电速度不会过快,可根据实际需求更改大小。在MOS管的栅极有一个限流电阻,用来防止MOS管漏源极电压dv/dt太大,导致损坏。

e.JPG


3.2 实验结果
由于SVPWM的输入为αβ坐标系下的Uα和Uβ,在让矢量运行轨迹为圆形时特别困难,所以在输入端前加入了一个Park变换算法,使其变为Ud和Uq。这样只需要设置合成矢量的角度和大小,而角度可以人为设为一个匀速圆周运动的值。图5为第一扇区下的调制输出波形。图6为矢量圆周运动时,输出相电压滤波后的马鞍波形。

结语
由实验结果可知,该设计方案可以方便地实现SVPWM输出,计算量并不大。其功能主要是靠硬件实现,所以占用CPU资源很少,完全可以当作一个模块应用到其他场合中。

1 2

关键词: SVPWM STM32 定时器 三相桥式驱动

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版