基于matlab电力系统的牛顿-拉夫逊法进行潮流计算
(1)迭代前准备工作
首先根据已知网络参数形成节点导纳矩阵,由于节点13是有变压器的支路,因此需要首先换简称为Π型电路计算。接下来给定各个节点的电压初值,节点四作为平衡节点。给定节点一二的PQ和节点三的PU。由于迭代时,需要从矩阵中选取元素并选择PQ或PV节点对应的公式进行计算,为了在程序计算时进行有效区分,在节点参数第一列作为说明标签,“1”表示PQ节点,“0”表示PV节点。
(2)节点不平衡量的迭代过程
利用循环迭代,分别计算节点一二的有功功率、无功功率偏移量,节点三四的电压偏移量。在迭代时,先计算了需要求和的部分,然后经过对PQ还是PV节点的判断后,选择对应的公式进行求偏移量。
(3)计算雅各比矩阵
按照节点的顺序,利用课本P53页的11-49和11-50,分成对角线和非对角线元素,对每个节点的有功和无功对电压求偏导,形成雅各比矩阵。需要判断是PV还是PQ节点。
(4)求解修正方程
利用函数pinv()求解出雅各比矩阵的逆矩阵,利用公式△V=pinv(-J)*△W,求解出修正方程的解,最后修正方程与最初的节点电压矩阵相加,得到修正后的电压值。
这样便结束了第一轮的迭代,由于第一次迭代没有收敛,因此从第二步骤开始不断进行迭代,最终计算出收敛结果为止。
tic
%题目中已知的参数
z12=0.10+0.40i; y120=0.01528i; y210=0.01528i;
zk13=0.3i;k=1.1; %含有变压器的参数,需要化成Π型电路求解
z13=zk13/k; y130=(k*(k-1))/zk13; y310=(1-k)/zk13;
z14=0.12+0.50i; y140=0.01920i; y410=0.01920i;
z24=0.08+0.40i; y240=0.01413i; y420=0.01413i;
y12=1/z12;
y13=1/z13;
y14=1/z14;
y24=1/z24;%节点导纳矩阵,按照题目中节点顺序
% fprintf('理论计算的节点导纳矩阵')
Y=[y12+y14+y13+y140+y120+y130 -y12 -y13 -y14; -y12 y24+y12+y240+y210 0 -y24;-y13 0 y13+y310 0;-y14 -y24 0 y24+y14+y420+y410;]%后面的运算使用的导纳矩阵为课本中的,为了方便最终结果与课本对比
Y=[1.042093-8.242876i -0.588235+2.352941i 3.666667i -0.453858+1.891074i;-0.588235+2.352941i 1.069005-4.727377i 0 -0.480769+2.403846i;3.666667i 0 -3.333333i 0;-0.453858+1.891074i -0.480769+2.403846i 0 0.934627-4.261590i];
%12节点为PQ节点,3为PV节点,4为平衡节点
voltage=[1.0 0 1.0 0 1.1 0 1.05 0]';
%第一列作为说明标签,1为PQ节点,0为PU节点
power=[1,-0.30,-0.18; 1,-0.55,-0.13;0,0.5,1.10 ];
error=[0 0 0 0 0 0]';for k=1:10%进行10次迭代for i=1:3P=0;%有功功率Q=0;%无功功率for j=1:4P=P+real(Y(i,j))*voltage(2*j-1)-imag(Y(i,j))*voltage(2*j);Q=Q+real(Y(i,j))*voltage(2*j)+imag(Y(i,j))*voltage(2*j-1);end%这里要区分PQ还是PV节点if power(i,1)==1error(2*i-1,1)=power(i,2)-P*voltage(2*i-1)-Q*voltage(2*i);error(2*i,1)=power(i,3)-P*voltage(2*i)+Q*voltage(2*i-1);elseerror(2*i-1,1)=power(i,2)-P*voltage(2*i-1)-Q*voltage(2*i);error(2*i,1)=power(i,3)^2-voltage(2*i)^2-voltage(2*i-1)^2;endendt=0;%是否收敛与0.00001for i=1:6if abs(error(i,1))>0.00001t=1;break;endendif t==0break;end%计算雅可比矩阵J=zeros(6);for i=1:3for j=1:3if i==jp=0;%p11-49,p11-50公式q=0;for m=1:4p=p+real(Y(j,m))*voltage(2*m-1)-imag(Y(j,m))*voltage(2*m);q=q+real(Y(j,m))*voltage(2*m)+imag(Y(j,m))*voltage(2*m-1);endJ(2*i-1,2*j-1)=-p-real(Y(i,j))*voltage(2*i-1)-imag(Y(i,j))*voltage(2*i);J(2*i-1,2*j)=-q+imag(Y(i,j))*voltage(2*i-1)-real(Y(i,j))*voltage(2*i);if power(i,1)==1 %判断是PQ节点J(2*i,2*j-1)=q+imag(Y(i,j))*voltage(2*i-1)-real(Y(i,j))*voltage(2*i);J(2*i,2*j)=-p+real(Y(i,j))*voltage(2*i-1)+imag(Y(i,j))*voltage(2*i);else %判断是PV节点J(2*i,2*j-1)=-2*voltage(2*i-1);J(2*i,2*j)=-2*voltage(2*i);endelseJ(2*i-1,2*j-1)=-real(Y(i,j))*voltage(2*i-1)-imag(Y(i,j))*voltage(2*i);J(2*i-1,2*j)=imag(Y(i,j))*voltage(2*i-1)-real(Y(i,j))*voltage(2*i);if power(i,1)==1 %判断是PQ节点J(2*i,2*j-1)=imag(Y(i,j))*voltage(2*i-1)-real(Y(i,j))*voltage(2*i);J(2*i,2*j)=real(Y(i,j))*voltage(2*i-1)+imag(Y(i,j))*voltage(2*i);else %判断是PV节点J(2*i,2*j-1)=0;J(2*i,2*j)=0;endendendend%求解修正方程d(1:6)=-pinv(J)*error();%保持平衡节点不变d(7:8)=0;voltage(:)=voltage(:)+d(:);fprintf('----------------------------第%1.0f次迭代--------------------------------',k)u=['e1';'f1';'e2';'f2';'e3';'f3'];s=['P1';'Q1';'P2';'Q2';'P3';'U3'];table(u, voltage(1:6),s,error)end
fprintf('U1=%7.6f+i%7.6f\n', voltage(1,1), abs(voltage(2,1)))
fprintf('U2=%7.6f+i%7.6f\n', voltage(3,1), abs(voltage(4,1)))
fprintf('U3=%7.6f+i%7.6f\n', voltage(5,1), abs(voltage(6,1)))
toc
基于matlab电力系统的牛顿-拉夫逊法进行潮流计算相关推荐
- 牛顿-拉夫逊法进行潮流计算matlab源程序
一.前言 潮流计算是电力网络设计及运行中最基本的计算,对电力网络的各种设计方案及各种运行方式进行潮流计算,可以得到各种电网各节点的电压,并求得网络的潮流及网络中各元件的电力损耗,进而求得电能损耗. 在 ...
- 极坐标 c语言,牛顿 拉夫逊迭代法极坐标潮流计算C语言程序
<牛顿 拉夫逊迭代法极坐标潮流计算C语言程序>由会员分享,可在线阅读,更多相关<牛顿 拉夫逊迭代法极坐标潮流计算C语言程序(31页珍藏版)>请在人人文库网上搜索. 1.*利用牛 ...
- 牛顿法(牛顿拉夫逊)配电网潮流计算matlab程序
牛顿法配电网潮流计算matlab程序 传统牛顿-拉夫逊算法,简称牛顿法,是将潮流计算方程组F(X)=0,进行泰勒展开.因泰勒展开有许多高阶项,而高阶项级数部分对计算结果影响很小,当忽略一阶以上部分时, ...
- 2021-06-16 节点电压为极坐标下的牛顿-拉夫逊法潮流计算学习
以节点电压为极坐标下的牛顿-拉夫逊法潮流计算 节点电压用极坐标表示的牛顿-拉夫逊法的潮流计算 节点电压用极坐标表示的牛顿-拉夫逊法的潮流计算 当节点电压使用极坐标时,节点电压表示为: 节点功率方式 ...
- 电力系统潮流【牛顿-拉夫逊法】(4节点、5节点、6节点、9节点)(Matlab代码实现)
目录 1 概述 2 电力系统潮流计算概述 2.1 电力潮流发展进程 2.2牛顿拉夫逊法潮流计算 3 仿真结果 4 Matlab代码及文章讲解
- 牛顿-拉夫逊法 原理讲解以及python算例实现
文章目录 一.基本原理 二.原理深入讲解 1 .切线是曲线的线性逼近 2. 牛顿-拉夫逊法 3 .牛顿-拉夫逊法是否总是收敛(总是可以求得足够近似的根)? 三.pythons实例 总结 一.基本原理 ...
- python三种方法开根号(穷举法、二分法、牛顿拉夫逊法)
文章目录 方法一:穷举法 方法二:二分法 方法三:牛顿-拉夫逊算法 总结 方法一:穷举法 positive_num = int(input("输入一个正数:")) #无穷逼近法 a ...
- 电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)【6节点 9节点 14节点 26节点 30节点 57节点】(Matlab代码实现)
- matlab牛顿拉夫逊算法,牛顿拉夫逊法程序设计
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function gsj clear all; n=0; fidin=fopen('start3.txt'); while ~feof(fidin) % ...
最新文章
- Dubbo入门Demo
- php 比较,PHP类型比较
- 北理工计算机原理与应用实验,北理工计算机原理与应用实验三教程.docx
- Ajax — 聊天机器人演示
- 管道在c语言中的作用,在C中实现管道
- 【剑指offer】面试题24:反转链表(Java)
- mongodb 排序_技术分享 | MongoDB 一次排序超过内存限制的排查
- WebStorm-2018.2.2配置
- 理解为什么要使用Ioc
- Android数据存储汇总
- bzoj 1027: [JSOI2007]合金(floyd最小环)
- DirectX11 With Windows SDK--03 索引缓冲区、常量缓冲区
- Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程
- IOS客户端Coding项目记录导航
- java实现自动拨打电话语音提示
- 直播视频秒开及视频优化
- 【饭谈】为什么总有人劝你用mac来办公?
- apollo之集群部署(二)
- 向量空间、内积空间、欧式空间以及希尔伯特空间的关系
- 【数字IC/FPGA】时钟无毛刺切换