数学建模案例分析MATLAB在电气工程中的应用_第1页
数学建模案例分析MATLAB在电气工程中的应用_第2页
数学建模案例分析MATLAB在电气工程中的应用_第3页
数学建模案例分析MATLAB在电气工程中的应用_第4页
数学建模案例分析MATLAB在电气工程中的应用_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 MATLAB在电气工程中的应用2022/8/301MATLAB简介对一般的计算语言来说,必须采用两层循环才能得到结果: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)。例:已知x是(nm)维数组,计算:2022/8/302MATLAB简介例:对于求解代数方程问题:当A的列数大于

2、行数时,有无数解。MATLAB只用一条指令: x=Ab。当A是标量时:当A是非奇异矩阵时:当A是行数大于列数的满秩阵时,称超定方程组或矛盾方程组:2022/8/303MATLAB简介在MATLAB中仅用以下指令:ezsurf(y/(1+x2+y2) 例:绘制二元函数曲面:2022/8/304MATLAB简介MATLAB是专门为科学计算而设计的,具有强大数据图示功能的工具软件。语法结构简明、数值计算高效、图形功能完备、易学易用。在矩阵代数、数值计算、数字信号处理、震动理论、神经网络控制、动态仿真、建模、系统识别、控制系统、非线性系统、模糊控制、优化技术、通讯系统、财政金融等领域有着广泛应用。20

3、22/8/305教学内容第一章 MATLAB基础第二章 MATLAB基本语法第三章 数组及矩阵运算第四章 数值计算第五章 符号运算第六章 MATLAB计算结果可视化第七章 MATLAB在系统仿真中的应用第八章 MATLAB在信号处理中的应用2022/8/306通过本课程学习,使学生掌握利用MATLAB进行数值计算的基本方法,熟悉MATLAB编程环境、语言语法、程序结构、编程及调试技术,掌握MATLAB中M文件、M函数编写方法及调试技术、MATLAB的绘图和图形控制函数等内容,上机练习MATLAB数值解算方法,具备上机操作的技能,学习MATLAB在电气工程学科中的建模与分析方法,为后续专业课程学

4、习奠定基础。 课程任务2022/8/307考试形式考试方式:1、平时成绩(出勤率+课堂习题报告)2、考试2022/8/308MATLAB的发展历程MATLAB 是Matrix Laboratory的缩写。20世纪70年代由 Cleve Moler博士用FORTRAN语言开发了最初版本的矩阵分析软件。80 年代初期,由 Moler、 John Little和Steve Bangert采用 C 语言改写了 MATLAB 的内核。并于1984 年成立了 Mathworks 软件开发公司,将 MATLAB 正式推向市场。1988年推出了MATLAB 3.1(DOS)版本。 1993年,推出了应用于 W

5、indows 操作系统的 MATLAB 4.0 版本。1996年12月,推出MATLAB 5.0 版本(Release 8)。1997年5月,推出 MATLAB 5.1 版本(Release 9)。1998年3月,推出 MATLAB 5.2 版本(Release 10)。1999年11月,推出 MATLAB 5.3 版本(Release 11) 。2000年11月,推出 MATLAB 6.0 版本( Release 12)。2001年6月,推出 MATLAB 6.1 版本( Release 12.1)。2002年7月,推出 MATLAB 6.5 版本( Release 13)。2022/8/3

6、09MATLAB的发展历程2004 年6月,推出 MATLAB 7.0 版本( Release 14)。2004 年11月,推出 MATLAB 7.0.1 版本( Release 14SP1)。2005 年3月,推出 MATLAB 7.0.4 版本( Release 14SP2)。2005 年9月,推出 MATLAB 7.1 版本( Release 14SP3)。2006 年3月,推出 MATLAB 7.2 版本( Release 2006a)。2006 年9月,推出 MATLAB 7.3 版本( Release 2006b)。2007 年3月,推出 MATLAB 7.4 版本( Releas

7、e 2007a)。2007 年9月,推出 MATLAB 7.5 版本( Release 2007b)。2008 年3月,推出 MATLAB 7.6 版本( Release 2008a)。2008 年10月,推出 MATLAB 7.7 版本( Release 2008b)。2009 年3月,推出 MATLAB 7.8 版本( Release 2009a)。2009 年9月,推出 MATLAB 7.9 版本( Release 2009b)。2010 年3月,推出 MATLAB 7.10 版本( Release 2010a)。2022/8/3010MATLAB的主要特点 MATLAB 的基本单位为矩

8、阵。MATLAB 语言以解释方式工作。具有非常友好的人机界面。具有强大的作图和数据可视化功能.智能化程度高。具有极强的可扩展性。2022/8/3011第一章 MATLAB 基础2022/8/3012 1.1 MATLAB的基本组成MATLAB软件主要由主包、Simulink 动态系统仿真和工具箱( Toolbox)三大部分组成。 * 主包包括了 MATLAB 语言、数学函数库、工作环境、图形处理系统和应用程序接口五部分。 * Simulink是用于系统仿真的交互式图形系统,是MATLAB非常重要的共生产品。2022/8/3013 * Toolbox实际是用MATLAB的基本语句编成的开放式各种

9、子程序集,用于解决各专业领域的特定问题,例如:控制系统、信号处理、图像处理、模糊集合、神经网络、小波分析等。 * MATLAB编译器,可以将M文件转化为C或C+语言代码,增强了MATLAB灵活性。2022/8/30141.2 MATLAB系统界面MATLAB 的启动 桌面快捷方式启动 开始菜单方式启动MATLAB的退出 Matlab菜单命令/关闭按钮 在Matlab命令窗口输入exit或quit2022/8/3015 MATLAB 的用户界面窗口Command windowWorkspaceHistory command windowCurrent directoryLaunch padM-F

10、ileFigureModelGUI2022/8/3016 历史命令 发射台 命令 窗口 标题栏 菜单栏 常用工具栏 工作区间当前目录2022/8/30172022/8/3018 MATLAB命令窗口 MATLAB语句形式变量表达式; 当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则需在语句之后加上分号。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。 方向键可以编辑修改已输入的命令 :调出上一行语句; :调出下一行语句;2022/8/3019 多行命令() 如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继

11、续输入。 例如: S=1-12+13+4+9-4-18; 等价于: S=1-12+13+4+ 9-4-18;命令窗口的分页输出 more off:不允许分页 more on:允许分页 more(n):指定每页输出的行数 回车键显示下一行,空格键显示下一页,q结束当前显示。2022/8/3020页面显示的疏密控制 format loose (默认) :稀疏显示格式; format compact: 密集显示格式;清命令窗口 clc 2022/8/3021显示所有目前内存中的MATLAB变量、数学结构、类型以及所占的空间并可进行变量的编辑等。MATLAB的workspace中的变量管理 who:显

12、示当前工作空间中所有变量的一个简单列表; whos:显示出变量的大小、数据格式等详细信息; clear :清除工作空间中所有的变量; clear 变量名:清除指定的变量; MATLAB工作空间2022/8/3022MATLAB的workspace中的变量保存和载入save :将工作空间的所有变量存到matlab.mat的二进制文件中。save :将所有变量保存到磁盘文件中。save variables :将variables所表示的变量列表保存到磁盘文件中。各个不同的变量之间只能用空格来分隔。load ()(variables):将数据文件载入MATLAB工作空间。2022/8/3023 MA

13、TLAB历史命令窗 MATLAB当前目录各种历史命令输入的记载,便于随时查看和调用,通过M文件运行的命令不显示。显示和改变当前目录,显示目录下的文件并提供搜索功能。2022/8/3024helpwin 指令 在命令窗口中键入helpwin ,进入帮助窗口;helpdesk 指令 在命令窗口中键入helpdesk(或doc,或点击工具条中的?按钮),进入帮助窗口,显示HTML格式的帮助内容。1.3 MATLAB帮助系统2022/8/3025help 命令 help:列出所有的帮助主题,每个帮助主题对应于 MATLAB搜索路径中的一个目录; help 库名:得到库中全部函数名; help 函数名或

14、命令; 得到函数或命令的帮助信息;lookfor 命令 如在命令窗口中键入:lookfor su,则只要有与su匹配的单词就显示出来。其收索条件比help命令宽。demo 命令 demo:可得到MATLAB及其所以工具箱中的全部演示程序。是学习MATLAB的一种很好的途径。2022/8/30261.5 MATLAB两种工作方式指令行操作方式键入命令行。执行M文件方式键入程序名。1.4 MATLAB常用命令2022/8/3027第二章 MATLAB 基本语法第二章 数组及矩阵运算2022/8/3028任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给

15、一个特殊的变量ans,数据的显示格式由format命令控制。format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。数的显示格式 2.1 数值、变量及其赋值2022/8/3029 format 命令控制数的显示格式: format (short) (默认) :如 pi=3.1416; format long:如 pi=3.149; format rat:如 pi=355/113; format short e:如 pi=3.1416e+000; format long e:如 pi= 3.1493e+000; format bank:2位十

16、进制,如 pi=3.14; format hex:如 pi=400921fb54442d18; format +:正数、零、负数分别用“+”、空格、“-”表示2022/8/3030常量MATLAB 的保留常量和变量保留常量不能重复定义!2022/8/3031MATLAB 语言的标识符命名规则 标识符:标志常量名、变量名、函数名和文件名的字符串的总称。 标识符的合法字符是52个英文字母(区分大小写)、10个数字和下划线;第一个字符必须是英文字母(不能超过63个字符);标识符必须是不含空格的单个词;2022/8/3032矩阵和变量的赋值直接赋值语句 赋值变量表达式(或常量) 表达式由运算符、函数、

17、变量名和数字组成,运算符有+、-、*、/、等。 (ex201)函数调用语句 返回变量列表函数名(输入变量列表) 例:a,b,c=my_fun(d,e,f,c)冒号表达式 v=s1:s2:s3 其中s1是起始值,s2是步长(若省略步长为1), s3是最大值。 (ex202) 2022/8/3033复数i,j为MATLAB中的虚数符号,可以不用乘号,直接连写在数字后面。如果在程序中另外给i,j赋值,它们的虚数意义就失效。conj(z)命令表示对复数矩阵z进行共轭变换。Z命令表示对复数矩阵z进行共轭转置变换。(ex203)2022/8/3034 特殊矩阵的赋值函数linespace(a,b,N)均分

18、向量,初值为a,终值为b,元素个数为Nlogspace(a,b,N)向量初值为10a,终值为10b,元素个数为Nones(n,m)产生n*m阶全1矩阵rand(n,m)产生n*m阶随机数矩阵randn(n,m)产生n*m阶正态随机数矩阵zeros(n,m)产生n*m阶全零矩阵eye(n)产生n*n阶单位方阵(ex204)2022/8/3035 2.2 矩阵的初等运算* 矩阵的加减法 矩阵A和B进行加减运算的条件是: size(B)=size(B)* 矩阵的乘法 1)矩阵A*B的条件是:A的列数等于B的行数。 2)不符合交换律,即A*BB*A (ex205)2022/8/3036* 矩阵的除法

