当前位置:文档之家› matlab实现导纳矩阵

matlab实现导纳矩阵

matlab实现导纳矩阵
matlab实现导纳矩阵

Matlab形成节点导纳矩阵

学号:0214393 姓名:侯成滨

引言:电力网的运行状态可用节点方程或回路方程来描述。节点导纳矩阵是以系统元件的等值导纳为基础所建立的、描述电力网络各节点电压和注入电流之间关系的线性方程。导纳矩阵计算是电力系统分析最基本的计算。除它自身的重要作用之外,还是网损计算、静态安全分析、暂态稳定计算、小干扰静态稳定计算、短路计算、静态和动态等值计算的基础。本次任务是用计MATLAB语言编写程序求出潮流计算中要用到的导纳矩阵。为了确定结果是否正确,与一个手工计算比较运算结果,验证程序是否正确。

一、分析网络等效电路

此电力系统是一个6节点,7支路的电力网络。可以把系统等值网络画出来,如图1-1。

图1-1 某电力系统的等值网络

在计算电力系统网络的潮流分布时,我们需要把变压器转化成变压器的∏型等值电路来进行计算器等效导纳,根据等效电路的等效原则,可以把上图等效成如图1-2导纳等值网络图。对导纳等值网络图简化电路图,可以得到图1-3简化导纳等值电路图,方便潮流计算中导纳矩阵的计算。

图1-2电力系统网络的导纳等值电路

图1-3电力系统简化等值电路图

二、MATLAB程序形成导纳矩阵

导纳矩阵的计算总结如下:

1)导纳矩阵的阶数等于电力系统网络的节点数;

2)导纳矩阵各行非对角元素中非零元素的个数等于对应节点所连的不接地支路数;

3)导纳矩阵的对角元素,即各节点的自导纳等于相应节点所连之路的导纳之和:

Y ij=y ij

j∈i

其中,y ij为节点i与节点支路阻抗Z ij的倒数,符号j∈i表示j属于i或与i相连的j,即∑内只包括与节点i直接相连的节点j。当节点i有接地支路时,还应包括j=0的情况。

4)导纳矩阵非对角元素等于节点i与节点j之间的导纳的负数。

2.1 MATLAB程序及其运行

节点导纳程序如下:

N=input('请输入节点数: N=');

L=input('请输入支路数: L=');

B=input('请输入支路信息: B=');

X=input('请输入由节点号及其对地阻抗形成的矩阵:X=');

Y=zeros(N);

for n=1:N;

if X(n,2)~=0;

p=X(n,1);

Y(p,p)=1./X(n,2);

end

end

for n=1:L

if B(n,6)==0

p=B(n,1);q=B(n,2);

else

p=B(n,2);q=B(n,1);

end

Y(p,q)=Y(p,q)-1./(B(n,3)*B(n,5));

Y(q,p)=Y(p,q);

Y(q,q)=Y(q,q)+1./(B(n,3)*B(n,5)^2)+B(n,4)./2;

Y(p,p)=Y(p,p)+1./B(n,3)+B(n,4)./2;

end

disp('导纳矩阵Y=');

disp(Y)

运行结果如下:

MATLAB中的矩阵与向量运算

4.1 数组运算和矩阵运算 从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表 4.1.1 数组运算和矩阵运算指令形式和实质内涵 数组运算矩阵运算 指令含义指令含义 A.'非共轭转置A'共轭转置 A=s把标量s赋给数组A的每个元素 s+B把标量s分别与数组B的每个元素相加s-B, B-s标量s分别与数组B的元素之差 s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积 s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量s A.^n数组A的每个元素的n次方A^n A为方阵时,矩阵A的n次方 A+B数组对应元素的相加A+B矩阵相加 A-B数组对应元素的相减A-B矩阵相减 A.*B数组对应元素的相乘A*B内维相同矩阵的乘积 A./B A的元素被B的对应元素除A/B A右除B B.\A一定与上相同B\A A左除B(一般与右除不同) exp(A)以e为底,分别以A的元素为指数,求幂expm(A) A的矩阵指数函数 log(A) 对A的各元素求对数logm(A) A的矩阵对数函数 sqrt(A) 对A的积各元素求平方根sqrtm(A) A的矩阵平方函数 从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,参与运算的数组必须同维,运算所得的结果数组也是总与原数组同维. 4.2 数组的基本运算 在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组. 4.2.1 点转置和共轭转置 . ' ——点转置.非共轭转置,相当于conj(A'). >> a=1:5; >> b=a. ' b = 1 2 3 4 5 >> c=b. ' c = 1 2 3 4 5 这表明对行向量的两次转置运算便得到原来的行向量. ' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如: >> d=a+i*a

