电压源换流器(Voltage source converter,VSC)连接交流主网和直流电网,起到交直流网络连接、功率输送和电能变换的作用。采用电压控制手段可维持直流电压的稳定;或采用功率控制手段保证系统功率输出达到预期。
1.1 基础模型
VSC的拓扑模型如图1所示:
VSC的三相电压平衡方程如式(1)所示:
式中,igx和ugx分别表示主网三相电流与电压(x=a,b,c);ucx表示换流器VSC 交流输出电压; Rg表示交流主网等效电阻;Lg表示交流主网等效电感。
三相abc坐标系下的VSC电压平衡方程难以实现电流的解耦控制,常用Park变换,将其转变为d-q坐标系,在d-q坐标系下,三相逆变器平衡方程如式(2)所示:
式中,ωs为交流系统频率;ugy、igy和ucy分别表示主网电压、主网电流和VSC交流电压的y轴分量(y=d, q)。
式(2)可转换为式(3),之所以转化成这种形式是为了方便后续控制搭建计算ucd和ucq:
1.2 控制模块
当采取PI调节器时,ucd、ucq的控制如式(4)所示:
式中,Kp、Ki为比例调节系数和积分调节系数;idref、iqref为d轴电流和q轴电流参考值。
VSC控制采用双环解耦控制,实现目标值的快速跟踪。内环采用电流控制,使igd、igq能够快速跟踪参考值。其控制框图如图2所示。
外环控制包括Udc-Q控制和P-Q控制等,需根据系统所需的控制目标选择哪一种外环控制。外环通过目标偏差的PI控制输出为idref和iqref,为内环提供参考。
直流综合电力系统至少需要一端VSC采用Udc-Q控制,以维持系统直流电压稳定,外环Udc-Q控制框图如图3所示,Udc和Udcref分别表示直流电压及其参考值,Qg和Qref分别表示VSC输出无功功率及其参考值。
一端VSC采用Udc-Q控制后,其他端口可采用P-Q控制,可实现按系统需求控制各端输出功率,外环P-Q控制框图如图2-10所示,P和Pref分别表示VSC输出有功功率及其参考值。
整体控制框图如图5和图6所示。
1.3 Simulink仿真模型
1.3.1 电气模块
最最基础的整流器系统模型如图7所示:
1.3.2 控制模块
1)SPWM
按照控制框图搭就完事了,无功功率环可以直接省略(毕竟控无功功率为零其实也是控无功电流为零)。直接把参考电压输给Simulink自带的SPWM模块。
2)SVPWM的m代码形式
SVPWM利用Simulink自带模块实现的方式B站上能搜到,这里就不赘述了(而且看视频肯定比看图片好)。其实代码形式本质上跟模块形式是一样的,但运行速度更快。(顺便之前的参数也可以从代码里找到)。
function PWM = fcn(vdc_bus,Vag,Vbg,Vcg,Iag,Ibg,Icg,time)
persistent vdc_integral
persistent id_integral
persistent iq_integral
persistent w
persistent f_integral
Ts=2e-6;
f_ref=2*pi*50;
vdc_ref=1000;
iq_ref=0;
L=1.2e-3;
if isempty(w)
w=0;
end
if isempty(f_integral)
f_integral=0;
end
if isempty(vdc_integral)
vdc_integral=0;
end
if isempty(id_integral)
id_integral=0;
end
if isempty(iq_integral)
iq_integral=0;
end
%V-abc-dq
vd=2/3*(sin(w)*Vag+sin(w-pi/3*2)*Vbg+sin(w+pi/3*2)*Vcg);
vq=2/3*(cos(w)*Vag+cos(w-pi/3*2)*Vbg+cos(w+pi/3*2)*Vcg);
%PLL
Kp_f=10;
Ki_f=3141.6;
f_integral = f_integral + vq;
f= Kp_f*vq+Ki_f*f_integral*Ts+f_ref;
w = w+f*Ts;
if w>=2*pi
w=w-2*pi;
end
%I-abc-dq
id=2/3*(sin(w)*Iag+sin(w-pi/3*2)*Ibg+sin(w+pi/3*2)*Icg);
iq=2/3*(cos(w)*Iag+cos(w-pi/3*2)*Ibg+cos(w+pi/3*2)*Icg);
%DC
vdc_error=vdc_ref-vdc_bus;
Kp_v=0.83;
Ki_v=47;
vdc_integral = vdc_integral + vdc_error;
id_ref = Kp_v*vdc_error+Ki_v*vdc_integral*Ts;
%d-axis
id_error=id_ref-id;
Kp_id=4;
Ki_id=100;
id_integral = id_integral + id_error;
vd_ref = Kp_id*id_error+Ki_id*id_integral*Ts;
Vd=vd-vd_ref+iq*f*L;
%q-axis
iq_error=iq_ref-iq;
Kp_iq=4;
Ki_iq=100;
iq_integral = iq_integral + iq_error;
vq_ref = Kp_iq*iq_error+Ki_iq*iq_integral*Ts;
Vq=vq-vq_ref-id*f*L;
%0-axis
V0=0;
%dq-abc
Va=cos(w)*Vq+sin(w)*Vd+V0;
Vb=cos(w-pi/3*2)*Vq+sin(w-pi/3*2)*Vd+V0;
Vc=cos(w+pi/3*2)*Vq+sin(w+pi/3*2)*Vd+V0;
%normalize
Vam=Va/vdc_ref*sqrt(3);
Vbm=Vb/vdc_ref*sqrt(3);
Vcm=Vc/vdc_ref*sqrt(3);
%V-abc-alphabeta
Valpha=2/3*(Vam-Vbm/2-Vcm/2);
Vbeta=2/3*(Vbm*sqrt(3)/2-Vcm*sqrt(3)/2);
%choose sector
if Vbeta>=0
A=0;
else
A=4;
end
if (Vbeta-sqrt(3)*Valpha)>=0
B=0;
else
B=2;
end
if (Vbeta+sqrt(3)*Valpha)>=0
C=0;
else
C=1;
end
F=A+B+C;
switch F
case 0
n=2;
case 1
n=3;
case 2
n=1;
case 5
n=4;
case 6
n=6;
case 7
n=5;
otherwise
n=0;
end
%time calculation
switch n
case 1
T1=sqrt(3)/2*Valpha-1/2*Vbeta;
T2=Vbeta;
case 2
T1=sqrt(3)/2*Valpha+1/2*Vbeta;
T2=-sqrt(3)/2*Valpha+1/2*Vbeta;
case 3
T1=Vbeta;
T2=-sqrt(3)/2*Valpha-1/2*Vbeta;
case 4
T1=-sqrt(3)/2*Valpha+1/2*Vbeta;
T2=-Vbeta;
case 5
T1=-sqrt(3)/2*Valpha-1/2*Vbeta;
T2=sqrt(3)/2*Valpha-1/2*Vbeta;
otherwise
T1=-Vbeta;
T2=sqrt(3)/2*Valpha+1/2*Vbeta;
end
T0=1-T1-T2;
% modulation waves generation
Vt11=T0/2;
Vt12=T1+T0/2;
Vt13=T2+T1+T0/2;
Vt21=T2+T0/2;
Vt22=T0/2;
Vt23=T2+T1+T0/2;
switch n
case 1
Vta=Vt11;
Vtb=Vt12;
Vtc=Vt13;
case 2
Vta=Vt21;
Vtb=Vt22;
Vtc=Vt23;
case 3
Vta=Vt13;
Vtb=Vt11;
Vtc=Vt12;
case 4
Vta=Vt23;
Vtb=Vt21;
Vtc=Vt22;
case 5
Vta=Vt12;
Vtb=Vt13;
Vtc=Vt11;
otherwise
Vta=Vt22;
Vtb=Vt23;
Vtc=Vt21;
end
Tm=1/10000;
t=rem(time,Tm)/Tm;
if t>(Vta/2)&&t<(1-Vta/2)
S1=1;
S2=0;
else
S1=0;
S2=1;
end
if t>(Vtb/2)&&t<(1-Vtb/2)
S3=1;
S4=0;
else
S3=0;
S4=1;
end
if t>(Vtc/2)&&t<(1-Vtc/2)
S5=1;
S6=0;
else
S5=0;
S6=1;
end
PWM=[S1 S2 S3 S4 S5 S6];
end
1.4 仿真结果
标签:case,iq,integral,vdc,电平,IGBT,Vbeta,整流器,id From: https://blog.csdn.net/TUCHACHINA/article/details/141139001