广义状态平均法功率变换器建模分析

两种状态平均法在功率变换器建模的应用比较

[!info] Bibliography
[1] 高朝晖, 林辉张晓斌 & 吴小华, “两种状态平均法在功率变换器建模的应用比较,” 计算机仿真, no. 241-244+248, 2008.

[!note]

状态空间平均法采用直流量近似(线性系统模型),广义状态空间平均采用直流量和基波分量近似。也即状态空间平均法采用0阶傅里叶级数近似,广义状态空间平均采用0阶和1阶傅里叶级数近似

应用状态空间平均法分析 Buck变换器

广义状态平均法(GSSA)

广义状态平均采用傅里叶级数拟合系统状态:
x ( t ) = ∑ n = − ∞ ∞ ⟨ x ⟩ n ( t ) e j n ω t x(t) = \sum_{n = -\infty}^\infty \langle x \rangle_n(t) e^{j n \omega t} x(t)=n=xn(t)ejnωt

  • ω = 2 π / T \omega = 2\pi / T ω=2π/T
    ⟨ x ⟩ n ( t ) \langle x \rangle_n(t) xn(t) 代表傅里叶系数:

⟨ x ⟩ n ( t ) = 1 T ∫ t − T t x ( τ ) e − j n ω τ d τ \langle x \rangle_n(t) = \frac 1T \int_{t-T}^t x(\tau) e^{-j n \omega \tau}d\tau xn(t)=T1tTtx(τ)ejnωτdτ

  • n n n is AKA index-k average
    三角形式傅里叶级数:

x ( τ ) = ⟨ x ⟩ 0 + 2 ∑ n = 1 ∞ ( a 1 cos ⁡ ( n ω τ ) + b 1 sin ⁡ ( n ω τ ) ) x(\tau)=\langle x\rangle_0+2 \sum_{n=1}^{\infty}\left(a_1 \cos (n \omega \tau) + b_1 \sin (n \omega \tau)\right) x(τ)=x0+2n=1(a1cos(τ)+b1sin(τ))

  • ⟨ x ⟩ n ( t ) = a n − j b n \langle x\rangle_n(t) = a_n - j b_n xn(t)=anjbn

a n = 1 2 π ∫ 0 2 π x ( ω τ ) cos ⁡ ( ω τ ) d ( ω τ ) b n = 1 2 π ∫ 0 2 π x ( ω τ ) sin ⁡ ( ω τ ) d ( ω τ ) ⟨ x ⟩ 0 = 1 T ∫ t − T t x ( τ ) d τ \begin{aligned} {a}_n &=\frac{1}{2 \pi} \int_0^{2 \pi} {x}(\omega \tau) \cos (\omega \tau) \mathrm{d}(\omega \tau) \\ {b}_n &=\frac{1}{2 \pi} \int_0^{2 \pi} {x}(\omega \tau) \sin (\omega \tau) \mathrm{d}(\omega \tau) \\ \langle{x}\rangle_0 &=\frac{1}{{T}} \int_{t-{T}}^t {x}(\tau) \mathrm{d} \tau \end{aligned} anbnx0=2π102πx(ωτ)cos(ωτ)d(ωτ)=2π102πx(ωτ)sin(ωτ)d(ωτ)=T1tTtx(τ)dτ

性质:

  • d ⟨ x ⟩ n ( t ) d t = ⟨ d x d t ⟩ n ( t ) − j n ω ⟨ x ⟩ n ( t ) \frac{d \langle x\rangle_n(t)}{d t}=\left\langle\frac{d x}{d t}\right\rangle_n(t)-j n \omega\langle x\rangle_n(t) dtdxn(t)=dtdxn(t)jnωxn(t)

    [!note] Proof

    ⟨ x ⟩ n ( t ) = 1 T ∫ 0 T x ( t − T + s ) e − j n ω ( t − T + s ) d s \langle x \rangle_n(t) = \frac1T \int_0^T x(t - T + s) e^{-j n \omega(t-T+s)}ds xn(t)=T10Tx(tT+s)ejnω(tT+s)ds

  • ⟨ q x ⟩ n = ∑ i = − ∞ ∞ ⟨ q ⟩ n − i ⟨ x ⟩ i \langle qx \rangle_n = \sum_{i = -\infty}^\infty \langle q \rangle_{n -i} \langle x \rangle_i qxn=i=qnixi

