软件生成SPWM(Pulse Width Modulation,脉冲宽度调制)的方法主要有以下几种:
自然采样法
以正弦波为调制波,等腰三角波为载波进行比较。
在两个波形的自然交点时刻控制开关器件的通断。
优点是所得SPWM波形最接近正弦波,但计算繁琐,难以实时控制。
规则采样法
采用三角波作为载波,对正弦波进行采样得到阶梯波。
以阶梯波与三角波的交点时刻控制开关器件的通断。
包括对称规则采样和非对称规则采样,计算简单,便于在线实时运算。
非对称规则采样因阶数多而更接近正弦波,但直流电压利用率较低。
低次谐波消去法
对输出电压波形按傅氏级数展开,确定基波分量和其他谐波分量。
通过建立方程组消去某些主要低次谐波,但计算复杂。
梯形波与三角波比较法
采用梯形波作为调制信号,三角波为载波,且两波幅值相等。
以两波的交点时刻控制开关器件的通断,提高直流电压利用率。
输出波形中含有低次谐波,但基波分量幅值高。
硬件调制法
将所希望的波形作为调制信号,载波信号为等腰三角波。
通过模拟电路构成三角波载波和正弦调制波发生电路,用比较器确定交点,控制开关器件通断。
方法简单,但模拟电路结构复杂,难以实现精确控制。
软件生成法
利用微机技术,通过软件实现调制方法。
包括自然采样法和规则采样法,适用于同步调制方式。
可以通过查表方式生成PWM信号,控制开关器件的通断。
具体实现步骤示例(以STM32为例):
配置定时器
使用定时器A0产生一个频率为f的PWM波。
定时器A1作为计数器,计数频率为fs,数值范围为[0, N],则正弦波的频率为3f。
生成正弦波数据
在程序中存放一周期正弦值的数组`sin_array[]`,通常只存入1/4个周期数据,其余部分通过镜像对称计算得到。
查表法生成SPWM
在定时器A1中用`sin_array[]`查表找到对应的占空比数值。
通过`SetCompare`调节PWM的占空比,生成SPWM信号。
滤波处理
SPWM信号通过低通滤波可以得到更接近正弦波形的输出。
建议:
选择合适的方法:根据实际需求选择计算法、调制法或软件生成法。如果需要高精度和实时性,软件生成法中的规则采样法或低次谐波消去法是较好的选择。
优化计算:对于软件生成法,可以通过优化算法和减少内存占用来提高实时性能。
硬件辅助:在硬件资源允许的情况下,可以采用硬件调制法来简化电路设计,提高系统的稳定性和可靠性。