文档库 最新最全的文档下载
当前位置:文档库 › 潮流计算matlab-牛顿拉夫逊法法

潮流计算matlab-牛顿拉夫逊法法

潮流计算matlab-牛顿拉夫逊法法
潮流计算matlab-牛顿拉夫逊法法

用matlab潮流计算(牛顿拉夫逊法)

%主程序:

[d]=uigetfile('ieee14.m','Select Data File');

if pathname==0

error('you must select a valid data file')

else

l(dfile);

% strip off .m

eval(d)); %打开数据文件

end

global n;

global m;

[nb,mb]=size(bus); %节点重新编号

[nl,ml]=size(line);

nSW=0; % 平衡节点数目

nPV=0; % PV节点数目

nPQ=0; % PQ节点数目

for i=1:nb, % nb为总节点数

type=bus(i,6);

if type==3,

nSW=nSW+1; % 统计平衡节点数目

SW(nSW,:)=bus(i,:);

elseif type==2,

nPV=nPV+1; % 统计PV节点数目

PV(nPV,:)=bus(i,:);

else

nPQ=nPQ+1; % 统计PQ节点数目

PQ(nPQ,:)=bus(i,:);

end

end;

bus=[PQ;PV;SW];

newbus=[1:nb]';

f=bus(:,1);

nodenum=[newbus bus(:,1)];

bus(:,1)=newbus;

for i=1:nl

for j=1:2

for k=1:nb

if line(i,j)==nodenum(k,2)

line(i,j)=nodenum(k,1);

break

end

end

end

end

Y=y(bus,line); %形成节点导纳矩阵

迭代次数初值% K=0;

Kmax=10; %最大迭代次数

eps1=1.0e-10;

eps2=1.0e-10;

m=nPQ;n=nb;

Um=eye(m,m);

myf=fopen('output1.dat','w');

for K=1:Kmax

for i=1:m

for j=1:m

if i==j

Um(i,j)=bus(i,2);

end

end

end

b=dPQ(Y,bus);

C=jac(bus,Y);

dX=C\b';

dx=dX';

[nx,mx]=size(dx);

for i=1:n-1 %计算相角

bus(i,3)=bus(i,3)-dX(i,1);

end

B=dx(nx,n:mx)*Um; %计算电压差

bus(1:m,2)=bus(1:m,2)-B'; %计算电压值

dx(nx,n:mx)=B;

fprintf(myf,'--第%d次迭代时雅可比矩阵--',K)

fprintf(myf, '\n');

for i=1:(n+m-1)

for j=1:(n+m-1)

fprintf(myf,'%8.6f', C(i,j));

fprintf(myf, ' ');

end

fprintf(myf, '\n');

end

fprintf(myf,'--第%d次迭代时dPQ的误差--',K)

fprintf(myf, '\n');

for i=1:(n+m-1)

fprintf(myf,'%8.6e', b(1,i));

fprintf(myf, '\n');

end

fprintf(myf, '\n');

fprintf(myf,'--第%d次迭代时dx(误差)--',K)

fprintf(myf, '\n');

for i=1:(n+m-1)

fprintf(myf,'%8.6e', dX(i,1));

fprintf(myf, '\n');

end

fprintf(myf, '\n');

fprintf(myf,'第%d次迭代后节点电压(仅PQ节点)',K)

fprintf(myf, '\n');

for i=1:m

fprintf(myf,'%8.6f', bus(i,2));

fprintf(myf, '\n');

end

fprintf(myf, '\n');

fprintf(myf,'第%d次迭代后相角(角度)',K)

fprintf(myf, '\n');

for i=1:n

fprintf(myf,'%8.6f', bus(i,3)*180/pi);

fprintf(myf, '\n');

end

fprintf(myf, '\n');

