MATLAB基础与应用-计算机仿真软.ppt
《MATLAB基础与应用-计算机仿真软.ppt》由会员分享,可在线阅读,更多相关《MATLAB基础与应用-计算机仿真软.ppt(198页珍藏版)》请在三一办公上搜索。
1、第6章 仿真软件 MATLAB基础与应用,第六章 仿真软件MATLAB基础与应用,示例演示,第一节 引言,第二节 MATLAB 基础,第三节 图形与可视化,第四节 线性系统分析与设计,第五节 SIMULINK基础,先看几个例子:,(1)计算下列线性方程的解:,(2)绘制如下的图形:,li1.m,li2.m,(3)画出该连续系统的根轨迹。(自控P253),(4)完成以下控制系统的阶跃响应仿真曲线。,li3.m,li4.mdl,6.1 引言,一、MATLAB的历史背景 全名:矩阵实验室(MATrix LABoratory)是以数值计算、数据图示为基础,包含多种专业工具箱,适合多学科、多平台的功能强
2、劲的大型软件。70年代,由美国New Mexico大学计算机系主任Cleve Moler讲授线性代数时编写,受到师生的欢迎而广为流传。,1984年成立MathWorks公司,并把MATLAB正式推向市场。MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。在此之前,国际上的数值计算软件包大多使用Fortran、C编写,缺点:适应面窄、可扩充性差、不开放等,难以推广应用。MATLAB的出现打破了这一局面,它的高度适应性、可扩充性等优良特性吸引了很多科学界人士,很多人开始在MATLAB上开发自己的应用工具箱,MATLAB一步步壮大起来。,MATLAB由原来的只有UN
3、IX版本,发展到DOS版、Windows版等多种版本;目前,已发展到了7.2版本,其中包含的工具箱有30多个,还有很多MATLAB工具箱可以从Internet网络上取到,包含的学科很多,并且比较多的工具箱是免费的。,(1)语言简洁紧凑,有丰富的数学库函数,包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。,包括各种数学运算功能,从最基本的sum、sin、cos等到复杂的如:数值微分、积分、插值、求极值、方程求根、常微分方程的数值解等,还有各种特殊函数。,二、MATLAB语言的主要特点,(2)语法限制不严格,程序设计自由度大,(3)源程序的开放性,除内部函数以外的所有文件都是可
4、读可改的源文件。,(4)具有很好的图视系统,可方便地画出两维和三维图形。,图形用户界面GUI制作工具,可以制作用户菜单和控件。,高级图形处理。如:色彩控制、句柄图形、动画等。,(5)使用方便,具有很好的扩张功能。,M文件可转变为独立于平台的EXE可执行文件。,使用MATLAB语言编写的程序可以直接运行,无需编译。,MATLAB的应用接口程序API使用户可以在FORTRAN或C中,把MATLAB当作计算引擎使用。,可以直接处理声言和图形文件。,工具箱又分成功能性工具箱、学科性工具箱两类:功能性工具箱主要用来扩充图示建模、符号计算、文字处理及与硬件实时交互功能,如Simulink、Symbolic
5、 Math、Notebook等,能用于多种学科。,学科性工具箱是专业性比较强的如:控制系统设计、通讯、财政金融、频域系统辩识、模糊逻辑、图象处理、神经网络、鲁棒控制、信号处理、统计、系统辩识、实时仿真、DSP工具、非线性控制器设计、电力系统仿真等。,(4)具有若干功能强大的应用工具箱。,1、了解MATLAB的特点及应用领域。,3、掌握MATLAB语言的程序设计方法。,三、目的和要求:,2、掌握MATLAB环境的基本使用方法和数学运算。,4、掌握MATLAB的图形绘制方法。,5、掌握分析设计线性系统的方法。,6、掌握Simulink进行控制系统仿真基本方法。,6.2 MATLAB基础,、MATL
6、AB基本操作()工作空间的管理 双击图标 可启动matlab,通常进入“命令窗口”,可实现对工作空间workspace的管理,可执行matlab所有的命令,创建文件、图形,完成运算等。,常用命令:who whos查看工作空间中的变量;,help按键入的标题提供帮助信息;,lookfor搜索所有help,返回含关键词的项;,clear aa bb清除工作空间变量aa bb;clear清除工作空间所有变量;,save test-工作空间变量存到test.mat文件中 load test-从test.mat读取变量到工作空间,(2)设置工作路径,路径设置很重要,否则可能无法读取某些文件,导致程序无法
7、进行。路径设置有两种方法:命令方式:直接在命令窗口用path命令,显示已规定的搜索路径;path(path,c:aabbcc)可添加路径,但退出matlab后再次进入,不保留。菜单方式:FileSet Path进入,可方便地添加和更改工作路径,而且只要save 后可保存住。当前路径可在命令窗口的Current Directory处设置,可方便对文件进行open、save操作。,(3)文件格式,MATLAB文件格式有两种:在命令窗口下执行的脚本文件,所用的变量都要在工作空间中建立并获得,退出MATLAB后就释放了。若想保留,可存储工作空间。可存取的M-file文件,在FileNewM-file,
8、进入Editor/Debugger窗口编辑M-file文件。,M-file文件,命令文件,函数文件,用于把需在命令窗口执行的命令放在一起便于修改,无输入参数也无输出参数。,用于把重复的程序段封装起来,可以输入参数,也可输出参数,其变量为局部变量,只有输入输出参数保留在工作空间。,M-file文件,命令文件,函数文件,脚本文件,Matlab文件形式,1、变量变量在使用前不需定义维数和大小。命名规则:以字母打头、不含标点符号、最多不超过19个字符,区分字母的大小写,如X1、x1、a、A等。另外要避免使用特殊变量。变量可按需要定义成全局变量和局部变量:,、MATLAB基本设计,避免使用特殊变量:,2
9、、数据,MATLAB的数值计算都采用双精度浮点运算,指定精度运算需用符号工具箱处理。在数值计算中只能改变数据的显示格式。改变显示格式的方法:菜单方式:File Preference中Command Window Text display Numeric format中设置。,MATLAB有六种数据类型,每个类型都可为一维、二维和多维。,3、常用标点符号,,和;可用于隔开放在一行中的多条命令,或者命令的末尾,注意区别:逗号,显示运行结果分号;不显示运行的结果如果一行中无法写下一个完整命令,可在行尾加入三个连续的点,表示命令余下的部分在下一行出现。百分号%之后的所有文字为注释,注释为单行型。,4、
10、简单数学运算,MATLAB可以象计算器一样进行一些简单的数学运算,如可直接输入16*12.2+25*1.82 计算。常用运算符有:MATLAB支持常用的基本数学函数,要注意只对弧度操作,如sin(30*pi/180)=0.5。复数运算不需要特殊处理,用i、j和sqrt(-x)表示,运算时与实数运算形式相同。还可以用real、imag、abs、angle命令来表示一个复数的实部、虚部、幅值和相角。,MATLAB最基本、也是最重要的功能就是进行实数矩阵或者复数矩阵的运算。向量可作为矩阵的一行或者一列,标量(一个数)优势则可以作为只含有一个元素的矩阵,故向量和标量都可以作为特殊矩阵来处理。矩阵的操作
11、和命令和我们平时使用的形式很相似。,、矩阵运算,矩阵表达式 用 表示,矩阵元素间用空格或逗号隔开,行用分号隔开。如:a=1 2 3;4 5 6,b=7 8 9矩阵转置用A如:aa=a 对于复数矩阵是进行Hermit转置,先对矩阵元素转置,再逐项求取共轭数值。p13.m,1、矩阵表示和块操作,n,m=size(A)返回矩阵A的行数n,列数m n=length(A)=max(size(A)返回矩阵A的行数、列数的最大值,矩阵块操作 P15.m 可进行元素更改、插入子块、提取子块、重排子块、扩大子块等。冒号“:”的应用:代表全部,矩阵大小的查询 P14.m,2、矩阵运算,1)矩阵与标量的运算,矩阵与
12、标量进行+-和乘方运算时,是完成矩阵的每个元素对标量的运算。如a=1 2 3;4 5 6,要运算a1=a+2,a2=a-2,a3=a*2,a4=a/2;矩阵乘方时要求矩阵为方阵,如b=2 4;1 5,b1=b2%求平方b*b b2=b(-1)%求b的逆矩阵b3=b(0.2)%对b开次方 p18.m,.矩阵与矩阵的运算,(1).矩阵的加减运算矩阵的维数完全相同时才能进行加减运算,如 a=1 2 3;4 5 6,b=7;8;9,c=10 11 12 如计算 c1=a+b;c2=b+c;前者由于a b 维数不等出错 p19.m,(2).矩阵乘法运算矩阵的维数相容(a的列数=b的行数)时才能进行a*b
13、的乘法运算,若a=1 2 3;4 5 6,b=1 2;3 4,则不相容。,(3)矩阵除法运算有左除和右除两种:左除:AB=A-1B,A为方阵(X=AB是A*X=B的解)右除:A/B=AB-1,B为方阵(X=A/B是X*B=A的解)通常ABA/B p20.m,(4).矩阵点运算 矩阵有*/,向量有.*./.。但矩阵也可用点运算,是矩阵对应元素之间的直接运算(element by element)。点乘、点除要求矩阵的维数相同。P21.m,3、常用特殊矩阵和矩阵函数,常用矩阵函数,常用特殊矩阵,MATLAB被成为第四代编程语言,具有极高的编程效率,而且简单易学。一、M文件分成命令文件(脚本文件)和
14、函数文件两种:命令文件 用于把需在命令窗口执行的命令放在一起便于修改,无输入参数也无输出参数,比函数文件简单。,6.2.4 MATLAB程序设计,命令文件可对工作空间的变量进行操作,而且运行后,所产生的所有变量都驻留在工作空间,可被其它M文件或 SIMULINK直接引用(例mfile1、2),直到关闭MATLAB或使用清除指令clear。若要被某函数文件引用,则必须定义为全局变量(glabol a b)。,用于把重复的程序段封装起来,完成复杂任务,可以输入输出参数,输入输出变量可以是标量、数组、矩阵或字符串,也可以没有输入输出参数。函数文件的笫一行总是以“function”引导的“函数申明行”
15、。基本格式:function y1,y2,=myfunc(x1,x2,),函数文件,关键字,输出变量,函数名,输入变量,M函数文件有自己的工作空间,与MATLAB工作空间分开,二者之间由输入输出变量联系;M函数除输入输出变量外都是局部变量,在该函数返回后就自动清除掉了。若要在工作空间起作用,则定义为全局变量,并且应在工作空间和M函数中都要同时定义。函数名和函数文件名最好统一,以免出错。,函数申明行:位于函数文件的首行,以关键字 function 开头,函数名以及函数的输入输出变量都在这一行被定义。笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供lookfor关键词查询和 help在线帮
16、助使用 在线帮助文本区:笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者日期等。函数体:为清晰起见,与前面的注释以“空”行相隔。例:myguass.mtestguass.m,典型 M函数文件的结构如下:,、顺序结构、循环结构:、分支结构:,二.程序结构和控制语句(主要是三种结构):,if 条件表达式1 命令串1 elseif 条件表达式2 命令串2.else 命令串end myif.m,switch 表达式 case 值1 命令串1 case 值2 命令串2.otherwise 命令串e
17、nd,固定次数的for和不定次数的while,for 循环变量=数组范围 命令串end myfor.m,while 条件表达式 命令串 end mywhile.m,1、关系操作符 非零数值为真(1)、零为假(0)(大于)=(大于或等于)=(等于)=(不等于)MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。例p382、逻辑操作符:定义按照“与”、“或”、“非”的关系表达式&(与)|(或)(非)3、NaN、Inf和空矩阵 例p40NaN(Not a Number)表示:0/0 或 Inf-InfInf表示:1/0或计算中的数值
18、上溢产生的空矩阵是行列数为0的矩阵,是逻辑上的无或不存在,三.关系和逻辑运算,可定义一串文字并进行字符串的处理与运算。字符串是ASCII码的数值数组,每个字符占用2个字节存储。定义格式:用单引号括起来 x=Matlab is a software字符串的转换MATLAB定义一些字符串转换函数 如:例p41.m字符串运算函数eval命令是执行字符串的功能,可以执行一些操作命令,运行已有的M函数,计算并赋值给其它变量。例p43.m,四.字符运算,五.数据的输入输出,1、数据不多时,可由FileSave Workspace As保存工作空间当前所有变量(保存为*.mat)。类似地,由File Imp
19、ort Data 可装载数据。2、save、load命令:以二进制格式保存和读入save 将工作空间所有变量以二进制格式存入matlab.matsave filename 将所有变量以二进制格式存入filename.matsave filename x y z 将变量x y z以二进制格式存入 filename.matsave filename x y z ascii 以8位ASCII代替二进制格式 与save相对应,可用load命令加载数据。3、低级文件输入输出命令常用基本命令 例inout.m,%inout.mf1=fopen(test.txt,r)p=fscanf(f1,%c)f2=fo
20、pen(C:Documents and SettingsAdministrator桌面教学simulation程序chapter1name1.m,w);fprintf(f2,%s15n,%9.5fn,%9.5fn,%4(3.5f)n,p);fclose(all);,多项式运算是线性代数、线性系统分析中的重要内容。一、多项式的表示方法对于 P(x)=a0 xn+a1xn-1+an-1x+an,用多项式系数的降幂排列的行向量表示:P=a0 a1 an-1 an 二、求根及其逆运算roots(p)求多项式的根,并按列向量存储。p=1 2 0-5 6;%p(x)=x4+2x3-5x+6的多项式 rr=
21、roots(p);%求根,按列向量存储rr=-1.8647+1.3584i-1.8647-1.3584i 0.8647+0.6161i 0.8647-0.6161i poly(rr)由根的列向量求多项式的系数。例p30.m pp=1.0000 2.0000 0.0000-5.0000 6.0000,多项式运算,三、加、减与乘法 1、加、减可直接进行,要求两个多项式的行向量元素数目相等,当两个多项式阶数不等时,需补充0元素。p=1 2 0-5 6;%p(x)=x4+2x3-5x+6的多项式 s=0 0 1 2 3;%s(x)=x2+2x+3为与p进行加减,补0使行向量元素相等 c1=p+s;c1
22、=1 2 1-3 9%c1(x)=x4+2x3+x2-3x+93x+9 2、conv(a,b)完成两个多项式的乘法 f1=1 1;f2=1 2;f=conv(f1,f2)f=1 3 2%f(x)=(x+1)*(x+2)=x2+3x+2,四、多项式的微分和赋值 1、微分由polyder命令完成p=1 2 0-5 6;%p(x)=x4+2x3-5x+6的多项式 f=polyder(p);%多项式的微分 f=4 6 0-5%p(x)=4x3+6x2-5 2、给出多项式P(x)中自变量的范围,polyval可以计算出多项式的值 x=-1:0.1:2;%x由-1到2 y=polyval(p,x);%针对
23、自变量x,计算多项式p(x)的值,五、有理多项式常用于线性系统的Fourier变换、Laplace变换和Z变换。有理多项式的表示:分别由分子多项式和分母多项式表示;部分分式展开r,p,k=residue(num,den)见num分子多项式系数行向量;den分母多项式系数行向量;部分分式拟和num,den=residue(r,p,k)例p32.m,%p32.m,首先需安装Symbolic Toolbox工具箱。一、符号表达式符号表达式是包括数字、代数或有理运算和符号变量的MATLAB字符串,不要求预先确定变量的值。1.创建符号表达式简易:用字符串变量的生成法标准方法:sym()命令创建syms
24、命令创建的符号函数与sym()方法相同,但不能创建符号方程。例p50_1.m,6.2.6 符号运算,符号表达式,可定义矩阵及多种表达式,也有多种函数可对其进行操作。例p50.m,2.符号常量 不含变量的符号表达式如 f=sym(2*4-6)可进行数值或符号运算,3.符号变量,当符号表达式中含有多于一个的变量时,只有一个变量是独立变量,其余的文字符作常量处理。若不指定哪个变量是独立变量,将按一定的规则确定:除去i、j的小写字母,若无其它字母,x作独立变量。有多个字符变量,选择在字母顺序中最接近x的字符;若有相连的字符,选择在字母表中较后的字符.P52.m,二、符号表达式运算1、提取分子和分母 p
25、54.mnumden 可以提取有理分式的分子和分母,还可以进行通分,合并同类项后再提取分子分母。对符号矩阵也可作同样操作。,2、代数运算可进行符号表达式的加、减、乘、除和幂次。,symadd 符号加法symsub 符号减法symmul 符号乘法symdiv 符号除法 例:p55.m,3、高级运算:可进行符号表达式的复合、求逆函数、求前n-1项和等。compose(f,g)求复合函数f(g(x)例 p57.mfinverse(f)求f(x)的逆函数g(x)满足g(f(x)=xsymsum(f)求表达式前n-1项的和 例 p58.m,4、函数变换numeric()把符号常数变换成一个数值eval(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基础 应用 计算机仿真

链接地址:https://www.31ppt.com/p-6511857.html