Suppose that x ( t ) x(t) x(t) and q ( t ) q(t) q(t) can be approximated by 0- and 1-order Fourier series (即直流和基波量):
q ( t ) ≈ ⟨ q ⟩ 0 + ⟨ q ⟩ − 1 e − j ω t + ⟨ q ⟩ 1 e j ω t x ( t ) ≈ ⟨ x ⟩ 0 + ⟨ x ⟩ − 1 e − j ω t + ⟨ x ⟩ 1 e j ω t \begin{aligned} q(t) &\approx \langle q \rangle_0 + \langle q \rangle_{-1} e^{- j \omega t} + \langle q \rangle_1 e^{j \omega t} \\ x(t) &\approx \langle x \rangle_0 + \langle x \rangle_{-1} e^{- j \omega t} + \langle x \rangle_1 e^{j \omega t} \end{aligned} q(t)x(t)q0+q1et+q1etx0+x1et+x1et

[!note]

这里注意,三角形式傅里叶级数中的直流和基波项( a 0 / 2 + a 1 cos ⁡ ( ω t ) + b 1 sin ⁡ ( ω t ) a_0/2 + a_1 \cos(\omega t) + b_1 \sin(\omega t) a0/2+a1cos(ωt)+b1sin(ωt))对应于复数形式的傅立叶级数中 0 0 0 ± 1 ±1 ±1次项( c 0 + c − 1 e − i ω t + c 1 e i ω t c_0 + c_{-1}e^{-i \omega t}+ c_{1} e^{i\omega t} c0+c1et+c1et)

x x x q q q 乘积可表示为:
⟨ q x ⟩ 0 = ⟨ q ⟩ 0 ⟨ x ⟩ 0 + ⟨ q ⟩ − 1 ⟨ x ⟩ 1 + ⟨ q ⟩ 1 ⟨ x ⟩ − 1 ⟨ q x ⟩ 1 = ⟨ q ⟩ 0 ⟨ x ⟩ 1 + ⟨ q ⟩ 1 ⟨ x ⟩ 0 ⟨ q x ⟩ − 1 = ⟨ q ⟩ 0 ⟨ x ⟩ − 1 + ⟨ q ⟩ − 1 ⟨ x ⟩ 0 \begin{aligned} \langle qx \rangle_0 &= \langle q \rangle_0 \langle x \rangle_0 + \langle q \rangle_{-1} \langle x \rangle_1 + \langle q \rangle_1 \langle x \rangle_{-1} \\ \langle qx \rangle_1 &= \langle q \rangle_0 \langle x \rangle_1 + \langle q \rangle_{1} \langle x \rangle_0\\ \langle qx \rangle_{-1} &= \langle q \rangle_0 \langle x \rangle_{-1} + \langle q \rangle_{-1} \langle x \rangle_0 \end{aligned} qx0qx1qx1=q0x0+q1x1+q1x1=q0x1+q1x0=q0x1+q1x0
正负平均指数互为共轭 ⟨ x ⟩ 1 = ⟨ x ⟩ − 1 ∗ \langle x \rangle_1 = \langle x \rangle_{-1}^* x1=x1

  • ⟨ q ⟩ 1 = ⟨ q ⟩ 1 R + j ⟨ q ⟩ 1 I = ⟨ q ⟩ − 1 ∗ = ( ⟨ q ⟩ − 1 R + ⟨ q ⟩ − 1 I ) ∗ \langle q \rangle_1 = \langle q \rangle_1^R + j \langle q \rangle_1^I = \langle q \rangle_{-1}^* = \left(\langle q \rangle_{-1}^R + \langle q \rangle_{-1}^I\right)^* q1=q1R+jq1I=q1=(q1R+q1I)
  • ⟨ x ⟩ 1 = ⟨ x ⟩ 1 R + j ⟨ x ⟩ 1 I = ⟨ x ⟩ − 1 ∗ = ( ⟨ x ⟩ − 1 R + ⟨ x ⟩ − 1 I ) ∗ \langle x \rangle_1 = \langle x \rangle_1^R + j \langle x \rangle_1^I = \langle x \rangle_{-1}^* = \left(\langle x \rangle_{-1}^R + \langle x \rangle_{-1}^I\right)^* x1=x1R+jx1I=x1=(x1R+x1I)

