MATLAB的计算机辅助分析设计和仿真.ppt

上传人:牧羊曲112 文档编号:5575699 上传时间:2023-07-29 格式:PPT 页数:56 大小:865.50KB
返回 下载 相关 举报
MATLAB的计算机辅助分析设计和仿真.ppt_第1页
第1页 / 共56页
MATLAB的计算机辅助分析设计和仿真.ppt_第2页
第2页 / 共56页
MATLAB的计算机辅助分析设计和仿真.ppt_第3页
第3页 / 共56页
MATLAB的计算机辅助分析设计和仿真.ppt_第4页
第4页 / 共56页
MATLAB的计算机辅助分析设计和仿真.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《MATLAB的计算机辅助分析设计和仿真.ppt》由会员分享,可在线阅读,更多相关《MATLAB的计算机辅助分析设计和仿真.ppt(56页珍藏版)》请在三一办公上搜索。

1、第一部分数字仿真实验,实验 1 Matlab概述,The MathWorks,Inc,Matlab的特点强大的数学运算能力方便实用的绘图功能及语言的高度集成性比较完善的控制领域的工具箱,第一部分数字仿真实验,实验 1 Matlab概述,1 Matlab语言的基本使用环境命令子窗(command window)程序调用版(Launch Pad)命令的历史记录(Command History)工作空间管理程序(Workspace)当前目录管理程序(Current Directory),第一部分数字仿真实验,Matlab的工作空间,命令是用命令行形式或m文件形式输入,那么输入的命令和创建的所有变量值

2、,就会驻留在Matlab的工作空间,可在任何需要的时候调用。,工作空间管理命令:who,whos,clear,实验 1 Matlab概述,关于变量和函数命名,一般为双精度浮点,8个字节(64位),-1.7*103081.7*10308,表示为 Double()图象处理中:无符号8 位整型,表示为 unit8(),int8(),变量(函数名)由字母引导,可跟字母、数字、下化线等,不超过19个字符。区分大小写,支持复数向量、矩阵和字符串型矩阵。,2 Matlab的基本特性,注释和标点,一行中,%后面的所有文字都是注释,多条命令可以放在同一行,只要它们被逗号或分号隔开,分号禁止显示。连续三个点 表示

3、语句的余下部分将在下行出现,变量名不能分开,注释行不能续行。,特定常数eps 浮点运算误差=2.2204*10-16j,i 纯虚数Inf 无穷大NaN 不定式pi 圆周率 ans 用于返回结果的缺省变量名nargin 所用函数的输入变量nargout 所用函数的输出变量,2 Matlab的基本特性,Matlab的搜索路径,当你在命令行输入一个字符串(可能是变量或命令),回车后,Matlab按一定的顺序执行。例如 ptest,顺序为:(1)检查是否为工作空间中的变量(2)检查是否为内置函数(3)检查MEX文件ptest.mex是否存在于当间目录(4)检查M文件ptest.m是否为存在于当间目录(

4、5)按次序搜索已设置的路径。检查ptest.mex或ptest.m是否为存在于matlab的搜索路径中。,应用c语言按照Mex技术要求的格式编写相应部分的程序,通过编译连接,形成Matlab可以直接调用的动态连接库,显著加快运算速度。,Matlab的三种执行方式,M 文件和M函数,1 脚本文件(批处理文件)启动M文件编辑器,b=1;2;3;A=1 2 3;4 5 6;7 8 9;Inv(A)*b;,脚本文件空间与Matlab工作空间是相同的。,Matlab的三种执行方式,M 文件和M函数,2 M函数 function s=example2(A,b)%求解线性方程组As=b的解sif det(A

5、)=0 s=inv(A)*belse error(A 是一个奇异矩阵)end;,s=example2(A,b),保存文件时,文件名和函数名必须相同。,Matlab的三种执行方式,m函数有自己专用的工作空间,函数内部变量与matlab工作空间之间的唯一联系是函数的输入和输出变量。,Matlab的全局变量,函数与其他函数、matlab工作空间共享变量。说明变量全局共享的方法是“global 变量名”,返回变量列表=函数名(变量列表)例如:v,d=eig(A),函数调用语句,Matlab里的函数(内置),x=1,pi,0.1 0.5 cos(x),Ones(2,2),eye(3)length(A),

6、size(A),sum(A),max(A)rank det log10,log log,sin cos tan,sum(x),t=0:0.1:10,Matlab的矩阵运算,A=1,2,3;4,5,6;7,8,9,Matlab的矩阵运算,冒号表达式给行向量赋值,A=A;1 2 4,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,

7、1)A(2,2)=1;,zeros(2,2)ones(3,1)eye(4),3 矩阵运算,矩阵转置,加、减、乘,除,B=A C=A+B;D=A*Binv(A)AB 左乘,当A为非奇异方阵时=inv(A)*B B/A 右乘,当A为非奇异方阵时=B*inv(A),C=A.*B 矩阵对应元素之间的乘积,点运算,4 流程控制结构,循环语句、条件语句、开关语句的结构,通常使用的循环格式为 for i=s1:s3:s2 判断i是否在s1,s2之间msum=0;for i=1:1:100,msum=msum+i;end;msum,循环结构,for end,whileend,for 循环变量=Vect 循环体

8、语句组end,4 流程控制结构,循环语句、条件语句、开关语句的结构,当逻辑变量为非零,则执行条件块语句组的内容,执行完后继续向下执行;若逻辑变量为零,则跳过条件块语句组直接向下执行 msum=0;i=1;while(i=100),msum=msum+i;i=i+1;end;,条件转移结构,whileend,if 逻辑变量 条件块语句组end,4 流程控制结构,循环语句、条件语句、开关语句的结构,开关语句switchcase,条件转移结构,if 条件式 条件块语句组1else 条件块语句组2end,if 条件式1 条件块语句组1elseif 条件式2 条件块语句组2:else 条件块语句组n+1

9、end,5 Matlab函数编写,M函数的基本结构,例 生成一个m*n阶的Hibert矩阵,它的第i行第j列的元素为1/(i+j-1),function 返回变量列表=函数名(输入变量列表)注释说明语句段 由%引导 输入、返回变量格式的检测 函数体语句,nargin:nargout:,5 Matlab函数编写,M函数例题,function A=myhilb(n,m)%If nargout1,error(Too many output arguments);endIf nargin=1,m=n;elseif nargin=01nargin2)error(wrong number of intpu

10、t arguments);endA1=zeros(n,m);for i=1:n for j=1:m A1(i,j)=1/(i+j-1);end,endIf nargout=1,A=A1;elseif nargout=0,disp(A1);end,5 Matlab函数编写,M函数的跟踪调试,function A=myhilb(n,m)%If nargout1,error(Too many output arguments);endIf nargin=1,m=n;elseif nargin=01nargin2)error(wrong number of intput arguments);endA

11、1=zeros(n,m);for i=1:n for j=1:m A1(i,j)=1/(i+j-1);end,endIf nargout=1,A=A1;elseif nargout=0,disp(A1);end,6 Matlab语言下图形绘制,基本二维图象绘制语句,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,。),6 Matlab语言下图形绘制,带有其他选项的绘图函数示例,plot(t

12、,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x),grid xlabel()ylabel()title()axis(xmin,xmax,ymin,ymax),二维曲线的标注方法,Matlab提供的特殊二维曲线绘制函数,6 Matlab语言下图形绘制,带有其他选项的绘图函数示例,plot(t,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x),6 Matlab语言下图形绘制,在已有的图形上叠加其他图形,hold on 设置当前图形的hold属性为onhold off 设置当前图形的hold属性为offishold 返回hold属性,T=

13、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),6 Matlab语言下图形绘制,带有其他选项的绘图函数示例,plot(t,sin(t),-,t,cos(t),:,t,sin(t).*cos(t),x),7 传递函数的Matlab描述,传递函数描述多项式描述与运算,p=1 3 0 5;q=1 2;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

14、(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,s

15、ign),单位反馈,消除公因式,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 命令行下的时域计算,给定

16、传递函数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

17、 可以识别的格式输入下面两个矩阵,再求出它们的乘积C,并将C矩阵的右下脚23子矩阵赋给D矩阵,赋值完成后,调用相应的命令查看matlab工作空间的占用情况。,仿真作业,2 解线性方程,3 用for 循环结构编写程序,求出,第一部分数字仿真实验,实验2 Matlab/simulink及时域仿真,Simulink 是matlab提供的实现动态系统建模和仿真的一个软件包。,simulink Simulink Library Browser 窗口Simlink 的基本模块库,第一部分数字仿真实验,实验2-1 Matlab/simulink及时域仿真,仿真步骤:根据系统模型建立mdl模型文件在指定输入信

18、号下进行数字仿真获得系统的时间响应曲线。根据性能指标的定义计算系统的各项性能指标。,第一部分数字仿真实验,实验2-1 Matlab/simulink及时域仿真,在工作空间利用matlab提供的函数例如step,margin等也可以进行时域分析计算。,实验2 Matlab/simulink及时域仿真,求解Van der Pol 方程,实验2-2 simulink 模型举例,在.mdl模型文件中描述方程的关系,在matlab命令窗给参数赋值mu=1;x01=1;x02=-2,实验2 Matlab/simulink及时域仿真,求解具有非线性环节的控制系统,实验2-2 simulink 模型举例,在.

19、mdl模型文件中描述方程的关系,在matlab命令窗给参数赋值c=1;,实验2-2 Matlab/simulink及时域仿真,子系统(subsystem),创建子系统,基于matlab函数的系统仿真分析,Matlab函数 pzmap,zp2tf,tf2zp,roots,求零极点图num=3 2 5 4 6;den=1 3 4 2 7 2;z,p,k=tf2zp(num,den)pzmap(num,den)roots(den)num1,dn1=zp2tf(z,p,k),当没有零点时,z=,应用simulink进行仿真,单位阶跃响应函数step 单位脉冲响应函数 impulse 任意输入下的响应函

20、数 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,1 2 0,-1)step(num,den)impulse(num,den),求系统的脉冲响应(稳定性)和动态性能指标.,例如:单位负反馈系统的开环传递函数为,实验 3 应用Matlab进行根轨迹分析,本节介绍的函数有rlocus,调用方式:rlocus(num,den)r,k=rlocus(num,

21、den)axis(minx maxx miny maxy),绘制根轨迹图,绘制系统的根轨迹图。,例题1:控制系统的开环传递函数为,实验 3 应用Matlab进行根轨迹分析,root-locus_examp1.m,num=1 5;d1=conv(1 1,1 2);d2=conv(1 3,d1);den=d2 0;rlocus(num,den)%或num,den=zp2tf(-5,0-1-2-3,3)r,k=rlocus(num,den);,绘制系统的根轨迹图。,实验 3应用Matlab进行根轨迹分析,作业题:控制系统的闭环传递函数为,绘制系统k变化时的根轨迹图;用根轨迹方法求当k=20时闭环的全

22、部极点,给出单位阶跃响应曲线;讨论系统的闭环主导极点是哪些,用主导极点法给出系统的单位阶跃响应,将结果与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=

23、1 1;d1=conv(1 2,1 3);den=d1 0;rlocus(num,den)%或r,k=rlocus(num,den);,写出k=20时的闭环系统的所有极点和零点,实验 3应用Matlab进行根轨迹分析,系统的闭环的主导极点=?,观看系统的单位阶跃响应,nmb=k1*1 4 3;denb=1 5 6+k1 k1;step(numb,denb),实验 3应用Matlab进行根轨迹分析,分析系统的单位阶跃响应的解析式,nmc=k1*1 4 3;denc=1 5 6+k1 k1 0;r,p,k=residue(numc,denc)r=p=k=,实验 3 应用Matlab进行根轨迹分析,

24、例题3 某单位反馈控制系统的开环传递函数为,绘制系统的根轨迹,确定当系统的阻尼比为0.7时系统的闭环极点,并分析系统的性能。,解:绘制根轨迹,nm=4 3 1;den=3 5 1 0;sgridrlocus(num,den)k,p=rlocfind(num,den),K=0.27552P=-1.7908-0.1623+0.1653j,实验 3 应用Matlab进行根轨迹分析,例题3 某单位反馈控制系统的开环传递函数为,绘制系统的根轨迹,确定当系统的阻尼比为0.7时系统的闭环极点,并分析系统的性能。,解:整理成标准形式,绘制根轨迹,nm=1 3/4 1/4;den=1 5/3 1/3 0;sgr

25、idrlocus(num,den)k,p=rlocfind(num,den),K=0.27552P=-1.7908-0.1623+0.1653j,实验 3 应用Matlab进行根轨迹分析,习题4-6 某单位反馈控制系统的开环传递函数为,绘制系统的根轨迹,确定当系统的阻尼比为0.7时系统的闭环极点,并分析系统的性能。,解:整理成标准形式,绘制根轨迹,nm=1 3/4 1/4;den=1 5/3 1/3 0;sgridrlocus(num,den)k,p=rlocfind(num,den),实验 4 应用Matlab进行频域分析,Matlab 函数有bode,logsapce,margin,绘制系统的频率特性图bodebode(num,den),nm=5*0.1 1;d1=conv(0.5 1,1/2500 0.6/50 1);den=d1 0;bode(num,den)mag,phase=bode(num,den);,实验 4 应用Matlab进行频域分析,Matlab 函数有bode,logsapce,margin,w:rad/s完全指定频率可用logspace函数说明,扫描翻译书的p377,介于10a与10b之间的n个点,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号