19、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 符号“/”称为右除。2022/8/3037例:求解线性方程组的解 将该线性方程组表示为矩阵相乘为: (ex206)2022/8/3038* 数组运算 矩阵运算遵循线性代数中的矩阵运算规则,数组运算将矩阵按逐个元素分别进行运算。MATLAB中几乎所有的初等函数都适合数组运算。 运算矩阵

20、数组运算符规则运算符规则乘法*A*B:A的列数=B的行数.*同维数组幂方阵.数组的标量乘方A.p:A对应元素的p次方,结果和A同维标量的数组乘方p.A:p的数组元素次方,结果和A同维左除BA=inv(B)*A./ 或 .A./B=B.A右除/B/A= B*inv(A)(ex207)2022/8/30392.3 MATLAB语言流程控制关系运算 六种关系运算符:=,=,= 运算结果是逻辑1(真)或0(假)逻辑运算 逻辑运算符:&(与),|(或),(非) 运算结果是逻辑1(真)或0(假) 逻辑关系函数:(见讲义第三章P26)2022/8/3040循环结构for 结构while 结构2022/8/3

21、041(ex208) 、(ex209)(ex210) 、(ex211)2022/8/3042 顺序结构2022/8/3043表达式语句段 if 真假表达式语句段1 if 真假语句段2 else2022/8/3044(ex212)表达式语句段1 if 真 假语句段2 elseif表达式语句段3 真假 else2022/8/3045 开关结构2022/8/30462022/8/3047当开关表达式的值等于某表达式,执行该语句后结束该结构。程序的执行结果和各个case顺序无关。当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式 (用大括号把这些表达式括起来,用逗号分隔)case 语

