目录
前言
本文主要介绍SPWM原理及C语言单片机的实现
一、PWM简介
PWM是Pulse Width Modulation的缩写,也称为脉冲宽度调制。PWM信号主要用于控制半导体通电/断电的占空比(ON/OFF时间的比率)。如下图所示
其本质就是不停的开关电路状态,其中 T T T为周期,频率 f = 1 T f= \frac{1}{T} f=T1, T w T_w Tw为开启时间,占空比是指周期性方波中导通周期(幅度不为零的周期)的百分比
占空比( D ) = T w T 占空比(D)= \frac {T_w}{T} 占空比(D)=TTw
那PWM有什么用?以下图电路为例,假设的系统正常开启为 V i V_{i} Vi,输入为PWM,那么实际电压有
V o = D ∗ V i V_o = D * V_{i} Vo=D∗Vi
其输出电压是个有效值,如果系统负载有个LED灯,那么通过改变PWM的占空比就可以改变 V o V_o Vo,从而可以改变LED灯的亮度。那PWM在电机里有什么用呢?先看下图,我们使用PWM控制一个开关电路,忽略MOS的管压降有
- 当PWM输出为1时,MOS管打开,负载电流 I = 5 / R 3 I=5/R3 I=5/R3
- 当PWM输出为0时,MOS管关闭,负载电流为0
那么电路输入PWM信号的时候,有 I = D ∗ 5 / R 3 I=D*5/R3 I=D∗5/R3,从而实现了控制电流。如果负载R3为电机,是不是就可以通过控制PWM占空比,就可以控制电机工作电流,从而控制电机转速了,如下
注意:电力电子器件工作的开关频率越高,低次谐波越小,但开关器件的开关损耗也越大,带来散热问题同时也会使电能变换效率降低。高压大功率电力电子器件工作频率一般不高于1kHz
二、SPWM基本原理
2.1 SPWM简介
SPWM的全称是Sinusoidal Pulse Width Modulation,又称正弦脉冲宽度调制。简单来说就是占空比按照正弦波来调制,此时电流就会成正弦波的形式
上面我们发现PWM就可以调速,那么我们为什么还要使用SPWM,既增加代码复杂度,又增加运算量的事情呢?实际上对于有刷电机,PWM已经够用了,但是如果放在无刷电机、变频器、逆变器等系统里,我们就可能需要用到SPWM,甚至更复杂的控制算法。
如上图所示一个控制系统,具体无刷电机的6步方波控制原理这边就不细讲了,可以参考文末补充链接
如上图所示,我们主要关心的是无刷电机换相的问题。从之前的方波控制,我们知道使用PWM的原因主要是防止电机转速过快,实际上在6步方波控制里使用的是PWM+PID的方式,此时如果我们测量单相上的电流大致会呈现如下图所示波形,你会发现电流波形成阶梯形式
第首先一个问题是为什么会形成这样的波形?主要是无刷电机在旋转过程中经历下面几步:
1、开始在没有换相的时候由于PID的反馈几乎为0,此时电流达到最小值假设为 I 1 I_1 I1
2、当需要换相的时候,部分电能转化为动能,此时由于PID的滞后性,他开始补偿增大电流,达到电流最大值为 I 2 I_2 I2
3、当换相结束之后,没有了动能损耗,此时电流过大,PID又开始降低电流,最后又回到 I 1 I_1 I1
所以这样的电流波形是因为换相的动能损耗,以及PID补偿的滞后性导致的。那么第二个问题是这样的波形在现实生活中会带来什么问题?主要会带来下面的问题
1、电机转速有波动,就是一会快一会慢
2、由于转速的波动,导致电机在运转过程中噪声比较大
3、由于PID调节的滞后性,导致电机在运转过程中功率增大,效率降低
此时再回到SPWM调制思想,他是利用宽窄不等的方波来等效正弦波,保证宽窄不等的方波所对应的基波与所需要等效的正弦波的幅值、相位和频率均相等。所以你会发现SPWM相比于1.1小节的PWM在不同的占空比之间过度更加自然,加入SPWM控制后,电流波形会优化成如下所示
2.2 SPWM控制方法
SPWM控制的关键是如何确定脉冲宽度,及SPWM波产生方法。
2.2.1 直接计算法
- 方法:根据正弦波频率、幅值和半周期脉冲数,准确计算PWM波各脉冲宽度和间隔,据此控制逆变电路开关器件的通断,就可得到所需PWM波形
- 缺点:本法较繁琐,当输出正弦波的频率、幅值或相位变化时,结果都要变化
如按照等面积原则计算开关时刻
对于不同极性有
2.2.2 自然采样法
自然采样法就是取正弦波(调制波)与三角波(载波)的交点确定脉冲宽度,如下图所示
其缺点是交点求解涉及到多次三角函数计算和迭代多次,计算量很大
与之相类似的还有规则采样法:载波周期中点与正弦波(调制波)的交点所作的水平线与三角波(载波)的交点确定脉冲宽度,如下图所示,其得到的SPWM波与自然采样法接近,谐波会略微大一点
如果是单相逆变器系统,如下所示
有单极性调制法(单相)
和双极性调制法(单相)
对于三相系统有
2.2.3 谐波法
- 谐波的概念
谐波法是计算法中一种较有代表性的方法,首先理解什么是谐波。根据傅里叶级数,任意周期信号可以表示为
f ( t ) = a 0 + a 1 cos ω t + a 1 sin ω t + a 2 cos 2 ω t + a 2 sin 2 ω t + ⋯ = a 0 + ∑ n = 1 ∞ ( a n cos n ω t + b n sin n ω t ) \begin{split} f(t) &= a_0 + a_1\cos ωt + a_1\sin ωt + a_2\cos 2ωt + a_2\sin 2ωt + \cdots \\ &= a_0 + \sum_{n=1}^{\infty}(a_n\cos nωt + b_n \sin nωt) \end{split} f(t)=a0+a1cosωt+a1sinωt+a2cos2ωt+a2sin2ωt+⋯=a0+n=1∑∞(ancosnωt+bnsinnωt)
其中 a 0 a_0 a0就是 f ( t ) f(t) f(t)在一个周期内的平均值,即
a 0 = 1 T ∫ 0 T f ( t ) d t a_0 = \frac{1}{T}\int_0^T f(t) \,{\rm d}t a0=T1∫0Tf(t)dt
经过三角变换可以变成
f ( t ) = a 0 + ∑ n = 1 ∞ A n ( cos n ω 0 t + φ n ) f(t) = a_0 + \sum_{n=1}^{\infty} A_n(\cos nω_0t + φ_n) f(t)=a0+n=1∑∞An(cosnω0t+φn)
其中
A n = a n 2 + b n 2 A_n = \sqrt{a_n^2 + b_n^2} An=an2+bn2
余弦分量
a n = A n cos φ n a_n = A_n \cosφ_n an=Ancosφn
正弦分量
b n = − A n sin φ n b_n = -A_n \sinφ_n bn=−Ansinφn
相位
φ n = − arctan b n a n φ_n = - \arctan \frac{b_n}{a_n} φn=−arctananbn
而谐波分量就是指
- 当n=0时, F 0 = a 0 F_0=a_0 F0=a0称为直流分量
- 当n=1时, F 1 = A 1 F_1=A_1 F1=A1称为基波分量
- 当n=2时, F 2 = A 2 F_2=A_2 F2=A2称为二次谐波分量
……- 当n=k时, F k = A k F_k=A_k Fk=Ak称为k次谐波分量
-
谐波消去法
谐波消去法是为减少谐波并简化控制,那么如何消去谐波呢?首先尽量使波形对称,为消除偶次谐波,使波形正负两半周期镜对称,即
u ( ω t ) = − u ( ω t + π ) u(ωt) = -u(ωt + π) u(ωt)=−u(ωt+π)
其次,为消除谐波中余弦项,应使波形在正半周期内前后1/4周期以π/2为轴线对称
u ( ω t ) = u ( π − ω t ) u(ωt) = u(π - ωt) u(ωt)=u(π−ωt)
同时满足上两式的波形称为四分之一周期对称波形,用傅里叶级数表示为
u ( ω t ) = ∑ n = 1 , 3 , 5 , ⋯ ∞ a n sin n ω t u(ωt) = \sum_{n=1,3,5,\cdots}^{\infty} a_n \sin nωt u(ωt)=n=1,3,5,⋯∑∞ansinnωt
式中
a n = 4 π ∫ 0 π 2 u ( ω t ) sin n ω t d ω t \begin{split} a_n &= \frac 4 π \int_0^{\frac π2 } u(ωt)\sin nωt \,{\rm d}ωt \end{split}