于是
⟨ q x ⟩ 0 = ⟨ q ⟩ 0 ⟨ x ⟩ 0 + 2 ( ⟨ q ⟩ 1 R ⟨ x ⟩ 1 R + ⟨ q ⟩ 1 I ⟨ x ⟩ 1 I ) ⟨ q x ⟩ 1 R = ⟨ q ⟩ 0 ⟨ x ⟩ 1 R + ⟨ q ⟩ 1 R ⟨ x ⟩ 0 ⟨ q x ⟩ 1 I = ⟨ q ⟩ 0 ⟨ x ⟩ 1 I + ⟨ q ⟩ 1 I ⟨ x ⟩ 0 \begin{aligned} \langle qx \rangle_0 &= \langle q \rangle_0 \langle x \rangle_0 + 2\left(\langle q \rangle_{1}^R \langle x \rangle_1^R + \langle q \rangle_1^I \langle x \rangle_{1}^I\right) \\ \langle qx \rangle_1^R &= \langle q \rangle_0 \langle x \rangle_1^R + \langle q \rangle_{1}^R \langle x \rangle_0\\ \langle qx \rangle_{1}^I &= \langle q \rangle_0 \langle x \rangle_{1}^I + \langle q \rangle_{1}^I \langle x \rangle_0 \end{aligned} qx0qx1Rqx1I=q0x0+2(q1Rx1R+q1Ix1I)=q0x1R+q1Rx0=q0x1I+q1Ix0

GSSA 建模 BUCK