MATLAB实验二 矩阵基本运算(一)答案

实验一 矩阵基本运算(一) (1)设A 和B 是两个同维同大小的矩阵,问: 1)A*B 和A.*B 的值是否相等? ????? ?? =763514432A ???? ? ??=94 525 313 4B A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A*B, A.*B ans = 37 37 44 44 37 51 65 67 78 ans = 8 9 4 12 5 10 15 24 63 2)A./B 和B.\A 的值是否相等? A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A./B, B./A

ans = 0.5000 1.0000 4.0000 1.3333 0.2000 2.5000 0.6000 1.5000 0.7778 ans = 2.0000 1.0000 0.2500 0.7500 5.0000 0.4000 1.6667 0.6667 1.2857 3)A/B和B\A的值是否相等? A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A/B, B/A ans = -0.3452 0.5119 0.3690 0.7857 -0.7857 0.6429 -0.9762 1.3095 0.5952 ans = 110.0000 -15.0000 -52.0000

92.0000 -13.0000 -43.0000 -22.0000 4.0000 11.0000 4)A/B和B\A所代表的数学含义是什么? 解: A/B是B*A的逆矩阵 B\A是B*A的逆矩阵 (2)写出完成下列操作的命令。 1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。 A=[0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186] B=A(2:5,[1,3,5]) A = 0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186 B = 0.2311 0.7382 0.2028 0.6068 0.1763 0.1987 0.4860 0.4057 0.6038 0.8913 0.9355 0.2722 2)删除矩阵A的第7号元素。 A=rand(6,6); >> A(7)=[inf] A = 0.8385 Inf 0.1730 0.1365 0.2844 0.5155

稀疏化形成节点导纳矩阵

struct jdlb *insert1(struct jdlb *tp,struct jdlb *z) //节点导纳矩阵插入指针数据{ struct jdlb *p0,*p111,*p112; double r,r1,x,x1; kk=0; p111=tp; p0=z; if(p0==null) return(tp); if(tp==null) { tp=p0; p0->next=null; return(tp); } if(p0->lnxtlnxt) { tp=p0; p0->next=p111; return(tp); } while((p0->lnxt>p111->lnxt)&&(p111->next!=null)) { p112=p111; p111=p111->next; } if(p0->lnxt==p111->lnxt) //两点间有多条线路或变压器 { r=p111->fu*cos(p111->jd); x=p111->fu*sin(p111->jd); r1=p0->fu*cos(p0->jd); x1=p0->fu*sin(p0->jd); r=r+r1; x=x+x1; x1=sqrt(r*r+x*x); p111->fu=x1; p111->jd=atan2(x,r); kk=1; return(tp); } if((p111->next==null)&&(p0->lnxt>p111->lnxt)) { p111->next=p0; p0->next=null; } else { p112->next=p0;

} return(tp); } //线路部分形成节点导纳矩阵 p1=(struct jdlb *)malloc(len); p2=(struct jdlb *)malloc(len); p3=headlij; //线路部分 while(p3!=null) //形成节点导纳矩阵,可为双边的{ r=p3->fu; x=p3->jd; bb=p3->bb; i=p3->i; j=p3->j; gij=r/(r*r+x*x); bij=-x/(r*r+x*x); r=-gij; x=-bij; tmp=sqrt(r*r+x*x); if(tmp!=0) { p1->irow=i; p1->lnxt=j; p1->fu=tmp; p1->jd=atan2(x,r); a[i]=insert1(a[i],p1); if(kk==0) p1=(struct jdlb *)malloc(len); p2->irow=j; p2->lnxt=i; p2->fu=tmp; p2->jd=atan2(x,r); a[j]=insert1(a[j],p2); if(kk==0) p2=(struct jdlb *)malloc(len); } p3->fu=tmp; p3->jd=atan2(x,r); p3->bb=bb; g[i]=g[i]+gij; b[i]=b[i]+bij+bb; g[j]=g[j]+gij; b[j]=b[j]+bij+bb;

节点导纳矩阵消元求逆法

