MATLAB与机电系统仿真_第二章ppt课件_第1页
MATLAB与机电系统仿真_第二章ppt课件_第2页
MATLAB与机电系统仿真_第二章ppt课件_第3页
MATLAB与机电系统仿真_第二章ppt课件_第4页
MATLAB与机电系统仿真_第二章ppt课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

.,第2章:MATLAB语言基础,2.1MATLAB工作环境2.1.1MATLAB软件的安装(略)(参考书:MATLABR2008与控制系统动态仿真实例教程谢仕宏化学工业出版社),.,2.1.2MATLAB软件的操作界面,.,2.1.2MATLAB软件的基本操作,(1)菜单(2)工具栏(3)命令窗口命令提示符.续行命令clear清除工作空间变量clc清除命令窗口的内容但不清除工作空间变量clf清除当前图形窗口的内容“”和“”搜寻CommandWindow执行过的命令逗号“,”命令或元素的分隔符分号“;”不显示操作结果,.,(4)当前路径浏览器MATLAB的所有文件都放在一组目录(文件夹)上。MATLAB把这些目录按优先级设计为“搜索路径”上的结点,此后MATLAB工作时,就沿着此搜索路径,从各个目录上寻找所需的文件、函数和数据。(5)工作空间浏览器(6)命令历史浏览器,.,2.2MATLAB语言的基本元素,2.2.1MATLAB语言变量变量命令规则必须以字母开头变量名可由字母、数字、下划线组成。变量名区分大小写注意事项:MATLAB设置了一些永久变量,使用时请注意。标点符号在matlab里有特殊用途,不可用于变量名称。,ans:计算结果的默认变量名eps:机器零阈值Inf或inf无穷大i或j:虚数单位pi:圆周率NaN或nan:非数变量,如0/0realmax:最大正实数realmin:最小正实数,.,在matlab里每一行命令就是一个语句。书写格式与数学表达式十分相近。MATLAB语句有表达式语句和赋值语句两种形式。(1)表达式语句。表达式由变量名、常数和运算符号以及括号组成。表达式执行运算后产生的结果,将自动赋给名为“ans”的默认变量。变量ans的值在下一条表达式语句执行后被刷新。,2.2.2MATLAB的基本语句结构,.,(2)赋值语句。,格式如下:赋值变量赋值语句表达式变量列表函数名(输入参数列表)赋值语句执行后,将其右边表达式计算产生的结果赋值给赋值语句中等号左边的变量,并存入MATLAB的工作空间。MATLAB可以同时执行以逗号“,”或分号“;”隔开的多个赋值语句。,.,2.2.3矩阵的生成及操作,矩阵的生成(1)直接赋值法。元素较少的简单矩阵可以在MATLAB窗口以命令行形式直接输入。使用时注意事项:矩阵的输入必须以方括号“”作为其开始和结束标志矩阵的行与行之间用分号“;”隔开,矩阵同一行元素之间要用空格或逗号“,”隔开。矩阵元素也可以采用表达式语句。,(2)增量赋值法。,A初值:增量:终值,其中,冒号为分隔表示符。增量赋值法通常用来生成多维向量或大矩阵。,.,【例】a=123;456;780a=123456780,A=9,8,7,6;5,4,3,2;11,13,15,17A=9876543211131517,实例,.,【例】A=1:0.5:2A=1.00001.50002.0000B=A;2*A;A/5B=1.00001.50002.00002.00003.00004.00000.20000.30000.4000,.,常用矩阵生成函数,ones(m,n)生成m行n列全1矩阵zeros(m,n)生成m行n列全0矩阵rand(m,n)生成m行n列在0,1区间均匀分布的随机矩阵eye(n)生成n阶单位阵magic(n)生成n阶魔方阵,.,对于矩阵的元素,可以通过其下标来引用。(1)全下标引用。用矩阵的行下标和列下标来表示矩阵的元素。如一个mn的矩阵A的第i行、第j列的元素可以用A(i,j)来引用。如果用来指定行和列的下标i和j是一个向量,则引用由行向量i和列向量j指定的A中的全部元素,如A(12,23)。,2矩阵的下标与引用,.,【例】A=135;246A=135246A(2,2)ans=4,.,(2)单下标引用,把矩阵的元素按先左后右的顺序展开成“一维长列”,然后对元素进行编号。,例如:一个mn的矩阵A的第i行、第j列元素A(i,j)对应的单下标表示为A(s),其中s(j-1)m+I,.,单下标引用实例,A=123456789A(3)ans=7A(4)ans=2,.,3、矩阵元素的赋值,(1)全下标方式如:A(i,j)B例:A=123456789,矩阵元素的赋值有:全下标方式单下标方式全元素方式,A(1:2,1:3)=111;111A=111111789,.,(2)单下标方式如:A(s)b,例:A(5:6)=1010A=11111017109A(3)=3A=11111013109,.,(3)全元素方式格式为:A(:)=B或AB。如:A=123456B=142536,A=BA=142536A(:)=BA=142536,!注意:全元素赋值当两个矩阵维数不同时,等同于将变量A赋新值。,.,A=ones(3)A=111111111B=magic(4)B=16231351110897612414151,A=BA=16231351110897612414151,例:,.,2.3矩阵运算,Matlab对于矩阵的运算与线性代数中的方法相同。除此专门定义了矩阵的左除和右除。Matlab中矩阵的除法与线性代书中乘以矩阵的逆意义近似。,.,2.3.1矩阵的转置,矩阵A的转置用A来表示。若A为复数矩阵,则A表示复数矩阵的共轭转置。若只想得到复数矩阵的转置,则用A.命令A为实数矩阵,AA.,.,2.3.2矩阵的加法和减法,Matlab语言可对具有相同阶数的两个矩阵或一个标量与矩阵进行加减运算。运算符为“+”、“-”矩阵运算则为对应元素相加减。标量与矩阵运算则为矩阵每一个元素与矩阵相加减。,.,2.3.3矩阵的乘法,Matlab语言的矩阵乘法分标量与矩阵乘法和矩阵与矩阵乘法(1)标量与矩阵乘法是标量与矩阵中每一个元素相乘。(2)矩阵乘法按照线性代数的法则。,.,2.3.4矩阵除法(一),1、矩阵左除AB表示矩阵A左除矩阵B,结果等于A的逆与B相乘,即:ABinv(A)*B,B=4913X=ABX=2.6442-0.17310.4904X1=inv(A)*BX1=2.6442-0.17310.4904,例2.19A=1127;385;436A=1127385436B=4;9;13,.,2.3.4矩阵除法(二),2、矩阵右除A/B表示矩阵A右除矩阵B,结果等于A乘以B的逆,即:A/B=A*inv(B),A/Bans=001010100A*inv(B)ans=001.000001.000001.000000.0000,例A=1127;385;436A=1127385436B=flipud(A)%矩阵B由矩阵A上下翻转得到B=4363851127,.,2.3.5矩阵的乘方,矩阵A的乘方表示为:AP(1)若A为方阵:当P为大于1的整数,则AP结果为矩阵A连乘P次。若P不是整数,则AP=V*D.P/V,其中D为矩阵A的特征值矩阵,V为对应的特征向量阵,可用eig函数求出D和V,V,D=eig(A)。(2)如果A为数值,P为方阵,则AP=V*AD/V,其中V,D=eig(P).,.,【例】矩阵的乘方运算,A=1015;2025B=147;258C1=A2C1=400525700925C2=A*AC2=400525700925,.,矩阵的乘方运算实例2,C3=A0.5C3=1.8173+0.8192i2.3965-0.4659i3.1954-0.6212i4.2138+0.3533iV,D=eig(A);V*D.0.5/Vans=1.8173+0.8192i2.3965-0.4659i3.1954-0.6212i4.2138+0.3533i,.,矩阵的乘方运算实例3,A=0.5;P=1015;2025;C5=APC5=1.8116-1.0303-1.37380.7813,V,D=eig(P);V*AD/Vans=1.8116-1.0303-1.37380.7813,.,常用矩阵操作函数,size()求取矩阵的维数inv(A)求矩阵A的逆矩阵length(A)求矩阵A的长度(列数)diag提取或生成对角阵eig矩阵特征值和特征向量det计算矩阵行列式poly计算特征多项式rank计算矩阵的秩tril提取矩阵下三角部分triu提取矩阵上三角部分(第2学时完),.,2.3.6数组的运算,数组和矩阵在表达形式和书写方法上完全相同,但它们的运算法则不一样。对数组的掌握可牢记两点:第一,加减运算符与矩阵的加减运算符相同,乘、除、乘方、转置运算符是在矩阵的乘、除、乘方、转置运算符前加“.”;第二,数组运算是针对元素的,即数组运算为对应元素的运算。,.,1.数组的加法和减法运算符为:“+”、“-”与矩阵相同,为对应元素相加减。2.数组的乘法与除法运算符为:“.*”、“./”(或.)是数组对应元素相乘、相除。对于数组X和Y,“X./Y”和“X.Y”结果不同,前者X相应的元素作被除数,后者X相应元素作除数。,.,3.数组的乘方运算运算符为:“.”,分三种情况:(1)两个数组之间的乘方(2)一个数组的某个具体标量数值的乘方:(3)一个标量数值的某个具体数组的乘方,X=1234;Y=5678;Z1=X.YZ1=164218765536Z2=X.4Z2=11681256Z3=4.XZ3=41664256,.,2.3.7数组的关系运算,数组与数组之间的关系运算实际是对应元素之间的运算。关系运算符:大于=大于等于不等于,【例】求t=0:0.1:1;x=sin(t),y=cos(t),x=y的关系运算结果。,.,2.3.8数组的逻辑运算符,逻辑运算符如下:%定义x向量y=213458;%定义y向量P3=polyfit(x,y,3)%求x,y的3次拟合多项式P10=polyfit(x,y,10)%求x,y的10次拟合多项式y3=polyval(P3,x);%求3次拟合多项式对应自变量x的函数值y10=polyval(P10,x);%求10次拟合多项式对应自变量x的函数值plot(x,y,o)%绘制原始数据点,数据点以“o”显示,holdon%绘图保持功能plot(x,y3,k-)%绘制3次多项式拟合曲线,线型为黑色实线plot(x,y10,b:)%绘制10次多项式拟合曲,线型为蓝色点连线legend(原始数据点,三次多项式拟合曲线,十次多项式拟合曲线)%添加图例xlabel(x)%添加x轴坐标ylabel(y)%添加y轴坐标title(数据拟合曲线)%添加标题,.,Maltab软件实例演示,【例正弦函数曲线拟合】,.,2.4MATLAB程序控制,2.4.1循环结构1.for循环结构语法结构为:fori=表达式表达式语句,表达式语句end2.while循环语句格式为:while表达式执行指令语句end,.,2.4.2if-else-end分支结构,1.单分支结构if表达式命令行end2.双分支结构if表达式命令行1else命令行2end,3多分支结构if表达式命令行1elseif命令行2elseend,.,2.4.3switch-case结构,switchsign%sign为一标量或字符串casex1%当sign等于x1时,执行命令行1。命令行1casex2命令行2casexn命令行notherwise命令行n+1end,.,2.5M文件的编写,MATLABM文件有脚本文件(也称文本文件,本书称作命令文件)和函数文件两种。,2.5.1M脚本文件m文件是以matlab语句构成的文本文件,以.m为扩展名。其创建方法如下:(1)单击MATLAB窗口的【File】【New】【M-file】菜单,(2)单击MATLAB窗口工具栏的工具,.,MATLAB的M文件有如下特点:M文件中的命令格式与CommandWindow中的命令格式没有任何区别。MATLAB运行脚本文件时,只是简单的从M文件中逐条读取命令并送到MATLAB窗口中执行。与CommandWindow中输入的命令一样,脚本文件产生的变量驻留工作空间,可使用clear命令清除,但不在CommandHistory窗口中显示。可在CommandWindow直接输入M文件名来运行M文。如m01。也可以在M文件编辑器中单击菜单“Debug”,在弹出的下拉菜单中单击“Run”或“SaveandRun”命令来运行M文件象其它高级语言编辑器一样,MATLAB语言的M文件编辑器也可以实现编辑、调试等功能。,.,2.5.2M函数文件,函数文件在使用时注意以下四点。(1)函数文件的第一行必须以“function”打头声明,函数声明的格式如下:Function输出变量列表=函数名(输入变量列表)(2)函数文件在运行过程中产生的变量都存放在函数文件本身的工作空间。(3)当函数文件执行完最后一条命令或遇到“return”命令时,就结束函数文件的运行,返回输出列表中的变量值。同时函数工作空间中的变量被清除。(4)函数工作空间是随具体的函数文件的调用而产生,随调用结束而被清除。函数工作空间是临时而独立的,与MATLAB的工作空间不同。(5)函数文件不需要end指令。,.,【例】编写一个函数文件,判断某一年是否为润年,functionrunnian()%如果某年能被4整除且当遇世纪年时必须同时能被100和4整除(即能被400整除)才能称为闰年year=input(请输入要判断的年份,如1980n);%input为键盘输入命令,/n为换行sign=0;ifrem(year,100)=0%判断year是否能被100整除ifrem(year,4)=0%判断year是否能同时被4整除sign=1;endelseifrem(year,4)=0sign=1;elsesign=0;endifsign=1fprintf(%d年是闰年,year)%“%d”在窗口输出十进制变量yearelsefprintf(%d年不是闰年,year)end,.,2.6MATLAB绘图,plot(x,y,ss):x、y为同维向量,绘制以x值为横坐标,y值为纵坐标的二维图形。ss为定义线形、颜色和数据点形状的字符串,如表2-17所示。如果省略,则默认为蓝色实线。plot(x,ss):绘制以x的下标为横坐标,以x的元素值为纵坐标的二维图形。,2.6.1基本二维图形的绘制MATLAB提供了绘制二维图形的函数plot()。,1plot函数的用法,.,颜色、先型、数据点类型标记符,.,图形标记命令:,xlabel:添加x坐标轴标签ylabel:添加y坐标轴标签title:添加标题grid:绘制网格(gridon/gridoff)legend:添加图例hold绘图保持命令(holdon/holdoff)gtext在图形窗口鼠标指定位置添加文本。,.,【例】在同一窗口绘制一个正弦曲线和一个余弦曲线,并用不同的线型、颜色标记。,.,2.6.2多条曲线的绘制,在一张图上绘制多条曲线,共有四种方法,其中:1、plot(x,y1,y2,.)x为向量,Yy1,y2,是矩阵。若x为行(列)向量,则y的每一行(列)与x同维。例:2、hold命令:绘图保持开关holdon打开绘图保持holdoff关闭绘图保持,.,3、在plot后使用多输入变量命令格式:plot(x1,y1,s1,x2,y2,s2,xn,yn,sn)(xi,yi)为数组对,每个数组对绘制一条曲线。【例】x=0:0.05:4*pi;y1=sin(x);y2=5*cos(x);plot(x,y1,x,y2),.,4、plotyy命令,用plotyy命令可绘制两个y坐标尺度不同的图形【例】x=0:0.05:4*pi;y1=sin(x);y2=5*cos(x);plot(x,y1,x,y2),.,2.6.3、多窗口绘制,命令格式:figure(n)n为创建窗口的序号,当该窗口已经存在,figure(n)将n窗口置为当前绘图窗口。【例】分别在三个窗口上绘制-10,10区间内正弦、余弦、反正切函数曲线。然后再分别修改图形标记。,.,2.6.4、单窗口多曲线子图,Matlab可在一个窗口上绘制以阵列方式分布的分图。分图分割命令:subplot(m,n,p),其中逗号可省略,即:subplot(mnp)。意思为将图分割为m行,n列个子图,指定在第p个子图上绘图。子图顺序按从左向右,从上向下排列。,【例】分别在同一窗口的不同子图上绘制-10,10区间内正弦、余弦、正切、反正切函数曲线。然后再分别修改图形标记。,.,2.6.5对数坐标图形绘制,绘制对数坐标的函数有Semilogx、semilogy和loglog。(1)semilogx(x,y)绘制半对数坐标图,其中X轴取以10为底的x向量的对数坐标。Y轴为线性坐标(2)semilogy(x,y)绘制半对数坐标图,其中Y轴取以10为底y向量的对数坐标。X轴为线性坐标(3)loglog(x,y)绘制全对数坐标图,X和Y轴全取以10为底的对数坐标。,.,【例】t=0:0.1:100;x1=10.t;y1=t;subplot(221)semilogx(x1,y1)subplot(222)x2=t;y2=10.t;semilogy(x2,y2)subplot(223)x3=10.t;y3=10.t;plot(x3,y3),.,2.6.7三维图形和网格曲面图,1.三维曲线绘制MATLAB还提供了绘制三维图像的函数plot3,格式如下plot3(x,y,z):绘制三维图形,x,y,z为具有相同维数的向量。plot3(X,Y,Z):X,Y,Z为具有相同维数的矩阵,绘制出3个矩阵的列向量的曲线。【例】绘制xt,ysin(t),zcos(t)的三维函数曲线。,.,2三维网格曲线绘制绘制函数:X,Y=meshgird(x,y):由向量x,y生成网格坐标点。mesh(X,Y,Z)绘制三维网格曲面。Surf(X,Y,Z)绘制三维阴影曲面。,.,【例2.21】绘制函数表示的曲面,解:命令如下:x=-7:0.1:7;y=x;X,Y=meshgrid(x,y);Z=sin(sqrt(X.2+Y.2)./sqrt(X.2+Y.2);mesh(X,Y,Z),.,2.7matlab编程仿真与应用2.7.1简单电路的仿真【例2.22】解:根据电路分析方法,可求得电容电压的全响应为:,其中暂态响应为:,其中稳态响应为:,求解电容电压响应及频率特性的matlab程序如下:,电容电压频率响应的传递函数为:G(s)=1/(RCs+1),.,解:命令如下R=2;C=0.5;tao=R*C;Um=10;w=2;Zc=1/(j*w*C);t=0:0.1:10;absH=abs(Zc/(R+Zc);%根据分压公式计算电容电压分压系数phiH=angle(Zc/(R+Zc);%计算电容电压的相角Ucst=Um*absH*cos(w*t+phiH);%电容电压的稳态响应Uctr=-Um*absH*c

温馨提示

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

评论

0/150

提交评论