if (max(abs(dx))

break;

end

end

%计算功率

P1=0;T=0; %计算平衡节点的有功

for j=1:n

T=bus(n,2)*bus(j,2)*(real(Y(n,j))*cos(bus(n,3)-bus(j,3))+imag(Y(n,j))*sin(bus(n,3)-bus(j,3)));

P1=P1+T;

end

bus(n,4)=P1;

for k=m+1:n %计算PV节点、平衡节点的无功

Q1=0;T=0;

for j=1:n

T=bus(k,2)*bus(j,2)*(real(Y(k,j))*sin(bus(k,3)-bus(j,3))-imag(Y(k,j))*cos(bus(k,3)-bus(j,3)));

Q1=Q1+T;

end

bus(k,5)=Q1;

end

bus(:,1)=f; %换回各节点、支路的初始编号

r=zeros(1,mb);

for t=1:n

for l=t+1:n

if bus(t,1)>bus(l,1)

r=bus(t,:);bus(t,:)=bus(l,:);bus(l,:)=r;

end

end

end

for i=1:nl

for j=1:2

for k=1:nb

if line(i,j)==nodenum(k,1)

line(i,j)=nodenum(k,2);

break

end

end

end

end

fclose(myf);

Pf=loss(bus,line); %计算支路潮流及损耗

%将节点导纳矩阵、节点潮流计算结果写入文件output2

myf=fopen('output2.dat','w');

fprintf(myf, '--节点导纳矩阵--\n');

for k=1:n

for j=1:n

fprintf(myf,'%8.6f', real(Y(k,j)));

fprintf(myf, '+i*');

fprintf(myf,'%8.6f', imag(Y(k,j)));

fprintf(myf, ' ');

end

fprintf(myf, '\n');

end

fprintf(myf, '------------------牛顿-拉夫逊法潮流计算结果-------------\n');

fprintf(myf, '------------节点计算结果------------\n');

fprintf(myf, '--节点节点电压节点相角注入有功功率(P)注入无功功率(Q) 类型--\n');

for l=1:nb

for j=1:mb

if j==1|j==6

', bus(l,j)); fprintf(myf, ' %8.1f

elseif j==3

', bus(l,j)*180/pi); fprintf(myf, ' %8.6f

else

', bus(l,j)); fprintf(myf, ' %8.6f

end

end

' \n'); fprintf(myf,

end

--\n');

支路计算结果fprintf(myf, '--

S(J,I) 线路损耗线路功率S(I,J) 线路功率节点(I) fprintf(myf, '--节点(J)

dS(I,J)--\n');

for k=1:nl

for j=1:5

if j<=2

', Pf(k,j)); fprintf(myf,'%8.1f

'); fprintf(myf, '

else

fprintf(myf,'%8.6f', real(Pf(k,j)));

fprintf(myf, '+i*');

fprintf(myf,'%8.6f', imag(Pf(k,j)));

'); fprintf(myf, '

end

end

fprintf(myf, '\n');

end

fclose(myf);

%根据支路参数建立节点导纳矩阵程序:

function Y=y(bus,line)

%目的:根据支路参数建立节点导纳矩阵

%输入:节点参数矩阵--bus;支路参数矩阵--line

%输出:节点导纳矩阵--Y

[nb,mb]=size(bus);

[nl,ml]=size(line);

牛顿插值法原理及应用

牛顿插值法 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0 )...(x-xn-1)+Rn(x)。 插值函数 插值函数的概念及相关性质[1] 定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点 x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数. 称x1,x2,…xn 为插值节点,称[a,b]为插值区间。 定理:n次代数插值问题的解存在且唯一。

牛顿插值法C程序 程序框图#include void main() { float x[11],y[11][11],xx,temp,newton; int i,j,n; printf("Newton插值:\n请输入要运算的值:x="); scanf("%f",&xx); printf("请输入插值的次数(n<11):n="); scanf("%d",&n); printf("请输入%d组值:\n",n+1); for(i=0;i

牛顿拉夫逊法潮流计算

摘要 本文,首先简单介绍了基于在MALAB中行潮流计算的原理、意义,然后用具体的实例,简单介绍了如何利用MALAB去进行电力系统中的潮流计算。 众所周知,电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行条件及系统接线情况确定整个电力系统各部分的运行状态:各线的电压、各元件中流过的功率、系统的功率损耗等等。在电力系统规划的设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量地分析比较供电方案或运行方式的合理性、可靠性和经济性。 此外,在进行电力系统静态及暂态稳定计算时,要利用潮流计算的结果作为其计算的基础;一些故障分析以及优化计算也需要有相应的潮流计算作配合;潮流计算往往成为上述计算程序的一个重要组成部分。以上这些,主要是在系统规划设计及运行方式安排中的应用,属于离线计算范畴。 牛顿-拉夫逊法在电力系统潮流计算的常用算法之一,它收敛性好,迭代次数少。本文介绍了电力系统潮流计算机辅助分析的基本知识及潮流计算牛顿-拉夫逊法,最后介绍了利用MTALAB程序运行的结果。 关键词:电力系统潮流计算,牛顿-拉夫逊法,MATLAB

ABSTRACT This article first introduces the flow calculation based on the principle of MALAB Bank of China, meaning, and then use specific examples, a brief introduction, how to use MALAB to the flow calculation in power systems. As we all know, is the study of power flow calculation of power system steady-state operation of a calculation, which according to the given operating conditions and system wiring the entire power system to determine the operational status of each part: the bus voltage flowing through the components power, system power loss and so on. In power system planning power system design and operation mode of the current study, are required to quantitatively calculated using the trend analysis and comparison of the program or run mode power supply reasonable, reliability and economy. In addition, during the power system static and transient stability calculation, the results of calculation to take advantage of the trend as its basis of calculation; number of fault analysis and optimization also requires a corresponding flow calculation for cooperation; power flow calculation program often become the an important part. These, mainly in the way of system design and operation arrangements in the application areas are off-line calculation. Newton - Raphson power flow calculation in power system is one commonly used method, it is good convergence of the iteration number of small, introduce the trend of computer-aided power system analysis of the basic knowledge and power flow Newton - Raphson method, introduced by the last matlab run results. Keywords:power system flow calculation, Newton – Raphson method, matlab

基于极坐标的牛顿拉夫逊潮流计算

前言 电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行件及系统接线情况确定整个电力系统各部分的运行状态。在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量分析、比较供电方案或运行方式的合理性、可靠性和经济性。本次课程设计任务是闭式网络的潮流计算,用到的方法为牛顿拉夫逊极坐标法潮流计算。 牛顿法是数学中解决非线性方程式的典型方法,有较好的收敛性。解决电力系统潮流计算问题是以导纳距阵为基础的,因此,只要在迭代过程中尽可能保持方程式系数距阵的稀疏性,就可以大大提高牛顿法潮流程序的放率。自从20 世纪60 年代中期利用了最佳顺序消去法以后,牛顿法在收敛性、内存要求、速度方面都超过了阻抗法,成为直到目前仍在广泛采用的优秀方法。

目录 1任务书 (2) 2.模型简介及等值电路 (3) 3.设计原理 (4) 4.修正方程的建立 (7) 5.程序流程图及MATLAB程序编写 (9) 6.结果分析 (15) 7.设计总结 (25) 8.参考文献 (26)

《电力系统分析》 课程设计任务书 题目极坐标表示的牛顿拉夫逊法潮流计算程序设计学生姓名学号专业班级

设计内容与要求1. 设计要求 掌握MATLAB语言编程方法;理解和掌握运用计算机进行潮流计算的基本算法原理;针对某一具体电网,进行潮流计算程序设计。 其目的在于加深学生对电力系统稳态分析中课程中基本概念和计算方法的理解,培养学生运用所学知识分析和解决问题的能力。 2. 内容 1)学习并掌握MATLAB语言。 2)掌握变压器非标准变比概念及非标准变比变压器的等值电路。掌握节点导纳矩阵的概念及导纳矩阵的形成和修改方法。 3)掌握电力系统功率方程、变量和节点分类。 4)掌握利用极坐标表示的牛-拉法进行潮流计算的方法和步骤。 5)选择一个某一具体电网,编制程序流程框图。 6)利用MATLAB语言编写该模型的潮流计算程序,并上机调试程序,对计算结果进行分析。 7)整理课程设计论文。 起止时间2013 年7 月 4 日至2013 年7月10日指导教师签名年月日 系(教研室)主任签 名 年月日学生签名年月日 2 模型简介及等值电路 2.1课程设计模型:模型3