定义开关函数
q ( t ) = { 0 关 1 开 q(t) =\left\{ \begin{matrix} 0 & 关 \\ 1 & 开 \end{matrix} \right. q(t)={01
BUCK system model:
L d i L d t = v i n q ( t ) − v o C d v o d t = i L − v o R \begin{aligned} & L \frac{d {i_L}}{d t}=v_{i n} q(t)-v_o \\ & C \frac{d v_o}{d t}=i_L-\frac{v_o}{R} \end{aligned} LdtdiL=vinq(t)voCdtdvo=iLRvo
0 平均指数模型:
L d ⟨ i L ⟩ 0 d t = V i n ⟨ q ⟩ 0 − ⟨ v o ⟩ 0 C d ⟨ v o ⟩ 0 d t = ⟨ i L ⟩ 0 − ⟨ v o ⟩ 0 R \begin{aligned} & L\frac{d\langle i_L\rangle_0}{dt}=V_{in} \langle q \rangle_0 - \langle v_o \rangle_0 \\ & C\frac{d\langle v_o\rangle_0}{dt}=\langle{i_L}\rangle_0-\frac{\left\langle\mathrm{v}_o\right\rangle_0}{{R}} \end{aligned} LdtdiL0=Vinq0vo0Cdtdvo0=iL0Rvo0
1平均指数模型:
d ⟨ i L ⟩ 1 d t = − j ω ⟨ i L ⟩ 1 + 1 L ( V i n ⟨ q ⟩ 1 − ⟨ v o ⟩ 1 ) d ⟨ v o ⟩ 1 d t = − j ω ⟨ v o ⟩ 1 + 1 C ( ⟨ i L ⟩ 0 − ⟨ v o ⟩ 0 R ) \begin{aligned} \frac{d\langle i_L\rangle_1}{dt} &= -j\omega \langle i_L\rangle_1 + \frac1L \left( V_{in} \langle q \rangle_1 - \langle v_o \rangle_1 \right)\\ \frac{d\langle v_o\rangle_1}{dt} &= -j\omega \langle v_o \rangle_1 + \frac 1C \left( \langle{i_L}\rangle_0-\frac{\left\langle\mathrm{v}_o\right\rangle_0}{{R}} \right) \end{aligned} dtdiL1dtdvo1=iL1+L1(Vinq1vo1)=vo1+C1(iL0Rvo0)
考虑共轭关系,1平均指数模型的实部虚部分别可以写作:
d ⟨ i L ⟩ 1 R d t = ω ⟨ i L ⟩ 1 I + 1 L ( V i n ⟨ q ⟩ 1 R − ⟨ v o ⟩ 1 R ) d ⟨ i L ⟩ 1 I d t = − ω ⟨ i L ⟩ 1 R + 1 L ( V i n ⟨ q ⟩ 1 I − ⟨ v o ⟩ 1 I ) d ⟨ v o ⟩ 1 R d t = ω ⟨ v o ⟩ 1 I + 1 C ( ⟨ i L ⟩ 1 R − ⟨ v o ⟩ 1 R R ) d ⟨ v o ⟩ 1 I d t = − ω ⟨ v o ⟩ 1 R + 1 C ( ⟨ i L ⟩ 1 I − ⟨ v o ⟩ 1 I R ) \begin{aligned} \frac{d\langle i_L\rangle_1^R}{dt} &= \omega \langle i_L\rangle_1^I + \frac1L \left( V_{in} \langle q \rangle_1^R - \langle v_o \rangle_1^R \right)\\ \frac{d\langle i_L\rangle_1^I}{dt} &= -\omega \langle i_L\rangle_1^R + \frac1L \left( V_{in} \langle q \rangle_1^I - \langle v_o \rangle_1^I \right)\\ \frac{d\langle v_o\rangle_1^R}{dt} &= \omega \langle v_o \rangle_1^I + \frac 1C \left( \langle{i_L}\rangle_1^R-\frac{\left\langle\mathrm{v}_o\right\rangle_1^R}{{R}} \right)\\ \frac{d\langle v_o\rangle_1^I}{dt} &= -\omega \langle v_o \rangle_1^R + \frac 1C \left( \langle{i_L}\rangle_1^I -\frac{\left\langle\mathrm{v}_o\right\rangle_1^I}{{R}} \right) \end{aligned} dtdiL1RdtdiL1Idtdvo1Rdtdvo1I=ωiL1I+L1(Vinq1Rvo1R)=ωiL1R+L1(Vinq1Ivo1I)=ωvo1I+C1(iL1RRvo1R)=ωvo1R+C1(iL1IRvo1I)
选取状态变量 x = [ ⟨ i L ⟩ 1 R , ⟨ i L ⟩ 1 I , ⟨ v o ⟩ 1 R , ⟨ v o ⟩ 1 I , ⟨ i L ⟩ 0 R , ⟨ v o ⟩ 0 R ] T x = [\langle i_L\rangle_1^R, \langle i_L\rangle_1^I, \langle v_o \rangle_1^R, \langle v_o \rangle_1^I,\langle i_L \rangle_0^R, \langle v_o \rangle_0^R]^T x=[⟨iL1R,iL1I,vo1R,vo1I,iL0R,vo0R]T, 可以得到状态空间方程:
x ˙ = A x + B u \begin{aligned} \dot x &= Ax + Bu\\ \end{aligned} x˙=Ax+Bu

  • A = [ 0 ω − 1 / L 0 0 0 − ω 0 0 − 1 / L 0 0 1 / C 0 − 1 / ( R C ) ω 0 0 0 1 / C − ω − 1 / ( R C ) 0 0 0 0 0 0 0 − 1 / L 0 0 0 0 1 / C − 1 / ( R C ) ] A = \left[\begin{matrix} 0 & \omega & -1/L &0 & 0&0 \\ -\omega & 0 & 0 & -1/L & 0 & 0\\ 1/C & 0 & -1/(RC) & \omega & 0 & 0\\ 0 & 1/C & -\omega & -1/(RC) & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & -1/L \\ 0 & 0 & 0 & 0 & 1/C & -1 / (RC) \end{matrix}\right] A= 0ω1/C000ω001/C001/L01/(RC)ω0001/Lω1/(RC)00000001/C00001/L1/(RC)
  • B = [ ⟨ q ⟩ 1 R L , ⟨ q ⟩ 1 I L , 0 , 0 , ⟨ q ⟩ 0 L , 0 ] T B = \left[\frac{\langle q \rangle_1^R}L, \frac{\langle q \rangle_1^I}L, 0, 0, \frac{\langle q \rangle_0}L,0 \right]^T B=[Lq1R,Lq1I,0,0,Lq0,0]T
  • u = V i n u = V_{in} u=Vin

开关函数 q ( t ) q(t) q(t) 的 0 阶和 1 阶傅里叶系数:
⟨ q ⟩ 1 R = 1 2 π ∫ 0 2 π D cos ⁡ ( ω τ ) d ( ω τ ) = 1 2 π sin ⁡ ( 2 π D ) ⟨ q ⟩ 1 I = − 1 2 π ∫ 0 2 π D sin ⁡ ( ω τ ) d ( ω τ ) = 1 2 π [ cos ⁡ ( 2 π D ) − 1 ] ⟨ q ⟩ 0 = D \begin{aligned} \langle q \rangle_1^R &= \frac 1{2\pi} \int_0^{2\pi D} \cos (\omega \tau ) d(\omega \tau) = \frac1{2\pi} \sin (2\pi D)\\\langle q \rangle_1^I &= -\frac 1{2\pi} \int_0^{2\pi D} \sin (\omega \tau ) d(\omega \tau) = \frac1{2\pi} [\cos (2\pi D) - 1]\\ \langle q \rangle_0 &= D\\ \end{aligned} q1Rq1Iq0=2π102πDcos(ωτ)d(ωτ)=2π1sin(2πD)=2π102πDsin(ωτ)d(ωτ)=2π1[cos(2πD)1]=D
根据广义状态模型的解 x x x,可以得到系统输出为
i L = 2 x 1 cos ⁡ ( ω t ) − 2 x 2 sin ⁡ ( ω t ) + x 5 v o = 2 x 3 cos ⁡ ( ω t ) − 2 x 4 sin ⁡ ( ω t ) + x 6 \begin{aligned} i_L &= 2x_1 \cos (\omega t) - 2x_2 \sin (\omega t) + x_5\\ v_o &= 2x_3 \cos (\omega t) - 2x_4 \sin (\omega t) + x_6\\ \end{aligned} iLvo=2x1cos(ωt)2x2sin(ωt)+x5=2x3cos(ωt)2x4sin(ωt)+x6
namely:
i L = 2 ⟨ i L ⟩ 1 R cos ⁡ ( ω t ) − 2 ⟨ i L ⟩ 1 I sin ⁡ ( ω t ) + ⟨ i L ⟩ 0 v o = 2 ⟨ v o ⟩ 1 R cos ⁡ ( ω t ) − 2 ⟨ v o ⟩ 1 I sin ⁡ ( ω t ) + ⟨ v o ⟩ 0 \begin{aligned} i_L &= 2\langle i_L \rangle_1^R \cos (\omega t) - 2\langle i _L\rangle_1^I \sin (\omega t) + \langle i_L\rangle_0\\ v_o &= 2\langle v_o \rangle_1^R \cos (\omega t) - 2\langle v_o \rangle_1^I \sin (\omega t) + \langle v_o \rangle_0\\ \end{aligned} iLvo=2iL1Rcos(ωt)2iL1Isin(ωt)+iL0=2vo1Rcos(ωt)2vo1Isin(ωt)+vo0
另外,普通状态平均的解其实是
i L S S A = x 5 , v o S S A = x 6 i_{L_{SSA}} = x_5, v_{o_{SSA}} = x_6 iLSSA=x5,voSSA=x6

仿真研究

MATLAB Code:

 %---------------------------------------
% This is the simulation from  
% 两种状态平均法在功率变换器建模的应用比较
%
% hu 2023-03-03
%---------------------------------------

clc,clear,close all

Vin = 20;
R   = 10;
L   = 1e-3;
C   = 1e-6;
f   = 40e3;
w   = 2 * pi * f;
T   = 1 / f;
sim my_power_BuckConverter
D   = .5;
q1R = 1 / 2 / pi * sin(2 * pi * D);
q1I = 1 / 2 / pi * (cos(2 * pi * D) - 1);
q0  = D;

A = [0   w   -1/L     0        0   0
     -w  0   0        -1/L     0   0
     1/C 0   -1/(R*C) w        0   0
     0   1/C -w       -1/(R*C) 0   0
     0   0   0        0        0   -1/L
     0   0   0        0        1/C -1/(R*C)];
B = [q1R / L, q1I / L, 0, 0, q0 / L, 0]';
x = zeros(6,1);
u = Vin;

ts = 0;
h  = T/500;
tf = 1e-3;

iLGSSAout = [];
voGSSAout = [];
iLSSAout  = [];
voSSAout  = [];

for t=ts:h:tf
    xdot      = A * x + B * u;
    x         = x + xdot * h;
    iLGSSA    = 2 * x(1) * cos(w * t) - 2 * x(2) * sin(w * t) + x(5);
    voGSSA    = 2 * x(3) * cos(w * t) - 2 * x(4) * sin(w * t) + x(6);
    iLSSA     = x(5);
    voSSA     = x(6);
    
    iLGSSAout = [iLGSSAout;iLGSSA];
    voGSSAout = [voGSSAout;voGSSA];
    iLSSAout  = [iLSSAout;iLSSA];
    voSSAout  = [voSSAout;voSSA];
end


t = ts:h:tf;
pos = mypos(8);
i   = 1;
linewidth = 1.5;
fontsize  = 12;
tSIM      = iLSIMout.Time;
iLGSSAout_interp = interp1(t,iLGSSAout,tSIM);
iLSSAout_interp  = interp1(t,iLSSAout,tSIM);
voGSSAout_interp = interp1(t,voGSSAout,tSIM);
voSSAout_interp  = interp1(t,voSSAout,tSIM);

figure
plot(tSIM,iLGSSAout_interp,tSIM,iLSSAout_interp,tSIM,iLSIMout.Data,'linewidth',linewidth);
h = legend('$i_{L_{GSSA}}$','$i_{L_{SSA}}$','$i_{L_{SIM}}$');
h.Interpreter = 'latex';
h.FontSize    = fontsize;
h.Location    = 'southeast';
h.Orientation = 'horizon';
set(gcf,'position',pos{i});
i = i + 1;
grid on

figure
plot(tSIM,voGSSAout_interp,tSIM,voSSAout_interp,tSIM,voSIMout.Data,'linewidth',linewidth);
h = legend('$v_{o_{GSSA}}$', '$v_{o_{SSA}}$', '$v_{o_{SIM}}$');
h.Interpreter = 'latex';
h.FontSize    = fontsize;
h.Location    = 'southeast';
h.Orientation = 'horizon';
set(gcf,'position',pos{i});
i = i + 1;
grid on

mypos function:

function pos = mypos(i,figs1,figs2)
% mypos.m                    给定 figure 对象个数求解合适的摆放位置向量以防止图片堆叠
% i                          figure 个数
% figs1,figs2                figure 对象的长和高
% pos = mypos(i,figs1,figs2) 求出 i 个 figure 对象的合理摆放位置,且大小设置为[figs1,figs2]
%                            输出 pos 是元胞数组,使用规范(已生成figure对象后):set(gcf,'position',pos{i})
% Remark                     更方便的绘图程序见 myplot.m

% hu 2018-6-11
% hu 2018-8-8  Modified Remark is added
% hu 2018-11-3 Modified Description is updated

if nargin ~= 3
	figs = [400,300]; %default size is 560*420, 500*280 is suitable for paper shows
else
    figs = [figs1,figs2];
end
if i > 8
    disp('too many figures! The maximum number is 8')
end
scr = get(0,'screensize');
for k = 1:i
    if k <= 4
        pos{k} = [scr(1) + (k - 1) * figs(1),scr(2) + scr(4) / 2,figs];
    end
    if k > 4
        pos{k} = [scr(1) + (k - 5) * scr(3) / 4,scr(2) + 30,figs];
    end
end
end

真实数据用 SIMULINK 2018a 得到,PWM 频率 f = 40 k H z f = 40kHz f=40kHz,可以看到 GSSA 基本和 SIMULINK 数据重合,SSA 仅代表了其直流分量

电感电流比较
电容电压比较

仿真文件: 链接: https://pan.baidu.com/s/1ftQQ68H0nHVZ3LQkPNEObw?pwd=mgf4 提取码: mgf4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值