南昌大学实验报告
电力系统潮流计算实验
学生姓名: 学 号: 专业班级: 实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 实验成绩:
一、实验目的:
本实验通过对电力系统潮流计算的计算机程序的编制与调试,获得对复杂电力系统进行潮流计算的计算机程序,使系统潮流计算能够由计算机自行完成,即根据已知的电力网的数学模型(节点导纳矩阵)及各节点参数,由计算程序运行完成该电力系统的潮流计算。通过实验教学加深学生对复杂电力系统潮流计算计算方法的理解,学会运用电力系统的数学模型,掌握潮流计算的过程及其特点,熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。
二、实验内容:
编制调试电力系统潮流计算的计算机程序。程序要求根据已知的电力网的数学模型(节点导纳矩阵)及各节点参数,完成该电力系统的潮流计算,要求计算出节点电压、功率等参数。
1、 在各种潮流计算的算法中选择一种,按照计算方法编制程序。
2、 将事先编制好的电力系统潮流计算的计算程序原代码由自备移动存储设备导入计算机。
3、 在相应的编程环境下对程序进行组织调试。 4、 应用计算例题验证程序的计算效果。
三、实验程序:
function [e,f,p,q]=flow_out(g,b,kind,e,f) %计算潮流后efpq的终值 s=flow(g,b,kind,e,f); k=0;
while max(abs(s))>10^-5 J=J_out(g,b,kind,e,f); J_ni=inv(J); dv=J_ni*s; l=length(dv)/2; for i=1:l
e(i)=e(i)-dv(2*i-1); f(i)=f(i)-dv(2*i); end
s=flow(g,b,kind,e,f); end
l=length(e);
for i=1:l s1=0; s2=0; for j=1:l
s1=s1+g(i,j)*e(j)-b(i,j)*f(j); s2=s2+g(i,j)*f(j)+b(i,j)*e(j); end
p(i)=e(i)*s1+f(i)*s2; q(i)=f(i)*s1-e(i)*s2; end
function s=flow(g,b,kind,e,f) %计算当前ef与规定的pqv的差值 l=length(e); s=zeros(2*l-2,1); for i=1:(l-1) s1=0; s2=0; for j=1:l
s1=s1+g(i,j)*e(j)-b(i,j)*f(j); s2=s2+g(i,j)*f(j)+b(i,j)*e(j); end
s(2*i-1)=kind(2,i)-e(i)*s1-f(i)*s2; if kind(1,i)==1
s(2*i)=kind(3,i)-f(i)*s1+e(i)*s2; else
s(2*i)=kind(3,i)^2-f(i)^2-e(i)^2; end end
function J=J_out(g,b,kind,e,f) %计算节点的雅克比矩阵 l=length(e);
J=zeros(2*l-2,2*l-2); for i=1:(l-1); if kind(1,i)==1
s=PQ_out(g,b,e,f,i); for j=1:(2*l-2) J(2*i-1,j)=s(1,j); J(2*i,j)=s(2,j); end else
s=PV_out(g,b,e,f,i);
for j=1:(2*l-2) J(2*i-1,j)=s(1,j); J(2*i,j)=s(2,j); end end end
function pq=PQ_out(g,b,e,f,i) %计算pq节点的雅克比矩阵 l=length(e); pq=zeros(2,2*l-2); for j=1:(l-1) if j==i s=0; for k=1:l
s=s-(g(i,k)*e(k)-b(i,k)*f(k)); end
pq(1,2*i-1)=s-g(i,i)*e(i)-b(i,i)*f(i); s=0; for k=1:l
s=s-(g(i,k)*f(k)+b(i,k)*e(k)); end
pq(1,2*i)=s+b(i,i)*e(i)-g(i,i)*f(i); s=0; for k=1:l
s=s+(g(i,k)*f(k)+b(i,k)*e(k)); end
pq(2,2*i-1)=s+b(i,i)*e(i)-g(i,i)*f(i); s=0; for k=1:l
s=s-(g(i,k)*e(k)-b(i,k)*f(k)); end
pq(2,2*i)=s+g(i,i)*e(i)+b(i,i)*f(i); else
pq(1,2*j-1)=-(g(i,j)*e(i)+b(i,j)*f(i)); pq(1,2*j)=b(i,j)*e(i)-g(i,j)*f(i); pq(2,2*j)=-pq(1,2*j-1); pq(2,2*j-1)=pq(1,2*j); end end
function pv=PV_out(g,b,e,f,i) %计算pv节点的雅克比矩阵 l=length(e);
pv=zeros(2,2*l-2); for j=1:(l-1) if j==i s=0; for k=1:l
s=s-(g(i,k)*e(k)-b(i,k)*f(k)); end
pv(1,2*i-1)=s-g(i,i)*e(i)-b(i,i)*f(i); s=0; for k=1:l
s=s-(g(i,k)*f(k)+b(i,k)*e(k)); end
pv(1,2*i)=s+b(i,i)*e(i)-g(i,i)*f(i); pv(2,2*i-1)=-2*e(i); pv(2,2*i)=-2*f(i); else
pv(1,2*j-1)=-(g(i,j)*e(i)+b(i,j)*f(i)); pv(1,2*j)=b(i,j)*e(i)-g(i,j)*f(i); end end
%数据输入
g=[1.042093 -0.588235 0 -0.453858 -0.588235 1.069005 0 -0.480769 0 0 0 0
-0.453858 -0.480769 0 0.9344627];
b=[-8.242876 2.352941 3.666667 1.891074 2.352941 -4.727377 0 2.403846 3.666667 0 -3.333333 0 1.891074 2.40385 0 4.26159]; e=[1 1 1.1 1.05]; f=[0 0 0 0]; kind=[1 1 2 0 -0.3 -0.55 0.5 1.05 -0.18 -0.13 1.1 0];
[e,f,p,q]=flow_out(g,b,kind,e,f); e f
四、例题及运行结果
在上图所示的简单电力系统中,
系统中节点1、2为PQ节点,节点3为PV节点,节点4为平衡节点,已给定 P1s+jQ1s=-0.30-j0.18 P2s+jQ2s=-0.55-j0.13 P3s=0.5 V3s=1.10 V4s=1.05∠0° 容许误差ε=10-5
节点导纳矩阵:
各节点电压:
节点 e f v ζ
1. 0.984637 -0.008596 0.984675 -0.500172 2. 0.958690 -0.108387 0.964798 -6.450306 3. 1.092415 0.128955 1.100000 6.732347 4. 1.050000 0.000000 1.050000 0.000000
各节点功率:
节点 P Q 1 -0.300000 -0.180000 2 –0.550000 -0.130000 3 0.500000 -0.551305 4 0.367883 0.264698
结果: