广义状态平均法功率变换器建模分析
两种状态平均法在功率变换器建模的应用比较
[!info] Bibliography
[1] 高朝晖, 林辉张晓斌 & 吴小华, “两种状态平均法在功率变换器建模的应用比较,” 计算机仿真, no. 241-244+248, 2008.
[!note]
状态空间平均法采用直流量近似(线性系统模型),广义状态空间平均采用直流量和基波分量近似。也即状态空间平均法采用0阶傅里叶级数近似,广义状态空间平均采用0阶和1阶傅里叶级数近似
应用状态空间平均法分析 Buck变换器
广义状态平均法(GSSA)
广义状态平均采用傅里叶级数拟合系统状态:
x(t)=∑n=−∞∞⟨x⟩n(t)ejnωtx(t) = \sum_{n = -\infty}^\infty \langle x \rangle_n(t) e^{j n \omega t} x(t)=n=−∞∑∞⟨x⟩n(t)ejnωt
- ω=2π/T\omega = 2\pi / Tω=2π/T
⟨x⟩n(t)\langle x \rangle_n(t)⟨x⟩n(t) 代表傅里叶系数:
⟨x⟩n(t)=1T∫t−Ttx(τ)e−jnωτdτ\langle x \rangle_n(t) = \frac 1T \int_{t-T}^t x(\tau) e^{-j n \omega \tau}d\tau ⟨x⟩n(t)=T1∫t−Ttx(τ)e−jnωτdτ
- nnn is AKA index-k average
三角形式傅里叶级数:
x(τ)=⟨x⟩0+2∑n=1∞(a1cos(nωτ)+b1sin(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(τ)=⟨x⟩0+2n=1∑∞(a1cos(nωτ)+b1sin(nωτ))
- ⟨x⟩n(t)=an−jbn\langle x\rangle_n(t) = a_n - j b_n⟨x⟩n(t)=an−jbn
an=12π∫02πx(ωτ)cos(ωτ)d(ωτ)bn=12π∫02πx(ωτ)sin(ωτ)d(ωτ)⟨x⟩0=1T∫t−Ttx(τ)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} anbn⟨x⟩0=2π1∫02πx(ωτ)cos(ωτ)d(ωτ)=2π1∫02πx(ωτ)sin(ωτ)d(ωτ)=T1∫t−Ttx(τ)dτ
性质:
-
d⟨x⟩n(t)dt=⟨dxdt⟩n(t)−jnω⟨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)dtd⟨x⟩n(t)=⟨dtdx⟩n(t)−jnω⟨x⟩n(t)
[!note] Proof
⟨x⟩n(t)=1T∫0Tx(t−T+s)e−jnω(t−T+s)ds\langle x \rangle_n(t) = \frac1T \int_0^T x(t - T + s) e^{-j n \omega(t-T+s)}ds⟨x⟩n(t)=T1∫0Tx(t−T+s)e−jnω(t−T+s)ds
-
⟨qx⟩n=∑i=−∞∞⟨q⟩n−i⟨x⟩i\langle qx \rangle_n = \sum_{i = -\infty}^\infty \langle q \rangle_{n -i} \langle x \rangle_i⟨qx⟩n=∑i=−∞∞⟨q⟩n−i⟨x⟩i
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⟩−1e−jωt+⟨q⟩1ejωtx(t)≈⟨x⟩0+⟨x⟩−1e−jωt+⟨x⟩1ejω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)≈⟨q⟩0+⟨q⟩−1e−jωt+⟨q⟩1ejωt≈⟨x⟩0+⟨x⟩−1e−jωt+⟨x⟩1ejωt
[!note]
这里注意,三角形式傅里叶级数中的直流和基波项(a0/2+a1cos(ωt)+b1sin(ωt)a_0/2 + a_1 \cos(\omega t) + b_1 \sin(\omega t)a0/2+a1cos(ωt)+b1sin(ωt))对应于复数形式的傅立叶级数中 000、±1±1±1次项(c0+c−1e−iωt+c1eiωtc_0 + c_{-1}e^{-i \omega t}+ c_{1} e^{i\omega t}c0+c−1e−iωt+c1eiωt)
xxx 和 qqq 乘积可表示为:
⟨qx⟩0=⟨q⟩0⟨x⟩0+⟨q⟩−1⟨x⟩1+⟨q⟩1⟨x⟩−1⟨qx⟩1=⟨q⟩0⟨x⟩1+⟨q⟩1⟨x⟩0⟨qx⟩−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} ⟨qx⟩0⟨qx⟩1⟨qx⟩−1=⟨q⟩0⟨x⟩0+⟨q⟩−1⟨x⟩1+⟨q⟩1⟨x⟩−1=⟨q⟩0⟨x⟩1+⟨q⟩1⟨x⟩0=⟨q⟩0⟨x⟩−1+⟨q⟩−1⟨x⟩0
正负平均指数互为共轭⟨x⟩1=⟨x⟩−1∗\langle x \rangle_1 = \langle x \rangle_{-1}^*⟨x⟩1=⟨x⟩−1∗
- ⟨q⟩1=⟨q⟩1R+j⟨q⟩1I=⟨q⟩−1∗=(⟨q⟩−1R+⟨q⟩−1I)∗\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)^*⟨q⟩1=⟨q⟩1R+j⟨q⟩1I=⟨q⟩−1∗=(⟨q⟩−1R+⟨q⟩−1I)∗
- ⟨x⟩1=⟨x⟩1R+j⟨x⟩1I=⟨x⟩−1∗=(⟨x⟩−1R+⟨x⟩−1I)∗\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)^*⟨x⟩1=⟨x⟩1R+j⟨x⟩1I=⟨x⟩−1∗=(⟨x⟩−1R+⟨x⟩−1I)∗
于是
⟨qx⟩0=⟨q⟩0⟨x⟩0+2(⟨q⟩1R⟨x⟩1R+⟨q⟩1I⟨x⟩1I)⟨qx⟩1R=⟨q⟩0⟨x⟩1R+⟨q⟩1R⟨x⟩0⟨qx⟩1I=⟨q⟩0⟨x⟩1I+⟨q⟩1I⟨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} ⟨qx⟩0⟨qx⟩1R⟨qx⟩1I=⟨q⟩0⟨x⟩0+2(⟨q⟩1R⟨x⟩1R+⟨q⟩1I⟨x⟩1I)=⟨q⟩0⟨x⟩1R+⟨q⟩1R⟨x⟩0=⟨q⟩0⟨x⟩1I+⟨q⟩1I⟨x⟩0
GSSA 建模 BUCK
定义开关函数
q(t)={0关1开q(t) =\left\{ \begin{matrix} 0 & 关 \\ 1 & 开 \end{matrix} \right. q(t)={01关开
BUCK system model:
LdiLdt=vinq(t)−voCdvodt=iL−voR\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=iL−Rvo
0 平均指数模型:
Ld⟨iL⟩0dt=Vin⟨q⟩0−⟨vo⟩0Cd⟨vo⟩0dt=⟨iL⟩0−⟨vo⟩0R\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} Ldtd⟨iL⟩0=Vin⟨q⟩0−⟨vo⟩0Cdtd⟨vo⟩0=⟨iL⟩0−R⟨vo⟩0
1平均指数模型:
d⟨iL⟩1dt=−jω⟨iL⟩1+1L(Vin⟨q⟩1−⟨vo⟩1)d⟨vo⟩1dt=−jω⟨vo⟩1+1C(⟨iL⟩0−⟨vo⟩0R)\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} dtd⟨iL⟩1dtd⟨vo⟩1=−jω⟨iL⟩1+L1(Vin⟨q⟩1−⟨vo⟩1)=−jω⟨vo⟩1+C1(⟨iL⟩0−R⟨vo⟩0)
考虑共轭关系,1平均指数模型的实部虚部分别可以写作:
d⟨iL⟩1Rdt=ω⟨iL⟩1I+1L(Vin⟨q⟩1R−⟨vo⟩1R)d⟨iL⟩1Idt=−ω⟨iL⟩1R+1L(Vin⟨q⟩1I−⟨vo⟩1I)d⟨vo⟩1Rdt=ω⟨vo⟩1I+1C(⟨iL⟩1R−⟨vo⟩1RR)d⟨vo⟩1Idt=−ω⟨vo⟩1R+1C(⟨iL⟩1I−⟨vo⟩1IR)\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} dtd⟨iL⟩1Rdtd⟨iL⟩1Idtd⟨vo⟩1Rdtd⟨vo⟩1I=ω⟨iL⟩1I+L1(Vin⟨q⟩1R−⟨vo⟩1R)=−ω⟨iL⟩1R+L1(Vin⟨q⟩1I−⟨vo⟩1I)=ω⟨vo⟩1I+C1(⟨iL⟩1R−R⟨vo⟩1R)=−ω⟨vo⟩1R+C1(⟨iL⟩1I−R⟨vo⟩1I)
选取状态变量x=[⟨iL⟩1R,⟨iL⟩1I,⟨vo⟩1R,⟨vo⟩1I,⟨iL⟩0R,⟨vo⟩0R]Tx = [\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]^Tx=[⟨iL⟩1R,⟨iL⟩1I,⟨vo⟩1R,⟨vo⟩1I,⟨iL⟩0R,⟨vo⟩0R]T, 可以得到状态空间方程:
x˙=Ax+Bu\begin{aligned} \dot x &= Ax + Bu\\ \end{aligned} x˙=Ax+Bu
- A=[0ω−1/L000−ω00−1/L001/C0−1/(RC)ω0001/C−ω−1/(RC)0000000−1/L00001/C−1/(RC)]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/C00−1/L0−1/(RC)−ω000−1/Lω−1/(RC)00000001/C0000−1/L−1/(RC)
- B=[⟨q⟩1RL,⟨q⟩1IL,0,0,⟨q⟩0L,0]TB = \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]^TB=[L⟨q⟩1R,L⟨q⟩1I,0,0,L⟨q⟩0,0]T
- u=Vinu = V_{in}u=Vin
开关函数 q(t)q(t)q(t) 的 0 阶和 1 阶傅里叶系数:
⟨q⟩1R=12π∫02πDcos(ωτ)d(ωτ)=12πsin(2πD)⟨q⟩1I=−12π∫02πDsin(ωτ)d(ωτ)=12π[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} ⟨q⟩1R⟨q⟩1I⟨q⟩0=2π1∫02πDcos(ωτ)d(ωτ)=2π1sin(2πD)=−2π1∫02πDsin(ωτ)d(ωτ)=2π1[cos(2πD)−1]=D
根据广义状态模型的解 xxx,可以得到系统输出为
iL=2x1cos(ωt)−2x2sin(ωt)+x5vo=2x3cos(ωt)−2x4sin(ωt)+x6\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:
iL=2⟨iL⟩1Rcos(ωt)−2⟨iL⟩1Isin(ωt)+⟨iL⟩0vo=2⟨vo⟩1Rcos(ωt)−2⟨vo⟩1Isin(ωt)+⟨vo⟩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=2⟨iL⟩1Rcos(ωt)−2⟨iL⟩1Isin(ωt)+⟨iL⟩0=2⟨vo⟩1Rcos(ωt)−2⟨vo⟩1Isin(ωt)+⟨vo⟩0
另外,普通状态平均的解其实是
iLSSA=x5,voSSA=x6i_{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 allVin = 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 01/C 0 -1/(R*C) w 0 00 1/C -w -1/(R*C) 0 00 0 0 0 0 -1/L0 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:tfxdot = 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];
endt = 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 onfigure
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 updatedif nargin ~= 3figs = [400,300]; %default size is 560*420, 500*280 is suitable for paper shows
elsefigs = [figs1,figs2];
end
if i > 8disp('too many figures! The maximum number is 8')
end
scr = get(0,'screensize');
for k = 1:iif k <= 4pos{k} = [scr(1) + (k - 1) * figs(1),scr(2) + scr(4) / 2,figs];endif k > 4pos{k} = [scr(1) + (k - 5) * scr(3) / 4,scr(2) + 30,figs];end
end
end
真实数据用 SIMULINK 2018a 得到,PWM 频率 f=40kHzf = 40kHzf=40kHz,可以看到 GSSA 基本和 SIMULINK 数据重合,SSA 仅代表了其直流分量
仿真文件: 链接: https://pan.baidu.com/s/1ftQQ68H0nHVZ3LQkPNEObw?pwd=mgf4 提取码: mgf4