1、 1)语言简洁紧凑,语法限制不严,程序设计自由度大,可移植性好。Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入输出和面向对象编程特点。Matlab以矩阵为基础,不需要预先定义变量和矩阵(包括数组)的维数,可以方便地进行矩阵的算术运算、关系运算和逻辑运算等。而且Matlab有特殊矩阵专门的库函数,可以高效地求解诸如信号处理、图像处理、控制等问题。2)运算符、库函数丰富Matlab的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序,每一个工具箱都是为某一类学科专业和应用而定制的。3)MATLAB既具有结构化的控制语句(如for循环,while循环
2、,break语句和if语句),又有面向对象编程的特性。4)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。5)图形功能强大Matlab 具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且可以对图形进行标注和打印。6)界面友好、编程效率高Matlab程序书写形式自由,被称为“草稿式”语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写Matlab程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。7)源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和
3、工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。三、程序主框图、子框图及主要数据变量说明算法说明:利用节点阻抗矩阵计算短路电流如图所示,假定系统中的节点f经过过渡阻抗发生短路。对于正常状态的网络而言,发生短路相当于在故障节点f增加了一个注入电流 。因此,网络中任一节点i的电压可表示为: 由式可见,任一节点电压i的电压都由两项叠加而成。第一项是当 时由网络内所有电源在节点i产生的电压,也就是短路前瞬间正常运行状态下的节点电压,记为 。第二项是当网络中所有电流源都断开,电势源都短接时,仅仅由短路电流 在节点i产生的电压。这两个分量的叠加,就等于发生短路后节
4、点i的实际电压,即公式二公式二也适用于故障节点f,于是有是故障节点f的自阻抗,也称输入阻抗。方程式含有两个未知量 ,根据故障的边界条件:由以上两个方程式解出:而各节点初始电压 求出后,节点i电压为了得到精确计算结果,本程序计算过程中,使用精确算法。任一支路的电流对于非变压器支路,令k=1即可。程序主框图:其中计算模块包含一个子流程图:主要数据变量说明:程序中:n 节点数f 短路节点序号z 任意节点间阻抗矩阵g_z 发电机电抗矩阵g s 发电厂额定容量矩阵byqy 双绕组变压器参数矩阵byqy3 三绕组变压器参数矩阵sz 系统参数矩阵Z 网络节点阻抗矩阵Y 网络节点导纳矩阵If 短路点电流V 网
5、络节点电压矩阵I 网络支路电流矩阵四、关键程序及程序注释for i=1:n %以下生成节点导纳矩阵 for j=1:n if z(i,j)=0 Y(i,i)=Y(i,i)+1/z(i,j); endend%考虑发电机参数影响for pp=1:p i=gz(pp,1); Y(i,i)=Y(i,i)+1/sqrt(-1)/gz(pp,2);%考虑系统参数影响for ss=1:s i=sz(ss,1); Y(i,i)=Y(i,i)+1/sqrt(-1)/sz(ss,2);n %计算非对角线元素 for j=i+1: if z(i,j)=0 Y(i,j)=0; else Y(i,j)=-1/z(i,j
6、); Y(j,i)=Y(i,j); %考虑双绕组变压器参数影响for qq=1:q2 i=byqy(qq,1); j=byqy(qq,2); Y(i,i)=Y(i,i)+1/sqrt(-1)/byqy(qq,4); Y(j,j)=Y(j,j)+1/sqrt(-1)/byqy(qq,4); Y(i,j)=Y(i,j)-1/sqrt(-1)/byqy(qq,4);%考虑三绕组变压器参数影响for qq3=1:q3 i=byqy3(qq3,1); j=byqy3(qq3,2); p=byqy3(qq3,3); q=byqy3(qq3,4); Y(i,i)=Y(i,i)+1/sqrt(-1)/byqy
7、3(qq3,8); Y(j,j)=Y(j,j)+1/sqrt(-1)/byqy3(qq3,9); Y(p,p)=Y(p,p)+1/sqrt(-1)/byqy3(qq3,10); Y(q,q)=Y(q,q)+(1/byqy3(qq3,8)+1/byqy3(qq3,9)+1/byqy3(qq3,10)/1i; Y(i,q)=Y(i,q)-1/sqrt(-1)/byqy3(qq3,8); Y(j,q)=Y(j,q)-1/sqrt(-1)/byqy3(qq3,9); Y(p,q)=Y(p,q)-1/sqrt(-1)/byqy3(qq3,10); Y(q,i)=Y(i,q); Y(q,j)=Y(j,q)
8、; Y(q,p)=Y(p,q);Z=inv(Y);%计算短路点电流If=1/Z(f,f);%计算各节点电压n V(i)=1-If*Z(i,f);n %计算各支路电流 I(i,j)=(V(i)-V(j)/z(i,j);五、输入参数,以及输出计算结果与分析算例接线图1输入节点总数n=10短路点序号f=4发电机台数p=4双绕组变压器数q2=2系统数s=1三绕组变压器数q3=1线路数x=5具体参数输入2输出数据及分析短路电流大小:If= -6.412600Y矩阵如下32.619048 -33.333333 0.000000 0.000000 0.000000 0.000000 0.000000 0.0
9、00000 0.000000 0.000000 -33.333333 28.797508 2.666667 1.869159 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.666667 -2.666667 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.869159 0.000000 -8.790706 6.921547 0.000000 0.000000 0.000000 0.000000 0.000000 0
10、.000000 0.000000 0.000000 6.921547 -20.112996 6.736451 6.454998 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.736451 -98.981476 82.245025 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 6.454998 82.245025 -95.298337 6.598314 0.000000 0.000000 0.000000 0.000000 0.000
11、000 0.000000 0.000000 0.000000 6.598314 -10.234677 1.818182 1.818182 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.818182 -2.651515 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.818182 0.000000 -2.651515Zif如下0.516426 0.535359 0.197708 0.106525 0.057251
12、0.060176 0.051292 0.035171 0.035171各节点电压为:U 1 = 0.316899 U 2 = 0.331537 U 3 = 0.331537 U 4 = 0.070494 U 5 = 0.000000 U 6 = 0.462564 U 7 = 0.435105 U 8 = 0.518503 U 9 = 0.669831 U 10 = 0.669831各支路电流I为0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.
13、000000 0.000000 0.000000 -0.487930 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.487930 0.000000 3.116039 2.808605 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -3.116039 0.000000 -2.258322 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -2
14、.808605 2.258322 0.000000 0.550282 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.550282 0.000000 0.000000 0.000000 实验的结果比较理想,与实际所算出的结果只有微小的误差,已经足以忽略不计了。六、设计体会通过对这次电力系统分析课程设计,我对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。刚开始进行的时候,感觉到根本无从下手,难度有点偏大,但是经过老师和同学的指导,我从图书馆借来相关的参考书来进行学习。Matlab虽
15、然之前做电机课设的时候接触过,但是那次我用的是仿真功能,而这次用的是编程功能,在经过看书和实践操作后,我从人机界面的设计,到手动输入,到Y阵的生成,在到保存文件为TXT格式,每一步都要新的学习,每一步都是新的尝试。在后期的调试,将各个部分组成一个系统的程序,兼顾各个部分的兼容性,可以说实在一次次的尝试与失败中走过来的。在最后终于成功的那一刻,感觉之前的付出都是值得的。能够完成这次课程设计离不开老师和同学的帮助,我也会在以后的学习生活中更加努力。七、参考文献 【1】电力系统分析(上册) 何仰赞 温增银 ,华中科技大学出版社,2002【2】MATLAB GUI设计学习手册 罗华飞 ,北京航空航天大
16、学, 2011【3】MATLAB 7.6从入门到精通 张琨 毕靖 丛滨 ,电子工业出版社, 2009【4】精通MATLAB 葛哲学 ,电子工业出版社, 2008八、附录(主程序及其注释)Sb=100;Vb=115;n=str2num(get(handles.jiedian,String);f=str2num(get(handles.duanludian,p=str2num(get(handles.fdj,q2=str2num(get(handles.byq2,s=str2num(get(handles.xt,q3=str2num(get(handles.byq3,x=str2num(get(h
17、andles.xl,%手动输入F=zeros(10,10);F=str2num(get(handles.jdz,G=zeros(10,10);G=str2num(get(handles.fdjz,H=zeros(10,10);H=str2num(get(handles.fdjs,% I=zeros(10,10);% I=str2num(get(handles.fdjv,J=zeros(10,10);J=str2num(get(handles.byq2z,K=zeros(10,10);K=str2num(get(handles.byqz3,L=ones(10,10);L=str2num(get(
18、handles.xtz,global imagz;global z;global gz;global gs;global byqy;global byqy3;global sz;imagz=zeros(n,n);z=zeros(n,n);gz=zeros(p,2);gs=zeros(p,1);byqy=zeros(q2,4);byqy3=zeros(q3,10);sz=zeros(s,2);%标幺化线路阻抗for nn=1:x i=F(nn,1); j=F(nn,2); imagz(i,j)=F(nn,3)*F(nn,4)*Sb/Vb2; imagz(j,i)=imagz(i,j);z=sqr
19、t(-1)*imagz;%标幺化发电机参数 gz(pp,1)=G(pp,1); gz(pp,2)=G(pp,2)/H(pp,1)*Sb;%标幺化变压器参数 byqy(qq,1)=J(qq,1); byqy(qq,2)=J(qq,2); byqy(qq,4)=J(qq,4)/100*Sb/J(qq,3);%标幺化三绕组变压器参数 byqy3(qq3,1)=K(qq3,1); byqy3(qq3,2)=K(qq3,2); byqy3(qq3,3)=K(qq3,3); byqy3(qq3,4)=K(qq3,4); byqy3(qq3,8)=1/2*(K(qq3,8)+K(qq3,9)-K(qq3,1
20、0)/100*Sb/K(qq3,5); byqy3(qq3,9)=1/2*(K(qq3,8)+K(qq3,10)-K(qq3,9)/100*Sb/K(qq3,6); byqy3(qq3,10)=1/2*(K(qq3,10)+K(qq3,9)-K(qq3,8)/100*Sb/K(qq3,7);%标幺化系统阻抗 sz(ss,1)=L(ss,1); sz(ss,2)=Sb/L(ss,2);end Y=zeros(n,n); %节点导纳矩阵V=zeros(n,1); %节点电压矩阵I=zeros(n,n); %支路电流矩阵%全部求模,便于显示Y=imag(Y);Z=imag(Z);If=imag(If
21、);I=imag(I);%显示电流、电压等结果set(handles.If,num2str(If);set(handles.dianliu,Data,I);set(handles.dianya,V);set(handles.y,Y);set(handles.z,Z);q=str2num(get(handles.byq2,global gv;ge=gz gs gv;If=str2num(get(handles.If,I=get(handles.dianliu,);V=get(handles.dianya,Y=get(handles.y,Z=get(handles.z,filename, pathname = uiputfile(*.txt,txt-files(*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1