MATLAB的计算机辅助分析设计和仿真_第1页
MATLAB的计算机辅助分析设计和仿真_第2页
MATLAB的计算机辅助分析设计和仿真_第3页
MATLAB的计算机辅助分析设计和仿真_第4页
MATLAB的计算机辅助分析设计和仿真_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第一部分数字仿真实验,实验1Matlab概述,TheMathWorks,Inc,Matlab的特点强大的数学运算能力方便实用的绘图功能及语言的高度集成性比较完善的控制领域的工具箱,第一部分数字仿真实验,实验1Matlab概述,1Matlab语言的基本使用环境命令子窗(commandwindow)程序调用版(LaunchPad)命令的历史记录(CommandHistory)工作空间管理程序(Workspace)当前目录管理程序(CurrentDirectory),第一部分数字仿真实验,Matlab的工作空间,命令是用命令行形式或m文件形式输入,那么输入的命令和创建的所有变量值,就会驻留在Matlab的工作空间,可在任何需要的时候调用。,工作空间管理命令:who,whos,clear,实验1Matlab概述,关于变量和函数命名,一般为双精度浮点,8个字节(64位),-1.7*103081.7*10308,表示为Double()图象处理中:无符号8位整型,表示为unit8(),int8(),变量(函数名)由字母引导,可跟字母、数字、下化线等,不超过19个字符。区分大小写,支持复数向量、矩阵和字符串型矩阵。,2Matlab的基本特性,注释和标点,一行中,%后面的所有文字都是注释,多条命令可以放在同一行,只要它们被逗号或分号隔开,分号禁止显示。连续三个点表示语句的余下部分将在下行出现,变量名不能分开,注释行不能续行。,特定常数eps浮点运算误差=2.2204*10-16j,i纯虚数Inf无穷大NaN不定式pi圆周率ans用于返回结果的缺省变量名nargin所用函数的输入变量nargout所用函数的输出变量,2Matlab的基本特性,Matlab的搜索路径,当你在命令行输入一个字符串(可能是变量或命令),回车后,Matlab按一定的顺序执行。例如ptest,顺序为:(1)检查是否为工作空间中的变量(2)检查是否为内置函数(3)检查MEX文件ptest.mex是否存在于当间目录(4)检查M文件ptest.m是否为存在于当间目录(5)按次序搜索已设置的路径。检查ptest.mex或ptest.m是否为存在于matlab的搜索路径中。,应用c语言按照Mex技术要求的格式编写相应部分的程序,通过编译连接,形成Matlab可以直接调用的动态连接库,显著加快运算速度。,Matlab的三种执行方式,M文件和M函数,1脚本文件(批处理文件)启动M文件编辑器,b=1;2;3;A=123;456;789;Inv(A)*b;,脚本文件空间与Matlab工作空间是相同的。,Matlab的三种执行方式,M文件和M函数,2M函数functions=example2(A,b)%求解线性方程组As=b的解sifdet(A)=0s=inv(A)*belseerror(A是一个奇异矩阵)end;,s=example2(A,b),保存文件时,文件名和函数名必须相同。,Matlab的三种执行方式,m函数有自己专用的工作空间,函数内部变量与matlab工作空间之间的唯一联系是函数的输入和输出变量。,Matlab的全局变量,函数与其他函数、matlab工作空间共享变量。说明变量全局共享的方法是“global变量名”,返回变量列表=函数名(变量列表)例如:v,d=eig(A),函数调用语句,Matlab里的函数(内置),x=1,pi,0.10.5cos(x),Ones(2,2),eye(3)length(A),size(A),sum(A),max(A)rankdetlog10,loglog,sincostan,sum(x),t=0:0.1:10,Matlab的矩阵运算,A=1,2,3;4,5,6;7,8,9,Matlab的矩阵运算,冒号表达式给行向量赋值,A=A;124,b=s1:s2:s3,x=(first:last)x=(first:increment:last)x=linspace(first,last,n)x=logspace(first,last,n),3矩阵的Matlab表示,访问矩阵的元素,A=1,2,3;4,5,6;7,8,9,A(1,:)A(2,1:3)A(1:3,1)A(2,2)=1;,zeros(2,2)ones(3,1)eye(4),3矩阵运算,矩阵转置,加、减、乘,除,B=AC=A+B;D=A*Binv(A)AB左乘,当A为非奇异方阵时=inv(A)*BB/A右乘,当A为非奇异方阵时=B*inv(A),C=A.*B矩阵对应元素之间的乘积,点运算,4流程控制结构,循环语句、条件语句、开关语句的结构,通常使用的循环格式为fori=s1:s3:s2判断i是否在s1,s2之间msum=0;fori=1:1:100,msum=msum+i;end;msum,循环结构,forend,whileend,for循环变量=Vect循环体语句组end,4流程控制结构,循环语句、条件语句、开关语句的结构,当逻辑变量为非零,则执行条件块语句组的内容,执行完后继续向下执行;若逻辑变量为零,则跳过条件块语句组直接向下执行msum=0;i=1;while(i1,error(Toomanyoutputarguments);endIfnargin=1,m=n;elseifnargin=01nargin2)error(wrongnumberofintputarguments);endA1=zeros(n,m);fori=1:nforj=1:mA1(i,j)=1/(i+j-1);end,endIfnargout=1,A=A1;elseifnargout=0,disp(A1);end,5Matlab函数编写,M函数的跟踪调试,functionA=myhilb(n,m)%Ifnargout1,error(Toomanyoutputarguments);endIfnargin=1,m=n;elseifnargin=01nargin2)error(wrongnumberofintputarguments);endA1=zeros(n,m);fori=1:nforj=1:mA1(i,j)=1/(i+j-1);end,endIfnargout=1,A=A1;elseifnargout=0,disp(A1);end,6Matlab语言下图形绘制,基本二维图象绘制语句,plot(x,y),t=0:0.1:2*pi;y=sin(t);cos(t);plot(t,y),t=0:0.1:2*pi;plotyy(t,sin(t),t,0.1*cos(t),带有其他选项的绘图函数,plot(x1,y1,选项1,x2,y2,选项2,。),6Matlab语言下图形绘制,带有其他选项的绘图函数示例,plot(t,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x),gridxlabel()ylabel()title()axis(xmin,xmax,ymin,ymax),二维曲线的标注方法,Matlab提供的特殊二维曲线绘制函数,6Matlab语言下图形绘制,带有其他选项的绘图函数示例,plot(t,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x),6Matlab语言下图形绘制,在已有的图形上叠加其他图形,holdon设置当前图形的hold属性为onholdoff设置当前图形的hold属性为offishold返回hold属性,T=0:0.1:10;plot(t,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x);legend(sin(t),cos(t),cos(t)*sin(t),6Matlab语言下图形绘制,带有其他选项的绘图函数示例,plot(t,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x),7传递函数的Matlab描述,传递函数描述多项式描述与运算,p=1305;q=12;n=conv(p,q)roots(p)value=polyval(n,-2),p(s)=s3+3s2+5,n(s)=p(s)q(s),多项式p(s)的根,求s=-2时n(s)的值,7传递函数的Matlab描述,传递函数描述G=tf(num,den),G=tf(num,den)printsys(G)p,z=pzmap(num,den),G(s)=num(s)/den(s),零极点图,打印结果,G(s)=(6s2+1)/(s3+3s2+3s+1),z,p,k=tf2zp(num,den),7传递函数的Matlab描述,框图的串联、并联和反馈num,den=series(num1,den1,num2,den2)num,den=paralle1(num1,den1,num2,den2)num,den=feedback(num1,den1,num2,den2,sign),单位反馈,消除公因式,num,den=cloop(num1,den1,sign)num,den=minreal(numg,deng),7传递函数的Matlab描述,设:G1=num1/den1,G2=num2/den2num1=s+1,den1=s2+5s+6num2=1,den2=s2+3s求G1G2的串联和反馈连接的等效传函,并求出零极点图,num,den=series(num1,den1,num2,den2)num,den=feedback(num1,den1,num2,den2,signnum,den=cloop(num1,den1,sign),8命令行下的时域计算,给定传递函数G1=2,计算单位阶跃响应G2=1/(s+1)(s+3),y,x,t=step(num,den);plot(t,y),step(num,den),y,x,t=step(num,den,t);plot(t,y),8命令行下的时域计算,磁盘驱动读取系统框图模型,磁盘驱动读取系统框图模型,讨论:增益K=10,80时系统阶跃指令(r(t)=u(t)的瞬态响应和扰动阶跃信号(d(t)=u(t)所产生的响应.,磁盘驱动读取系统框图模型,解:1求反馈回路的传递函数,R(s)-Y(s);D(s)-Y(s)2用step函数求对应的响应,求响应的稳态值,画出曲线。,仿真作业,1用Matlab可以识别的格式输入下面两个矩阵,再求出它们的乘积C,并将C矩阵的右下脚23子矩阵赋给D矩阵,赋值完成后,调用相应的命令查看matlab工作空间的占用情况。,仿真作业,2解线性方程,3用for循环结构编写程序,求出,第一部分数字仿真实验,实验2Matlab/simulink及时域仿真,Simulink是matlab提供的实现动态系统建模和仿真的一个软件包。,simulinkSimulinkLibraryBrowser窗口Simlink的基本模块库,第一部分数字仿真实验,实验2-1Matlab/simulink及时域仿真,仿真步骤:根据系统模型建立mdl模型文件在指定输入信号下进行数字仿真获得系统的时间响应曲线。根据性能指标的定义计算系统的各项性能指标。,第一部分数字仿真实验,实验2-1Matlab/simulink及时域仿真,在工作空间利用matlab提供的函数例如step,margin等也可以进行时域分析计算。,实验2Matlab/simulink及时域仿真,求解VanderPol方程,实验2-2simulink模型举例,在.mdl模型文件中描述方程的关系,在matlab命令窗给参数赋值mu=1;x01=1;x02=-2,实验2Matlab/simulink及时域仿真,求解具有非线性环节的控制系统,实验2-2simulink模型举例,在.mdl模型文件中描述方程的关系,在matlab命令窗给参数赋值c=1;,实验2-2Matlab/simulink及时域仿真,子系统(subsystem),创建子系统,基于matlab函数的系统仿真分析,Matlab函数pzmap,zp2tf,tf2zp,roots,求零极点图num=32546;den=134272;z,p,k=tf2zp(num,den)pzmap(num,den)roots(den)num1,dn1=zp2tf(z,p,k),当没有零点时,z=,应用simulink进行仿真,单位阶跃响应函数step单位脉冲响应函数impulse任意输入下的响应函数lsim,t=0:0.01:5;u=sin(t);lsim(sys,u,t)sys=tf(num,den)y,t,x=lsim(sys,u,t),y,t,x=lsim(sys,u,t)y,t,x=lsim(sys,u,t,x0),应用simulink进行仿真,num,den=cloop(10,120,-1)step(num,den)impulse(num,den),求系统的脉冲响应(稳定性)和动态性能指标.,例如:单位负反馈系统的开环传递函数为,实验3应用Matlab进行根轨迹分析,本节介绍的函数有rlocus,调用方式:rlocus(num,den)r,k=rlocus(num,den)axis(minxmaxxminymaxy),绘制根轨迹图,绘制系统的根轨迹图。,例题1:控制系统的开环传递函数为,实验3应用Matlab进行根轨迹分析,root-locus_examp1.m,num=15;d1=conv(11,12);d2=conv(13,d1);den=d20;rlocus(num,den)%或num,den=zp2tf(-5,0-1-2-3,3)r,k=rlocus(num,den);,绘制系统的根轨迹图。,实验3应用Matlab进行根轨迹分析,作业题:控制系统的闭环传递函数为,绘制系统k变化时的根轨迹图;用根轨迹方法求当k=20时闭环的全部极点,给出单位阶跃响应曲线;讨论系统的闭环主导极点是哪些,用主导极点法给出系统的单位阶跃响应,将结果与2)比较,并进行分析(可用解析法)。,实验3应用Matlab进行根轨迹分析,例题2:控制系统的闭环传递函数为,解:写出根轨迹方程,实验3应用Matlab进行根轨迹分析,root-locus_examp2.m,选择闭环复数的极点,-2.0,根轨迹增益k=20.找出另一个极点-0.89,写出k=20时的闭环系统的所有极点和零点,实验3应用Matlab进行根轨迹分析,root-locus_examp2.m,选择闭环复数的极点,-2.0,根轨迹增益k=20.找出另一个极点-0.89,num=11;d1=conv(12,13);den=d10;rlocus(num,den)%或r,k=rlocus(num,den);,写出k=20时的闭环系统的所有极点和零点,实验3应用Matlab进行根轨迹分析,系统的闭环的主导极点=?,观看系统的单位阶跃响应,nmb=k1*143;denb=156+k1k1;step(numb,denb),实验3应用Matlab进行根轨迹分析,分析系统的单位阶跃响应的解析式,nmc=k1*143;denc=156+k1k10;r,p,k=residue(numc,denc)r=p=k=,实验3应用Matlab进行根轨迹分析,例题3某单位反馈控制系统的开环传递函数为,绘制系统的根轨迹,确定当系统的阻尼比为0.7时系统的闭环极点,并分析系统的性能。,解:绘制根轨迹,nm=431;d

温馨提示

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

评论

0/150

提交评论