节点导纳矩阵消元求逆法 彭正良 201312900 y = input('请输入导纳矩阵 y=') N = length(y); %求导纳矩阵的维数 for n = 1:N y(n,n) = -1/y(n,n); %对角元素求负倒数 for i = 1:N for j = i:N if((i~=n)&&(j~=n)) if(in) y(i,j) = y(i,j) + y(i,n)*y(n,j)*y(n,n); else y(i,j) = y(i,j) + y(n,i)*y(n,j)*y(n,n); end end end end %不共行且不共列元素的变换for i = 1:N if(in) y(n,i) = y(n,i)*y(n,n); end end %同行或同列元素的变换 end %上三角元素消元变换完成 for i = 1:N for j = i+1:N y(j,i) = y(i,j) ; end end %补全下三角元素 z = -y 下面用教材上的例子进行验证。 请输入导纳矩阵 y=[6/5 -1/2 -1/5;0 7/8 -1/8;0 0 3/8] y = 1.2000 -0.5000 -0.2000 0 0.8750 -0.1250 0 0 0.3750 z = 1.4124 0.9605 1.0734 0.9605 1.8531 1.1299 1.0734 1.1299 3.6158 经验证和教材上所得结果完全一致。

电力网节点导纳矩阵计算例题与程序

电力网节点导纳矩阵计算例题与程序 佘名寰 编写 用计算机解算电力网潮流电压和短路电流问题首先需确定电力网的节点导纳矩阵或节点阻抗矩阵。本文通过例题介绍用网络拓扑法计算节点导纳矩阵的方法和程序,程序考虑了线路并联电容和变压器支路标么变比不为1时的影响。程序用MATLAB 语言编写,线路参数均采用标么值。本文稿用office word 2007 版编写,可供电气专业人员计算相关问题时参考。 1.用网络拓扑计算节点导纳矩阵 1.1网络拓扑矩阵: 【例1.1】 例图1-1是有5 个节点和5条支路的网络,节点5作为基准参考点,1 ,2, 3, 4为独立节点,支路编号和方向图中已标识。 例图1-1 对于具有n 个节点b 条支路的有向图,它的关联矩阵为一个N ×B 的矩阵A a : A a =[a ij ] 若支路j 与节点i 相关,且箭头背离节点i ,则a ij =1,若箭头指向节点则a ij =-1,若支路j 与节点i 无关,则a ij =0, 图1-1所示的有向图的关联矩阵为 ① ② ③ ④ ⑤ 支路编号 A ij =[ ?10100110?100?1?10?100.01000001] 行编号从上到下为1 2 3 4 5节点编号(5为参考节点) 去掉第5行即为独立节点的关联矩阵。 以下介绍生成网络关联矩阵的M 函数文件 ffm.m : % M FUNCTION ffm.m

% Np is number of node point,Nb is number of braches % nstart--the start point of branches ,nend -- the end point, % A -- network incidence matrix function [A]=ffm(nstart,nend) global Np Nb n=length(nstart); A=zeros(Np,Nb); for i=1:n A(nstart(i),i)=1; A(nend(i),i)=-1; end 以例图1-1网络为例调用ffm.m 文件求其关联矩阵 运算以上程序可得关联矩阵 mm ij 如下: mm = -1 0 1 0 0 1 1 0 -1 0 0 -1 -1 0 -1 0 0 0 1 0 0 0 0 0 1 Mm ij 明显与A ij 是相同的。 1.2生成节点导纳矩阵程序: ⑴ 由网络原始矩阵计算节点导纳矩阵公式 Y=AY s0A t (1-1) Y ----节点导纳矩阵 A------网络关联矩阵 A t -----A 的转置矩阵 Y S0----网络原始导纳矩阵 若网络各支路阻抗为 Z b =[z b1,z b2,……,z bn ] 则Z S0=[ z b100000z b20000 0:0000.0:00 00 0z bn ] Y s0=Z s0-1 (1-2) Y=A Z s0-1A t (1-3) ⑵ 节点导纳计算程序 以例1-1网络为例,在不计对地电容和变压器变比假定为1条件下,节点导纳矩阵计算程序如下: clear global Np Nb % Np is number of node point,Nb is number of braches, Np=5;Nb=5;

电力系统分析作业电网节点导纳矩阵的计算机形成

