一.理论基础
SPWM是一种通过PWM序列产生正弦波(连续、模拟)的方法,只有开和关两种状态(离散、数字)。理论基础可以用一句话来解释:在有惯性的环节上加上冲量相等、形状不同的窄脉冲,效果基本相同。用人的比喻是五块和五块一样值钱。
从调制角度可以理解为低频50hz正弦信号作为调制波,高频方波作为载波。调制方式为空之比。信号经全桥放大后,通过低通滤波器可以恢复出大功率50hz正弦信号。
二、调制方法
常见的调制方式有单极PWM、双极PWM和单极倍频PWM。单极性除以负载在半个开关周期内的电压变化。
在单极PWM调制的第一个半正弦周期中,一个桥臂A的两个功率管以较高的开关频率互补地开关,而另一个桥臂B仅接通较低的管。此时,负载上的电压在正电源电压和0V之间切换;在周期的后半段,A桥臂只开通灯管,B桥臂高频开关。此时,负载上的电压在负电源电压和0V之间切换,产生两个方向的电压。半个周期只控制一个桥臂。优点是开关损耗小,缺点是产生的正弦波会在过零点失真,控制复杂,MOS发热不均匀。
其负载上的波形图如下。
另一方面,双极性pwm在整个正弦周期内以高频开关状态工作,对角线上的灯管一起导通,另一条对角线上的灯管互补导通。实际上只需要一个互补的PWM控制,负载上的电压在正负电压之间切换,不用0 V,两个桥臂都是半个周期控制。优点是控制简单,波形失真度低,缺点是开关损耗大,发热大。
其负载的波形图如下:
倍频调制是上述两种控制方式的结合。两个桥臂都是半个周期控制,但是负载半个周期只在一个电压和0V之间切换,可以是正的,也可以是负的。其核心思想是用三角载波比较两个相位差为180度的正弦波来控制两个桥臂。优点是在开关器件工作频率相同的情况下,输出PWM频率是单极SPWM的两倍,可以明显降低谐波。因此,只需要相对较小的电感和电容滤波器就可以达到良好的滤波效果,提高了系统的性能,简化了系统体积,降低了成本。缺点是控制麻烦。
三。的比值空的序列生成。
这部分的功能是控制管道何时开启和关闭。
有两种主要的控制方法:模拟和数字。模拟方法非常简单。产生正弦波和三角波,直接输入比较器产生高低电平控制管开关。这个没什么好说的。是关于建立电路的。然后是数字的两个流派,有自然抽样,规则抽样,非对称规则抽样。自然采样法通过计算高频三角载波和正弦调制波的交点来确定开关的开关点,从而获得相应的脉宽,产生SPWM波形。本质上还是一套模拟,但由于脉宽计算公式是超越方程,采样点无法提前确定,只能通过数值迭代求解,所以很少使用。
常规抽样方法是它的一种简化。它只对三角波顶点或底部的正弦波进行采样,形成阶梯波。计算简单,但波形不太像正弦波(谐波含量高)。
非对称抽样方法是常规抽样方法的优化。它在每个载波周期采样两次,即在三角波的顶点和底部。这样阶梯波和正弦波之间的逼近程度会大大提高(谐波含量略低),但计算量是常规采样方法的两倍。
数字实现的另一个流派是等面积法,纯数学,与仿真无关。还记得冲量相等但形状不同的窄脉冲吗?冲量是电路中的伏秒乘积,在图中用面积表示。这种方法是将正弦波分成相等的部分,用等面积的PWM波代替,这样就可以计算出空的比值。这种方法产生的正弦波精度最高。
图为我写的PY程序。计算结果表明,调制深度为1,半周分为16段。PWM幅度等于正弦波的最大值,图中灰色部分为高电平时间。求积分面积。PWM波和正弦波的面积相等。
四。密码
我认为最简单的SPWM就是双极性调制。整个过程只需要控制一个PWM比空。代码包括两部分,产生SPWM比例序列的py程序和基于hal库和STM32cubeMX的单片机程序。因为我用的是F030F4,这个东西不止两块,只有16kRAM和4k存储,实时计算无望。我只能提前算出空的比值序列,通过查表来实现。
产生SPWM 空比值序列的py程序有两种,单极性和双极性。先说单极。
核心思想是分段求正弦波的积分。除以PWM周期长度,结果是PWM与空的比值。结果是对称的。在负半周内更换桥臂。很简单的数学,就不详细分析了。
两极类似,但需要改变。将正弦波积分除以两倍的PWM周期长度,加上50%作为结果,即为空的PWM比值。当空的比值为50%时,相当于0v输出,100%相当于+vcc,0%相当于-vcc。
调制深度大致等于DC总线电压的利用率,受mos自举驱动器和mos的限制。高端mos不可能连续导通,也就是说空的比值不可能高达100%,90%是保守值,所以调制深度最好不要超过90%。上次正弦波输出的有效值= DC母线电压*调制深度/根号2。当输入24vDC时,当调制深度为0.90时,可以输出有效值15.28vAC。正弦波电压可以通过改变调制深度来改变。py一旦运行,就会以双精度计算空的比值,绝对大大超过单片机11位定时器的精度。
至于STM32,采用两个定时器,TIM1采用CH3互补输出48K PWM,TIM17作为载波,中断频率为12.8khz(基波50Hz X调制指数256)。
生成一个长度为256的空的比值序列,保存为数组。
重写TIM17的中断回调函数,更新tim1->每次中断。当刷新率为12.8khz时,CCR3的值(PWM与空的比值)会发生变化..
至此,SPWM逆变器的软件已经完成。只要硬件连接正确,就可以输出SPWM波。只要改变TIM17ARR值,就可以改变空比值的刷新频率,实现变频。
动词 (verb的缩写)硬件设计
硬件上需要全桥。关于PCB布局和全桥PCB的选择,请参见我之前的帖子。如果你太懒,我还有一个现成的全桥模块。我把它贴在了李闯的开源平台上,并且经过了验证。记得喜欢收藏评论三遍(笑)。如果你懒得做这个,请扔钱给我。
在硬件上短接L1和H2,短接L2和H1,将单片机的pwm和互补pwm任意接在两个输入端。小心不要接错线。把LC滤波器接到全桥的输出端,打开电源就能看到正弦波。
这种正弦波可以通过以合适的比率将其连接到工频变压器来升压到220v。如果我手头没有合适的变压器,就会出事。但常规方案是先将电压升压到400v DC,在输入高压全桥中逆变为交流,这样可以使体积更小。两个相差180度的正弦波可以驱动步进电机,三个相差120度的正弦波依次为三相逆变器。