22、句中条件不能重复,否则列在后面的条件将不能执行(ex213)2022/8/3048 其它控制语句1)break语句 终止循环语句的运行,对于多层嵌套循环结构,break只能终止最里层的循环。2)return语句 中断当前函数运行返回调用处。3)pause语句 pause:暂停程序运行,如果敲击键盘,程序继续运行; pause(n): 暂停n秒; pause on:该语句后的pause语句有效; pause off:该语句后的pause语句无效;2022/8/3049例:用循环求解使不等式成立的最小的 m 。 (ex214)2022/8/3050M文件M文件分类 命令式文件Script file

23、 函数式文件Function file2.4 M文件及程序调试2022/8/3051函数式文件的构成 1)function定义行: function输出参量=函数名(输入参量) 2)函数体:实现函数的功能。 3)函数说明。函数式文件的特点 1)输入、输出参量是用来进行变量传递的,可以有多个。 2)程序中的变量均为局部变量,不保存在工作空间中,除非用global声明为全局变量。 3)文件名必须与函数名相同。(ex215)2022/8/3052 分析:本题中,需要在R1=1k,R1=10k,R1=20k时分别计算Uc(t)值,可编写一个函数实现的计算,传递参数是R1、C1、t,t是初始化后的数组,

24、返回值Uc。2022/8/3053解:(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); Uc20=CalUc(20000,1e-6,t); plot(t,Uc1,t,Uc10,t,Uc20);2022/8/3054运行结果图