电力系统分析作业——电网节点导纳矩阵的计算机形成 编程软件:matlab R2010b 程序说明: 1.如果已经输入i-j支路的信息,则不可再输入j-i支路的信息。 2.变压器支路的第一个节点编号默认为变压器一次侧,即变压器的等值电路中的阻抗归算侧,亦即变压器非标准变比的1:k中的‘1’。 3.标幺值等值电路中,如果变比为1:1,则默认为线路,因此,变压器的非标准变比不可以是1:1。 5.如果变压器支路也有导纳B不为零,则说明此导纳就是励磁导纳,与线路的导纳B/2不同含义,只算作变压器原边的自导纳。 4.由于程序执行的是复数运算,所以即使实部为零时,也会输出实部‘0’。 程序代码: a=load('');%从’’中读入数据 [m,n]=size(a); w=1i; u=1; while (u<=m) hnode=a(u,1); enode=a(u,2); z=a(u,3)+a(u,4)*w; b=a(u,5)*w; k=a(u,6); y(hnode,enode)=-1/(k*z); y(enode,hnode)=-1/(k*z); y(hnode,hnode)=y(hnode,hnode)+1/(k*z)+(k-1)/(k*z); y(enode,enode)=y(enode,enode)+1/(k*z)+(1-k)/(k*k*z); if (abs(k-1)<%如果为线路 y(hnode,hnode)=y(hnode,hnode)+b; y(enode,enode)=y(enode,enode)+b; end

if (abs(k-1)>%如果为变压器 y(hnode,hnode)= y(hnode,hnode)-b; end u=u+1; end [m,n]=size(y); disp(‘Y=’); disp(y(1:m,1:n)); clear; 算例 输入数据: 首端编号末端编号电阻电抗电纳/2 变比 2 3 1 4 2 0 0 5 3 0 0 1 2 1 1 3 0 1 输出数据: Y= - + + 0 0 + + 0 + 0 + + 0 0 + 0 0 + 0 0 0 0 0 0 + 0 0 经手算校验,程序结果准确。

matlab中的矩阵的基本运算命令范文

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

matlab实现导纳矩阵

Matlab形成节点导纳矩阵 学号:0214393 姓名:侯成滨 引言:电力网的运行状态可用节点方程或回路方程来描述。节点导纳矩阵是以系统元件的等值导纳为基础所建立的、描述电力网络各节点电压和注入电流之间关系的线性方程。导纳矩阵计算是电力系统分析最基本的计算。除它自身的重要作用之外,还是网损计算、静态安全分析、暂态稳定计算、小干扰静态稳定计算、短路计算、静态和动态等值计算的基础。本次任务是用计MATLAB语言编写程序求出潮流计算中要用到的导纳矩阵。为了确定结果是否正确,与一个手工计算比较运算结果,验证程序是否正确。 一、分析网络等效电路 此电力系统是一个6节点,7支路的电力网络。可以把系统等值网络画出来,如图1-1。 图1-1 某电力系统的等值网络 在计算电力系统网络的潮流分布时,我们需要把变压器转化成变压器的∏型等值电路来进行计算器等效导纳,根据等效电路的等效原则,可以把上图等效成如图1-2导纳等值网络图。对导纳等值网络图简化电路图,可以得到图1-3简化导纳等值电路图,方便潮流计算中导纳矩阵的计算。

图1-2电力系统网络的导纳等值电路 图1-3电力系统简化等值电路图 二、MATLAB程序形成导纳矩阵 导纳矩阵的计算总结如下: 1)导纳矩阵的阶数等于电力系统网络的节点数; 2)导纳矩阵各行非对角元素中非零元素的个数等于对应节点所连的不接地支路数;

3)导纳矩阵的对角元素,即各节点的自导纳等于相应节点所连之路的导纳之和: Y ij=y ij j∈i 其中,y ij为节点i与节点支路阻抗Z ij的倒数,符号j∈i表示j属于i或与i相连的j,即∑内只包括与节点i直接相连的节点j。当节点i有接地支路时,还应包括j=0的情况。 4)导纳矩阵非对角元素等于节点i与节点j之间的导纳的负数。 2.1 MATLAB程序及其运行 节点导纳程序如下: N=input('请输入节点数: N='); L=input('请输入支路数: L='); B=input('请输入支路信息: B='); X=input('请输入由节点号及其对地阻抗形成的矩阵:X='); Y=zeros(N); for n=1:N; if X(n,2)~=0; p=X(n,1); Y(p,p)=1./X(n,2); end end for n=1:L if B(n,6)==0 p=B(n,1);q=B(n,2); else p=B(n,2);q=B(n,1); end Y(p,q)=Y(p,q)-1./(B(n,3)*B(n,5)); Y(q,p)=Y(p,q); Y(q,q)=Y(q,q)+1./(B(n,3)*B(n,5)^2)+B(n,4)./2; Y(p,p)=Y(p,p)+1./B(n,3)+B(n,4)./2; end disp('导纳矩阵Y='); disp(Y) 运行结果如下:

MATLAB基本矩阵运算

