




已阅读5页,还剩275页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机电工程学院机电工程系李安TelOmail:lianjdgc_lian,计算机仿真技术,参考文献,1.系统仿真概论,肖田元等编,清华大学出版社2.现代仿真技术与应用,康风举编,国防工业出版社3.先进仿真技术与仿真环境,熊光楞编,国防工业出版社4.仿真技术与软件,贾连兴主编,国防工业出版社,1.1仿真的基本概念及其分类1.1.1系统仿真的定义、分类及作用1.1.2计算机仿真的定义及其分类1.2计算机仿真的发展及其应用领域1.3计算机数字仿真的基本过程1.4先进仿真技术,1.1仿真(simulation)的基本概念及其分类,1.1.1系统仿真的定义、分类及其作用1)系统仿真的定义系统仿真是通过对系统模型的实验,研究一个存在的或设计中的系统。简言之,系统仿真是对系统动态模型的实验,即在仿真中,系统的动态模型在一定的实验条件下被行为产生器驱动,产生模型行为。,2)系统仿真的分类根据系统模型分类物理仿真、数学仿真、半物理仿真根据仿真系统的结构和实现手段不同分类数学仿真、物理仿真、半实物仿真、人在回路中仿真、软件在回路中仿真。根据虚实结合的程序分类构造仿真、虚拟仿真、实况仿真。,3)系统仿真的作用由于仿真技术在应用上的特殊功效(安全性和经济性),仿真技术获得了十分广泛的应用。世界各国几乎所有大型的发展项目,如阿波罗登月计划、战略防御系统、计算机集成制造、并行工程等,因为投资极大,又有相当的风险,而仿真技术的应用可以用较小的投资换取风险上的大幅度降低。仿真技术在复杂工程系统的分析和设计的研究中已成为不可缺少的工具,归纳起来,系统仿真技术的主要作用有:,优化系统设计。在复杂的系统建立以前,能够通过改变仿真模型结构和调整参数来优化系统设计。对系统或系统的某一部分进行性能评价。节省费用。重现系统故障,以便判断故障产生的原因。可以避免试验的危险性。进行系统抗干扰性能的分析研究。训练系统操作人员。系统仿真能为管理决策和技术决策提供依据。正因为仿真技术对国防建设、工农业生产及科学研究均具有极大的应用价值,所以,仿真技术被美国国家关键技术委员会于1991年确定为影响美国国家安全及繁荣的22项关键技术之一。,本章目录,1.1.2计算机仿真(ComputerSimulation)的定义及其分类,1)计算机仿真的定义计算机仿真是指应用性能相似原理,构成数字模型,在计算机上对系统进行试验研究。计算机仿真又称为数字仿真。,根据计算机分类模拟计算机仿真、数字计算机仿真、模拟数字混合仿真根据仿真时钟与实际时钟的比例关系实时仿真、欠实时仿真、超实时仿真根据系统模型的特性连续系统仿真、离散事件系统仿真,本章目录,计算机仿真的分类,1.2计算机仿真的发展及其应用领域,1)计算机仿真的发展第一阶段:模拟仿真技术发展阶段,1950年以前。动因:火炮与飞行控制动力学系统的研究。第二阶段:混合仿真技术发展阶段,5060年代。动因:洲际导弹和宇宙飞船飞行姿态及轨道控制动力学的研究。第三阶段:数字仿真技术发展阶段,70年代以后。模拟机混合机数字机,计算机仿真的应用类型:系统设计器对尚未有的系统进行设计时采用仿真技术;系统分析器对已有系统进行分析时采用仿真技术;系统预测器在系统运行前,利用仿真模型作为预测器,向用户提供系统运行起来后,可能产生什么现象,以便用户修订计划或决策;系统观测器在系统运行时,利用仿真模型作为观测器,给用户提供过去、现在甚至未来的信息,以便用户实时作出正确的决策,比如利用仿真技术进行故障分析和故障处理;系统训练器利用仿真模型作为训练器,训练系统操作人员或管理人员,2)计算机仿真的应用领域从历史上看,仿真技术首先被应用于那些在实际系统进行试验有危险、花费巨大的领域,比如:航空、航天、武器系统等,以后逐渐扩大到虽然可在实际系统上进行试验,但花费较大、耗时较长、不大方便的一些领域,比如:冶金、化工、电力等;近十几年来,则进一步扩大到制造、交通、环境、生态、生物、石油等领域。综观仿真技术应用领域逐渐扩大的历史,可以得到以下几个有意义的结论:,仿真技术在应用上的安全性一直是被采用的最主要原因;仿真技术在应用上的经济性也是被采用的十分重要的原因;仿真技术一般是从学院式的局部应用逐步走向全面应用,其标志是对某领域的仿真应用而设立的仿真中心;仿真技术在每一阶段都有一个比较成熟的应用领域;根据仿真的应用范围,研制和开发了一大批仿真产品,如各种仿真语言及仿真软件包,各种训练仿真器等等。为了推广仿真技术的应用,几乎所有的仿真语言都推出了PC版。,本章目录,1.3计算机数字仿真的基本过程,为了使大家对计算机数字仿真有一个全面的了解,让我们用一个简单的例子来予以说明。,问题:如何分析研究并保证设计出或设计中的悬架系统具有这种卓越性能?,研究方法:1理论方法2试验方法3仿真方法,仿真技术与物理试验、理论研究的对比,机械谐振系统,其中:X状态向量A系统矩阵B输入矩阵f(t)输入变量C输出矩阵D直接转移矩阵,根据研究的目的编制试验方案:1.改变M、B、K,保持f(t)不变,研究系统结构参数对谐振系统动态行为的影响;2.改变f(t),系统结构参数保持不变,研究系统所受激振力对谐振系统动态行为的影响;最后根据仿真试验结果,给出相关结论。,建立仿真模型,应用编程语言应用仿真语言或环境,应用欧拉法、梯形法或RK法等仿真算法,将上述数学模型转化为便于编程的仿真模型:,应用编程语言,应用仿真语言或环境,应用ADAMS应用MATLAB,计算机仿真的一般步骤,1、确定系统分析目标,进行系统分析,建立系统数学模型2、在系统数学模型的基础上,建立系统的仿真模型3、编程或选用仿真语言4、制定仿真实验方案,进行仿真实验5、分析仿真实验结果,修改模型,本章目录,给点小提示,一、拉普拉斯变换1.拉氏变换的定义,2.拉氏变换的几个定理线性定理衰减定理延时定理相似定理微分定理积分定理终值定理初值定理卷积定理,线性定理,返回,衰减定理,延时定理,相似定理,返回,微分定理,GO,积分定理,终值定理,返回,初值定理,卷积定理,二、拉氏逆变换直接求解法、查表法(系数比较法、留数法),三、应用拉氏变换求解微分方程例:用拉氏变换解微分方程初始条件:,四、控制系统的传递函数1.定义2.典型环节的传递函数比例环节微分环节积分环节惯性环节二阶环节延时环节,1.定义,返回,比例环节,微分环节,积分环节,返回,惯性环节,二阶环节,延时环节,返回,第2章连续系统的数字仿真,对于一个集中参数的连续动态系统,利用我们学过的基础理论知识和专业知识所能直接建立的数学模型形式有哪些呢?,高阶微分方程,传递函数,能够在数字计算机上直接求解的数学模型形式又是什么样的呢?,差分方程,上述方程形式由何而来的?,一阶微分方程,仿真模型,数值积分算法,动态方程,高阶微分方程传递函数,模型变换,高阶微分方程传递函数,差分方程,两次模型变换,动态方程,等价变换,近似变换,21连续系统的数学模型1微分方程,引进算子,2传递函数,3状态空间描述,1由微分方程导出状态空间表达式,引进如下状态变量:,假定一个连续系统可用下式来描述,令,则有,例系统的微分方程式,设状态变量为,2由传递函数导出状态空间表达式,1)并联程序法,(m”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。,一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如p=15,m=35p=15;m=35,如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。,4.1.2.4工作空间窗口工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。,4.1.2.5当前目录窗口和搜索路径1当前目录窗口当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:mydir设置为当前目录,可在命令窗口输入命令:cdc:mydir,2MATLAB的搜索路径当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是:(1)检查该命令是不是一个变量。(2)检查该命令是不是一个内部函数。(3)检查该命令是否当前目录下的M文件。(4)检查该命令是否MATLAB搜索路径中其他目录下的M文件。,用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。设置搜索路径的方法有:(1)用path命令设置搜索路径。例如,将用户目录c:mydir加到搜索路径下,可在命令窗口输入命令:path(path,c:mydir),(2)用对话框设置搜索路径在MATLAB的File菜单中选SetPath命令或在命令窗口执行pathtool命令,将出现搜索路径设置对话框。通过AddFolder或AddwithSubfolder命令按钮将指定路径添加到搜索路径列表中。在修改完搜索路径后,则需要保存搜索路径。,4.1.2.6命令历史记录窗口在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。,4.1.2.7启动平台窗口和Start按钮MATLAB的启动平台窗口可以帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。MATLAB主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。,4.1.3MATLAB帮助系统,4.1.3.1帮助窗口进入帮助窗口可以通过以下3种方法:(1)单击MATLAB主窗口工具栏中的Help按钮。(2)在命令窗口中输入helpwin、helpdesk或doc。(3)选择Help菜单中的“MATLABHelp”选项。,4.1.3.2帮助命令MATLAB帮助命令包括help、lookfor以及模糊查询。1help命令在MATLAB7.4命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过help加函数名来显示该函数的帮助说明。,2lookfor命令help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。lookfor命令只对M文件的第一行进行关键字搜索。若在lookfor命令加上-all选项,则可对M文件进行全文搜索。,3模糊查询MATLAB6.0以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按Tab键,系统就会列出所有以这几个字母开头的命令。,4.1.3.3演示系统在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。,4.1.3.4远程帮助系统在MathWorks公司的主页()上可以找到很多有用的信息,国内的一些网站也有丰富的信息资源。,4.3MATLAB符号计算,4.3.1符号计算基础4.3.2符号导数及其应用4.3.3符号积分4.3.4级数4.3.5符号方程求解,4.3.1符号计算基础,4.3.1.1符号对象1.建立符号变量和符号常数(1)sym函数sym函数用来建立单个符号量,例如,a=sym(a)建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算。,例4.3.1考察符号变量和数值变量的差别。在MATLAB命令窗口,输入命令:a=sym(a);b=sym(b);c=sym(c);d=sym(d);%定义4个符号变量w=10;x=5;y=-8;z=11;%定义4个数值变量A=a,b;c,d%建立符号矩阵AB=w,x;y,z%建立数值矩阵Bdet(A)%计算符号矩阵A的行列式det(B)%计算数值矩阵B的行列式,例4.3.2比较符号常数与数值在代数运算时的差别。在MATLAB命令窗口,输入命令:pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3);%定义符号变量pi2=pi;r1=8;r2=2;r3=3;%定义数值变量sin(pi1/3)%计算符号表达式值sin(pi2/3)%计算数值表达式值sqrt(k1)%计算符号表达式值sqrt(r1)%计算数值表达式值sqrt(k3+sqrt(k2)%计算符号表达式值sqrt(r3+sqrt(r2)%计算数值表达式值,(2)syms函数syms函数的一般调用格式为:symsvar1var2varn函数定义符号变量var1,var2,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。,2.建立符号表达式建立符号表达式有以下3种方法:(1)利用单引号来生成符号表达式。(2)用sym函数建立符号表达式。(3)使用已经定义的符号变量组成符号表达式。,4.3.1.2基本的符号运算1.符号表达式的四则运算符号表达式的四则运算和其他表达式的运算并无不同,但要注意,其运算结果依然是一个符号表达式。2符号表达式的提取分子和分母运算如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:n,d=numden(s)该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。,3.因式分解与展开factor(S)对S分解因式,S是符号表达式或符号矩阵。expand(S)对S进行展开,S是符号表达式或符号矩阵。collect(S)对S合并同类项,S是符号表达式或符号矩阵。collect(S,v)对S按变量v合并同类项,S是符号表达式或符号矩阵。,4.表达式化简MATLAB提供的对符号表达式化简的函数有:simplify(S)应用函数规则对S进行化简。simple(S)调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。,5符号表达式与数值表达式之间的转换利用函数sym可以将数值表达式变换成它的符号表达式。函数numeric或eval可以将符号表达式变换成数值表达式。,4.3.1.3符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:findsym(S,n)函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符x最近原则确定缺省变量。,4.3.2符号导数及其应用,4.3.2.1函数的极限limit函数的调用格式为:limit(f,x,a)limit函数的另一种功能是求单边极限,其调用格式为:limit(f,x,a,right)或limit(f,x,a,left),例4.3.3求极限。在MATLAB命令窗口,输入命令:symsamx;f=(x(1/m)-a(1/m)/(x-a);limit(f,x,a)%求极限(1)f=(sin(a+x)-sin(a-x)/x;limit(f)%求极限(2)limit(f,inf)%求f函数在x(包括+和-)处的极限limit(f,x,inf,left)%求极限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a);limit(f,x,a,right)%求极限(4),4.3.2.2符号函数求导及其应用MATLAB中的求导的函数为:diff(f,x,n)diff函数求函数f对变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。,例4.3.4求函数的导数。命令如下:symsabtxyz;f=sqrt(1+exp(x);diff(f)%求(1)。未指定求导变量和阶数,按缺省规则处理f=x*cos(x);diff(f,x,2)%求(2)。求f对x的二阶导数diff(f,x,3)%求(2)。求f对x的三阶导数f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)%求(3)。按参数方程求导公式求f对t的导数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3%求(3)。求f对t的二阶导数f=x*exp(y)/y2;diff(f,x)%求(4)。f对x的偏导数diff(f,y)%求(4)。z对y的偏导数f=x2+y2+z2-a2;zx=-diff(f,x)/diff(f,z)%求(5)。按隐函数求导公式求z对x的偏导数zy=-diff(f,y)/diff(f,z)%求(5)。按隐函数求导公式求z对y的偏导数,例4.3.5在曲线y=x3+3x-2上哪一点的切线与直线y=4x-1平行。命令如下:x=sym(x);y=x3+3*x-2;%定义曲线函数f=diff(y);%对曲线求导数g=f-4;solve(g)%求方程f-4=0的根,即求曲线何处的导数为4,1/3*3(1/2)-1/3*3(1/2),4.3.3符号积分,4.3.3.1不定积分在MATLAB中,求不定积分的函数是int,其调用格式为:int(f,x)int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则与diff函数相同。,例4.3.6求不定积分。命令如下:x=sym(x);f=(3-x2)3;int(f)%求不定积分(1)f=sqrt(x3+x4);int(f)%求不定积分(2)g=simple(ans)%调用simple函数对结果化简,4.3.3.2符号函数的定积分定积分在实际工作中有广泛的应用。在MATLAB中,定积分的计算使用函数:int(f,x,a,b)例4.3.7求定积分。命令如下:x=sym(x);t=sym(t);int(abs(1-x),1,2)%求定积分(1)f=1/(1+x2);int(f,-inf,inf)%求定积分(2)int(4*t*x,x,2,sin(t)%求定积分(3)f=x3/(x-1)100;I=int(f,2,3)%用符号积分的方法求定积分(4)double(I)%将上述符号结果转换为数值,4.3.3.3积分变换1.傅立叶(Fourier)变换在MATLAB中,进行傅立叶变换的函数是:fourier(fx,x,t)求函数f(x)的傅立叶像函数F(t)。ifourier(Fw,t,x)求傅立叶像函数F(t)的原函数f(x)。,例4.3.8求函数的傅立叶变换及其逆变换。命令如下:symsxt;y=abs(x);Ft=fourier(y,x,t)%求y的傅立叶变换fx=ifourier(Ft,t,x)%求Ft的傅立叶逆变换,2.拉普拉斯(Laplace)变换在MATLAB中,进行拉普拉斯变换的函数是:laplace(fx,x,t)求函数f(x)的拉普拉斯像函数F(t)。ilaplace(Fw,t,x)求拉普拉斯像函数F(t)的原函数f(x)。,例4.3.9计算y=x2的拉普拉斯变换及其逆变换.命令如下:x=sym(x);y=x2;Ft=laplace(y,x,t)%对函数y进行拉普拉斯变换fx=ilaplace(Ft,t,x)%对函数Ft进行拉普拉斯逆变换,3.Z变换对数列f(n)进行z变换的MATLAB函数是:ztrans(fn,n,z)求fn的Z变换像函数F(z)iztrans(Fz,z,n)求Fz的z变换原函数f(n)例4.3.10求数列fn=e-n的Z变换及其逆变换。命令如下:symsnzfn=exp(-n);Fz=ztrans(fn,n,z)%求fn的Z变换f=iztrans(Fz,z,n)%求Fz的逆Z变换,4.3.4级数4.3.4.1级数的符号求和级数符号求和函数symsum,调用格式为:symsum(a,n,n0,nn)例4.3.11求级数之和。命令如下:n=sym(n);s1=symsum(1/n2,n,1,inf)%求s1s2=symsum(-1)(n+1)/n,1,inf)%求s2。未指定求和变量,缺省为ns3=symsum(n*xn,n,1,inf)%求s3。此处的求和变量n不能省略。s4=symsum(n2,1,100)%求s4。计算有限级数的和,4.3.4.2函数的泰勒级数MATLAB中提供了将函数展开为幂级数的函数taylor,其调用格式为:taylor(f,v,n,a)例4.3.12求函数在指定点的泰勒展开式。命令如下:x=sym(x);f1=(1+x+x2)/(1-x+x2);f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3);taylor(f1,x,5)%求(1)。展开到x的4次幂时应选择n=5taylor(f2,6)%求(2)。,4.3.5符号方程求解,4.3.5.1符号代数方程求解代数方程是指未涉及微积分运算的方程,相对比较简单。在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:solve(eq):求解符号表达式表示的代数方程eq,求解变量为默认变量。当方程右端为0时,方程eq中可以不包含右端项和等号,而仅列出方程左端的表达式。solve(eq,v):求解符号表达式表示的代数方程eq,求解变量为v。solve(eq1,eq2,eqn,v1,v2,vn):求解符号表达式eq1,eq2,eqn组成的代数方程组,求解变量分别v1,v2,vn。若不指定求解变量,由默认规则确定。,4.3.5.2符号常微分方程求解,MATLAB的符号运算工具箱中提供了功能强大的求解常微分方程的函数dsolve。该函数的调用格式为:dsolve(eqn1,condition,var)该函数求解微分方程eqn1在初值条件condition下的特解。参数var描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条件condition,则求方程的通解。dsolve在求微分方程组时的调用格式为:dsolve(eqn1,eqn2,eqnN,condition1,conditionN,var1,varN)函数求解微分方程组eqn1、eqnN在初值条件conditoion1、conditionN下的解,若不给出初值条件,则求方程组的通解,var1、varN给出求解变量。,例4.3.13求微分方程的通解。命令如下:y=dsolve(Dy-(x2+y2)/x2/2,x)%解(1)。方程的右端为0时可以不写y=dsolve(Dy*x2+2*x*y-exp(x),x)%解(2)y=dsolve(Dy-x2/(1+y2),y(2)=1,x);%解(3)x,y=dsolve(Dx=4*x-2*y,Dy=2*x-y,t)%解方程组(4)x,y=dsolve(D2x-y,D2y+x,t);%解方程组(5),4.2.1变量及其赋值4.2.2运算符与数学表达式4.2.3控制流4.2.4基本绘图方法4.2.5M文件及程序调试,4.2.1变量及其赋值,4.2.1.1标识符与数,标识符是标志变量名、常量名、函数名和文件名的字符串的总称。在MTLAB中,变量和常量的标识符最长允许31个字符。字符包括全部的英文字母(大小写52个)、阿拉伯数字和下划线等符号,标识符中第一个字符必须是英文字母。,4.2.1.2矩阵及其元素的赋值,赋值就是把数赋予代表常量或变量的标识符。在MATLAB中,变量都代表矩阵。列矢量可被当作只有一列的矩阵;行矢量也可被当作只有一个行的矩阵;标量应看作11阶的矩阵。赋值语句的一般形式为:变量表达式(或数),1赋值要求在输入矩阵时,应遵循以下规则:整个矩阵的值应放在方括号中;同一行中各元素之间以逗号“,”或空格分开;不同行的元素以分号“;”隔开。,2变量的元素的标注,在MATLAB中,变量的元素(即矩阵元)用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵由两个下标数构成,以逗号分开,对三维矩阵则由三个下标数构成。,3赋值技巧,(1)利用冒号“:”给全行的元素赋值,(2)利用行、列标注构成新的矩阵,4特殊矩阵和数组,(1)单位矩阵函数eye()函数功能:产生对主角线元素为1,其它元素为0的单位矩阵。eye()的调用格式如下:A=eye(n)返回一个nn阶单位矩阵;A=eye(m,n)返回一个mn阶单位矩阵,或用A=eye(m,n);,(2)zeros函数、ones函数、rand以及randn函数,A=zeros(n)返回一个nn阶零矩阵;A=zeros(m,n)返回一个mn阶零矩阵;,(3)linspace函数和logspace函数linspace函数的调用格式如下:y=linspace(a,b)产生一个行矢量y,该矢量把a和b间的数等分100份而得到。y=linspace(a,b,n)产生一个行矢量y,该矢量把a和b间的数等分n份而得到。,5MATLAB内部特殊变量和常数,变量ans:临时变量,通常指示当前的答案。常数eps:表示浮点相对精度;其值是从1.0到下一个最大浮点数之间的差值。变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准,esp=2-52近似为2.2204e-016。常数realmax:表示最大正浮点数;任何大于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmax略小于21024,近似为1.7977e+308。,常数realmin:表示最小正浮点数;任何小于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmin略小于2-1024,近似为2.2251e-308。常数pi:表示圆周率=3.1415926535897.。表达式4*atan(1)和imag(log(-1)产生相同的值。,常数Inf:代表正无穷大,一般被0除或溢出则产生无穷大结果。如2/0,210000均产生结果:Inf;而log(0)产生结果:-Inf。虚数单位i,j:表示复数虚部单位,相当于。NaN:表示非数值。如当Inf-Inf,Inf/Inf,0*Inf,0/0均产生该结果。,6复数的赋值方式MATLAB的每一个元素都可以是复数,实数是复数的特例。复数的虚数部分用i或j表示。对复数矩阵有两种赋值方法:(1)可将矩阵元逐个赋予复数(2)将矩阵的实部和虚部分别赋值:,7变量检查在程序调试或变量的赋值过程,往往需要检查工作空间中的变量、变量的阶数以及变量赋值内容。在检查变量及其阶数等内容时,既可用工作空间窗口,也可在命令窗口使用who或whos命令来完成检查。当查看某变量的赋值情况,可在命令窗口直接键入该变量名回车即可。,4.2.2运算符与复数运算,算术运算符:进行数值计算。关系运算符:比较两个操作数的大小。逻辑运算符:进行逻辑运算。,4.2.2.1算术运算符,(1)矩阵加减法“”:AB功能:两矩阵对应元素相加减。因此,A和B两矩阵必须有相同的大小,或其中之一为标量,标量可以与任意大小的矩阵相加。(2)矩阵相乘“*”:A*B功能:C=A*B为两矩阵线性代数的乘积,即,(3)矩阵元素相乘“.*”:A.*B功能:矩阵A和B的对应元素相乘;因此,A和B必须大小相同,或其中之一为标量。(4)矩阵右除“B/A”与左除“AB”如果A为一非奇异矩阵,则B/A与AB可通过A的逆矩阵与B矩阵得到:B/A=B*inv(A);AB=inv(A)*B。,(5)矩阵元素右除“A./B”与左除“A.B”矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j);矩阵元素左除“A.B”表示矩阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。(6)矩阵幂“”:Xp如果p为标量,表示X的p次幂;如果X为标量,而p为矩阵,Xp用特征值和特征向量表示X的矩阵p次幂。注意X和p不能同时为矩阵,但必须是方阵。(7)矩阵元素幂“.”:A.BA.B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一为标量。,(8)矩阵转置“”A表示矩阵A的线性代数转置。对于复矩阵,表示复共轭转置。(9)非共轭转置“.”A.表示非共轭转置;对于复矩阵,不包括共轭。(10)冒号操作符“:”冒号是一个非常有用的操作符;可以产生向量、数组下标以及for循环。,关系比较结果只有两种可能,即1或0。1表示关系式为“真”,即关系式正确;0表示该关系为“假”,即它不成立。,4.2.2.3逻辑操作符,通常逻辑变量只能取0(假)和1(真)两个值。逻辑量的基本运算除“与(y=-8:0.05:8;X,Y=meshgrid(x,y);Z=sin(sqrt(X.2+Y.2)./sqrt(X.2+Y.2);mesh(X,Y,Z),3三维曲面图函数surf及surfc格式一:surf(X,Y,Z,C)功能:绘制由四个矩阵所指定的带色参数的网状表面图。视角是由view所指定。轴的刻度决定于X,Y及Z的范围,或当前对轴的设定;颜色范围由C指定。格式二:surf(X,Y,Z)功能:将C设为与Z相等,则颜色与网的高度成正比。,4视图函数view格式一:view(az,el)或view(az,el)功能:设置观察者观察三维图形的视角。az是方位角或者是水平旋转角度,el是仰角。格式二:view(2)或view(3)功能:设置观察三维图形视角的默认值(az=0,el=90;az=-37,el=30)格式三:az,el=view功能:返回当前的方位和视角,4.2.5M文件及程序调试与变量属性,M文件:由MATLAB命令语句构成的程序文件称作M文件,它将m作为文件的扩展名。可以直接阅读并用任何文本编辑器来建立这种文件。M文件可分为两种:主程序和子程序。主程序(也称主程序文件):一般是由用户为解决特定的问题而编制的程序。子程序(称为函数文件):它必须由其它M文件来调用。函数文件往往具有一定的通用性,并且可以进行递归调用。,(1)有关程序的功能、使用方法等内容的注释。主程序前面的若干行通常是程序的注释,每行以“”开始。(2)程序的主体。(3)整个程序应按MATLAB标识符的要求起文件名,并加上后缀m。,对主程序文件的运行方式通常有两种:在MATLAB的命令窗口中运行:在MATLAB的命令窗中键入此程序的文件名后,系统就开始执行文件中的程序;在编辑窗口中运行:通过编辑窗口打开所要运行的文件,然后再运行。主程序文件中的语句可以对MATLAB工作空间中的所有数据进行运算操作。,1.M文件的结构主程序文件的格式特征如下:,2函数文件结构函数文件是用来定义子程序的。它与主程序文件的主要区别有三点:(1)由function起头,后跟的函数名必须与文件名相同;(2)有输入输出变元(变量),可进行变量传递;(3)除非用global声明,程序中的变量均为局部变量,不保存在工作空间中。通常,函数文件由五部分构成:函数定义行;H1行;函数帮助文本;函数体;注释。,函数定义命令function()格式:functionoutput1,output2,=functionname(input1,input2,.)功能:定义函数名为functionname的函数(或子程序),该函数的输出变量为output1,output2,,输入变量为(input1,input2,.)。例如:functiony=mean(x,dim)function为函数定义的关键字,mean为函数名,y为输出变量,x和dim为输入变量。注意:当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。例如:functionx,y,zsphere(theta,phi,rho)。当函数不含输出变量时,则直接略去输出部分或采用空方括号表示。,4.4SIMULINK动态仿真集成环境4.4.1Simulink操作基础4.4.2系统仿真模型4.4.3系统的仿真,4.4.1Simulink操作基础4.4.1.1Simulink简介Simulink是MATLAB的重要组成部分,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能。,4.4.1.2Simulink的启动与退出1Simulink的启动在MATLAB的命令窗口输入simulink或单击MATLAB主窗口工具栏上的Simulink命令按钮即可启动Simulink。Simulink启动后会显示Simulink模块库浏览器(SimulinkLibraryBrowser)窗口。,在MATLAB主窗口File菜单中选择New菜单项下的Model命令,在出现Simulink模块库浏览器的同时,还会出现一个名字为untitled的模型编辑窗口。在启动Simulink模块库浏览器后再单击其工具栏中的Createanewmodel命令按钮,也会弹出模型编辑窗口。利用模型编辑窗口,可以通过鼠标的拖放操作创建一个模型。,模型创建完成后,从模型编辑窗口的File菜单项中选择Save或SaveAs命令,可以将模型以模型文件的格式(扩展名为.mdl)存入磁盘。如果要对一个已经存在的模型文件进行编辑修改,需要打开该模型文件,其方法是,在MATLAB命令窗口直接输入模型文件名(不要加扩展名.mdl)。在模块库浏览器窗口或模型编辑窗口的File菜单中选择Open命令,然后选择或输入欲编辑模型的名字,也能打开已经存在的模型文件。另外,单击模块库浏览器窗口工具栏上的Openamodel命令按钮或模型编辑窗口工具栏上的Openmodel命令按钮,也能打开已经存在的模型文件。,2Simulink的退出为了退出Simulink,只要关闭所有模型编辑窗口和Simulink模块库浏览器窗口即可。,4.4.2系统仿真模型4.4.2.1Simulink的基本模块Simulink的模块库提供了大量模块。单击模块库浏览器中Simulink前面的“+”号,将看到Simulink模块库中包含的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。同样,在模块库浏览器左侧的Simulink栏上单击鼠标右键,在弹出的快捷菜单中单击OpentheSimulinkLibray命令,将打开Simulink基本模块库窗口。单击其中的子模块库图标,打开子模块库,找到仿真所需要的基本模块。,4.4.2.2模块的编辑1添加模块2选取模块3复制与删除模块4模块外形的调整5模块名的处理,4.4.2.3模块的连接1连接两个模块2模块间连线的调整3连线的分支4标注连线5删除连线,4.4.2.4模块的参数和属性设置1模块的参数设置Simulink中几乎所有模块的参数都允许用户进行设置,只要双击要设置的模块或在模块上按鼠标右键并在弹出的快捷菜单中选择相应模块的参数设置命令就会弹出模块参数对话框。该对话框分为两部分,上面一部分是模块功能说明,下面一部分用来进行模块参数设置。同样,先选择要设置的模块,再在模型编辑窗口Edit菜单下选择相应模块的参数设置命令也可以打开模块参数对话框。,2模块的属性设置选定要设置属性的模块,然后在模块上按鼠标右键并在弹出的快捷菜单中选择Blockproperties,或先选择要设置的模块,再在模型编辑窗口的Edit菜单下选择Blockproperties命令,将打开模块属性对话框。该对话框包括General、Blockannotation和Callbacks3个可以相互切换的选项卡。其中选项卡中可以设置3个基本属性:Description(说明)、Priority(优先级)、Tag(标记)。,4.4.3系统的仿真4.4.3.1设置仿真参数打开系统仿真模型,从模型编辑窗口的Simulation菜单中选择Simulationparameters命令,打开一个仿真参数对话框,在其中可以设置仿真参数。仿真参数对话框包含5个可以相互切换的选项卡:Solver选项卡:用于设置仿真起始和停止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项。(2)WorkspaceI/O选项卡:用于管理对MATLAB工作空间的输入和输出。(3)Diagnostics选项卡:用于设置在仿真过程中出现各类错误时发出警告的等级。(4)Advanced选项卡:用于设置一些高级仿真属性,更好地控制仿真过程。(5)Real-timeWorkshop选项卡:用于设置若干实时工具中的参数。如果没有安装实时工具箱,则将不出现该选项卡。,4.4.3.2启动系统仿真与仿真结果分析设置完仿真参数之后,从Simulation中选择Start菜单项或单击模型编辑窗口中的StartSimulation命令按钮,便可启动对当前模型的仿真。此时,Start菜单项变成不可选,而Stop菜单项变成可选,以供中途停止仿真使用。从Simulation菜单中选择Stop项停止仿真后,Start项又变成可选。为了观察仿真结果的变化轨迹可以采用3种方法:(1)把输出结果送给Scope模块或者XYGraph模块。(2)把仿真结果送到输出端口并作为返回变量,然后使用MATLAB命令画出该变量的变化曲线。(3)把输出结果送到ToWorkspace模块,从而将结果直接存入工作空间,然后用MATLAB命令画出该变量的变化曲线。,应用举例,求解微分方程:y”+2y+3y=sin(t)Y(0)=0,y(0)=0,1.解析解:利用符号微分指令dsolvedsolve(D2y+2*Dy+3*y-sin(t)=0,Dy(0)=0,y(0)=0)1/4*exp(-t)*cos(2(1/2)*t)+1/4*sin(t)-1/4*cos(t),2.数值解:,clearsymsty=dsolve(D2y+2*Dy+3*y-sin(t)=0,Dy(0)=0,y(0)=0,t);ezplot(y,010);holdonf=(t,x)x(2);-3*x(1)-2*x(2)+sin(t);tx1=ode23t(f,0,10,00);plot(t,x1(:,1),*);gridontitle(连续的是解析解,星号的是数值解);,3.利用Simulink,对应的传递函数模型,END,第5章离散事件系统仿真,5.1离散事件系统仿真的基本概念5.2均匀分布随机数及其产生5.3时间步长法5.4事件步长法,5.1离散事件系统仿真的基本概念,所谓离散事件系统是指描述系统的状态变量只在某些离散时刻由于某一或某些事件的发生而发生变化的一类系统。描述该系统的模型通常为流程图或网络图,并具有很强的随机性。,例5.0某个理发馆,设上午9.00开门,下午7.00关门。显然,在这个理发馆系统中,存在理发师和顾客两个实体,也存在顾客到达理发馆的事件和理发师为顾客服务事件。因此描述该系统的状态变量是理发师(服务台)的状态(忙或闲)、顾客排队等待的队长、理发师的服务方式(如对某些特殊顾客的优先服务)。显然,这些状态变量的变化只能在离散的随机时间点上发生。,5.1.1离散事件系统的基本概念,1)实体或设备离散事件系统有多种类型,但它们的主要组成部分基本相同,首先,它有一部分是活动的,叫“实体”。例如,生产自动线上待加工的零件,计算机系统待处理的信息,商店或医院中排队等待的顾客或病人等等。系统的工作过程实质上就是这种“实体”流动和接受加工、处理和服务的过程。其次,系统中还有一部分是固定的,叫“设备”。这些设备用于对实体进行加工、处理或服务,它们相当于连续系统中的各类对信息进行交换处理的元件。这些“设备”可能是机床、计算机系统、营业员或者医生等。所以此处“设备”的含义是广泛的。实体按一定规律不断地到达(产生),在设备作用下通过系统,接受服务,最后离开系统。整个系统呈现出动态过程。目前通用方法是将实体和设备通称为“实体”,但前者称为“临时实体”,后者设备称为“永久实体”。,2)事件描述离散事件系统的第二个重要概念是“事件”、事件是引起系统状态发生变化的行为。例如,在例5.0中,可以定义“顾客到达”为一类事件,而这个事件的发生引起系统的状态理发师的状态从“闲”变成“忙”,或者引起系统的另外一个状态顾客的排队人数发生变化。同样,一个顾客接受服务完毕后离开系统也可以定义为一类事件。3)活动离散事件系统中的活动,通常用于表示两个可以区分的事件之间的过程,它标志着系统状态的转移。在例5.0中,顾客的到达事件与该顾客开始接受服务事件之间可称为一个活动,该活动使系统的状态(队长)发生变化,顾客开始接受服务到该顾客接受服务完毕后离开也可以视为一个活动,它使队长减1。,4)进程进程由若干个有序事件及若干有序活动组成,一个进程描述了它所包括的事件及活动间的相互逻辑关系及时序关系。如例5.0中,一个顾客到达系统、经过排队、接受服务、到服务完毕后离去可以称为一个进程。事件活动进程三者之间的关系可用图5.1来描述。,图5.1事件活动进程之间的关系,5)仿真钟仿真钟用于表示仿真时间的变化。在离散事件仿真中,由于引起状态变化的事件发生的时间是随机的,因此仿真钟的推进步长也完全是随机的。而且,两个相邻发生的事件之间系统状态不会发生任何变化,因而仿真钟可以跨过这些“不活动”周期。从一个事件发生时刻推进到下一事件发生时刻,仿真钟的推进呈现跳跃性,推进速度具有随机性。可见,在离散事件仿真模型中事件控制部件是必不可少的,以便按一定规律来控制仿真钟的推进。6)统计计数器离散事件系统的状态随事件的不断发生也呈现出动态变化过程,但仿真的目的主要不是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网店运营团队时间分配与管理方案
- 船舶起重工三级安全教育(班组级)考核试卷及答案
- 疫情期间校内活动策划方案
- 瓦楞纸箱成型工设备调试考核试卷及答案
- 会计师培训考试题及答案
- 小学信息技术第一册 我的图册-用看图软件创建图册说课稿 河大版
- 罐头加工参数调节效果评价分析报告
- 拈花湾建筑方案设计文本
- 建筑模型内部深化方案设计
- 采购项目成本控制与预算实施
- 2025年初级电工接线技能模拟题及答案详解
- 基于COSO-ERM框架下内部控制问题与改进研究-以伊利集团为例
- 2025西安医学院第一附属医院第二批招聘(42人)笔试备考试题及答案解析
- 肢体被动活动技术
- (2025年标准)供热移交协议书
- 区块链技术在资产追踪中的应用
- 2025年通信安全员(ABC证)考试题库(含答案)
- ISO9001-2015基础知教学课件
- 2023 课件 C++类的概念及程序设计
- 支行案防管理办法
- 6.1 包饺子(课件)北师大版三年级数学上册
评论
0/150
提交评论