25、2022/8/3055两类文件的区别 1)命令式文件没有输入输出参量,函数式文件有; 2)命令式文件运行中可以调用工作空间的数据,运行中产生的所以变量为全局变量。函数式文件不能调用工作空间的数据,运行中产生的所有变量为局部变量; 3)命令式文件可以直接运行,函数式文件不能,只能调用。2022/8/3056M文件的调试MATLAB程序两种错误:语法和逻辑错误。文件编辑器的使用 1)用颜色区分内容; 2)自动缩进功能,用于判断循环层次。调试方法 1)根据命令窗中显示的出错信息调试。 2)通过程序编辑器提供的调试工具调试。(ex216) 3)取消语句后的“;”,使程序运行时在命令窗口显示变量的值。2

26、022/8/30572.5 MATLAB开发环境 与其它软件的接口关系 MATLAB的文件管理系统2022/8/3058 与其它软件的接口关系人机交互命令input和keyboard(以return退出)与磁盘操作系统关系与word的接口与记事本的接口(diary 命令)低层输入输出命令库(iofun)与C或FORTRAN子程序的动态链接2022/8/3059 MATLAB的文件管理系统安装后的MATLAB文件系统MATLAB中特有的文件格式 1)M文件 2)数据文件 3)可执行文件 4)图形文件 5)模型文件、仿真文件等文件管理和搜索路径 1)MATLAB管理的文件范围是由它的搜索路径来确定