Basic Matrix Operations 一、实验目的 1、掌握向量和矩阵的创建方法; 2、掌握向量和矩阵元素的索引方法; 3、掌握向量和矩阵的基本操作; 4、利用MATLAB编写程序进行矩阵运算。 二、基础知识 1、常见数学函数 函数名数学计算功能函数名数学计算功能 Abs(x) 实数的绝对值或复数的幅值floor(x) 对x朝-∞方向取整 Acos(x) 反余弦arcsin x gcd(m,n)求正整数m和n的最大公约数 acosh(x) 反双曲余弦arccosh x imag(x) 求复数x的虚部 angle(x) 在四象限内求复数 x 的相角lcm(m,n) 求正整数m和n的最小公倍数 asin(x) 反正弦arcsin x log(x) 自然对数(以e为底数) asinh(x) 反双曲正弦arcsinh x log10(x) 常用对数(以10为底数) atan(x) 反正切arctan x real(x) 求复数x的实部 atan2(x,y) 在四象限内求反正切Rem(m,n) 求正整数m和n的m/n之余数 atanh(x) 反双曲正切arctanh x round(x) 对x四舍五入到最接近的整数 ceil(x) 对x朝+∞方向取整sign(x) 符号函数:求出x的符号 conj(x) 求复数x的共轭复数sin(x) 正弦sin x cos(x) 余弦cos x sinh(x) 反双曲正弦sinh x cosh(x) 双曲余弦cosh x sqrt(x) 求实数x的平方根:x exp(x) 指数函数xe tan(x) 正切tan x fix(x) 对x朝原点方向取整tanh(x) 双曲正切tanh x 2、常量与变量 系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表: 特殊的变量、常量取值

节点导纳矩阵的建立

2 3 y y 如上图所示的简单电力系统中,网络各元件参数的标幺值如下: z12=0.10+j0.40 y120=y210=j0.01528 z13=j0.3,k=1.1 z14=0.12+j0.50 y140=y410=j0.01920 z24=0.08+j0.40 y240=y420=j0.01413 系统中节点1、2为PQ节点,节点3为PV节点,节点4为平衡节点。 节点导纳矩阵的运行程序如下: clc Clear disp('网络各元件参数用标幺值表示!!!'); N0=input('请输入节点数:N0='); n1=input('请输入支路数:n1='); l=input('请输入PQ节点的个数='); for m=1:l c(m)=input(['请输入第',num2str(m),'个PQ节点的节点号为:']); end t=input('请输入PV节点的个数='); for m=1:t c(m)=input(['请输入第',num2str(m),'个PV节点的节点号为:']); end b=input('请输入平衡节点号:b='); %%由支路参数形成矩阵B1 disp('各支路连接情况:') i=1; for m=1:n1 syms Y N p=input(['第',num2str(m),'条支路的起始节点']); q=input(['第',num2str(m),'条支路的终止节点']); mn=input(['第',num2str(m),'条支路是否有变压器(请输入‘Y’或‘N’)']); y=0;k=1;

if mn=='Y'; k=input('请输入变压器变比(标幺值):'); z=input(['请输入第',num2str(m),'条支路的线路阻抗']); else z=input(['请输入第',num2str(m),'条支路的线路阻抗:']); y=input(['请输入第',num2str(m),'条支路线路的对地阻抗:']); end B1(i,1)=p;B1(i,2)=q;B1(i,3)=z;B1(i,4)=y;B1(i,5)=1/k; i=i+1; end disp('由支路参数形成的矩阵B1') B1 %求节点导纳矩阵 Y=zeros(N0); e=zeros(1,N0); f=zeros(1,N0); for i=1:n1 p=B1(i,1);q=B1(i,2); 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)

Matlab常用函数数组及矩阵的基本运算

