1、2023-5-5电气工程 MATLAB在电气工程中的应用在电气工程中的应用2023-5-5电气工程MATLAB简介简介对一般的计算语言来说,必须采用两层循环才能得到结果对一般的计算语言来说,必须采用两层循环才能得到结果:var i,j:integer;/用用pascal语言语言x,y:array 0.10 of array 0.20 of real;const m=10;n=20;begin for i:=1 to m do for j:=1 to n do yij:=exp(xij)*sin(xij);end;MATLAB只用一条指令只用一条指令:y=exp(-2*x).*sin(5*x)。
2、)5sin(2xeyx例例:已知已知x是是(nm)维数组,计算维数组,计算:2023-5-5电气工程MATLAB简介简介例:对于求解代数方程问题:例:对于求解代数方程问题:bAx 当当A的列数大于行数时,有无数解。的列数大于行数时,有无数解。MATLAB只用一条指令只用一条指令:x=Ab。Abx 当当A是标量时:是标量时:当当A是非奇异矩阵时:是非奇异矩阵时:bAx1当当A是行数大于列数的满秩阵时,是行数大于列数的满秩阵时,称超定方程组或矛盾方程组:称超定方程组或矛盾方程组:bAAAxTT1)(2023-5-5电气工程MATLAB简介简介在在MATLAB中仅用以下指令:中仅用以下指令:ezsu
3、rf(y/(1+x2+y2)221yxyz例:绘制二元函数例:绘制二元函数曲面:曲面:2023-5-5电气工程MATLAB简介简介lMATLAB是专门为科学计算而设计的,具有强大数据是专门为科学计算而设计的,具有强大数据图示功能的工具软件。图示功能的工具软件。l语法结构简明、数值计算高效、图形功能完备、易学语法结构简明、数值计算高效、图形功能完备、易学易用。易用。l在矩阵代数、数值计算、数字信号处理、震动理论、在矩阵代数、数值计算、数字信号处理、震动理论、神经网络控制、动态仿真、建模、系统识别、控制系神经网络控制、动态仿真、建模、系统识别、控制系统、非线性系统、模糊控制、优化技术、通讯系统、统
4、、非线性系统、模糊控制、优化技术、通讯系统、财政金融等领域有着广泛应用。财政金融等领域有着广泛应用。2023-5-5电气工程教学内容教学内容n第一章第一章 MATLAB基础基础n第二章第二章 MATLAB基本语法基本语法n第三章第三章 数组及矩阵运算数组及矩阵运算n第四章第四章 数值计算数值计算n第五章第五章 符号运算符号运算n第六章第六章 MATLAB计算结果可视化计算结果可视化n第七章第七章 MATLAB在系统仿真中的应用在系统仿真中的应用n第八章第八章 MATLAB在信号处理中的应用在信号处理中的应用2023-5-5电气工程通过本课程学习,使学生掌握利用通过本课程学习,使学生掌握利用MA
5、TLAB进行进行数值计算的基本方法,熟悉数值计算的基本方法,熟悉MATLAB编程环境、语言编程环境、语言语法、程序结构、编程及调试技术,掌握语法、程序结构、编程及调试技术,掌握MATLAB中中M文件、文件、M函数编写方法及调试技术、函数编写方法及调试技术、MATLAB的绘的绘图和图形控制函数等内容,上机练习图和图形控制函数等内容,上机练习MATLAB数值解数值解算方法,具备上机操作的技能,学习算方法,具备上机操作的技能,学习MATLAB在电气在电气工程学科中的建模与分析方法,为后续专业课程学习工程学科中的建模与分析方法,为后续专业课程学习奠定基础。奠定基础。课程任务课程任务2023-5-5电气
6、工程考试形式考试形式考试方式:考试方式:1、平时成绩、平时成绩(出勤率出勤率+课堂习题报告课堂习题报告)2、考试、考试2023-5-5电气工程MATLAB的发展历程的发展历程lMATLAB 是是Matrix Laboratory的缩写。的缩写。20世纪世纪70年代由年代由 Cleve Moler博士用博士用FORTRAN语言开发了最初版本的矩阵分析软件。语言开发了最初版本的矩阵分析软件。l80 年代初期,由年代初期,由 Moler、John Little和和Steve Bangert采用采用 C 语言改语言改写了写了 MATLAB 的内核。并于的内核。并于1984 年成立了年成立了 Mathw
7、orks 软件开发公软件开发公司,将司,将 MATLAB 正式推向市场。正式推向市场。l1988年推出了年推出了MATLAB 3.1(DOS)版本。)版本。l1993年,推出了应用于年,推出了应用于 Windows 操作系统的操作系统的 MATLAB 4.0 版本。版本。l1996年年12月,推出月,推出MATLAB 5.0 版本版本(Release 8)。l1997年年5月,推出月,推出 MATLAB 5.1 版本版本(Release 9)。l1998年年3月,推出月,推出 MATLAB 5.2 版本版本(Release 10)。l1999年年11月,推出月,推出 MATLAB 5.3 版本
8、版本(Release 11)。l2000年年11月,推出月,推出 MATLAB 6.0 版本版本(Release 12)。l2001年年6月,推出月,推出 MATLAB 6.1 版本版本(Release 12.1)。l2002年年7月,推出月,推出 MATLAB 6.5 版本版本(Release 13)。2023-5-5电气工程MATLAB的发展历程的发展历程l2004 年年6月,推出月,推出 MATLAB 7.0 版本版本(Release 14)。l2004 年年11月,推出月,推出 MATLAB 7.0.1 版本版本(Release 14SP1)。l2005 年年3月,推出月,推出 MAT
9、LAB 7.0.4 版本版本(Release 14SP2)。l2005 年年9月,推出月,推出 MATLAB 7.1 版本版本(Release 14SP3)。l2006 年年3月,推出月,推出 MATLAB 7.2 版本版本(Release 2006a)。l2006 年年9月,推出月,推出 MATLAB 7.3 版本版本(Release 2006b)。l2007 年年3月,推出月,推出 MATLAB 7.4 版本版本(Release 2007a)。l2007 年年9月,推出月,推出 MATLAB 7.5 版本版本(Release 2007b)。l2008 年年3月,推出月,推出 MATLAB
10、7.6 版本版本(Release 2008a)。l2008 年年10月,推出月,推出 MATLAB 7.7 版本版本(Release 2008b)。l2009 年年3月,推出月,推出 MATLAB 7.8 版本版本(Release 2009a)。l2009 年年9月,推出月,推出 MATLAB 7.9 版本版本(Release 2009b)。l2010 年年3月,推出月,推出 MATLAB 7.10 版本版本(Release 2010a)。2023-5-5电气工程MATLAB的主要特点的主要特点 MATLAB 的基本单位为矩阵。的基本单位为矩阵。MATLAB 语言以解释方式工作。语言以解释方式
11、工作。具有非常友好的人机界面。具有非常友好的人机界面。具有强大的作图和数据可视化功能具有强大的作图和数据可视化功能.智能化程度高。智能化程度高。具有极强的可扩展性。具有极强的可扩展性。2023-5-5电气工程第一章第一章 MATLAB 基础基础2023-5-5电气工程 1.1 MATLAB的基本组成的基本组成MATLAB软件主要由主包、软件主要由主包、Simulink 动态系统仿动态系统仿真和工具箱(真和工具箱(Toolbox)三大部分组成。)三大部分组成。*主包包括了主包包括了 MATLAB 语言、数学函数库、工语言、数学函数库、工作环境、图形处理系统和应用程序接口五部分。作环境、图形处理系
12、统和应用程序接口五部分。*Simulink是用于系统仿真的交互式图形系统,是用于系统仿真的交互式图形系统,是是MATLAB非常重要的共生产品。非常重要的共生产品。2023-5-5电气工程 *Toolbox实际是用实际是用MATLAB的基本语句编成的的基本语句编成的开放式各种子程序集,用于解决各专业领域的特开放式各种子程序集,用于解决各专业领域的特定问题,例如:控制系统、信号处理、图像处理、定问题,例如:控制系统、信号处理、图像处理、模糊集合、神经网络、小波分析等。模糊集合、神经网络、小波分析等。*MATLAB编译器,可以将编译器,可以将M文件转化为文件转化为C或或C+语言代码,增强了语言代码,
13、增强了MATLAB灵活性。灵活性。2023-5-5电气工程1.2 MATLAB系统界面系统界面lMATLAB 的启动的启动 桌面快捷方式启动桌面快捷方式启动 开始菜单方式启动开始菜单方式启动lMATLAB的退出的退出 Matlab菜单命令菜单命令/关闭按钮关闭按钮 在在Matlab命令窗口输入命令窗口输入exit或或quit2023-5-5电气工程 MATLAB 的用户界面窗口的用户界面窗口lCommand windowlWorkspacelHistory command windowlCurrent directorylLaunch padlM-FilelFigurelModellGUI20
14、23-5-5电气工程 历史命令历史命令 发射台发射台 命令命令 窗口窗口 标题栏标题栏 菜单栏菜单栏 常用工具栏常用工具栏 工作区间工作区间当前目录当前目录2023-5-5电气工程2023-5-5电气工程 MATLAB命令窗口命令窗口l MATLAB语句形式语句形式变量表达式;变量表达式;当键入回车键时,该语句被执行。语句执行之后,当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被窗口自动显示出语句执行的结果。如果希望结果不被显示,则需在语句之后加上分号。此时尽管结果没有显示,则需在语句之后加上分号。此时尽管结果没有显示,但它依然被赋值并在显示,但它依然
15、被赋值并在MATLAB工作空间中分配工作空间中分配了内存。了内存。l 方向键可以编辑修改已输入的命令方向键可以编辑修改已输入的命令 :调出上一行语句;:调出上一行语句;:调出下一行语句;:调出下一行语句;2023-5-5电气工程l 多行命令(多行命令()如果命令语句超过一行或者太长希望分行输入,则如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。可以使用多行命令继续输入。例如:例如:S=1-12+13+4+9-4-18;等价于:等价于:S=1-12+13+4+9-4-18;l命令窗口的分页输出命令窗口的分页输出 more off:不允许分页:不允许分页 more on:允许
16、分页:允许分页 more(n):指定每页输出的行数:指定每页输出的行数 回车键显示下一行,空格键显示下一页,回车键显示下一行,空格键显示下一页,q结束当前显结束当前显示。示。2023-5-5电气工程l页面显示的疏密控制页面显示的疏密控制 format loose(默认默认):稀疏显示格式;稀疏显示格式;format compact:密集显示格式;密集显示格式;l清命令窗口清命令窗口 clc 2023-5-5电气工程l显示所有目前内存中的显示所有目前内存中的MATLAB变量、数学结构、变量、数学结构、类型以及所占的空间并可进行变量的编辑等。类型以及所占的空间并可进行变量的编辑等。lMATLAB的
17、的workspace中的变量管理中的变量管理 who:显示当前工作空间中所有变量的一个简单列:显示当前工作空间中所有变量的一个简单列表;表;whos:显示出变量的大小、数据格式等详细信息;:显示出变量的大小、数据格式等详细信息;clear:清除工作空间中所有的变量;:清除工作空间中所有的变量;clear 变量名变量名:清除指定的变量;:清除指定的变量;MATLAB工作空间工作空间 2023-5-5电气工程lMATLAB的的workspace中的变量保存和载入中的变量保存和载入save:将工作空间的所有变量存到将工作空间的所有变量存到matlab.mat的二进的二进制文件中。制文件中。save
18、filename:将所有变量保存到磁盘文件将所有变量保存到磁盘文件filename中。中。save filename variables:将将variables所表示的变量列所表示的变量列表保存到磁盘文件表保存到磁盘文件filename中。各个不同的变量之间中。各个不同的变量之间只能用空格来分隔。只能用空格来分隔。load(filename)()(variables):):将数据文件载入将数据文件载入MATLAB工作空间。工作空间。2023-5-5电气工程 MATLAB历史命令窗历史命令窗 MATLAB当前目录当前目录l各种历史命令输入的记载,便于随时查看和调用,各种历史命令输入的记载,便于随
19、时查看和调用,通过通过M文件运行的命令不显示。文件运行的命令不显示。l显示和改变当前目录,显示目录下的文件并提供搜显示和改变当前目录,显示目录下的文件并提供搜索功能。索功能。2023-5-5电气工程lhelpwin 指令指令 在命令窗口中键入在命令窗口中键入helpwin,进入帮助窗口;,进入帮助窗口;lhelpdesk 指令指令 在命令窗口中键入在命令窗口中键入helpdesk(或(或doc,或点击工具,或点击工具条中的条中的?按钮),进入帮助窗口,显示按钮),进入帮助窗口,显示HTML格格式的帮助内容。式的帮助内容。1.3 MATLAB帮助系统帮助系统2023-5-5电气工程lhelp 命
20、令命令 help:列出所有的帮助主题,每个帮助主题对应于:列出所有的帮助主题,每个帮助主题对应于 MATLAB搜索路径中的一个目录;搜索路径中的一个目录;help 库名库名:得到库中全部函数名;:得到库中全部函数名;help 函数名或命令函数名或命令;得到函数或命令的帮助信息;得到函数或命令的帮助信息;llookfor 命令命令 如在命令窗口中键入:如在命令窗口中键入:lookfor su,则只要有与,则只要有与su匹配的单词就显示出来。其收索条件比匹配的单词就显示出来。其收索条件比help命令宽。命令宽。ldemo 命令命令 demo:可得到可得到MATLAB及其所以工具箱中的全部演及其所以
21、工具箱中的全部演示程序。是学习示程序。是学习MATLAB的一种很好的途径。的一种很好的途径。2023-5-5电气工程1.5 MATLAB两种工作方式两种工作方式指令行操作方式指令行操作方式键入命令行。键入命令行。执行执行M文件方式文件方式键入程序名。键入程序名。1.4 MATLAB常用命令常用命令2023-5-5电气工程第二章第二章 MATLAB 基本语法基本语法第二章第二章 数数组及矩阵运算组及矩阵运算2023-5-5电气工程l任何任何MATLAB的语句的执行结果都可以在屏的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一
22、个特殊的变量定变量时,赋值给一个特殊的变量ans,数,数据的显示格式由据的显示格式由format命令控制。命令控制。lformat只是影响结果的显示,不影响其计算只是影响结果的显示,不影响其计算与存储;与存储;MATLAB总是以双字长浮点数(双总是以双字长浮点数(双精度)来执行所有的运算。精度)来执行所有的运算。数的显示格式数的显示格式 2.1 数值、变量及其赋值数值、变量及其赋值2023-5-5电气工程 format 命令控制数的显示格式:命令控制数的显示格式:format(short)(默认默认):如:如 pi=3.1416;format long:如:如 pi=3.14159265358
23、979;format rat:如:如 pi=355/113;format short e:如:如 pi=3.1416e+000;format long e:如:如 pi=3.141592653589793e+000;format bank:2位十进制,如位十进制,如 pi=3.14;format hex:如:如 pi=400921fb54442d18;format+:正数、零、负数分别用:正数、零、负数分别用“+”、空格、空格、“-”表表示示2023-5-5电气工程常量常量MATLAB 的保留常量和变量的保留常量和变量保保留留常常量量不不能能重重复复定定义!义!2023-5-5电气工程MATL
24、AB 语言的标识符命名规则语言的标识符命名规则 标识符:标志常量名、变量名、函数名和文件标识符:标志常量名、变量名、函数名和文件名的字符串的总称。名的字符串的总称。l标识符的合法字符是标识符的合法字符是52个英文字母(区分大小个英文字母(区分大小写)、写)、10个数字和下划线;个数字和下划线;l第一个字符必须是英文字母(不能超过第一个字符必须是英文字母(不能超过63个字个字符);符);l标识符必须是不含空格的单个词;标识符必须是不含空格的单个词;2023-5-5电气工程矩阵和变量的赋值矩阵和变量的赋值l直接赋值语句直接赋值语句 赋值变量表达式(或常量)赋值变量表达式(或常量)表达式由运算符、函
25、数、变量名和数字组成,表达式由运算符、函数、变量名和数字组成,运算符有运算符有+、-、*、/、等。等。(ex201)l函数调用语句函数调用语句 返回变量列表函数名(输入变量列表)返回变量列表函数名(输入变量列表)例:例:a,b,c=my_fun(d,e,f,c)l冒号表达式冒号表达式 v=s1:s2:s3 其中其中s1是起始值,是起始值,s2是步长(若省略步长为是步长(若省略步长为1),),s3是最大值。是最大值。(ex202)2023-5-5电气工程复数复数li,j为为MATLAB中的虚数符号,可以不用乘号,直中的虚数符号,可以不用乘号,直接连写在数字后面。接连写在数字后面。l如果在程序中另
26、外给如果在程序中另外给i,j赋值,它们的虚数意义就赋值,它们的虚数意义就失效。失效。lconj(z)命令表示对复数矩阵命令表示对复数矩阵z进行共轭变换。进行共轭变换。lZ命令表示对复数矩阵命令表示对复数矩阵z进行共轭转置变换。进行共轭转置变换。l(ex203)2023-5-5电气工程 特殊矩阵的赋值函数特殊矩阵的赋值函数linespace(a,b,N)均分向量,初值为均分向量,初值为a,终值为终值为b,元素个数为,元素个数为Nlogspace(a,b,N)向量初值为向量初值为10a,终值为终值为10b,元素个数为,元素个数为Nones(n,m)产生产生n*m阶全阶全1矩阵矩阵rand(n,m)
27、产生产生n*m阶随机数矩阵阶随机数矩阵randn(n,m)产生产生n*m阶正态随机数矩阵阶正态随机数矩阵zeros(n,m)产生产生n*m阶全零矩阵阶全零矩阵eye(n)产生产生n*n阶单位方阵阶单位方阵(ex204)2023-5-5电气工程 2.2 矩阵的初等运算矩阵的初等运算*矩阵的加减法矩阵的加减法 矩阵矩阵A和和B进行加减运算的条件是:进行加减运算的条件是:size(B)=size(B)*矩阵的乘法矩阵的乘法 1)矩阵)矩阵A*B的条件是:的条件是:A的列数等于的列数等于B的行数。的行数。2)不符合交换律,即)不符合交换律,即A*BB*A(ex205)2023-5-5电气工程*矩阵的除
28、法矩阵的除法 1)左除)左除 若若 线性方程组表示为线性方程组表示为A*X=B,如果,如果A为非为非奇异方阵,即其逆阵存在,则方程组的解用奇异方阵,即其逆阵存在,则方程组的解用MATLAB表示为:表示为:X=inv(A)*B 或或 X=AB 符号符号“”称为左除。称为左除。2)右除)右除 若若 线性方程组表示为线性方程组表示为X*C=D,如果,如果C为非为非奇异方阵,即其逆阵存在,则方程组的解用奇异方阵,即其逆阵存在,则方程组的解用MATLAB表示为:表示为:X=D*inv(C)或或 X=D/C 符号符号“/”称为右除。称为右除。2023-5-5电气工程例:求解线性方程组的解例:求解线性方程组
29、的解 将该线性方程组表示为矩阵相乘为:将该线性方程组表示为矩阵相乘为:040142301752321321321xxxxxxxxxBABAinvXBxxxXA*)(411*111423752*321(ex206)2023-5-5电气工程*数组运算数组运算 矩阵运算遵循线性代数中的矩阵运算规则,数组矩阵运算遵循线性代数中的矩阵运算规则,数组运算将矩阵按逐个元素分别进行运算。运算将矩阵按逐个元素分别进行运算。MATLAB中几中几乎所有的初等函数都适合数组运算。乎所有的初等函数都适合数组运算。运算运算矩阵矩阵数组数组运算符运算符规则规则运算符运算符规则规则乘法乘法*A*B:A的列数的列数=B的行数的
30、行数.*同维数组同维数组幂幂方阵方阵.数组的标量乘方数组的标量乘方A.p:A对应元素的对应元素的p次方,结果次方,结果和和A同维同维标量的数组乘方标量的数组乘方p.A:p的数组元素次方,结果和的数组元素次方,结果和A同维同维左除左除BA=inv(B)*A./或或.A./B=B.A右除右除/B/A=B*inv(A)(ex207)2023-5-5电气工程2.3 MATLAB语言流程控制语言流程控制关系运算关系运算 六种关系运算符:六种关系运算符:=,=,=运算结果是逻辑运算结果是逻辑1(真)或(真)或0(假)(假)逻辑运算逻辑运算 逻辑运算符:逻辑运算符:&(与)(与),|(或)(或),(非)(非
31、)运算结果是逻辑运算结果是逻辑1(真)或(真)或0(假)(假)逻辑关系函数:(见讲义第三章逻辑关系函数:(见讲义第三章P26)2023-5-5电气工程循环结构循环结构lfor 结构结构lwhile 结构结构2023-5-5电气工程1001ii例:计算(ex208)、(ex209)50000013151iii)(例:计算(ex210)、(ex211)2023-5-5电气工程 顺序结构顺序结构2023-5-5电气工程表达式表达式语句段语句段 if 真真假假表达式表达式语句段语句段1 if 真真假假语句段语句段2 else2023-5-5电气工程(ex212)表达式表达式语句段语句段1 if 真真
32、假假语句段语句段2 elseif表达式表达式语句段语句段3 真真假假 else2023-5-5电气工程 开关结构开关结构2023-5-5电气工程2023-5-5电气工程l当开关表达式的值等于某表达式,执行该语句当开关表达式的值等于某表达式,执行该语句后结束该结构。后结束该结构。l程序的执行结果和各个程序的执行结果和各个case顺序无关。顺序无关。l当需要在开关表达式满足若干个表达式之一时当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式执行某一程序段,则用单元形式(用大括号(用大括号把这些表达式括起来,用逗号分隔)把这些表达式括起来,用逗号分隔)lcase 语句中条件不能重复
33、,否则列在后面的条语句中条件不能重复,否则列在后面的条件将不能执行件将不能执行l(ex213)2023-5-5电气工程 其它控制语句其它控制语句1)break语句语句 终止循环语句的运行,对于多层嵌套循环结构,终止循环语句的运行,对于多层嵌套循环结构,break只能终止最里层的循环。只能终止最里层的循环。2)return语句语句 中断当前函数运行返回调用处。中断当前函数运行返回调用处。3)pause语句语句 pause:暂停程序运行,如果敲击键盘,程序继:暂停程序运行,如果敲击键盘,程序继续运行;续运行;pause(n):暂停暂停n秒;秒;pause on:该语句后的:该语句后的pause语句
34、有效;语句有效;pause off:该语句后的:该语句后的pause语句无效;语句无效;2023-5-5电气工程例:用循环求解使不等式例:用循环求解使不等式成立的最小的成立的最小的 m。(ex214)2023-5-5电气工程M文件文件lM文件分类文件分类 命令式文件命令式文件Script file 函数式文件函数式文件Function file2.4 M文件及程序调试文件及程序调试2023-5-5电气工程l函数式文件的构成函数式文件的构成 1)function定义行:定义行:function输出参量输出参量=函数名函数名(输入参量输入参量)2)函数体:实现函数的功能。)函数体:实现函数的功能。
35、3)函数说明。)函数说明。l函数式文件的特点函数式文件的特点 1)输入、输出参量是用来进行变量传递的,可以有)输入、输出参量是用来进行变量传递的,可以有多个。多个。2)程序中的变量均为局部变量,不保存在工作空间)程序中的变量均为局部变量,不保存在工作空间中,除非用中,除非用global声明为全局变量。声明为全局变量。3)文件名必须与函数名相同。)文件名必须与函数名相同。(ex215)2023-5-5电气工程 分析:本题中,需要在分析:本题中,需要在R1=1k,R1=10k,R1=20k时时分别计算分别计算Uc(t)值,可编写一个函数实现的计算,传递参值,可编写一个函数实现的计算,传递参数是数是
36、R1、C1、t,t是初始化后的数组,返回值是初始化后的数组,返回值Uc。2023-5-5电气工程解:解:(1)编写函数编写函数CalUc function Uc=CalUc(R1,C1,t)tao=R1*C1;%计算时间常数计算时间常数 Uc=20*(1-exp(-t./tao);%返回曲线值返回曲线值 将上述语句存为文件将上述语句存为文件CalUc.m。(2)编写主程序编写主程序 t=0:0.001:0.04;%t初始化初始化 Uc1=CalUc(1000,1e-6,t);%调用调用CalUc函数计函数计 算算R=1k时的函数值时的函数值 Uc10=CalUc(10000,1e-6,t);U
37、c20=CalUc(20000,1e-6,t);plot(t,Uc1,t,Uc10,t,Uc20);2023-5-5电气工程运行结果图2023-5-5电气工程l两类文件的区别两类文件的区别 1)命令式文件没有输入输出参量,函数式文件有;)命令式文件没有输入输出参量,函数式文件有;2)命令式文件运行中可以调用工作空间的数据,)命令式文件运行中可以调用工作空间的数据,运行中产生的所以变量为全局变量。函数式文件运行中产生的所以变量为全局变量。函数式文件不能调用工作空间的数据,运行中产生的所有变不能调用工作空间的数据,运行中产生的所有变量为局部变量量为局部变量;3)命令式文件可以直接运行,函数式文件不
38、能,)命令式文件可以直接运行,函数式文件不能,只能调用。只能调用。2023-5-5电气工程M文件的调试文件的调试lMATLAB程序两种错误:语法和逻辑错误。程序两种错误:语法和逻辑错误。l文件编辑器的使用文件编辑器的使用 1)用颜色区分内容;)用颜色区分内容;2)自动缩进功能,用于判断循环层次。)自动缩进功能,用于判断循环层次。l调试方法调试方法 1)根据命令窗中显示的出错信息调试。)根据命令窗中显示的出错信息调试。2)通过程序编辑器提供的调试工具调试。)通过程序编辑器提供的调试工具调试。(ex216)3)取消语句后的)取消语句后的“;”,使程序运行时在命令窗口,使程序运行时在命令窗口显示变量
39、的值。显示变量的值。2023-5-5电气工程2.5 MATLAB开发环境开发环境 与其它软件的接口关系与其它软件的接口关系 MATLAB的文件管理系统的文件管理系统2023-5-5电气工程 与其它软件的接口关系与其它软件的接口关系l人机交互命令人机交互命令input和和keyboard(以以return退出)退出)l与磁盘操作系统关系与磁盘操作系统关系l与与word的接口的接口l与记事本的接口与记事本的接口(diary 命令命令)l低层输入输出命令库低层输入输出命令库(iofun)l与与C或或FORTRAN子程序的动态链接子程序的动态链接2023-5-5电气工程 MATLAB的文件管理系统的文
40、件管理系统l安装后的安装后的MATLAB文件系统文件系统lMATLAB中特有的文件格式中特有的文件格式 1)M文件文件 2)数据文件)数据文件 3)可执行文件)可执行文件 4)图形文件)图形文件 5)模型文件、仿真文件等)模型文件、仿真文件等l文件管理和搜索路径文件管理和搜索路径 1)MATLAB管理的文件范围是由它的搜索路径来管理的文件范围是由它的搜索路径来确定的。确定的。2)程序文件夹设定在)程序文件夹设定在“搜索路径搜索路径”下的方法。下的方法。2023-5-5电气工程第四章第四章 数数值计算值计算2023-5-5电气工程4.1 多多项式运算项式运算0111)(axaxaxaxPnnnn
41、 多项式的表示法多项式的表示法多项式:多项式:P=an,an-1,.,a1,a0 多项式的显示:多项式的显示:poly2sym(p);poly2str(p,x);多项式的乘法和除法多项式的乘法和除法(conv()、deconv()c=conv(a,b);q,r=deconv(c,b);多项式求根多项式求根(roots()已知多项式的根,创建多项式已知多项式的根,创建多项式(poly()r=roots(p);%返回向量返回向量r为一列向量为一列向量 p=poly(r1);2023-5-5电气工程求多项式的值求多项式的值(polyval()y=polyval(p,x);%x、y为矩阵、向量、标量。
42、为矩阵、向量、标量。y=polyvalm(p,x);%x必须为方阵。必须为方阵。多项式展开多项式展开(residue()将分式多项式转换成部分分式。在电路的复频域分析中将将分式多项式转换成部分分式。在电路的复频域分析中将复杂的传递函数转换成简单的传递函数之和。复杂的传递函数转换成简单的传递函数之和。r,p,k=residue(b,a)b,a=residue(r,p,k)多项式多项式求导求导(polyder()y=polyder(p);NnnnnnSKPsrPsrPsrsasbsH02211.)()()(2023-5-5电气工程多项式多项式拟合拟合(polyfit()p=polyfit(x,y,
43、n);%x、y为为数据数据向量向量,p为多项式系数向量,为多项式系数向量,n为多项式为多项式阶次。阶次。一元插值一元插值(interp1()yi=interp1(x,y,xi,method);%计算计算xi对应的函数值对应的函数值yi,x、y为为数据数据向量向量。method插值方法有:插值方法有:linear:线性插值;:线性插值;cubic:三次多项式插值;三次多项式插值;nearest:最近点插值;:最近点插值;spline:三次样条插值。:三次样条插值。4.2 数值分析数值分析2023-5-5电气工程数值积分数值积分(trapz()、quad()、quad8()l梯形法:梯形法:z=t
44、rapz(y);%近似求解近似求解y的积分近似值。的积分近似值。y为被为被积函数值,点距为积函数值,点距为1;z=trapz(x,y);%近似求解近似求解y对对x的积分值,的积分值,x、y必必须是相同维数的向量。须是相同维数的向量。l辛普生法辛普生法:z=quad(fun,a,b);%计算函数计算函数fun在在a,b区间区间的相对误差为的相对误差为1.e-6的积分近似值,函数的积分近似值,函数fun必须返必须返回一个在回一个在x上的函数值向量。上的函数值向量。z=quad(fun,a,b,tol);%与上相同,与上相同,tol用以指定用以指定误差容度。误差容度。l牛顿牛顿-科特斯科特斯法法:q
45、uad8调用格式和调用格式和quad方式相同方式相同。2023-5-5电气工程数值微分数值微分(利用求差分的函数利用求差分的函数diff()实现实现)l差分计算差分计算 Y=diff(X);%用以计算数组中的差分。用以计算数组中的差分。X=X(1),X(2),.,X(n),Y=X(2)-X(1),X(3)-X(2),.,X(n)-X(n-1)l微分计算:微分计算:设函数设函数y=f(x),可近似表示为:可近似表示为:因此,可以用因此,可以用diff(y)./diff(x)近似计算函数的微分。近似计算函数的微分。xhxxfhxfdxdyh)()()(lim0 xhxxfhxfdxdy)()()(
46、2023-5-5电气工程常微分方程常微分方程(ODE)的数值解的数值解l高阶常微分方程高阶常微分方程 的表示形式:的表示形式:l求解方法:求解方法:将高阶常微分方程转化为一阶常微分方程组。将高阶常微分方程转化为一阶常微分方程组。0),.,()(tyyyyfn1)1(210)0(,.,)0(,)0(,)0(nnyyyyyyyy),(3221ytfyyyyynnnnyyyyyy1021)0()0()0(,2023-5-5电气工程l函数调用格式(函数调用格式(7个函数调用格式完全一样)个函数调用格式完全一样)T,Y=ode45(odefun,tspan,y0)%odefun代表显式代表显式ODE方程
47、组方程组y=f(t,y),t为标量,为标量,y和和y为同长度的列向量。为同长度的列向量。Tspan可以是区间可以是区间t0,tf,也,也可以是可以是t0,t1,tf,函数返回指定时间,函数返回指定时间t0,t1,t2,上的上的解。解。y0是初始条件,是与是初始条件,是与y同长度的列向量。同长度的列向量。解矩阵解矩阵Y中的每一行对应于返回的时间列向量中的每一行对应于返回的时间列向量T中的一个时间中的一个时间点点。T,Y=ode45(odefun,tspan,y0,options)%options用于设定微分方程解法器的参数(用函数用于设定微分方程解法器的参数(用函数odeset()生成)。生成)
48、。T,Y=ode45(odefun,tspan,y0,options,p1,p2)2023-5-5电气工程函数最小值函数最小值(fminbnd()、fminsearch()lfminbnd:单变量非线性函数局部最小值函数:单变量非线性函数局部最小值函数 x=fminbnd(FUN,x1,x2)x=fminbnd(FUN,x1,x2,options)x=fminbnd(FUN,x1,x2,options,p1,p2,)%返回值返回值x是是FUN函数在函数在(x1,x2)上的局部最小值,上的局部最小值,FUN为单值非线性函数。为单值非线性函数。options用来控制算法的用来控制算法的参数设置。参
49、数设置。lfminsearch为多变量无束缚非线性局部最小值函数,为多变量无束缚非线性局部最小值函数,调用格式调用格式 与上一致。2023-5-5电气工程函数零点函数零点(fzero()xzero=fzero(FUN,x0)xzero=fzero(FUN,x0,tol,trace)%FUN:待求零点的函数;:待求零点的函数;x0:搜索零点的初始:搜索零点的初始值;值;tol:搜索相对精度;:搜索相对精度;trace:指定迭代信息是:指定迭代信息是否显示,默认为否显示,默认为0,表示不显示迭代信息。,表示不显示迭代信息。2023-5-5电气工程第五章第五章 符号运算符号运算2023-5-5电气工
50、程5.1 符号对象和符号表达式符号对象和符号表达式符号对象符号对象 定义基本的符号对象定义基本的符号对象(常数、变量、表达式常数、变量、表达式)f=sym(arg);%把数值、字符串或表达式把数值、字符串或表达式arg转换为符号对象转换为符号对象 f=sym(arg,flagn);%把数值或数值表达式把数值或数值表达式arg转转换为换为flagn格式的符号对象。格式的符号对象。falgn可设定为:可设定为:d:采:采用最接近的十进制精确表示;用最接近的十进制精确表示;d:采用最接近的有:采用最接近的有理表示,缺省设置。理表示,缺省设置。syms(arg1,arg2);%把字符把字符arg1,a