matlab实现数值分析报告插值及积分

Matlab实现数值分析插值及积分 摘要: 数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。在实际生产实践中,常常将实际问题转化为数学模型来解决,这个过程就是数学建模。学习数值分析这门课程可以让我们学到很多的数学建模方法。 分别运用matlab数学软件编程来解决插值问题和数值积分问题。题目中的要求是计算差值和积分,对于问题一,可以分别利用朗格朗日插值公式,牛顿插值公式,埃特金逐次线性插值公式来进行编程求解,具体matlab代码见正文。编程求解出来的结果为:=+。 其中Aitken插值计算的结果图如下: 对于问题二,可以分别利用复化梯形公式,复化的辛卜生公式,复化的柯特斯公式编写程序来进行求解,具体matlab代码见正文。编程求解出来的结果为: 0.6932 其中复化梯形公式计算的结果图如下:

问题重述 问题一:已知列表函数 表格 1 分别用拉格朗日,牛顿,埃特金插值方法计算。 问题二:用复化的梯形公式,复化的辛卜生公式,复化的柯特斯公式计算积分,使精度小于5。 问题解决 问题一:插值方法 对于问题一,用三种差值方法:拉格朗日,牛顿,埃特金差值方法来解决。 一、拉格朗日插值法: 拉格朗日插值多项式如下: 首先构造1+n 个插值节点n x x x ,,,10 上的n 插值基函数,对任一点i x 所对应的插值基函数 )(x l i ,由于在所有),,1,1,,1,0(n i i j x j +-=取零值,因此)(x l i 有因子 )())(()(110n i i x x x x x x x x ----+- 。又因)(x l i 是一个次数不超过n 的多项式,所以只 可能相差一个常数因子,固)(x l i 可表示成: )())(()()(110n i i i x x x x x x x x A x l ----=+- 利用1)(=i i x l 得:

PQ分解法潮流计算实验

xxxx实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合■设计□创新实验日期:实验成绩: 一、实验项目名称 P-Q分解法潮流计算实验 二、实验目的与要求: 目的:电力系统分析的潮流计算是电力系统分析的一个重要的部分。通过对电力系统潮流分布的分析和计算,可进一步对系统运行的安全性,经济性进行分析、评估,提出改进措施。电力系统潮流的计算和分析是电力系统运行和规划工作的基础。 潮流计算是指对电力系统正常运行状况的分析和计算。通常需要已知系统参数和条件,给定一些初始条件,从而计算出系统运行的电压和功率等;潮流计算方法很多:高斯-塞德尔法、牛顿-拉夫逊法、P-Q分解法、直流潮流法,以及由高斯-塞德尔法、牛顿-拉夫逊法演变的各种潮流计算方法。 本实验采用P-Q分解法进行电力系统分析的潮流计算程序的编制与调试,获得电力系统中各节点电压,为进一步进行电力系统分析作准备。通过实验教学加深学生对电力系统潮流计算原理的理解和计算,初步学会运用计算机知识解决电力系统的问题,掌握潮流计算的过程及其特点。熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。 要求:编制调试电力系统潮流计算的计算机程序。程序要求根据已知的电力网的数学模型(节点导纳矩阵)及各节点参数,完成该电力系统的潮流计算,要求计算出节点电压、功率等参数。 三、主要仪器设备及耗材 每组计算机1台、相关计算软件1套 四、实验内容: 1.理论分析: P-Q分解法是从改进和简化牛顿法潮流程序的基础上提出来的,它的基本思想是:把节点功率表示为电压向量的极坐标方程式,抓住主要矛盾,以有功功率误差作为修正电压向量角度的依据,以无功功率误差作为修正电压幅值的依据,把有功功率和无功功率迭代分开来进行。 牛顿法潮流程序的核心是求解修正方程式,当节点功率方程式采取极坐标系统时,

拉格朗日插值、牛顿插值的matlab代码

实验五多项式插值逼近 信息与计算科学金融崔振威201002034031 一、实验目的: 拉格朗日插值和牛顿插值的数值实现 二、实验内容:p171.1、p178.1、龙格现象数值实现 三、实验要求: 1、根据所给题目构造相应的插值多项式, 2、编程实现两类插值多项式的计算 3、试分析多项式插值造成龙格现象的原因 主程序 1、拉格朗日 function [c,l]=lagran(x,y) %c为多项式函数输出的系数 %l为矩阵的系数多项式 %x为横坐标上的坐标向量 %y为纵坐标上的坐标向量 w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if k~=j v=conv(v,poly(x(j)))/(x(k)-x(j)) %对多项式做卷积运算end end l(k,:)=v; end c=y*l; 牛顿插值多项式主程序 function [p2,z]=newTon(x,y,t) %输入参数中x,y为元素个数相等的向量 %t为插入的定点 %p2为所求得的牛顿插值多项式 %z为利用多项式所得的t的函数值。 n=length(x); chaS(1)=y(1); for i=2:n x1=x;y1=y; x1(i+1:n)=[];

y1(i+1:n)=[]; n1=length(x1); s1=0; for j=1:n1 t1=1; for k=1:n1 if k==j %如果相等则跳出循环 continue; else t1=t1*(x1(j)-x1(k)); end end s1=s1+y1(j)/t1; end chaS(i)=s1; end b(1,:)=[zeros(1,n-1) chaS(1)]; cl=cell(1,n-1); %cell定义了一个矩阵 for i=2:n u1=1; for j=1:i-1 u1=conv(u1,[1 -x(j)]); %conv()用于多项式乘法、矩阵乘法 cl{i-1}=u1; end cl{i-1}=chaS(i)*cl{i-1}; b(i,:)=[zeros(1,n-i),cl{i-1}]; end p2=b(1,:); for j=2:n p2=p2+b(j,:); end if length(t)==1 rm=0; for i=1:n rm=rm+p2(i)*t^(n-i); end z=rm; else k1=length(t); rm=zeros(1,k1); for j=1:k1 for i=1:n rm(j)=rm(j)+p2(i)*t(j)^(n-i); end

基于MATLAB牛顿拉夫逊法进行潮流计算

>> %本程序的功能是用牛顿拉夫逊法进行潮流计算n=input('请输入节点数:n='); nl=input('请输入支路数:nl='); isb=input('请输入平衡母线节点号:isb='); pr=input('请输入误差精度:pr='); B1=input('请输入由各支路参数形成的矩阵:B1='); B2=input('请输入各节点参数形成的矩阵:B2='); Y=zeros(n); e=zeros(1,n);f=zeros(1,n);V=zeros(1,n); O=zeros(1,n);S1=zeros(nl); for i=1:nl if B1(i,6)==0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); Y(q,p)=Y(p,q); Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2; Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; end %求导纳矩阵 disp('导纳矩阵Y='); disp(Y); G=real(Y);B=imag(Y); for i=1:n e(i)=real(B2(i,3)); f(i)=imag(B2(i,3)); V(i)=B2(i,4); end for i=1:n S(i)=B2(i,1)-B2(i,2); B(i,i)=B(i,i)+B2(i,5); end P=real(S);Q=imag(S); ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0; while IT2~=0 IT2=0;a=a+1; for i=1:n if i~=isb C(i)=0; D(i)=0; for j1=1:n C(i)= C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1); D(i)= D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1); end

电力系统课程设计-牛顿拉夫逊法潮流计算

课程设计说明书 题目电力系统分析系(部) 专业(班级) 姓名 学号 指导教师 起止日期

电力系统分析课程设计任务书系(部):专业:指导教师:

目录 一、潮流计算基本原理 1.1潮流方程的基本模型 1.2潮流方程的讨论和节点类型的划分 1.3、潮流计算的意义 二、牛顿-拉夫逊法 2.1牛顿-拉夫逊法基本原理 2.2节点功率方程 2.3修正方程 2.4牛顿法潮流计算主要流程 三、收敛性分析 四、算例分析 总结 参考文献

电力系统分析潮流计算 一、潮流计算基本原理 1.1潮流方程的基本模型 电力系统是由发电机、变压器、输电线路及负荷等组成,其中发电机及负荷是非线性元件,但在进行潮流计算时,一般可以用接在相应节点上的一个电流注入量来代表。因此潮流计算所用的电力网络系由变压器、输电线路、电容器、电抗器等静止线性元件所构成,并用集中参数表示的串联或并联等值支路来模拟。结合电力系统的特点,对这样的线性网络进行分析,普通采用的是节点法,节点电压与节点电流之间的关系 V Y I = (1-1) 其展开式为 j n j ij i V Y I ∑==1 ),,3,2,1 (n i = (1-2) 在工程实际中,已经的节点注入量往往不是节点电流而是节点功率,为此必须应用联 系节点电流和节点功率的关系式 i i i i V jQ P I * -= ),,3,2,1(n i = (1-3) 将式(1-3)代入式(1-2)得到 j n j ij i i i V Y V jQ P ∑=* =-1 ),,3,2,1(n i = (1-4) 交流电力系统中的复数电压变量可以用两种极坐标来表示 i j i i e V V θ= (1-5) 或 i i i jf e V += (1-6) 而复数导纳为

牛顿——拉夫逊法进行潮流计算

%本程序的功能是用牛顿——拉夫逊法进行潮流计算 % B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳 % 5、支路的变比;6、支路首端处于K侧为1,1侧为0 % B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量% 6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点;% 3为PV节点; clear; n=10;%input('请输入节点数:n='); nl=10;%input('请输入支路数:nl='); isb=1;%input('请输入平衡母线节点号:isb='); pr=0.00001;%input('请输入误差精度:pr='); B1=[1 2 0.03512+0.08306i 0.13455i 1 0; 2 3 0.0068+0.18375i 0 1.02381 1; 1 4 0.05620+0.13289i 0.05382i 1 0; 4 5 0.00811+0.24549i 0 1.02381 1; 1 6 0.05620+0.13289i 0.05382i 1 0; 4 6 0.04215+0.09967i 0.04037i 1 0; 6 7 0.0068+0.18375i 0 1.02381 1; 6 8 0.02810+0.06645i 0.10764i 1 0; 8 10 0.00811+0.24549i 0 1 1; 8 9 0.03512+0.08306i 0.13455i 1 0] B2=[0 0 1.1 1.1 0 1; 0 0 1 0 0 2; 0 0.343+0.21256i 1 0 0 2; 0 0 1 0 0 2; 0 0.204+0.12638i 1 0 0 2; 0 0 1 0 0 2; 0 0.306+0.18962i 1 0 0 2; 0 0 1 0 0 2; 0.5 0 1.1 1.1 0 3; 0 0.343+0.21256i 1 0 0 2] ;%input('请输入各节点参数形成的矩阵:B2='); Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl); % % %--------------------------------------------------- for i=1:nl %支路数 if B1(i,6)==0 %左节点处于1侧 p=B1(i,1);q=B1(i,2); else %左节点处于K侧 p=B1(i,2);q=B1(i,1); end

matlab牛顿插值法例题与程序

题目一:多项式插值 某气象观测站在8:00(AM )开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton )逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。 二、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式: )() )(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -??-+??+-++=αααα (1) 其中系数i α(i=0,1,2……n )为特定系数,可由插值样条i i n y x P =) ((i=0,1,2……n )确定。 根据均差的定义,把x 看成[a,b]上的一点,可得 f(x)= f (0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x ) …… f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n ) 综合以上式子,把后一式代入前一式,可得到: f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ]) (x 1n +ω= N n (x )+) (x n R 其中

N n (x )= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2) )(x n R = f(x)- N n (x )= f[x, 0x , (x) n ,x ]) (x 1n +ω (3) ) (x 1n +ω=(0x -x )…(x-x n ) Newton 插值的系数i α(i=0,1,2……n )可以用差商表示。一般有 f k =α[k 10x x x ??,] (k=0,1,2,……,n ) (4) 把(4)代入(1)得到满足插值条件N )() (i i n x f x =(i=0,1,2,……n )的n 次Newton 插值多项式 N n (x )=f (0x )+f[10x x ,](1x -x )+f[210x x x ,,](1x -x )(2x -x )+……+f[n 10x x x ??,](1x -x )(2x -x )…(1-n x -x ). 其中插值余项为: ) ()! () ()()()(x 1n f x N -x f x R 1n 1 n n +++==ωξ ξ介于k 10x x x ??,之间。 三、程序设计 function [y,A,C,L]=newdscg(X,Y,x,M) % y 为对应x 的值,A 为差商表,C 为多项式系数,L 为多项式 % X 为给定节点,Y 为节点值,x 为待求节点 n=length(X); m=length(x); % n 为X 的长度 for t=1:m

电力系统稳态分析牛顿拉夫逊法

0引言 潮流是配电网络分析的基础,用于电网调度、运行分析、操作模拟和设计规划,同时也是电压优化和网络接线变化所要参考的内容。潮流计算通过数值仿真的方法把电力系统的详细运行情况呈现给工作人员,从而便于研究系统在给定条件下的稳态运行特点。随着市场经济的发展,经济利益是企业十分看重的,而线损却是现阶段阻碍企业提高效益的一大因素。及时、准确的潮流计算结果,可以给出配电网的潮流分布、理论线损及其在网络中的分布,从而为配电网的安全经济运行提供参考。从数学的角度来看,牛顿-拉夫逊法能有效进行非线性代数方程组的计算且具有二次收敛的特点,具有收敛快、精度高的特点,在输电网中得到广泛应用。随着现代计算机技术的发展,利用编程和相关软件,可以更好、更快地实现配电网功能,本文就是结合牛顿-拉夫逊法的基本原理,利用C++程序进行潮流计算,计算结果表明该方法具有良好的收敛性、可靠性及正确性。 1牛顿-拉夫逊法基本介绍 1.1潮流方程 对于N 个节点的电力网络(地作为参考节点不包括在内),如果网络结构和元件参数已知,则网络方程可表示为: =&& YV I (1-1) 式中,Y 为N*N 阶节点导纳矩阵;&V 为N*1维节点电压列向量;&I 为N*1维节点注入电流列向量。如果不计网络元件的非线性,也不考虑移相变压器,则Y 为对称矩阵。 电力系统计算中,给定的运行变量是节点注入功率,而不是节点注入电流,这两者之间有如下关系: ??=&&&EI S (1-2) 式中,&S 为节点的注入复功率,是N*1维列矢量;? &S 为&S 的共轭;

??i diag ??=???? &&E V 是由节点电压的共轭组成的N*N 阶对角线矩阵。 由(1-1)和(1-2),可得: ??=&&&S EYV 上式就是潮流方程的复数形式,是N 维的非线性复数代数方程组。将其展开,有: ?i i i ij j j i P jQ V Y V ∈-=∑&& j=1,2,….,N (1-3) 式中,j i ∈表示所有和i 相连的节点j ,包括j i =。 将节点电压用极坐标表示,即令i i i V V θ=∠&,代入式(1-3)中则有: ()i i i i ij ij j j j i P jQ V G jB V θθ∈-=∠-+∠∑ ()()cos sin i j ij ij ij ij j i V V G jB j θθ∈=+-∑ 故有: () ()cos sin sin cos i i j ij ij ij ij j i i i j ij ij ij ij j i P V V G B Q V V G B θθθθ∈∈?=+?? =-?? ∑∑ i=1,2,…,N (1-4) 式(1-4)是用极坐标表示的潮流方程。 而节点功率误差: (cos sin )θθ∈?=-+∑SP i i i j ij ij ij ij j i P P V V G B (1-5) (cos sin )θθ∈?=--∑SP i i i j ij ij ij ij j i Q Q V V G B (1-6) 式中:SP i P ,SP i Q 为节点i 给定的有功功率及无功功率。 1.2牛顿-拉夫逊法基本原理 1.2.1牛拉法的一般描述 牛拉法是把非线性方程式的求解过程变成反复对相应的线性方程式的求解过程,即非线性问题通过线性化逐步近似,这就是牛拉法的核心。下面以非线性方程式的求解过程来进行说明。 设电力网络的节点功率方程一般形式如下:

牛顿插值MATLAB算法

MATLAB程序设计期中作业 ——编程实现牛顿插值 成员:刘川(P091712797)签名_____ 汤意(P091712817)签名_____ 王功贺(P091712799)签名_____ 班级:2009信息与计算科学 学院:数学与计算机科学学院 日期:2012年05月02日

牛顿插值的算法描述及程序实现 一:问题说明 在我们的实际应用中,通常需要解决这样的问题,通过一些已知的点及其对应的值,去估算另外一些点的值,这些数据之间近似服从一定的规律,于是,这就引入了插值法的思想。 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 二:算法分析 newton 插值多项式的表达式如下: 010011()()()()()n n n N x c c x x c x x x x x x -=+-+???+--???- 其中每一项的系数c i 的表达式如下: 12011010 [,,,][,,,] [,,,]i i i i i f x x x f x x x c f x x x x x -???-???=???= - 即为f (x)在点01,,,i x x x ???处的i 阶差商,([]()i i f x f x =,1,2,,i n = ),由差商01[,,,]i f x x x ???的性质可知: () 010 1 [,,,]()i i i j j k j k k j f x x x f x x x ==≠???=-∑∏ 牛顿插值的程序实现方法: 第一步:计算[][][][]001012012,,,,,,,n f x f x x f x x x f x x x x 、、、 、。 第二步:计算牛顿插值多项式中01[,,,]i f x x x ???011()()()i x x x x x x ---???-,1,2,,i n = ,得到n 个多项式。

c语言编写的牛顿拉夫逊法解潮流程序

c语言编写的牛顿拉夫逊法解潮流程序 闲来无事,最近把牛拉法用c语言重写一遍,和matlab相比,c语言编写潮流程序最大的难点在于矩阵求逆,我使用的求逆方法是初等行变换法,程序段如下: #include #define N 3 void main() { int i,j,k; float t; float Jacob[N][N]={{1,2,2},{1,3,4},{2,3,4}};//欲进行求逆的矩阵 float inv_J[N][N];//逆矩阵存储于此 //初始化inv_J[N][N] for(i=0;i

} //输出逆矩阵 for(i=0;i #include #define N 4 //节点数 #define n_PQ 2 //PQ节点数 #define n_PV 1 //PV节点数 #define n_br 5 //串联支路数 void main() { void disp_matrix(float *disp_p,int disp_m,int disp_n); //矩阵显示函数 float Us[2*N]={1.0,0,1.0,0,1.05,0,1.05,0}; //电压初值 float Ps[N]={0,-0.5,0.2}; //有功初值 float Qs[N]={0,-0.3}; //无功初值float G[N][N],B[N][N]; //各几点电导电纳 struct //阻抗参数 { int nl; //左节点 int nr; //右节点 float R; //串联电阻值 float X; //串联电抗值 float Bl; //左节点并联电导 float Br; //右节点并联电纳 }ydata[n_br]={ {1,2,0,0.1880,-0.6815,0.6040}, {1,3,0.1302,0.2479,0.0129,0.0129}, {1,4,0.1736,0.3306,0.0172,0.0172}, {3,4,0.2603,0.4959,0.0259,0.0259}, {2,2,0,0.05,0,0} };

