电力系统稳态分析课程设计——Matlab程序设计Matlab的基本知识MATLAB是MathWorks公司开发的科学与工程计算软件,它以矩阵运算为基础,把计算、绘图及动态系统仿真等功能有机地融合在一起。同时,它又具有程序设计语言的基本特征。目前,MATLAB在工程计算与数值分析、控制系统设计与仿真、信号处理、图像处理、金融建模设计与分析等学科领域都有着十分广泛的应用。一、MATLAB的操作界面1.命令窗口(CommandWindow)用于输入命令并显示除图形以外的所有执行结果。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如:x=720,y=86x=720y=86x=720;y=86y=86如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如:z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+…1/(1*2*3*4*5)2.工作空间窗口工作空间(Workspace)是MATLAB用于存储各种变量和结果的内存空间。3.当前目录窗口当前目录(CurrentDirectory)是指MATLAB运行时的工作目录,只有在当前目录或搜索路径下的文件、函数才可以被运行或调用。如果没有特殊指明,数据文件也将存放在当前目录下。5.命令历史窗口自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。6.Start菜单二、MATLAB的变量和数据操作1.变量命名在MATLAB7.X中,变量名是以字母开头,后接字母、数字或下画线的字符序列,最多63个字符。例如x、x_1、xy12在MATLAB中,变量名区分字母的大小写。例如addr、Addr和ADDR表示3个不同的变量。2.赋值语句MATLAB赋值语句有两种格式:(1)变量=表达式;(2)表达式在第1种语句形式下,MATLAB将右边表达式的值赋给左边的变量,而在第2种语句形式下,将表达式的值赋给MATLAB的预定义变量ans。3.常用的预定义变量ans:计算结果的默认赋值变量pi:圆周率近似值NaN:非数i、j:虚数单位4.变量的查看、修改与清除(1)变量编辑器(2)clear——清除所有变量5.用“format”命令设置数据输出格式format格式符“format”命令只影响数据输出格式,而不影响数据的计算和存储。例如输入为x=[4/31.2345e-6]在各种不同的格式符下的输出为短格式(short):1.33330.0000长格式(long):1.333333333333330.000001234500006.常用的计算命令sin、cos:三角函数(弧度)conj:求共轭abs:求幅值angle:求角度(弧度)real:取实部imag:取虚部矩阵的表示与运算一、矩阵的生成在MATLAB中,生成矩阵时无须对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容自动进行配置。1.直接输入法将矩阵的所有元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。矩阵元素也可以是表达式,MATLAB将自动计算结果。例如:B=[10,5-sqrt(7),sin(pi/2);7,4*8,abs(-7)]在MATLAB中,矩阵元素可以是复数。例如建立复数矩阵:B=[1,2+7i,5*sqrt(2)*i;3,2/5,3.5+6i]也可以分别建立实部矩阵和虚部矩阵,再合起来构成复数矩阵。例如:R=[1,2,3;4,5,6];I=[1.1,2.2,3.3;4.4,5.5,6.6];RI=R+i*I2.利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件(1)启动有关文本编辑程序或MATLAB的M-file编辑器,并输入待建矩阵:mydata=[1.11.21.31.41.51.61.71.81.9;2.12.22.32.42.52.62.72.82.9;3.13.23.33.43.53.63.73.83.9];(2)把输入的内容存盘(设文件名为mymat.m)。(3)在MATLAB命令窗口中输入mymat,即运行该M文件,就会自动建立一个名为mydata的矩阵,可供以后使用。3.利用已建好的矩阵建立更大的矩阵4.建立矩阵相关的命令冒号表达式a:b:c其中,a为初始值,b为步长,c为终止值。冒号表达式可产生一个由a开始到c结束,以步长b自增的行向量。zeros(m):建立mxm的零矩阵zeros(m,n):建立mxn的零矩阵zeros(size(A)):产生与矩阵A同样大小的零矩阵diag(t):产生以向量t为对角元的对角阵二、矩阵元素的操作1.A(m,n)表示取A矩阵第m行、第n列的元素,A(m,:)表示取A矩阵第m行的全部元素,A(:,n)表示取A矩阵的第n列全部元素。2.A(m1:m2,:)表示取A矩阵第m1~m2行的全部元素,A(:,n1:n2)表示取A矩阵第n1~n2列的全部元素,A(m1:m2,n1:n2)表示取A矩阵第m1~m2行内,并在第n1~n2列中的所有元素。3.A(t1,t2)表示A矩阵t1向量的元素所在行,t2向量的元素所在列的元素。4.利用空矩阵删除矩阵的元素在MATLAB中,空矩阵是指无任何元素的矩阵,表示形式为[]。将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。三、矩阵的运算1.基本算术运算MATLAB的基本算术运算有:+(加)、−(减)、*(乘)、/(右除)、\(左除)、^(乘方)。•矩阵除法在MATLAB中,有两种矩阵除法运算:\和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。A\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。2.点运算两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。点运算符有.*、./、.\和.^点乘(.*)是矩阵元素对应相乘四、矩阵相关函数size(A):获取矩阵A的行数和列数(向量)size(A,n):获取矩阵A第n维数A’:矩阵A的转置inv(A):求A矩阵的逆(逆存在)max(t)、min(t):求向量t的最大值(幅值)find:获取满足逻辑表达式的元素位置MATLAB程序设计一、M文件M文件可以根据调用方式的不同分为两类:命令文件(ScriptFile)和函数文件(FunctionFile)。(1)命令文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可返回输出参数。(2)命令文件对MATLAB工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。(3)命令文件可以直接运行,在MATLAB命令窗口输入命令文件的名字,就会顺序执行命令文件中的命令,而函数文件不能直接运行,而要以函数调用的方式来调用它。二、运算符1.关系运算(小于)、=(小于或等于)、(大于)、=(大于或等于)、==(等于)、~=(不等于)。(1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素的比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。2.逻辑运算MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。此外,MATLAB还提供了4个逻辑运算函数:and(a,b)、or(a,b)、not(a)和xor(a,b)。三、程序语法1.选择语句(1)单分支if语句:if条件语句块end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。(2)双分支if语句:if条件语句块1else语句块2end当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。(3)多分支if语句:if条件1语句块1elseif条件2语句块2……elseif条件n语句块nelse语句块n+1end2.循环语句(1)for语句for语句的格式为:for循环变量=表达式1:表达式2:表达式3循环体语句end其中,表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。(2)while语句while语句的一般格式为while(条件)循环体语句end(3)break语句和continue语句break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。四、函数文件1.函数文件的基本结构函数文件由function语句引导,其基本结构为:function输出形参表=函数名(输入形参表)函数体语句end其中,以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。当输出形参多于一个时,则应该用方括号括起来。(1)函数文件名通常由函数名再加上扩展名.m组成,不过函数文件名与函数名也可以不相同。当两者不同时,MATLAB将忽略函数名而确认函数文件名,因此,调用时使用函数文件名。(2)如果在函数文件中插入了return语句,则执行到该语句就结束函数的执行,程序流程转至调用该函数的位置。2.函数调用函数调用的一般格式为:[输出实参表]=函数名(输入实参表)函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。五、书写风格1.写成函数文件2.功能块程序可分解为几个功能块实现,可创建过程函数或过程函数文件3.注释(%)关键的语句、功能块必须添加注释,包括参数说明、公式以及判定条件4.语句对齐及层次if-end,while-end,for-end对齐下级语句缩进一个tabMATLAB程序调试及潮流程序注意事项一、程序错误应用程序的错误有两类,一类是语法错误,另一类是运行时的错误。语法错误包括语法或文法的错误,如函数名拼写错、表达式书写错、数据类型错误等。MATLAB能够检查出大部分的语法错误,给出相应错误信息,并标出错误在程序中的行号。程序运行时的错误是指程序的运行结果有错误,这类错误也称为程序逻辑错误。MATLAB系统对逻辑错误是无能为力的,不会给出任何提示信息。这时可以通过一些调试手段来发现程序中的逻辑错误,最常见的办法是通过获取中间结果的方式来获取错误可能发生的程序段,以便进一步分析错误的原因。二、调试功能简介(1)Set/ClearBreakpoint:设置或清除断点。(2)ClearBreakpointsinAllFiles:清除所有断点。(3)Step:单步运行。每单击一次,程序运行一次,但不进入函数。(4)StepIn:单步运行。遇到函数时进入函数内,仍单步运行。(5)StepOut:停止单步运行。如果是在函数中,跳出函数;如果不在函数中,直接运行到下一个断点处。(6)Continue:继续执行,执行至下一个断点。(7)ExitDebugMode:退出调试模式三、潮流程序流程四、推荐数据结构feval命令:调用指定的函数(用于获取网络参数与初值)(1)busdatabustypePdQdVmVabasekV(2)branchdatafbustbusrxbratio五、变压器的处理