实验一 Matlab 常用函数、数组及矩阵的基本运算 一、 实验目的 1. 了解Matlab7.0软件工作界面结构和基本操作; 2. 掌握矩阵的表示方法及Matlab 常用函数; 3. 掌握数组及矩阵的基本运算. 二、 实验内容 1. 了解命令窗口(command widow)和变量空间(workspace)的作用,掌握清 除命令窗口(clc )和变量空间(clear)的方法.掌握查询函数(help)的方法. 2. 掌握保存和加载变量的方法. 加载变量:load 变量名. 3. 掌握掌握矩阵的表示方法: 给a,b,c 赋如下数据: ]6,46,23,4,2,6,3,8,0,1[,356838241248 7,278744125431-=??????????--=??????????=c b a 4. 求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果. 5. 将str1=electronic; str2 = information; str3 = engineering; 三个字符串连接 在一起成str = electronic information engineering. 6. 求矩阵a 的逆矩阵a -1,行列式计算。 (inv(a),det(a)) 三、 实验要求 1.上机操作,熟练掌握清除命令窗口和变量空间的方法、查询变量的方法、加载变量的方法。 2.第2道题请写出步骤。 3.对实验内容中第3-6项,写出指令,上机运行. 记录运行结果(数据)。 4.写出实验报告。 四、 实验结果 2. 用save 函数,可以将工作空间的变量保存成txt 文件或mat 文件等. 比如: save peng.mat p j 就是将工作空间中的p 和j 变量保存在peng.mat 中. 用load 函数,可以将数据读入到matlab 的工作空间中. 比如:load peng.mat 就是将peng.mat 中的所有变量读入matlab 工作空间中。

Matlab实验2-矩阵的基本运算

实验二、矩阵的基本运算 一、 问题 已知矩阵A 、B 、b 如下: ???????? ??????????-------------=0319481187638126542 86174116470561091143A ???????? ??????????------=503642237253619129113281510551201187851697236421B … []1187531=b 应用Matlab 软件进行矩阵输入及各种基本运算。 二、 实验目的: 熟悉Matlab 软件中的关于矩阵运算的各种命令 三、 预备知识 1、 、 2、 线性代数中的矩阵运算。 3、 本实验所用的Matlab 命令提示: (1)、矩阵输入格式:A =[a 11, a 12; a 21, a 22];b =初始值:步长:终值; (2)、求A 的转置:A'; (3)、求A 加B :A +B ; (4)、求A 减B :A -B ; (5)、求数k 乘以A :k*A ; (6)、求A 乘以B :A*B ; (7)、求A 的行列式:det (A ); (8)、求A 的秩:rank (A ); … (9)、求A 的逆:inv (A )或(A )-1; (10)、B 右乘A 的逆:B/A ; (11)、B 左乘A 的逆:A \B ; (12)、求A 的特征值:eig (A ); (13)、求A 的特征向量矩阵X 及对角阵D :[X ,D ]=eig (A ); ( (14)、求方阵A 的n 次幂:A ^n ;

(15)、A与B的对应元素相乘:A.*B; (16)、存储工作空间变量:save '文件名' '变量名'; (17)、列出工作空间的所有变量:whos; 四、《 五、实验内容与要求 1、输入矩阵A,B,b; >> A=[3,4,-1,1,-9,10;6,5,0,7,4,-16;1,-4,7,-1,6,-8;2,-4,5,-6,12,-8;-3,6,-7,8,-1,1;8,-4,9,1,3,0] B=[1 2 4 6 -3 2;7 9 16 -5 8 -7;8 11 20 1 5 5;10 15 28 13 -1 9;12 19 36 25 -7 23;2 4 6 -3 0 5] b=[1,3,5,7,8,11] | A = 3 4 -1 1 -9 10 6 5 0 7 4 -16 1 -4 7 -1 6 -8 2 -4 5 -6 12 -8 ^ -3 6 -7 8 -1 1 8 -4 9 1 3 0 B = 1 2 4 6 -3 2 7 9 16 -5 8 -7 ^ 8 11 20 1 5 5 10 15 28 13 -1 9 12 19 36 25 -7 23 2 4 6 - 3 0 5 b = ) 1 3 5 7 8 11 2、作X21=A'、X22=A+B、X23=A-B、X24=AB; >> X21=A' X22=A+B X23=A-B % X24=A*B X21 = 3 6 1 2 -3 8 4 5 -4 -4 6 -4 -1 0 7 5 -7 9 ; 1 7 -1 -6 8 1 -9 4 6 12 -1 3 10 -16 -8 -8 1 0 X22 = 4 6 3 7 -12 12 (

matlab中矩阵基本运算命令.docx

1.1矩阵的表示 1.2矩阵运算 1.2.14特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k)% 以向量 v 的元素作为矩阵 X 的第 k 条对角线元素,当 k=0 时, v 为 X 的主对角线;当 k>0 时,v 为上方第 k 条对角线;当 k<0 时, v 为下方第 k 条对角线。 X = diag(v)% 以 v 为主对角线元素,其余元素为 0 构成 X。 v = diag(X,k)%抽取 X 的第 k 条对角线元素构成向量 v。k=0:抽取主对角线元素; k>0 :抽取上方第 k 条对角线元素;k<0 抽取下方第 k 条对角线元素。 v = diag(X)% 抽取主对角线元素构成向量 v。 2.上三角阵和下三角阵的抽取 函数tril% 取下三角部分 格式L = tril(X)%抽取 X 的主对角线的下三角部分构成矩阵L L = tril(X,k)% 抽取 X 的第 k 条对角线的下三角部分; k=0 为主对角线; k>0 为主对角线以上; k<0 为主对角线以下。 函数triu% 取上三角部分 格式U = triu(X)%抽取 X 的主对角线的上三角部分构成矩阵U U = triu(X,k)% 抽取 X 的第 k 条对角线的上三角部分; k=0 为主对角线; k>0 为主对角线以上; k<0 为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape,”前者主要针对 2 个已知维数矩阵之间的变维操作;而后者是对 于一个矩阵的操作。 (1)“:”变维 (2)Reshape 函数变维 格式 B = reshape(A,m,n)%返回以矩阵 A 的元素构成的 m×n 矩阵 B B = reshape(A,m,n,p,)% 将矩阵 A 变维为 m×n×p× B = reshape(A,[m n p])%同上 B = reshape(A,siz)% 由 siz 决定变维的大小,元素个数与 A 中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n)% 将矩阵 A 复制 m×n 块,即 B 由 m×n 块 A 平铺而成。 B = repmat(A,[m n])%与上面一致 B = repmat(A,[m n p]) %B 由 m×n×p× 个 A 块平铺而成 repmat(A,m,n)%当 A 是一个数 a 时,该命令产生一个全由 a 组成的 m×n 矩阵。 1.3矩阵分解 1.3.1Cholesky 分解 函数chol 格式R = chol(X)% 如果 X 为 n 阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足 R'*R = X ;若 X 非正定,则产生错误信息。 [R,p] = chol(X)% 不产生任何错误信息,若X 为正定阵,则p=0 ,R 与上相同;若X 非正定,则p 为正整数, R 是有序的上三角阵。 1.3.2 LU 分解

