中国石油大学电力系统分析大作业.docx
《中国石油大学电力系统分析大作业.docx》由会员分享,可在线阅读,更多相关《中国石油大学电力系统分析大作业.docx(25页珍藏版)》请在冰点文库上搜索。
中国石油大学电力系统分析大作业
电力系统分析大作业
院系:
信息与控制工程学院
班级:
电气12-04班
学号:
12053429
学生姓名:
指导教师:
陈继明
日期:
2015年06月18日
要求计算所给系统的潮流,设发电机G1的端电压为1p.u.,发出的有功、无功可调;发电机G2的端电压为1p.u.,按指定的有功P=0.5p.u.发电,取ε=10-4。
SB=100MVA,UB=Uav。
1.牛顿-拉夫逊原理
牛顿迭代法是取x0之后,在这个基础上,找到比x0更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x)=0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。
电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。
为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。
牛顿—拉夫逊迭代法的一般步骤:
一、形成各节点导纳矩阵Y。
二、设个节点电压的初始值U和相角初始值e还有迭代次数初值为0。
三、计算各个节点的功率不平衡量。
四、根据收敛条件判断是否满足,若不满足则向下进行。
五、计算雅可比矩阵中的各元素。
六、修正方程式个节点电压
七、利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。
八、计算平衡节点输出功率和各线
2.MATLAB编程应用
Matlab是“MatrixLaboratory”的缩写,主要包括:
一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。
由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。
3.设计流程图
4.N-R迭代
程序代码
clear
disp('电力系统混合坐标下的牛顿-拉夫逊法潮流计算:
');
n0=input('请输入结点数:
n0=');
n1=input('请输入PQ结点数:
n1=');
n2=input('请输入PV结点数:
n2=');
isb=input('请输入平衡结点编号:
isb=');
pr=input('请输入给定精度:
pr=');
K=input('请输入变比矩阵:
K=');%针对节点间存在变压器的情况
Zb=input('请输入初步的支路阻抗矩阵:
Zb=');
Yb=input('请输入初步的支路导纳矩阵:
Yb=');
U=input('请输入设置了迭代初始值的结点电压矩阵:
U=');
S=input('请输入设置了迭代初始值的结点输出功率:
S=');
Y=zeros(n0,n0);flag=zeros(n0,n0);%计算整个系统的阻抗矩阵和导纳矩阵
form=1:
n0
forn=1:
n0
ifZb(m,n)~=0&&flag(n,m)~=1
ifK(m,n)~=0
Y(m,m)=Y(m,m)+1/(K(m,n)^2*Zb(m,n)/(1-K(m,n)))+1/(Zb(m,n)*K(m,n));
Y(m,n)=-1/(Zb(m,n)*K(m,n));
Y(n,n)=1/(K(m,n)*Zb(m,n)/(K(m,n)-1))+1/(Zb(m,n)*K(m,n));
Y(n,m)=Y(m,n);
Zb(m,n)=Zb(m,n)*K(m,n);%将Zb补充完整,用于计算各支路功率及功率损耗
Zb(n,m)=Zb(m,n);%将Zb补充完整,用于计算各支路功率及功率损耗
Yb(m,n)=1/(K(m,n)^2*(Zb(m,n)/K(m,n))/(1-K(m,n)));%将Yb补充完整,用于计算各支路功率及功率损耗;
Yb(n,m)=1/(K(m,n)*(Zb(m,n)/K(m,n))/(K(m,n)-1));%将Yb补充完整,用于计算各支路功率及功率损耗
flag(m,n)=1;
else%其他节点的自导纳和互导纳
Y(m,m)=Y(m,m)+1/Zb(m,n)+Yb(m,n);
Y(m,n)=-1/Zb(m,n);
Y(n,m)=Y(m,n);
end
end
end
end
disp('结点导纳矩阵:
Y=');
disp(Y);
G=real(Y);
B=imag(Y);
O=angle(U);
U1=abs(U);
k=0;
PR=1;
P=real(S);
Q=imag(S);
Pi=zeros(1,n0);Pi1=zeros(1,n1+n2);PP=zeros(1,n1+n2);PP1=zeros();
Qi=zeros(1,n0);Qi1=zeros(1,n1+n2);QQ=zeros(1,n1);QQ1=zeros();
H=zeros(n1+n2,n1+n2);N=zeros(n1+n2,n1);J=zeros(n1,n1+n2);L=zeros(n1,n1);
OO=zeros(1,n1);UU1=zeros(1,n1);o=zeros();u=zeros();UD=zeros(1,n1);
whilePR>pr%比较是否达到给定精度,确定迭代是否继续
form=1:
n1+n2
forn=1:
n0
Pi(n)=U1(m)*U1(n)*(G(m,n)*cos(O(m)-O(n))+B(m,n)*sin(O(m)-O(n)));
end
Pi1(m)=sum(Pi);
PP(m)=P(m)-Pi1(m);
PP1(k+1,m)=PP(m);
end
form=1:
n1
forn=1:
n0
Qi(n)=U1(m)*U1(n)*(G(m,n)*sin(O(m)-O(n))-B(m,n)*cos(O(m)-O(n)));
end
Qi1(m)=sum(Qi);
QQ(m)=Q(m)-Qi1(m);
QQ1(k+1,m)=QQ(m);
end
PR1=max(abs(PP));
PR2=max(abs(QQ));
PR=max(PR1,PR2);
form=1:
n1+n2
forn=1:
n1+n2
ifm==n
H(m,m)=U1(m)^2*B(m,m)+Qi1(m);
else
H(m,n)=-U1(m)*U1(n)*(G(m,n)*sin(O(m)-O(n))-B(m,n)*cos(O(m)-O(n)));
end
end
end
form=1:
n1+n2
forn=1:
n1
ifm==n
N(m,m)=-U1(m)^2*G(m,m)-Pi1(m);
else
N(m,n)=-U1(m)*U1(n)*(G(m,n)*cos(O(m)-O(n))+B(m,n)*sin(O(m)-O(n)));
end
end
end
form=1:
n1
forn=1:
n1+n2
ifm==n
J(m,m)=U1(m)^2*G(m,m)-Pi1(m);
else
J(m,n)=U1(m)*U1(n)*(G(m,n)*cos(O(m)-O(n))+B(m,n)*sin(O(m)-O(n)));
end
end
end
form=1:
n1
forn=1:
n1
ifm==n
L(m,m)=U1(m)^2*B(m,m)-Qi1(m);
else
L(m,n)=-U1(m)*U1(n)*(G(m,n)*sin(O(m)-O(n))-B(m,n)*cos(O(m)-O(n)));
end
end
end
disp('此次迭代的雅克比矩阵:
');
JJ=[HN;JL];
disp(JJ);
PQ=[PP';QQ'];
DA=-inv(JJ)*PQ;
DA1=DA';
form=1:
n1+n2
OO(m)=DA1(m);
end
form=n0:
n1+n2+n1
UU1(m-n1-n2)=DA1(m);
end
form=1:
n1
UD(m)=U1(m);
end
UD2=diag(UD);
UU=UU1*UD2;
form=1:
n1+n2
O(m)=O(m)+OO(m);
end
form=1:
n1
U1(m)=U1(m)+UU(m);
end
form=1:
n1+n2
o(k+1,m)=180/pi*O(m);
end
form=1:
n1
u(k+1,m)=U1(m);
end
k=k+1;%迭代次数加一,准备下一次迭代
end
b=zeros(1,n0);c=zeros(1,n0);SS=zeros(n0,n0);I=zeros(n0,n0);
form=1:
n0
b(m)=U1(m)*cos(O(m));
c(m)=U1(m)*sin(O(m));
end
U=b+1i*c;
NP=zeros(1,n0);NodePower=zeros(1,n0);
form=1:
n0
forn=1:
n0
NP(n)=U(m)*conj(Y(m,n))*conj(U(n));
end
NodePower(1,m)=sum(NP);
end
form=1:
n0
forn=1:
n0
ifZb(m,n)~=0
SS(m,n)=U1(m)^2*conj(Yb(m,n))+U(m)*conj(U(m)-U(n))*conj(1/Zb(m,n));
I(m,n)=abs(SS(m,n)/conj(U(m)));
end
end
end
SL=zeros(n0,n0);flag1=zeros(n0,n0);SL1=0;
form=1:
n0
forn=1:
n0
ifZb(m,n)~=0&&flag1(n,m)~=1
SL(m,n)=SS(m,n)+SS(n,m);
flag1(m,n)=1;
SL1=SL1+sum(SL(m,n));
end
end
end
disp('迭代结果显示如下:
');
disp('迭代总次数为:
');disp(k);
disp('各次迭代的有功失配功率△P:
');disp(PP1);
disp('各次迭代的无功失配功率△Q:
');disp(QQ1);
disp('各次迭代的PQ和PV节点电压相角:
');disp(o);
disp('各次迭代的PQ节点电压幅值:
');disp(u);
disp('迭代收敛后各节点的功率:
');disp(NodePower);
disp('迭代收敛后各支路的功率损耗:
');disp(sparse(SS));
disp('迭代收敛后各支路的电流:
');disp(sparse(I));
disp('迭代收敛后各支路的功率损耗:
');disp(sparse(SL));
disp('迭代收敛后全系统的功率损耗:
');disp(SL1);
运行结果
电力系统混合坐标下的牛顿-拉夫逊法潮流计算:
请输入结点数:
n0=5
请输入PQ结点数:
n1=3
请输入PV结点数:
n2=1
请输入平衡结点编号:
isb=5
请输入给定精度:
pr=0.0001
请输入变比矩阵:
K=[00000;0001.05220;00001.0522;00000;00000]
请输入初步的支路阻抗矩阵:
Zb=[00.025+0.08j0.03+0.1j00;0.025+0.08j00.02+0.06j0.1905j0;0.03+0.1j0.02+0.06j000.1905j;00.1905j000;000.1905j00]
请输入初步的支路导纳矩阵:
Yb=[00.07j0.09j00;0.07j00.05j00;0.09j0.05j000;00000;00000]
请输入设置了迭代初始值的结点电压矩阵:
U=[1,1,1,1,1]
请输入设置了迭代初始值的各结点的功率:
S=[-0.8055-0.5320j,-0.18-0.12j,0,0.5]
结点导纳矩阵:
Y=
Columns1through4
6.3110-20.4022i-3.5587+11.3879i-2.7523+9.1743i0.0000+0.0000i
-3.5587+11.3879i8.5587-31.0093i-5.0000+15.0000i0.0000+4.9889i
-2.7523+9.1743i-5.0000+15.0000i7.7523-28.7757i0.0000+0.0000i
0.0000+0.0000i0.0000+4.9889i0.0000+0.0000i0.0000-5.2493i
0.0000+0.0000i0.0000+0.0000i0.0000+4.9889i0.0000+0.0000i
Column5
0.0000+0.0000i
0.0000+0.0000i
0.0000+4.9889i
0.0000+0.0000i
0.0000-5.2493i
此次的雅克比矩阵:
-20.562211.38799.17430-6.31103.55872.7523
11.3879-31.376815.00004.98893.5587-8.55875.0000
9.174315.0000-29.163202.75235.0000-7.7523
04.98890-5.2493000
6.3110-3.5587-2.75230-20.242211.38799.1743
-3.55878.5587-5.0000011.3879-30.641815.0000
-2.7523-5.00007.752309.174315.0000-28.3882
此次的雅克比矩阵:
-21.060411.64299.41750-5.52984.00873.1707
11.8537-32.885115.92595.10543.3340-8.87005.3902
9.607615.9749-30.716102.53685.2434-8.2919
05.10540-5.24930-0.51380
7.1794-4.0087-3.17070-20.026111.64299.4175
-3.33409.2380-5.3902-0.513811.8537-32.722415.9259
-2.5368-5.24348.281009.607615.9749-30.8009
此次的雅克比矩阵:
-20.597011.38679.21040-5.40113.91513.0974
11.5898-32.233415.59135.05233.2650-8.68365.2781
9.394415.6399-30.113702.48405.1323-8.1129
05.05230-5.24930-0.50040
7.0125-3.9151-3.09740-19.533611.38679.2104
-3.26509.0435-5.2781-0.500411.5898-31.994215.5913
-2.4840-5.13238.112809.394415.6399-30.1145
此次的雅克比矩阵:
-20.591311.38359.20780-5.39943.91393.0966
11.5865-32.225315.58715.05163.2642-8.68125.2769
9.391815.6359-30.106402.48335.1307-8.1108
05.05160-5.24930-0.50000
7.0104-3.9139-3.09660-19.527311.38359.2078
-3.26429.0412-5.2769-0.500011.5865-31.985315.5871
-2.4833-5.13078.110809.391815.6359-30.1064
迭代结果显示如下:
迭代次数为:
4
各次迭代的有功失配功率△P:
1-0.8055-0.180000.5000
20.01930.0040-0.0055-0.0138
30.0002-0.0000-0.0001-0.0004
40.0000-0.00000.0000-0.0000
各次迭代的无功失配功率△Q:
1-0.37200.24750.3875
2-0.0148-0.0386-0.0424
3-0.0003-0.0004-0.0004
4-0.0000-0.0000-0.0000
各次迭代的PQ和PV节点电压相角:
1-7.4796-5.8348-5.5712-0.0879
2-7.4706-5.8499-5.5824-0.1941
3-7.4744-5.8544-5.5861-0.2015
4-7.4747-5.8547-5.5863-0.2021
各次迭代的PQ节点电压幅值:
11.00341.02851.0339
20.99171.01771.0230
30.99161.01751.0229
40.99161.01751.0229
迭代收敛后各节点的功率:
Columns1through4
-0.8055-0.5320i-0.1800-0.1200i0.0000+0.0000i0.5000+0.1977i
Column5
0.4968+0.1706i
迭代收敛后各支路的功率损耗:
(2,1)0.4202+0.1314i
(3,1)0.3962+0.1126i
(1,2)-0.4150-0.2558i
(3,2)0.1005+0.0054i
(4,2)0.5000+0.1977i
(1,3)-0.3905-0.2762i
(2,3)-0.1002-0.1088i
(5,3)0.4968+0.1706i
(2,4)-0.5000-0.1426i
(3,5)-0.4968-0.1181i
迭代收敛后各支路的电流:
(2,1)0.4327
(3,1)0.4027
(1,2)0.4916
(3,2)0.0984
(4,2)0.5377
(1,3)0.4824
(2,3)0.1454
(5,3)0.5252
(2,4)0.5110
(3,5)0.4992
迭代收敛后各支路的功率损耗:
(1,2)0.0053-0.1244i
(1,3)0.0057-0.1636i
(2,3)0.0003-0.1033i
(2,4)0.0000+0.0551i
(3,5)0.0000+0.0526i
迭代收敛后全系统的功率损耗:
0.0113-0.2837i
6.P—Q解耦迭代
程序代码
clear
disp('电力系统混合坐标下的牛顿-拉夫逊法潮流计算:
');
n=5;
m=3;
%参数初始化
Y=zeros(n,n);%导纳矩阵
U=ones(n,1);%电压矢量
a=zeros(n,1);%相角矢量
Ps=zeros(n,1);
Qs=zeros(n,1);
P=zeros(n,1);
Q=zeros(n,1);
p=zeros(n-1,1);
q=zeros(m,1);
aa=zeros(n-1,1);
u=zeros(m,1);
k=0;
%节点导纳矩阵的生成
I=sqrt(-1);%由于后面用到ij作为循环变量,故重定义虚数单位
Y=[6.311-I*20.3722-2.7523+I*9.1743-3.5587+I*11.387900;
-3.5587+I*11.38798.5587-I*30.9993-5+I*15I*4.98890;
-2.7523+I*9.1743-5+I*157.7523-I*28.75570I*4.9889;
0I*4.98890-I*5.24930;
00I*4.98890-I*5.2493];
%初值的设定
U=[1;1;1;1;1];
a=[0;0;0;0;0];
Ps=[-0.8055;-0.18;0;0.5;0];
Qs=[-0.532;-0.12;0;0;0];
%求失配功率△P(k)和△Q(k)
fori=1:
n-1
s=0;
forj=1:
n
s=s+U(j)*(real(Y(i,j))*cos(a(i)-a(j))+imag(Y(i,j))*sin(a(i)-a(j)));
end
P(i)=U(i)*s;
end
fori=1:
n-1
s=0;
forj=1:
n
s=s+U(j)*(real(Y(i,j))*sin(a(i)-a(j))-imag(Y(i,j))*cos(a(i)-a(j)));
end
Q(i)=U(i)*s;
end
fori=1:
n-1
detp(i)=Ps(i)-P(i);
end
fori=1:
m
detq(i)=Qs(i)-Q(i);
end
%生成B'和B"矩阵
Bp=zeros(n-1,n-