电力系统基础课程设计报告。
电力系统潮流计算的matlab编程。
程序流程图】:
源程序】:disp电力系统潮流计算的matlab编程。
disp('请输入电力系统参数!')
n=input('请输入节点数:n=')
nl=input('请输入支路数:nl=')
isb=input('请输入平衡节点号:isb=')
pr=input('请输入误差精度:pr=')
b1=input('请输入由各支路参数形成的矩阵:b1=')
b2=input('请输入各节点参数形成的矩阵:b2=')
y=zeros(n);u=zeros(1,n);cta=zeros(1,n);p=zeros(1,n);q=zeros(1,n);c=zeros(1,13);d=zeros(1,13);
dp=zeros(1,13);dq=zeros(1,9);uu=zeros(1,n);c=zeros(1,n);si=zeros(nl);sj=zeros(nl);ds=zeros(nl);
节点导纳矩阵y:
for i=1:nl
p=b1(i,1);q=b1(i,2);
y(p,q)=y(p,q)-1/(b1(i,3)+1j*b1(i,4
y(q,p)=y(p,q
y(q,q)=y(q,q)+1/(b1(i,3)+1j*b1(i,4))+1j*b1(i,6)/2;
y(p,p)=y(p,p)+1/(b1(i,3)+1j*b1(i,4))+1j*b1(i,6)/2;
endg=real(y);b=imag(y);
为u、cta、p、q赋初值:
for i=1:n
cta(i)=b2(i,6); 电压相角。
u(i)=b2(i,5); 电压模值。
p(i)=b2(i,3);
q(i)=b2(i,4); 节点pq
end迭代开始:
ict1=0;it2=1;
while it2~=0
it2=0;t1=1;t2=1;
for i=1:n
if i~=isb
c(i)=0;
d(i)=0;
for j1=1:n
c(i)=c(i)+u(i)*u(j1)*(g(i,j1)*cos(cta(i)-cta(j1))+b(i,j1)*sin(cta(i)-cta(j1)))求pi
d(i)=d(i)+u(i)*u(j1)*(g(i,j1)*sin(cta(i)-cta(j1))-b(i,j1)*cos(cta(i)-cta(j1)))求qi
enddp(t1)=p(i)-c(i求1~13点的δp
t1=t1+1;
if b2(i,2)==1
dq(t2)=q(i)-d(i求1~9点的δq
t2=t2+1;
end end
endt1=t1-1;t2=t2-1此时t1=n-1=13,t2=pq节点数=9
dpq=[dp';dq误差矩阵。
%判断误差精度,决定是否继续循环运算:
for i=1:t1+t2
if max(abs(dpq(i,:)pr
it2=it2+1;
endend
%雅克比矩阵程序:
h=zeros(t1,t1);n=zeros(t1,t2);k=zeros(t2,t1);l=zeros(t2,t2); 此时t1=13,t2=9
%求雅克比矩阵中的h :
for i=1:t1
for j1=1:t1
if j1~=isb&&j1~=i
h(i,j1)=0-u(i)*u(j1)*(g(i,j1)*sin(cta(i)-cta(j1))-b(i,j1)*cos(cta(i)-cta(j1)))
elseif j1~=isb&&j1==i
h(i,j1)=u(i)^2*b(i,j1)+d(i);
endend
end%求雅克比矩阵中的n :
for i=1:t1
for j1=1:t2
if j1~=isb&&j1~=i
n(i,j1)=0-u(i)*u(j1)*(g(i,j1)*cos(cta(i)-cta(j1))+b(i,j1)*sin(cta(i)-cta(j1)))
elseif j1~=isb&&j1==i
n(i,j1)=0-u(i)^2*g(i,j1)-c(i);
endend
end%求雅克比矩阵中的k :
for i=1:t2
for j1=1:t1
if j1~=isb&&j1~=i
k(i,j1)=u(i)*u(j1)*(g(i,j1)*cos(cta(i)-cta(j1))+b(i,j1)*sin(cta(i)-cta(j1)))
elseif j1~=isb&&j1==i
k(i,j1)=u(i)^2*g(i,j1)-c(i);
endend
end%求雅克比矩阵中的l :
for i=1:t2
for j1=1:t2
if j1~=isb&&j1~=i
l(i,j1)=0-u(i)*u(j1)*(g(i,j1)*sin(cta(i)-cta(j1))-b(i,j1)*cos(cta(i)-cta(j1)))
elseif j1~=isb&&j1==i
l(i,j1)=u(i)^2*b(i,j1)-d(i);
endend
end%求雅克比矩阵 :
j=[h,n;k,l];
%修正矩阵modify:
modify=-inv(j)*dpq;
dcta=modify(1:t1修正矩阵中的δθ
t3=u(:,1:t2
du=diag(t3,0)*modify(t1+1:t1+t2,:)修正矩阵中的δv
%修正节点的电压相角θ:
t4=1;for i=1:t1
if b2(i,2)~=0
cta(1,i)=cta(1,i)+dcta(t4,1);
t4=t4+1;
endend
%修正节点的电压幅值v :
t5=1;for i=1:t2
if b2(i,2)==1
u(1,i)=u(1,i)+du(t5,1);
t5=t5+1;
endend
ict1=ict1+1;
end 迭代结束。
节点复功率s:
for i=1:n
uu(i)=u(i)*cos(cta(i))+1i*u(i)*sin(cta(i));最后计算结果的节点电压转换成直角坐标式。
endfor p=1:n
c(p)=0;
for q=1:n
c(p)=c(p)+conj(y(p,q))*conj(uu(q电流矩阵的共轭i*
ends(p)=uu(p)*c(p求出最终的节点复功率矩阵s=vi*
end平衡节点的功率sp:
sp=0;for i=1:n
sp=sp+uu(isb)*conj(y(isb,i))*conj(uu(i));
end各条支路首端功率si:
for i=1:nl
p=b1(i,1);q=b1(i,2);
si(p,q)=uu(p)*(conj(uu(p))*conj(b1(i,6)/2)+(conj(uu(p))-conj(uu(q)))conj(1/(b1(i,3)+1j*b1(i,4)))
si(i)=si(p,q);
si1=si([1:20],1);
end各条支路末端功率sj:
for i=1:nl
p=b1(i,1);q=b1(i,2);
sj(q,p)=uu(q)*(conj(uu(q))*conj(b1(i,6)/2)+(conj(uu(q))-conj(uu(p)))conj(1/(b1(i,3)+1j*b1(i,4)))
sj(i)=sj(q,p);
sj1=sj([1:20],1);
end各条支路功率损耗ds:
for i=1:nl
p=b1(i,1);q=b1(i,2);
MATLAB编程作业汇总
matlab编程训练 作业。实训一 matlab语言介绍和数值计算。1 先求下列表达式的值,然后显示matlab工作空间的使用情况并保存变量。2.已知,求下列表达式的值 1 a 6 b和a b i 其中i为单位矩阵 a 6 b a b i 2 a b和a.b a b程序 a 12 34 4 34 7...
MATLAB编程基础 习题
1.1请分别用直接构造法 增量构造法 冒号表达式 和linspace函数创建数组 1,3,5,7,9,11 体会以上创建方法有何区别和联系。若数组b为在0 2 之间均匀分布的22个数据,c 1.3,2.5,7.6,2,3 d 23,20,17,14,11,8,5,2 各用何种方法输入较为简单?写出源...
计算实习 MATLAB编程
第一章。1.用3位数字计算出方程 的解x,y,再用6位数字计算出x与y,已知正确解为练习练习x 1,y 1,计算结果说明什么?x,y solve 0.780 x 0.563 y 0.217 0.457 x 0.330 y 0.127 x y a 0.780 0.563 0.457 0.330 b 0...