27、的。 2)程序文件夹设定在“搜索路径”下的方法。2022/8/3060第四章 数值计算2022/8/30614.1 多项式运算多项式的表示法多项式: 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); 2022/8/3062求多项式的值(polyval( ) y=polyval(p,

28、x); %x、y为矩阵、向量、标量。 y=polyvalm(p,x); %x必须为方阵。多项式展开(residue( ) 将分式多项式转换成部分分式。在电路的复频域分析中将复杂的传递函数转换成简单的传递函数之和。r,p,k=residue(b,a) b,a=residue(r,p,k)多项式求导(polyder( ) y=polyder(p);2022/8/3063多项式拟合(polyfit( ) p=polyfit(x,y,n); %x、y为数据向量,p为多项式系数向量,n为多项式阶次。一元插值(interp1( ) yi=interp1(x,y,xi,method); %计算xi对应的函数

29、值yi,x、y为数据向量。 method插值方法有: linear:线性插值; cubic: 三次多项式插值; nearest:最近点插值;spline:三次样条插值。4.2 数值分析2022/8/3064数值积分(trapz( )、quad ( ) 、quad8 ( ) )梯形法: z=trapz(y); %近似求解y的积分近似值。y为被积函数值,点距为1; z=trapz(x,y); %近似求解y对x的积分值,x、y必须是相同维数的向量。辛普生法 : z=quad(fun,a,b); %计算函数fun在a,b区间的相对误差为1.e-6的积分近似值,函数fun必须返回一个在x上的函数值向量。

30、 z=quad(fun,a,b,tol); %与上相同,tol用以指定误差容度。 牛顿-科特斯法 : quad8调用格式和quad方式相同。2022/8/3065数值微分(利用求差分的函数diff( )实现 )差分计算 Y=diff(X); %用以计算数组中的差分。X=X(1),X(2),.,X(n), Y=X(2)-X(1),X(3)-X(2),.,X(n)-X(n-1)微分计算: 设函数y=f(x), 可近似表示为: 因此,可以用diff(y)./diff(x)近似计算函数的微分。2022/8/3066常微分方程(ODE)的数值解高阶常微分方程 的表示形式:求解方法: 将高阶常微分方程转化

31、为一阶常微分方程组。,2022/8/3067函数调用格式(7个函数调用格式完全一样) T,Y = ode45(odefun,tspan,y0) % odefun代表显式ODE方程组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( )生成)。 T,Y =o

32、de45(odefun,tspan,y0,options,p1,p2) 2022/8/3068函数最小值(fminbnd( )、 fminsearch( ) )fminbnd:单变量非线性函数局部最小值函数 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用来控制算法的参数设置。fminsearch为多变量无束缚非线性局部最小值函数,调用格式 与上一致。2022/8/3069函数零

33、点(fzero( ) ) xzero=fzero(FUN,x0) xzero=fzero(FUN,x0,tol,trace) %FUN:待求零点的函数;x0:搜索零点的初始值;tol:搜索相对精度;trace:指定迭代信息是否显示,默认为0,表示不显示迭代信息。2022/8/3070第五章 符号运算2022/8/30715.1 符号对象和符号表达式符号对象 定义基本的符号对象(常数、变量、表达式) f=sym(arg); %把数值、字符串或表达式arg转换为符号对象 f=sym(arg,flagn); %把数值或数值表达式arg转换为flagn格式的符号对象。falgn可设定为:d:采用最接近

34、的十进制精确表示; d:采用最接近的有理表示,缺省设置。syms(arg1, arg2); %把字符arg1,arg2定义为基本符号对象 syms arg1, arg2;2022/8/3072符号表达式和符号函数的操作符号表达式的化简 collect():合并同幂项 simplify():利用代数上的函数规则对表达式进行化简 simple():以尽可能的办法将表达式再做化简,目的是使表达式以最少的字表示出来。 horner():对多项式进行嵌套型分解。2022/8/3073符号函数的求反和复合 g=finervse(f):符号函数f和g满足:g(f(x)=x g=finervse(f,v):符

35、号函数g的自变量为v,满足g(f(x)=v g1=compose(f,g):返回f=f(x)和g=g(y)时的复合函数f=f(g(y) g1=compose(f,g,z):返回复合函数f=f(g(z) g1=compose(f,g,x,z):返回复合函数f=f(g(z),x是f的独立变量 g1=compose(f,g,x,y,z):返回复合函数f=f(g(z),x是f的独立变量,y是g的独立变量2022/8/3074符号微积分 g=int(f):返回f的不定积分。 g=int(f,v):对f中指定的符号变量v计算不定积分。 g=int(f,v,a,b):对表达式f中指定的符号变量v计算从a到b的定积分。符号代数方程组的求解一般代数方程组的求解 一般代数方程组包括线性、非线性和超越方程等,求解用函数solve()2022/8/3075第六章 MATLAB计算结果可视化2022/8/3076连续函数和离散函数的可视化离散函数的可视化对于离散实函数yn=f(xn),其自变量用向量形式表示为x=x1,x2,xn,由函数关系可得函数值向量为y=y1,y2,yn。该组向量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论