牛顿插值法的MATLAB综合程序

6.3.5 牛顿插值法的MATLAB 综合程序 求牛顿插值多项式、差商、插值及其误差估计的MATLAB 主程序 function [y,R,A,C,L]=newdscg(X,Y,x,M) n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k))); d=length(C);C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1;L(k,:)=poly2sym(C); 例6.3.6 给出节点数据00.27)00.4(=-f ,00.1)00.0(=f ,00.2)00.1(=f ,00.17)00.2(=f ,作三阶牛顿插值多项式,计算)345.2(-f ,并估计其误差. 解 首先将名为newdscg.m 的程序保存为M 文件,然后在MATLAB 工作窗口输入程序 >> syms M,X=[-4,0,1,2]; Y =[27,1,2,17]; x=-2.345; [y,R,A,C,P]=newdscg(X,Y,x,M) 运行后输出插值y )345.2(-≈f 及其误差限公式R ,三阶牛顿插值多项式P 及其系数向量C ,差商的矩阵A 如下 y = 22.3211 R = 65133/562949953421312*M (即R =2.3503*M ) A= 27.0000 0 0 0 1.0000 -6.5000 0 0 2.0000 1.0000 1.5000 0 17.0000 15.0000 7.0000 0.9167 C = 0.9167 4.2500 -4.1667 1.0000 P = 11/12*x^3+17/4*x^2-25/6*x+1

直角坐标牛顿-拉夫逊法潮流计算matlab程序(仅供参考)

%该程序仅针对《电力系统分析下》何仰赞P61 的4节点算例。 %节点电压用直角坐标表示时的牛顿-拉夫逊法潮流计算(matlab程序,可能有小错误,仅供学习之用,如果想要通用的程序,可自己动手改或再到pudn、csdn等网站搜索更好的)%南昌大学电力061 李圣涛2009年5月编写,2012年5月上传 clc %清空command windows clear all %清空workspace %为了提高可移植性、可读性、通用性,设置以下变量 N=4; %独立节点数 NPQ=2; %PQ节点数 NPV=1; %PV节点数 K=0; %迭代次数 %请输入最大迭代次数Kmax。可从0开始,以观察第Kmax次迭代的结果 Kmax=input('\n\n 请输入最大迭代次数后回车(可从零开始) Kmax=\n'); small=10^(-5); %ε不能太小 %i为节点标号,其中1号……NPQ号为PQ节点,(NPQ+1) %号……(N-1)号为PV节点,N号节点为平衡节点 %节点导纳矩阵Y的实部 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.934627 ]; %节点导纳矩阵Y的虚部 B=[ -8.242876 2.352941 3.666667 1.891074 ; 2.352941 -4.727377 0 2.403846 ; 3.666667 0 -3.3333333 0 ; 1.891074 2.403846 0 -4.261590 ]; %Y矩阵 Y=complex(G,B); %给定PQ节点的Pnode、Qnode,PV节点的Pnode、Vnode。(Vnode为节点电压的幅值)Pnode=[ -0.3 -0.55 0.5 ];%PQ、PV节点的初值P Qnode=[ -0.18 -0.13 0 ];%PQ节点的初值Q Vnode=[ 0 0 1.10 ];%PV节点的初值V %迭代初值