基于节点导纳矩阵的短路电流计算

基于节点导纳矩阵的短路电流计算 摘要:随着电网容量的扩大以及区域电网间耦合程度的加深,电力系统的短路电流水平也迅速增加,过高的短路电流水平已经成为了威胁电网安全稳定运行的重大隐患。安装故障限流器是限制短路电流的有效手段,在限流效果、对系统稳定性的影响等方面均有较大优势。但考虑到故障限流器的安装成本与其安装个数和容量等因素均有关,出于经济性考虑,在保证作用范围的前提下,选择最优的安装位置和容量大小是现阶段研究关于短路限流器实际应用的关键。通过对网状电力系统的结构与参数构建相应的节点阻抗矩阵数学模型,并在此基础上离线计算各母线节点短路后的节点短路电流,将这些短路电流进行比较,获得最大短路电流母线。 关键词:短路电流计算;节点导纳矩阵 0 引言 过高的短路电流水平不可避免地威胁到系统的安全,更甚者可能导致大规模系统解列等严重故障的发生。随着国民经济的发展和人民生活水平的提高,我国大部分一线城市,尤其以广州、深圳、上海等经济发展迅猛的城市,电网容量的扩大带来的短路电流超标已成为电网运营不得不面对的重要问题。早在上世纪末期,我国就已经位列全球电力生产国家与消耗国家之首。 在进行短路限流器配置前,需要对现有系统进行离线短路计算。首先,在未知短路类型前,我们先以对称三相短路进行计算,所有不对称三相短路均能归结为不对称三相短路的计算;其次,考虑到断路器是在短路发生时动作,因此,本文的短路电流计算均为短路发生瞬间的计算,在系统电源基础上,三个发电机的瞬时电抗的标幺值假定为0.1;此外,本文进行计算时,均采用潮流计算的数据作为短路计算基础,忽略对地支路以及负荷电流带来的微小影响等,使计算结果步骤清晰且方便实用。 1节点导纳矩阵的LDU分解 短路计算的第一步是建立电力系统的节点导纳矩阵。考虑到实际情况,离线电力系统的节点导纳矩阵获取要比节点阻抗矩阵简单得多,根据网络接线图和支路参数能直观地获取节点导纳矩阵,由于节点导纳矩阵的稀疏性和对称性,计算基础采用节点导纳矩阵也利于后期的修改与迭代。 在获取节点导纳矩阵后,需要将其转变成其逆矩阵以得到节点导纳矩阵。短路电流的计算一般是通过将故障节点注入等效故障电流来产生等效故障电压分量后,将故障电压分量和原电源节点产生的正常电压分量合成获得,而故障电压分量与节点阻抗矩阵直接相关。求解节点阻抗矩阵的方法有物理意义直接求解、支路追加法、节点导纳矩阵直接消元求逆、LDU三角分解等。考虑到实际电网的维度较高导致的矩阵直接求逆带来的麻烦,采用LDU三角分解能准确且快速地获得对应的节点导纳矩阵。 LDU三角分解获得节点阻抗矩阵包括以下步骤: 根据节点导纳矩阵Y为非奇异矩阵的特性,可以将其分解为单位下三角矩阵L、对角线矩阵D和单位上三角矩阵U的乘积。对已获取的节点导纳矩阵Y进行LDU三角分解,对应公式如式(1): (1) 由于节点阻抗矩阵与节点导纳矩阵满足,为单位矩阵,展开为: (2)

