?? eign6118.m
字號(hào):
%6機(jī)系統(tǒng)k1-k18模型特征值計(jì)算(模型選擇見(jiàn)smanyx.m)
%包括潮流計(jì)算、QR法、模糊聚類(lèi)、等效二階SMA
%帶有解耦函數(shù)jie_ou
%數(shù)據(jù)文件
%zhilu1.mat %支路數(shù)據(jù)文件
%fuhe1.mat %負(fù)荷數(shù)據(jù)文件
%fadian1.mat%發(fā)電機(jī)數(shù)據(jù)文件
%gpm1.mat%發(fā)電機(jī)參數(shù)文件
%調(diào)入數(shù)據(jù)文件(電科院6機(jī)系統(tǒng))
clear
load zhilu1.mat -ascii; %支路數(shù)據(jù)文件
load fuhe1.mat -ascii; %負(fù)荷數(shù)據(jù)文件
load fadian1.mat -ascii; %發(fā)電機(jī)數(shù)據(jù)文件
load gpm1.mat -ascii; %發(fā)電機(jī)參數(shù)文件
%load fhtx.mat -ascii; %負(fù)荷靜態(tài)特性數(shù)組文件
%-----------------------------------------
%發(fā)電機(jī)的類(lèi)型參數(shù)
mt1=[5 5 5 5 5 5];
%mt1=[4 4 4 4 4 4];
%mt1=[1 1 1 1 1 1];
%-----------------------------------------
nm=max(zhilu1(:,2:3)); nn=max(nm');%網(wǎng)絡(luò)節(jié)點(diǎn)總數(shù)
bnn=size(zhilu1); bn=bnn(1,1);%支路數(shù)
lnn=size(fuhe1); ln=lnn(1,1);%負(fù)荷節(jié)點(diǎn)數(shù)
gnn=size(fadian1); gn=gnn(1,1);%發(fā)電機(jī)節(jié)點(diǎn)數(shù)
%==================BX型PQ分解法=====================
%形成bp,不考慮充電電容及變壓器非標(biāo)準(zhǔn)變比對(duì)導(dǎo)納矩陣的影響
%但要考慮支路電阻的影響
ynb=zeros(nn,nn);
for l=1:bn;
n=abs(zhilu1(l,1));
m=abs(zhilu1(l,2));
if n==m
y1=0;
else
y1=1./(zhilu1(l,3)+j*zhilu1(l,4));
ynb(n,n)=ynb(n,n)+y1;
ynb(m,m)=ynb(m,m)+y1;
ynb(n,m)=-y1;
ynb(m,n)=-y1;
end
end,
bp=imag(ynb);
%-----------------------------------------
%形成bpp,不考慮支路電阻的影響,
%但要考慮支路充電電容及變壓器的非標(biāo)準(zhǔn)變比的影響
ynp=zeros(nn,nn);
for l=1:bn;
n=abs(zhilu1(l,1));
m=abs(zhilu1(l,2));
if n==m
ynp(n,n)=ynp(n,n)+1./(j*zhilu1(l,5));
else
y1=1./(j*zhilu1(l,4));%不考慮支路電阻
if (zhilu1(l,1)>0&zhilu1(l,2)>0) %不是變壓器支路,是輸電線支路
ynp(n,n)=ynp(n,n)+y1+j*zhilu1(l,5);
ynp(m,m)=ynp(m,m)+y1+j*zhilu1(l,5);
ynp(n,m)=-y1;
ynp(m,n)=-y1;
elseif zhilu1(l,1)<0 %非標(biāo)準(zhǔn)變比側(cè)
kt=zhilu1(l,5);
ynp(n,n)=ynp(n,n)+y1/(kt^2);
ynp(m,m)=ynp(m,m)+y1;
ynp(n,m)=-(ynp(n,m)+y1/kt);
ynp(m,n)=ynp(n,m);
elseif zhilu1(l,2)<0 %非標(biāo)準(zhǔn)變比側(cè)
kt=zhilu1(l,5);
ynp(n,n)=ynp(n,n)+y1;
ynp(m,m)=ynp(m,m)+y1/(kt^2);
ynp(n,m)=-(ynp(n,m)+y1/kt);
ynp(m,n)=ynp(n,m);
end
end
end,
bpp=imag(ynp);
%---------------------------------------
%求取導(dǎo)納矩陣
yy=zeros(nn,nn);
for l=1:bn;
n=abs(zhilu1(l,1));
m=abs(zhilu1(l,2));
if n==m
yy(n,n)=yy(n,n)+1./(j*zhilu1(l,5));
else
y1=1./(zhilu1(l,3)+j*zhilu1(l,4));
if (zhilu1(l,1)>0&zhilu1(l,2)>0) %不是變壓器支路,是輸電線支路
yy(n,n)=yy(n,n)+y1+j*zhilu1(l,5);
yy(m,m)=yy(m,m)+y1+j*zhilu1(l,5);
yy(n,m)=-y1;
yy(m,n)=-y1;
elseif zhilu1(l,1)<0 %非標(biāo)準(zhǔn)變比側(cè)
kt=zhilu1(l,5);
yy(n,n)=yy(n,n)+y1/(kt^2);
yy(m,m)=yy(m,m)+y1;
yy(n,m)=-(yy(n,m)+y1/kt);
yy(m,n)=yy(n,m);
elseif zhilu1(l,2)<0 %非標(biāo)準(zhǔn)變比側(cè)
kt=zhilu1(l,5);
yy(n,n)=yy(n,n)+y1;
yy(m,m)=yy(m,m)+y1/(kt^2);
yy(n,m)=-(yy(n,m)+y1/kt);
yy(m,n)=yy(n,m);
end
end
end,
%-----------------------------------
%定義變量名
pv=0; %PV節(jié)點(diǎn)的個(gè)數(shù)
v=ones(nn,1); %電壓
pg=zeros(nn,1);%發(fā)電機(jī)有功
qg=zeros(nn,1);%發(fā)電機(jī)無(wú)功
pl=zeros(nn,1);%負(fù)荷有功
ql=zeros(nn,1);%負(fù)荷無(wú)功
o=zeros(nn,1); %電壓相角
%----------------------------------
%根據(jù)節(jié)點(diǎn)類(lèi)型對(duì)bp,bpp進(jìn)行修正原則是:將bp,bpp通取為n階
%PO迭代:bp中對(duì)平衡節(jié)點(diǎn)所在的行和列,除對(duì)角線元素取作1外,其他元素均取為0.
%其相應(yīng)的右端元素opv(i)也取為0(見(jiàn)后面計(jì)算);
%QV迭代:bpp中對(duì)平衡節(jié)點(diǎn)和PV節(jié)點(diǎn)所在的行和列,除對(duì)角線元素取作1外,其他元素均取為0.
%其相應(yīng)的右端元素oqv(i)也取為0(見(jiàn)后面計(jì)算).
%取PQ節(jié)點(diǎn)的有功和無(wú)功功率和PV節(jié)點(diǎn)的有功,電壓
for l=1:gnn;%發(fā)電機(jī)
if fadian1(l,2)==0&fadian1(l,3)==0 %平衡節(jié)點(diǎn)
f=fadian1(l,1);
lxl=f;
v(f)=1.00;
bp(f,:)=0;bp(:,f)=0;bp(f,f)=1;
bpp(f,:)=0;bpp(:,f)=0;bpp(f,f)=1;
elseif abs(fadian1(l,1))>fadian1(l,1)%PV節(jié)點(diǎn)
f=abs(fadian1(l,1));
pg(f)=fadian1(l,2);
v(f)=fadian1(l,3);
bpp(f,:)=0;bpp(:,f)=0;bpp(f,f)=1;
pv=pv+1;
pvj(pv)=f;%記錄PV節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)
else
f=fadian1(l,1);
pg(f)=fadian1(l,2);
qg(f)=fadian1(l,3);
end
end
for l=1:lnn %負(fù)荷
f=fuhe1(l,1);
pl(f)=fuhe1(l,2);
ql(f)=fuhe1(l,3);
end;
%===============================================================================
%功率誤差
oo=ones(nn,1);
ov=ones(nn,1);
opv=ones(nn,1);
oqv=ones(nn,1);
%--------------------------------------
while(max(abs(opv))>0.000001|max(abs(oqv))>0.000001)
%---------PO迭代----------------
if max(abs(opv))>0.000001
av=0;%平均電壓
for i=1:nn
su=0;
for l=1:nn
if yy(i,l)~=0
do=o(i)-o(l);
su=su+v(l)*(real(yy(i,l))*cos(do)+imag(yy(i,l))*sin(do));
end
end
opv(i)=(pg(i)-pl(i)-v(i)*su)/v(i);%計(jì)算常數(shù)項(xiàng)
av=av+v(i);
end
opv(lxl)=0;%位于后面計(jì)算方便,令其維數(shù)為n
av=(av+1.05)/nn;%平均電壓
oo=inv(bp)*opv/av;%計(jì)算誤差量oo,
o=o-oo;%修正相角
end
%----------QV迭代---------------
if max(abs(oqv))>0.000001
for i=1:nn
su=0;
for l=1:nn
if yy(i,l)~=0
do=o(i)-o(l);
su=su+v(l)*(real(yy(i,l))*sin(do)-imag(yy(i,l))*cos(do));
end
end
oqv(i)=(qg(i)-ql(i)-v(i)*su)/v(i);%計(jì)算常數(shù)項(xiàng)
end
for i=1:pv
l=pvj(i);
oqv(l)=0;%對(duì)PV節(jié)點(diǎn)令其右端項(xiàng)為0
end
oqv(lxl)=0;
ov=inv(bpp)*oqv;
v=v-ov;%修正幅值
end
%----------下一次迭代--------
end
%=================潮流已經(jīng)收斂======================2002.3.28
%計(jì)算平衡節(jié)點(diǎn)的有功,無(wú)功
for i=1:nn
if yy(lxl,i)~=0
do=o(lxl)-o(i);
pg(lxl)=pg(lxl)+v(lxl)*v(i)*(real(yy(lxl,i))*cos(do)+imag(yy(lxl,i))*sin(do));
qg(lxl)=qg(lxl)+v(lxl)*v(i)*(real(yy(lxl,i))*sin(do)-imag(yy(lxl,i))*cos(do));
end
end
%計(jì)算PV節(jié)點(diǎn)的無(wú)功功率
for i=1:pv
k=pvj(i);
for l=1:nn
if yy(k,l)~=0
do=o(k)-o(l);
qg(k)=qg(k)+v(k)*v(l)*(real(yy(k,l))*sin(do)-imag(yy(k,l))*cos(do));
end
end
end
%================潮流計(jì)算完畢====================================
%與特征值計(jì)算程序銜接2002.3.28
%支路數(shù)據(jù)文件的銜接
bzm=zeros(bn,8);
for i=1:bn
bzm(i,1)=1;bzm(i,2)=zhilu1(i,1);bzm(i,3)=zhilu1(i,2);
bzm(i,4)=0; bzm(i,5)=zhilu1(i,3);bzm(i,6)=zhilu1(i,4);
if zhilu1(i,1)<0|zhilu1(i,2)<0
bzm(i,2)=abs(zhilu1(i,1));bzm(i,3)=abs(zhilu1(i,2));
bzm(i,8)=zhilu1(i,5);
else
bzm(i,7)=zhilu1(i,5);
end
end
%負(fù)荷數(shù)據(jù)的銜接
lpqv=zeros(ln,10);
for i=1:ln
lpqv(i,1)=fuhe1(i,1);lpqv(i,2)=1;lpqv(i,5)=fuhe1(i,2);lpqv(i,6)=fuhe1(i,3);
lpqv(i,7)=v(fuhe1(i,1));lpqv(i,8)=o(fuhe1(i,1))*180/pi;
lpqv(i,9)=lpqv(i,7)*cos(o(fuhe1(i,1)));lpqv(i,10)=lpqv(i,7)*cos(o(fuhe1(i,1)));
end
%發(fā)電機(jī)節(jié)點(diǎn)數(shù)據(jù)的銜接
gpqv=zeros(gn,10);
for i=1:gn
gpqv(i,1)=abs(fadian1(i,1));gpqv(i,2)=1;
gpqv(i,3)=pg(gpqv(i,1));gpqv(i,4)=qg(gpqv(i,1));
gpqv(i,7)=v(gpqv(i,1));gpqv(i,8)=o(gpqv(i,1))*180/pi;
gpqv(i,9)=gpqv(i,7)*cos(o(gpqv(i,1)));gpqv(i,10)=gpqv(i,7)*sin(o(gpqv(i,1)));
if i==lxl %平衡節(jié)點(diǎn)
gpqv(i,2)=1;
end
for l=1:pv
if pvj(l)==abs(fadian1(i,1));%PV節(jié)點(diǎn)
gpqv(i,2)=-1;
end
end
end
%=========================銜接部分完成===========================
%原始網(wǎng)絡(luò)導(dǎo)納矩陣yy
%================================
%恒定阻抗負(fù)荷模型下的網(wǎng)絡(luò)導(dǎo)納矩陣ynl
yl=zeros(nn);
for l=1:ln,
n=lpqv(l,1);
yl(n,n)=(lpqv(l,5)-j*lpqv(l,6))./(lpqv(l,7)^2);
end,yl;
ynl=yy+yl;
%--------------------------------
%消去中間節(jié)點(diǎn)后的發(fā)電機(jī)節(jié)點(diǎn)間輸電導(dǎo)納矩陣yt
yff=ynl(1:gn,1:gn);
yfl=ynl(1:gn,gn+1:nn);
ylf=ynl(gn+1:nn,1:gn);
yll=ynl(gn+1:nn,gn+1:nn);
yt1=yff-yfl*inv(yll)*ylf; %發(fā)電機(jī)節(jié)點(diǎn)(含無(wú)窮大母線)間的導(dǎo)納矩陣
%--------------------------------
if mt1(1,1)==0 %有無(wú)窮大母線時(shí)
yt=yt1(2:gn,2:gn); %發(fā)電機(jī)節(jié)點(diǎn)間導(dǎo)納矩陣
yt0=yt1(2:gn,1); %無(wú)窮大母線與發(fā)電機(jī)節(jié)點(diǎn)間的互導(dǎo)納向量
u0=gpqv(1,7); %無(wú)窮大母線電壓幅值
gpqv(1,:)=[];
mt=mt1(1,2:gn);
gn=gn-1; %實(shí)際發(fā)電機(jī)節(jié)點(diǎn)數(shù)
else %無(wú)無(wú)窮大母線時(shí)
yt=yt1; %發(fā)電機(jī)節(jié)點(diǎn)間導(dǎo)納矩陣
yt0=zeros(gn,1); %無(wú)窮大母線與發(fā)電機(jī)節(jié)點(diǎn)間的互導(dǎo)納置0。
u0=0;
mt=mt1;
end
%====================================
%發(fā)電機(jī)參數(shù)對(duì)角矩陣
xd=diag(gpm1(:,2)); xdp=diag(gpm1(:,3)); xdpp=diag(gpm1(:,4));
xq=diag(gpm1(:,5)); xqpp=diag(gpm1(:,6)); ra=diag(gpm1(:,7));
tdp=diag(gpm1(:,8)); tdpp=diag(gpm1(:,9)); tqpp=diag(gpm1(:,10));
tj=diag(gpm1(:,11)); ke=diag(gpm1(:,12)); te=diag(gpm1(:,13));
D=diag(gpm1(:,14));
%采用六階模型,加入
xqp=diag(gpm1(:,15)); tqp=diag(gpm1(:,16));
%-------------------------------
%根據(jù)發(fā)電機(jī)模型類(lèi)型修正發(fā)電機(jī)參數(shù)
xq1=xq;
xqq=zeros(gn,gn); xqqp=zeros(gn,gn);
for n1=1:gn,
if mt(1,n1)==1, %五階模型考慮阻尼繞組D+Q
D(n1,n1)=0;
end
if mt(1,n1)==2, %只考慮交軸阻尼繞組Q
xdpp(n1,n1)=xdp(n1,n1);
D(n1,n1)=0;
elseif mt(1,n1)==3, %只考慮直軸d阻尼繞組D
xqpp(n1,n1)=xq(n1,n1);
D(n1,n1)=0;
elseif mt(1,n1)==4, %三階模型考慮綜合阻尼繞組
xdpp(n1,n1)=xdp(n1,n1);
xqpp(n1,n1)=xq(n1,n1);
elseif mt(1,n1)==5, %六階模型考慮阻尼繞組D+g+Q
D(n1,n1)=0;
xqq(n1,n1)=xq(n1,n1)-xqp(n1,n1);
xqqp(n1,n1)=xqp(n1,n1)-xqpp(n1,n1);
xq(n1,n1)=xqpp(n1,n1);
end
end
%--------------------------------
xdd=xd-xdp; xddp=xdp-xdpp; xqqpp=xq-xqpp+xqqp;xq=xq1;
xqd=xqpp-xdpp; z=ra+j*xdpp;
%====================================
%D-Q坐標(biāo)系與d-q坐標(biāo)系間的變換矩陣T
PQ=gpqv(:,3)+j*gpqv(:,4); %發(fā)電機(jī)復(fù)功率
U=gpqv(:,9)+j*gpqv(:,10); %發(fā)電機(jī)機(jī)端電壓
I=conj(PQ./U); %發(fā)電機(jī)定子電流
EQ=U+(ra+j*xq)*I; %虛構(gòu)電勢(shì)
d0=angle(EQ)-pi/2; %d-q坐標(biāo)系超前D-Q坐標(biāo)系的角度
T=diag(exp(j*d0)); % D-Q坐標(biāo)系與d-q坐標(biāo)系間的變換矩陣T
%====================================
%變量初值計(jì)算
i=inv(T)*I; id=diag(real(i)); iq=diag(imag(i));
u=inv(T)*U; ud=diag(real(u)); uq=diag(imag(u));
ut=diag(abs(u)); epp=u+z*i-xqd*imag(i);
edp=diag(real(epp)); eqp=diag(imag(epp));
%====================================
%系數(shù)矩陣k1-k15 (gn*gn階)
y=inv(T)*inv(inv(yt)+z)*T; yr=real(y); yi=imag(y);
y0=diag(inv((inv(yt)+z))*inv(yt)*yt0); y0r=real(y0);y0i=imag(y0);
md=-yi*edp-yr*eqp-yi*xqd*iq; mq=yr*edp-yi*eqp+yr*xqd*iq;
pd=md-diag(sum(md'))+y0i*u0; pq=mq-diag(sum(mq'))-y0r*u0;
yq=inv(eye(gn)-yi*xqd)*yr; yd=-yi+yr*xqd*yq;
fq=inv(eye(gn)-yi*xqd)*pq; fd=pd+yr*xqd*fq;
kq=inv(eye(gn)-yi*xqd)*yi; kd=yr+yr*xqd*kq;
bd=edp+xqd*iq; bq=eqp+xqd*id;
cd=ud*inv(ut)*ra+uq*inv(ut)*xdpp; cq=ud*inv(ut)*xqpp-uq*inv(ut)*ra;
%----------------------------------
k1=bd*fd+bq*fq; k2=bd*yd+bq*yq+iq; k3=xdd*yd; k4=xdd*fd;
k5=cq*fq-cd*fd; k6=cq*yq-cd*yd+uq; k7=cq*kd-cd*kq+ud; k8=xddp*fd;
k9=xddp*yd; k12=bd*kd+bq*kq+id;
k13=xdd*kd; k14=xddp*kd;
%六階模型需計(jì)算---------------------
k10=-xqqpp*fq; k11=-xqqpp*kq; k15=-xqqpp*yq;
k18=-xqq*fq; k17=-xqq*kq; k16=-xqq*yq;
%====================================
%六階模型需要加入狀態(tài)變量edp
%狀態(tài)向量x=[δ,ω,eqp,eqpp,edp,edpp,efd]'7*gn維
a=zeros(7*gn);
a(1:gn,gn+1:2*gn)=100*pi*eye(gn);
a(gn+1:2*gn,1:gn)=-inv(tj)*k1;
a(gn+1:2*gn,gn+1:2*gn)=-inv(tj)*D;
a(gn+1:2*gn,3*gn+1:4*gn)=-inv(tj)*k2;
a(gn+1:2*gn,5*gn+1:6*gn)=-inv(tj)*k12;
a(2*gn+1:3*gn,1:gn)=-inv(tdp)*k4;
a(2*gn+1:3*gn,2*gn+1:3*gn)=-inv(tdp);
a(2*gn+1:3*gn,3*gn+1:4*gn)=-inv(tdp)*k3;
a(2*gn+1:3*gn,5*gn+1:6*gn)=-inv(tdp)*k13;
a(2*gn+1:3*gn,6*gn+1:7*gn)=inv(tdp);
a(3*gn+1:4*gn,1:gn)=-inv(tdpp)*k8-inv(tdp)*k4;
a(3*gn+1:4*gn,2*gn+1:3*gn)=inv(tdpp)-inv(tdp);
a(3*gn+1:4*gn,3*gn+1:4*gn)=-inv(tdpp)-inv(tdpp)*k9-inv(tdp)*k3;
a(3*gn+1:4*gn,5*gn+1:6*gn)=-inv(tdpp)*k14-inv(tdp)*k13;
a(3*gn+1:4*gn,6*gn+1:7*gn)=inv(tdp);
%處理tqp的不可逆的情況
for n1=1:gn,
if mt(1,n1)<5,
tqp(n1,n1)=1;
end
end
vtqp=inv(tqp);
for n1=1:gn,
if mt(1,n1)<5,
vtqp(n1,n1)=0;
end
end
a(4*gn+1:5*gn,1:gn)=-vtqp*k18;
a(4*gn+1:5*gn,3*gn+1:4*gn)=-vtqp*k16;
a(4*gn+1:5*gn,4*gn+1:5*gn)=-vtqp;
a(4*gn+1:5*gn,5*gn+1:6*gn)=-vtqp*k17;
a(5*gn+1:6*gn,1:gn)=-inv(tqpp)*k10-vtqp*k18;
a(5*gn+1:6*gn,3*gn+1:4*gn)=-inv(tqpp)*k15-vtqp*k16;
a(5*gn+1:6*gn,4*gn+1:5*gn)=inv(tqpp)-vtqp;
a(5*gn+1:6*gn,5*gn+1:6*gn)=-inv(tqpp)-inv(tqpp)*k11-vtqp*k17;
a(6*gn+1:7*gn,1:gn)=-inv(te)*ke*k5;
a(6*gn+1:7*gn,3*gn+1:4*gn)=-inv(te)*ke*k6;
a(6*gn+1:7*gn,5*gn+1:6*gn)=-inv(te)*ke*k7;
a(6*gn+1:7*gn,6*gn+1:7*gn)=-inv(te);
%--------------------------------
%根據(jù)發(fā)電機(jī)模型類(lèi)型修正A 陣
for n=1:gn,
if mt(1,n)==1, %無(wú)g繞組,
a(5*gn+n,:)=a(5*gn+n,:)-a(4*gn+n,:);%edpp行-edp行
a(4*gn+n,:)=0; %edp行置0
a(:,4*gn+n)=0; %edp列置0
elseif mt(1,n)==2, %無(wú)D+g繞組,
a(3*gn+n,:)=0; %eqpp 行置0,
a(:,2*gn+n)=a(:,2*gn+n)+a(:,3*gn+n);% eqpp 列+ eqp列
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -