谁能帮我指教一下改怎么编潮流计算
clear;Yb=[6.25-18.75i-5+15i -1.25+3.75i 0 0
-5+15i 10.834-32.5i-1.667+5i -1.667+5i -2.5+7.5i
-1.25+3.75i-1.667+5i 12.917-38.75i -10+30i 0
0 -1.667+5i -10+30i 12.917-38.75i-1.25+3.75i
0 -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i];
Pknow=;Qknow=;e1=1.06;f1=0;%已知量
e=;f=;
k=0;%跌代次数
PQX=;%修正量
P=zeros(4,1);Q=zeros(4,1);I=zeros(4,1);YAKEBI=zeros(8,8);
while (max(PQX)>=0.1|min(PQX)<=-0.1)
k=k+1;
for n=1:4
for m=1:5
P(n)=P(n)+e(n+1)*(real(Yb(n+1,m))*e(m)-imag(Yb(n+1,m))*f(m))+f(n+1)*(real(Yb(n+1,m))*f(m)+imag(Yb(n+1,m)*e(m)));
Q(n)=Q(n)+f(n+1)*(real(Yb(n+1,m))*e(m)-imag(Yb(n+1,m))*f(m))-e(n+1)*(real(Yb(n+1,m))*f(m)+imag(Yb(n+1,m)*e(m)));
end
PQX(2*n-1)=Pknow(n+1)-P(n);
PQX(2*n)=Qknow(n+1)-Q(n);
I(n)=(P(n)-Q(n)*i)/(e(n+1)-f(n+1)*i);
end
for n=1:4
for m=1:4
YAKEBI(2*n-1,2*m-1)=-imag(Yb(n+1,m+1))*e(n+1)+real(Yb(n+1,m+1))*f(n+1);%Hnm
YAKEBI(2*n-1,2*m)=real(Yb(n+1,n+1))*e(n+1)+imag(Yb(n+1,n+1))*f(n+1);%Nnm
YAKEBI(2*n,2*m-1)=-real(Yb(n+1,m+1))*e(n+1)-imag(Yb(n+1,m+1))*f(n+1);%Jnm
YAKEBI(2*n,2*m)=-imag(Yb(n+1,m+1))*e(n+1)+real(Yb(n+1,m+1))*f(n+1);%Lnm
end
YAKEBI(2*n-1,2*n-1)=-imag(Yb(n+1,n+1))*e(n+1)+real(Yb(n+1,n+1))*f(n+1)+imag(I(n));%Hnn
YAKEBI(2*n-1,2*n)=real(Yb(n+1,n+1))*e(n+1)+imag(Yb(n+1,n+1))*f(n+1)+real(I(n));%Nnn
YAKEBI(2*n,2*n-1)=-real(Yb(n+1,n+1))*e(n+1)-imag(Yb(n+1,n+1))*f(n+1)+real(I(n));%Jnn
YAKEBI(2*n,2*n)=-imag(Yb(n+1,n+1))*e(n+1)+real(Yb(n+1,n+1))*f(n+1)-imag(I(n));%Lnn
end% build the yakebi matrix
Dfe=inv(YAKEBI)*PQX; %修正fe
for n=1:4
f(n+1)=f(n+1)+Dfe(2*n-1);
e(n+1)=e(n+1)+Dfe(2*n);
end
f
e
end
运行会出现
Warning: Matrix is singular to working precision.
(Type "warning off MATLAB:singularMatrix" to suppress this warning.)
> In f:\MATLAB6p5\work\yy.m at line 35
我这个程序是按照陈珩那本稳态分析的例子编的,想试试。完全没考虑PV节点
这个程序要怎么改进啊? 我没有时间仔细给你检查,但是想告诉你,你的雅克比矩阵的形成太麻烦了,极有可能存在错误,并且你得程序也不通用,雅克比矩阵的形成要仔细分析其各个表达式的关系,可以用矩阵运算直接形成。而没有必要用循环。这样会非常耗时的。
页:
[1]