Matlab矩阵的简单操作

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素

节点导纳矩阵及潮流计算

目录 摘要 (2) 1任务及题目要求 (2) 2原理介绍 (3) 2.1节点导纳矩阵 (3) 2.2牛顿-拉夫逊法 (4) 2.2.1牛顿-拉夫逊法基本原理 (4) 2.2.2牛顿--拉夫逊法潮流求解过程介绍 (6) 3分析计算 (10) 4结果分析 (14) 5总结 (15) 参考资料 (16)

节点导纳矩阵及潮流计算 摘要 电力网的运行状态可用节点方程或回路方程来描述。节点导纳矩阵是以系统元件的等值导纳为基础所建立的、描述电力网络各节点电压和注入电流之间关系的线性方程。潮流计算是电力系统分析中的一种最基本的计算,它的任务是对给定的运行条件确定系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布及功率损耗等。本文就节点导纳矩阵和潮流进行分析和计算。 1任务及题目要求 题目初始条件: 如图所示电网。 其元件导纳参数为:y 12=0.5-j3, y 23=0.8-j4, y 13=0.75-j2.5 任务及要求:1)根据给定的运行条件,确定图2所示电力系统潮流计算时各节点的类型和待求量; 2)求节点导纳矩阵Y ; 1∠00 2+j1

3)给出潮流方程或功率方程的表达式; 4)当用牛顿-拉夫逊法计算潮流时,给出修正方程和迭代收敛条件。 2原理介绍 2.1节点导纳矩阵 节点导纳矩阵既可根据自导纳和互导纳的定义直接求取,也可根据电路知识中找出改网络的关联矩阵,在节点电压方程的矩阵形式进行求解。本章节我们主要讨论的是直接求解导纳矩阵。根据节点电压方程章节我们知道,在利用电子数字计算机计算电力系统运行情况时,多采用IYV 形式的节点方程式。其中阶数等于电力网络的节点数。从而可以得到n 个节点时的节点导纳矩阵方程组: 11112211211222221122n n n n nn n Y Y Y n Y Y Y n Y Y Y n +++=??+++=? ???+++=? V V V I V V V I V V V I (2-1) 由此可以得到n 个节点导纳矩阵: 11121221 22 12n n n n nn Y Y Y Y Y Y Y Y Y Y ?? ? ?= ? ??? (2-2) 它反映了网络的参数及接线情况,因此导纳矩阵可以看成是对电力网络电气特性的一种数学抽象。由导纳短阵所联系的节点方程式是电力网络广泛应用的一种数学模型。 通过上面的讨论,可以看出节点导纳矩阵的有以下特点:

matlab matrix 矩阵基本运算

第1章矩阵及其基本运算 MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。 1.1 矩阵的表示 1.1.1 数值矩阵的生成 1.实数值矩阵输入 MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] Time = 11 12 1 2 3 4 5 6 7 8 9 10 >> X_Data = [2.32 3.43;4.37 5.98] X_Data = 2.43 3.43 4.37 5.98 >> vect_a = [1 2 3 4 5] vect_a = 1 2 3 4 5 >> Matrix_B = [1 2 3; >> 2 3 4;3 4 5] Matrix_B = 1 2 3 2 3 4 3 4 5 >> Null_M = [ ] %生成一个空矩阵 2.复数矩阵输入 复数矩阵有两种生成方式: 第一种方式 例1-1 >> a=2.7;b=13/25; >> C=[1,2*a+i*b,b*sqrt(a); sin(pi/4),a+5*b,3.5+1] C= 1.0000 5.4000 + 0.5200i 0.8544 0.7071 5.3000 4.5000

相关主题
文本预览
相关文档 最新文档