首页  >  文章  >  后端开发  >  使用 STMMCU 实现静电除尘器控制器的 SPWM ase/ase 逆变器

使用 STMMCU 实现静电除尘器控制器的 SPWM ase/ase 逆变器

Patricia Arquette
Patricia Arquette原创
2024-10-21 06:18:30837浏览

前段时间提到中频静电除尘器控制器,我仔细分析了单相和三相SPWM驱动时间,完成了STM32F103处理器上的SPWM代码编写,并用示波器测试了信号和波形,逻辑分析仪。
STM32F103的TIMER1和TIMER2支持互补的PWM输出,我选择TIMER1的CH1,CH2,CH3用于A,B,C三相驱动;
处理器的时钟频率为72MHz,通过以下代码将互补PWM输出的死区时间设置为4us;
SPWM_PWM_TIMER->BDTR = 0x80C4.

生成半周期正弦数据表,根据正弦信号的频率和PWM频率的值,计算出正弦信号周期需要划分的区间,即计算每个正弦信号数据的平均值,并根据最大正弦数据和PWM信号的最大占空比值计算每个区间的占空比值;

当SPWM的频率为10kHz,正弦信号的频率为50Hz时,输出的SPWM信号会经过两级1kΩ电阻+0.1uF电容的低通滤波电阻,可以看到非常完美的正弦信号。

一开始我想通过DMA自动将SPWM计算出的占空比值设置到TIMER的CCR寄存器中,实现半完成中断和完成中断时DMA缓存的更新,但是因为在半完成中断和完成中断中频率也可能发生变化操作,会导致DMA中数据数量的动态变化,使得SPWM输出的正弦信号不连贯,产生高频成分。

最后,通过TIMER的更新中断,在PWM信号的每个周期更新三相CCR寄存器的值。

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

以上是使用 STMMCU 实现静电除尘器控制器的 SPWM ase/ase 逆变器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn