收藏 分销(赏)

计算仿真课件 第五章 MATLAB建模与仿真.ppt

上传人:pc****0 文档编号:13356762 上传时间:2026-03-06 格式:PPT 页数:26 大小:922.50KB 下载积分:10 金币
下载 相关 举报
计算仿真课件 第五章 MATLAB建模与仿真.ppt_第1页
第1页 / 共26页
计算仿真课件 第五章 MATLAB建模与仿真.ppt_第2页
第2页 / 共26页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,济南大学控制科学与工程学院,计算机仿真技术,计算机仿真技术,济南大学控制科学与工程学院,授课教师:李实,cse_lis,1,教,1007,室,第五章,MATLAB,建模与仿真,5.1 MATLAB,语言基础,5.2 MATLAB,在控制系统仿真中的应用,5.3 MATLAB,常微分方程建模与仿真,5.4 SIMULINK,仿真,2,5.1 MATLAB,语言基础,5.1.1 MATLAB,软件介绍,5.1.2,工作空间与使用帮助,5.1.3,基本运算,5.1.4,矩阵函数,5.1.5,绘图功能,3,5.1.1,MATLAB,软件介绍,MATLAB,是一款以矩阵为基础的用于数学与工程计算的软件。,它不是一种计算机语言,而是一种高级的用于科学分析与计算的软件。,4,5.1.1,MATLAB,软件介绍,MATLAB,取自与,Matrix,与,Laboratory,两词的前三个字母组合。起源于,20,世纪,70,年代后期,用,FORTRAN,语言编写的用于减轻学生负担的集命令翻译、科学计算与一体的交互式软件系统。,1984,年成立,MathWorks,公司,将,MATLAB,推向市场,内核采用,C,语言编写,增加数据图视功能,因为其良好的开放性与运行可靠性,淘汰控制领域大量的封闭式软件。,1993,年推出,MATLAB4.0,版本,从此告别了,DOS,版,并推出了,SIMULINK,,这是一个交互式操作的动态系统建模、仿真、分析集成环境。开发了与外部直接交换数据的组件,使其可以进行实时数据分析、处理和硬件开发。推出了符号计算软件包。构建了,Notebook,。,2005,年,MATLAB,为,7.1,版本。,MATLAB,有很多工具包,(Toolbox),,一个工具包是一些特定,M,文件的集合。比如,控制分析与设计工具包,优化工具包,预测控制工具包,偏微分方程工具包,5,5.1.2,工作空间与使用帮助,6,clear:,清楚工作空间中所有的变量,clear,变量名:清楚指定的变量,永久常数:,pi:,圆周率,inf:,无限大,ans,:用于显示结果的缺省变量名,save filename variables,保存变量在文件,filename.mat,中。,load filename variables,调用文件,filename.mat,中的变量到,MATLAB,工作空间中。,help function name:,查询该函数的用法,比如,help inv,是用来查询计算反矩阵的用法。,helpwin,:帮助窗口,demo:,示例窗口,,MATLAB,有丰富的示例供学习参考。,7,5.1.3,基本运算,书写向量,(vectors),与矩阵,(matrices),t=5:-1:2,%,产生行向量,x=1 2 3-4-5,或,x=1,2,3,-4,-5,表示行向量,x=1;2;3;-4;-5%,用分号则表示列向量,输入矩阵:,A=1.2 10 15;3 5.5 2;4 6.8 7,如果在矩阵,A,后面加上分号,;,取消打印,A(i,:),第,i,行,,A(:,j),第,j,列,y=x,%,表示,x,的反转矩阵为,y,写成,C=1 exp(-0.02);sqrt(2)3,linespace,产生向量:,x=linespace(n1,n2,n),从,n1,到,n2,有,n,个点,x=linespace(-10,10,5),%,从,-10,到,10,有,5,个点,logspace,产生向量,:x=logspace(n1,n2,n),从,10,d1,到,10,d2,有,n,各点,x=logspace(-1,1,10),%,从,0.1,到,10,有,10,个点,黄色数字为直接在,MATLAB,中输入的命令,8,转置与共轭转置,(transpose and conjugate transpose),实矩阵情况:,A=1 2 3;4 5 6;7 8 9B=A,复数情况:,x=1+sqrt(3)*i,or,x=1+sqrt(3)*j,用,i,或,j,表示复数,如果,i,和,j,已经作为变量使用,定义新的复数单位:,ii=sqrt(-1),or,jj=sqrt(-1),x=1+sqrt(3)*ii,or,x=1+sqrt(3)*jj,书写复数矩阵,(complex matrices),写成,X=1 j;-5*j 2,共轭转置为:,Y=X.,或,Y=conj(X),(,写成,Y=X,是错误的,),当式子太长时,可以用,来表示换行,x=1.234+2.345+3.456+4.567+5.678+6.789,+7.890+8.901-9.012,9,特殊矩阵产生,ones(n),产生,n,乘,n,矩阵,元素值均为,1.,ones(m,n),产生,m,乘,n,矩阵,元素值均为,1.,zeros(n),产生,n,乘,n,零矩阵,zeros(m,n),产生,m,乘,n,零矩阵,单位矩阵,(Identity matrix),eye(n),产生,n,乘,n,单位矩阵,即对角线为,1,,其它为,0,对角矩阵,(Diagonal matrix),diag(x),产生对角矩阵,,x,为对角线元素,.,比如,x=ones(1,10),产生,110,的行向量,元素值均为,1,diag(x),产生,1010,对角矩阵,对角线元素为,1,如果,x,是,nn,矩阵,,diag(x),是包含,x,矩阵对角线元素的列向量:,A=1 2 3;4 5 6;7 8 9,diag(A),diag(diag(A),10,对角矩阵,(Diagonal matrix),diag(1:5),diag(0:4),时间与日期,clock,:,产生包含年、月、日、时、分、秒的行向量,date,:,当前日期,加法与减法,(addition and subtraction),A=2 3;4 5;6 7;B=1 0;2 3;0 4;C=A+B,x=5;4;6;y=x-1,乘法,(multiplication),x=1;2;3;y=4;5;6;A=1 1 2;3 4 0;1 2 5;,z=x*y,u=x*y,v=y*x,11,复数的幅值与相角,(magnitude and phase angle of a complex number),复数,z=x+iy=re,i,幅值为,r,,相角为,,可以表示为,r=abs(z)theta=angle(z),数组相乘,(array multiplication),矩阵或向量里的元素相乘,表示为,.*,x=1 2 3;y=4 5 6;z=x.*y,A=1 2 3;0 9 8;B=4 5 6;7 6 5;C=A.*B,数组的幂,同数组相乘一样,对矩阵或向量的元素求幂,表示为,.,x=1 2 3;y=x.2,A=1+j 2-2*j;3+4*j 5-j;B=A.2,12,绝对值,(absolute values),复数的绝对值等于实部平方与虚部平方的和再开平方根,abs(A)=sqrt(real(A).2+imag(A).2),A=2+2*i 1+3*j;4+5*j 6-j;abs(A)angle(A),数组除法,(Array division),数组相除为 左除,./,与 右除,.A,除以,B A./B B,除以,A A.B,x=1 2 3;y=4 5 6;,u=x./y,v=x.y,A=1 2 3;1 9 8;B=4 5 6;7 6 5;,C=A./B,D=A.B,除法中要注意分母为,0,时,,MATLAB,会给出警告:,5/0,0/0,13,5.1.4,矩阵函数,特征值与特征向量,(Eigenvalues and eigenvectors),A,是一个,nn,矩阵,具有,n,个特征值满足,Ax=,x,特征值,在,MATLAB,中的计算函数为,eig(A),产生一个列向量表示特征值,如果,A,是实数并且对称的,那么特征值为实数,如果,A,不是对称的,特征值经常是复数:,A=0 1 0;-1 0 2;3 0 5;eig(A),根据公式,AX=XD,这里,D,为矩阵形式的特征值,,X,为矩阵形式的特征向量,A=0 1 0;0 0 1;-6-11-6;X D=eig(A),14,特征方程,(caracteristic equation),矩阵的特征方程的根即为矩阵的特征值。,A=0 1 0;0 0 1;-6-11-6;,p=poly(A),得到,p=1 6 11 6,表示特征方程的系数,特征方程为:,s,3,+6s,2,+11s+6,计算特征方程,p,的根:,r=roots(p),计算矩阵,A,的特征值,lameda=eig(A),两者是相等的。,还可以已知多项式的根,用函数,poly(r),求多项式的系数。,r=-3-2-1;p=poly(r),15,多项式乘积,(,卷积,convolution),将两个多项式系数向量相乘,conv(a,b),a=3 10 25 36 50;b=1 2 10;,c=conv(a,b),即,a(s)=3,s,4,+10s,3,+25s,2,+36s+50,b(s)=,s,2,+2s+10,c(s)=(3,s,4,+10s,3,+25s,2,+36s+50)*(s,2,+2s+10)=,多项式相除,(,解卷积,deconvolution),将两个多项式系数向量相除,deconv(a,b),a=3 10 25 36 50;b=1 2 10;,q,r=deconv(a,b),q,和,r,是多项式相除得到的商和余数,得到,q=3 4-13,r=0 0 0 22 180,即,a(s)=b(s)*q(s)+r(s),3,s,4,+10s,3,+25s,2,+36s+50=(s,2,+2s+10)*(3s,2,+4s-13)+22s+180,16,矩阵指数运算,(matrix exponential),函数,expm(A),指将矩阵,A,做指数运算:,expm(A)=I+A+A,2,/2!+A,3,/3!+,A=0 1 0;0 0 1;-6-11-6;,expm(A),expm(eye(3),矩阵求逆,(inverse of a square matrix),A=1 1 2;3 4 0;1 2 5;,inv(A),17,5.1.4,绘图功能,MATLAB,具有强大的绘图功能。主要分为二维绘图与三维绘图。要定义不同维度相应的坐标。,二维线型图形:,plot.,比如,定义时间从,0,到,2,,每隔,0.01,取一个时间点,,在该时间序列内计算正弦函数,y=sin(3*t),的数值,并以时间为,x,轴,以函数值为,y,轴,画出时间响应曲线:,t=0:0.01*pi:2*pi;,y=sin(3*t);,plot(t,y),添加网格线,图形标题,,x,轴标题,,y,轴标题:,grid;,title(plot of sin(3t);,xlabel(t(sec);,ylabel(sin(3t);,18,在图形上标记文字:,text(pi,sin(3*pi),sin3t);%,在点,(,sin(3,),),出标记文字,sin3t,gtext(sin(3t)%,该命令输入后,产生光标输入文字位置,限制,x,、,y,轴区域,在,MATLAB,绘图中,,x,轴和,y,轴的区域是自动选择的,有时需要手动选择区域,.,xlim(0 2*pi);ylim(-2 2);,选择图形形状,普通默认为实线图,即将各点用曲线起来,可以选择其他形状绘图,.,线绘图包括“,实线”,“,-,短划线”,“:,点线”,“,-.,短划线与点线”:,plot(t,y,-,t,2*y,-,t,3y,:,t,4y,-.),点绘图包括“,+”,,“,o,”,“*”,“,x”,等,详见,help plot.,plot(t,y,-,t,2*y,-+,t,3y,:o,t,4y,-.x),19,选择图形颜色,系统默认颜色为蓝色,可以自己选择图形颜色:,redr;greeng;blueb,whitew;yellow y;magentam(,紫色,),cyanc;(,青色,)blackk,plot(t,y,-r,t,2*y,-+c,t,3y,:om,t,4y,-.xg),选择线的粗细大小,系统默认为,0.5,,可以自己加粗线:,plot(t,y,-r,t,2*y,-+c,t,3*y,:om,t,4*y,-.xg,LineWidth,3),20,在图形上显示希腊字符与符号,显示希腊字符:,alpha,;,beta;,gamma;,Gamma;,delta;,Delta;,omega;,Omega;,sigma;,Sigma;,phi;,psi;,theta;,zeta;,pi;,Pi,plot(t,y);text(pi,sin(3*pi),sin(3pi);,显示其他数学符号:,infinity,leftarrow,uparrow,rightarrow,downarrow,circ,pm,plot(t,y);text(pi,sin(3*pi),leftarrowsin(3pi);,21,变化文字大小与字体,plot(t,y);grid;,title(plot of sin(3t),Fontsize,20);,xlabel(t(sec),Fontangle,italic);,ylabel(sin(3t),Fontname,Times New Roman);,下标:,y_1,显示为,y,1,.,上标:,y1,显示为,y,1,.,复数数据画图,如果,z,为复数,,plot(z),自动按照实部和虚部画图,即等于,plot(real(z),imag(z),z=2+2*i 3+3*j 4+5*j 6+7j 7+9j 8+6j 9+5j 10+j;,plot(z),xlabel(real axis);,ylabel(imaginary axis),22,极坐标图:,polar(theta,rho),theta,为角度,,rho,为半径。,x=0:0.1*pi:pi;%,角度为从,0,到,,间隔,0.1,y=0:1:10;%,半径为从,0,到,10,,间隔为,1.,polar(x,y),对数图,(logarithmic plots),:,loglog:x,轴和,y,轴均使用,log,10,数字变换,即,x,轴为,log,10,x,y,轴为,log,10,y,.,x=1:1:100;y=1:10:1000;,loglog(x,y),semilogx:x,轴用,log,10,变换,但,y,轴不变。,semilogx(x,y),semilogy:x,轴不变,,y,轴用,log,10,变换,.,semilogy(x,y),23,使用多图模式,一个图形窗口可以分为多个小图,每个小图单独使用,plot,绘图,subplot(m,n,p),将窗口分为,m,乘,n,个子窗口,,p,代表当前的子窗口。,t=0:0.01*pi:2*pi;,y1=sin(t);y2=sin(2*t);,y3=sin(t)+sin(2*t);y4=sin(t)*sin(2*t);,subplot(2,2,1),plot(t,y1);grid;xlabel(t(sec);ylabel(y_1=sin(t);,subplot(2,2,2),plot(t,y2);grid;xlabel(t(sec);ylabel(y_2=sin(2t);,subplot(2,2,3),plot(t,y3);grid;xlabel(t(sec);ylabel(y_3=sin(t)+sin(2t);,subplot(2,2,4),plot(t,y4);grid;xlabel(t(sec);ylabel(y_4=sin(t)*sin(2t);,24,三维画图,MATLAB,可以使用,plot3,、,mesh,、,surf,等进行三维画图,需要三个坐标系变量。,t=0:0.1*pi:6*pi;,x=cos(t);y=sin(t);z=t;,plot3(x,y,z);grid;,title(Three-dimensional coil);,xlabel(x-axis);ylabel(y-axis);zlabel(z-axis);,显示三维图形的表面,需要用函数,mesh,或,surf,:,mesh,只画出线的轮廓,并给线赋予颜色,颜色随,z,轴变化,而,surf,还给面赋予颜色,n=10;x,y,z=sphere(n);%,创建球面,figure 1;mesh(x,y,z);axis(equal);title(Mesh plot);,xlabel(x-axis);ylabel(y-axis);zlabel(z-axis);,figure 2;surf(x,y,z);axis(equal);title(Mesh plot);,xlabel(x-axis);ylabel(y-axis);zlabel(z-axis);,25,绘制三角波形图,u1=0:0.5:2;,u2=1.5:-0.5:-2;,u3=-1.5:0.5:0;,w=u1;u2;u3;,t=0:0.5:8;,plot(t,w);grid;,xlabel(t);ylabel(w);,26,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服