matlab计算拉格朗日牛顿及分段线性插值的程序

《工程常用算法》综合实践作业二 完成日期: 2013年 4月 14 日 班级 学号 姓名 主要工作说明 自评成绩 0718 2010071826 崔洪亮 算式与程序的编写 18 0718 2010071815 侯闰上 流程图的编辑,程序的审查 0718 2010071809 赵化川 报告的整理汇总 一.作业题目:三次样条插值与分段插值 已知飞机下轮廓线数据如下: x 3 5 7 9 11 12 13 14 15 y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 飞机下轮廓线形状大致如下图所示: 要求分别用拉格朗日插值法、Newton 插值法、分段线性插值法和三次样条插值法计算x 每改变0.5时y 的值,即x 取 0.5, 1, 1.5, … , 14.5 时对应的y 值。比较采用不同方法的计算工作量、计算结果和优缺点。 二.程序流程图及图形 1.拉格朗日插值法 开始 x,y,x0 Length (x)==l Ength (y)? n=length (x) i=1:n,l=1。 j=1:i-1&j=i+1:n l=l.*(x0-x(j)/x(i)-x(j) f=f+l*y(i) 结束 否 是 机翼 下轮廓线

2.牛顿插值法 开始 x,y,xi Length(x)==l ength(y)? n=length(x)Y=zeros (n),Y (:1)=y,f=0 a=1:n-1,b=1:n-a,Y(b,a+1)=(Y (b+1,a)-Y(b,a))/(x (b+a)-x(b)) i=1:n,z=1 结束 j=1:i-1,z=z.*(xi-x(j)) f=f+Y(1,i)*z 否 是 3.分段线性插值法 开始 x ,y ,x0 length (x )==length(y)? k=1:n-1 x(k)<=x0&x0《=x(k+1) temp=x(k)-x(k+1) f=(x0-x(k+1))/temp*y(k)+(x0-x(k))/(-temp)*y(k+1) 结束 否否 是 是 三.matlab 程序及简要的注释(m 文件) 1.拉格朗日插值法 2.牛顿插值法 function f=newdun(x,y,xi) %x 为已知数据点的x 坐标向量 %y 为已知数据点的y 坐标向量 function f=lang(x,y,x0) %x 为已知数据点的x 坐标向量 %y 为已知数据点的y 坐标向量

直角坐标系下牛顿法潮流计算

1电力系统潮流计算 潮流计算是电力系统分析中的一种最基本的计算,它的任务是对给定的运行条件确定系统的运行状态,如母线上的电压(幅值及相角)、网络中的功率分布及功率损耗等。在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量地分析比较供电方案或运行方式的合理性.可靠性和经济性。此外,电力系统潮流计算也是计算系统动态稳定和静态稳定的基础。 2节点导纳矩阵的形成 在图1(a )的简单电力系统中,若略去变压器的励磁功率和线路电容,负荷用阻抗表示,便可以得到一个有5个节点(包括零电位点)和7条支路的等值网络,如图1(b )所示。将接于节点1和4的电势源和阻抗的串联组合变换成等值的电流源和导纳的并联组合,变得到图1(c )的等值网络,其中1101I y E =和 4404I y E =分别称为节点1和4的注入电流源。 (a) 2 4? ?4 y (c) 图1 电力系统及其网络 以零电位点作为计算节点电压的参考点,根据基尔霍夫定律,可以写出4个独立节点的电流平衡方程如下:

10112121 12212022323242423323434244234434044()()()()0()()0()()y U y U U I y U U y U y U U y U U y U U y U U y U U y U U y U I ?+-=? -++-+-=? ? -+-=? ?-+-+=? (2-1) 上述方程组经过整理可以写成 1111221211222233244322333344422433444400Y U Y U I Y U Y U Y U Y U Y U Y U Y U Y U Y U Y U I ? + =? +++=? ? ++=?? ++=? (2-2) 式中, 111012 Y y y =+; 2220232412 Y y y y y =+++;332334Y y y =+;44402434Y y y y =++; 122112Y Y y ==-; 233223 Y Y y ==-; 244224 Y Y y ==-; 344334 Y Y y ==-。 一般的,对于有n 个独立节点的网络,可以列写n 个节点方程 11112211211222221122n n n n n n nn n n Y U Y U Y U I Y U Y U Y U I Y U Y U Y U I ? +++=? +++=? ? ? ?++ +=? (2-3) 也可以用矩阵写成 1111121212222212n n n n nn n n U I Y Y Y Y Y Y U I Y Y Y U I ???? ???????? ??????=?????? ?????? ?????????? (2-4) 或缩写为 YU I = (2-5) 矩阵Y 称为节点导纳矩阵。它的对角线元素ii Y 称为节点i 的自导纳,其值等于接于节点i 的所有支路导纳之和。非对角线元素 ij Y 称为节点i 、j 间的互导纳, 它等于直接接于节点i 、j 间的支路导纳的负值。若节点i 、j 间不存在直接支路,则有 ij Y =。由此可知节点导纳矩阵是一个稀疏的对称矩阵。

相关文档
相关文档 最新文档