收藏 分销(赏)

Simulink建模仿真实例详解.pdf

上传人:曲**** 文档编号:545976 上传时间:2023-11-27 格式:PDF 页数:174 大小:10.97MB 下载积分:12 金币
下载 相关 举报
Simulink建模仿真实例详解.pdf_第1页
第1页 / 共174页
Simulink建模仿真实例详解.pdf_第2页
第2页 / 共174页


点击查看更多>>
资源描述
SIMULINK(1)快速入门本章主要内容和学习目的首先介绍计算机仿真技术和仿真建模方法的基本概念,以 便对建模和仿真有个初步和整体的认识;然后对Simulink进 行简单介绍,并以一个简单例子进行引导;最后介绍Simulink 的工作原理,为后续的深入掌握Simulink打下基础。动态系统的计算机仿真仿真三要素 Simulink与建模仿真 Simulink的安装 创建一个简单模型 模型基本结构1.1 动态系统的计算机仿真1.1.1 系统与模型1.系统系统只指具有某些特定功能、相互联系、相互作用的 元素的集合。这里的系统是指广义上的系统,泛指自然界 的一切现象与过程,例如工程系统如控制系统、通讯系统 等,非工程系统如股市系统、交通系统、生物系统等。2.系统模型系统模型是对实际系统的一种抽象,是对系统本质(或 是系统的某种特性)的一种描述。模型具有与系统相似的特 性。好的模型能够反映实际系统的主要特征和运动规律。模型可以分为实体模型和数学模型。实体模型又称物理效应模型,是根据系统之间的相似性而建 立起来的物理模型,如建筑模型等。数学模型包括原始系统数学模型和仿真系统数学模型。原始 系统数学模型是对系统的原始数学描述。仿真系统数学模型 是一种适合于在计算机上演算的模型,主要是指根据计算机 的运算特点、仿真方式、计算方法、精度要求将原始系统数 学模型转换为计算机程序。静态系统模型动态系统模型代数方程连续系统模型离散系统模型集中参数分布参数差分方程微分方程偏微分方程1.1.2计算机仿真1.仿真的概念仿真是以相似性原理、控制论、信息技术及相关领域的 有关知识为基础,以计算机和各种专用物理设备为工具,借 助系统模型对真实系统进行试验的一门综合性技术。2.仿真分类(1)实物仿真:又称物理仿真。是指研制某些实体模型,使之能够重现原系统的各种状态。早期的仿真大多属 于这一类。优点:直观,形象,至今仍然广泛应用。缺点:投资巨大、周期长,难于改变参数,灵活性差。(2)数学仿真:是用数学语言去描述一个系统,并编制程 序在计算机上对实际系统进行研究的过程。优点:灵活性高,便于改变系统结构和参数,效率高(可以在很短时间内完成实际系统很长时间的 动态演变过程),重复性好缺点:对某些复杂系统可能很难用数学模型来表达,或 者难以建立其精确模型,或者由于数学模型过 于复杂而难以求解(3)半实物仿真:又称数学物理仿真或者混合仿真。为了 提高仿真的可信度或者针对一些难以建模的实体,在 系统研究中往往把数学模型、物理模型和实体结合起 来组成一个复杂的仿真系统,这种在仿真环节中存在 实体的仿真称为半物理仿真或者半物理仿真,如飞机 半实物仿真等。3.计算机仿真计算机仿真是在研究系统过程中根据相似性原理,利用计 算机来逼真模拟研究系统。研究对象可以是实际的系统,也可 以是设想中的系统。在没有计算机以前,仿真都是利用实物或 者它的物理模型来进行研究的,即物理仿真。物理仿真的优点 是直接、形象、可信,缺点是模型受限、易破坏、难以重用。计算机仿真可以用于研制产品或设计系统的全过程,包括方案 论证、技术指标确定、设计分析、故障处理等各个阶段。如训 练飞行员、宇航员的方针工作台和仿真机舱等。1.2仿真的三要素计算机仿真的三个基本要素是系统、模型和计算机,联 系着它们的三项基本活动是模型建立、仿真模型建立(又称 二次建模)和仿真试验。数学仿真采用数学模型,用数学语言对系统的特性进行描 述,其工作过程是:建立系统的数学模型;建立系统仿真模型,即设计算法,并转化为计算机程序,使 系统的数学模型能为计算机所接受并能在计算机上运行;运行仿真模型,进行仿真试验,再根据仿真试验的结果进 一步修正系统的数学模型和仿真模型。1.3 Simulink与建模仿真1.3.1 SimulinkSimulink是一种用来实现计算机仿真的软件工具。它是 MATLAB的一个附加组件,可用于实现各种动态系统(包 括连续系统、离散系统和混合系统)的建模、分析和仿真。特点:易学易用,能够依托MATLAB提供的丰富的仿真资源1.3.2 Simulink的应用领域(1)通讯与卫星系统;(3)生物系统;(5)汽车系统;(7)控制系统。(2)航空航天系统;(4)船舶系统;(6)金融系统;1.3.3 Simulink应用举例(原教材P6例子)在Matlab命令窗口中输入dblcartl右图所示的模型用来 模拟双质量一弹簧系 统在光滑平面上受一 个周期力情况下的运 动状态,其中周期力 只作用在左边的质量 块上。F(t)_ _此模型中使用了状态判断和LQR控制。模型中还有几个“隐藏了真实身份”的子系统,如图中的Inputs&Sensors模块和State estimator模块。双击后可看到 它们的“真实面目”。Sense rs1 Position-;二部 f。In1 Out1State estimatorDoubl e Mass-Spring System(Doubl e cl ickon the?for more info)To start and stop the simul ation,use the Start/Stop sel ection in the Simul ation pul l-down menuDoubl e cl ick here forSIMULINK Hel p运行菜单选项【SimulationStart,则屏幕上出现双质量一 弹簧系统运动状态的动画图形。模型中的Actural Position模块和Estimated Position模块用来 显示在一个周期内的左边质量块的位置轨迹。1.4 Simulink 的安装系统要求:奔腾 100以上CPU,16MB以上内存,Windows 9x或Windows NT安装:随MATLAB安装或单独安装。启动 Simulink:首先启动MATLAB,然后在MATLAB窗口中单击上面的 Simulink按钮或在命令窗口中输入simulink。1.5 创建一个简单模型两个例子例子1(x(t)=sin。)x(t)=-cos+C(0)=o C为常数利用初始笆牛c=1x(t)=-COS(0+l创建模型步骤步骤一:添加模块x(r)=sin(r)x(0)=0 xQ)=-cos(r)+lSine WaveIntegratorScope从源模块库(Sources)中复制正弦波模块(Sine Wave)o 连续模块库(Continuous)复制积分模块(Integrator)。输出显示模块库(Sinks)复制示波器模块(Scope)。步骤二:连接模块步骤三:运行仿真双击示波器模块,打开Scope窗口。双击模 型窗口菜单中的【SimulationStart),仿 真执行,结果如图所示。如果将以上算例的初始条件改为:x(0)=-1x(r)=sinQ)x(0)=1利用初始条件C=0系统的解析解为:x(t)=一 cos。)Simulink 模型:Sine Wave0.8在仿真时,需要将积分 模块m的初始值设置 为一1,最终可以得到 标准的余弦曲线0.20.60例子2单自由度系统:初始条件:mx+cx+kx-0 x(0)=x0=l,i(0)=i0=0 要求:采用Simulink对系统进行仿真。已知参数:m=l,C=l,k=1解析解为:x(t)=eot x0 cos(ct)dt)+&+g。/sin(ct)dt)其中:0 1H 系统固有频率V md=。/-U-a阻尼固有频率/Cq=丁丁=-相对阻尼系数27 kmmx+ex+kx=Ox(0)=1,x(0)=i*0=0.c.k 八X H-X H-X=0m m已知参数:m=1,c=l,k=1k/m10.80.60.40.20-0.2-0.4-0.6051015如果系统中没有阻尼,则动力方程为:mx+kx=O 已知参数:m=l,k=l初始条件:%(0)=%0=1,%(0)=攵0=0解析解为:X。)=/cos(g。+sin(g。k其中:o 一系统固有频率mmx+kx=O已知参数:m=1,k=1初始条件:x()=M)=L.k 八X H-X=Umx(0)=xo=O-k/mScope0.80.60.40.2-0.2-0.4-0.6-0.8-11.6模型基本结构一个典型的Simulink模型包括如下三种类型的元素:信号源模块被模拟的系统模块源模块一系统模块一显示模块输出显示模块Simulink模型元素关联图信号源为系统的输入,它包括常数信号源、函数信号发生 器(如正弦波和阶跃函数波等)和用户自己在MATLAB 中创建的自定义信号。系统模块作为中心模块是Simulink仿真建模所要解决的 主要部分。系统的输出由显示模块接收。输出显示的形式包括图形显 示、示波器显示和输出到文件或MATLAB工作空间中三 种。输出模块主要在Sinks库中。SIMULINK 建模方法本章内容和学习目的本章介绍一些模块的特殊操作,如模块操作、信号线操 作、模型注释等,对模块和信号线有一个整体认识,以便 为后续的动力学建模和仿真打下基础。掌握模块操作、信号线操作、模型注释的基本技巧。2.1 打开模型2.2 模块操作2.3 信号线操作2.4 模型注释2.5 创建一个复杂模型2.6 模型和图形拷贝到Word文档中2.1打开模型1.新建模型2.打开一个已存在的模型方法1:通过【FiIeOpen】命令;方法2:在MATLAB命令窗中直接键入模型名。2.2 模块操作2.2.1 调整模块大小选中模块,模块四角出现小方块,然后按住鼠标拖曳2.2.2 旋转模块选中模块,然后选择菜单命令【FormatRotate】,模 块将顺时针方向旋转90度。2.2.3 模块的内部复制方法L先按Ctrl键,再单击模块方法2:右键拖曳模块方法3:EditCopy和EditPaste 1.方法4:选中模块,Ctrl+C复制,Ctrl+V粘贴2.2.4删除模块方法1:选中模块,按Delete键方法2:选中模块,然后从模型窗口菜单中选择【EditClear】方法3:选中模块,然后选择菜单【EditCut,删至剪贴板2.2.5 选中多个模块方法1:按住Shift键,同时用鼠标单击想要选中的模块方法2:使用“范围框”。在使用“范围框”后,若像继续选择 模块,可按住Shift键,再单击要选的模块即可。若多个模块被选中,则这些模块可以被当作一个整体进行操 作,如移动、复制和删除等,操作方法和单个模块的操作方 法相同。2.2.6 改变模块的标签在标签的位置上双击鼠标,则模块标签进行编辑状态。编辑完标签后,在标签外的任意位置上单击鼠标,则新的合 法标签将被承认。2.2.7 改变标签位置选择菜单命令【FormatFlip Name,模块的标签将发 生翻转。若原标签位置在模块的左边,则翻转到右边。若原 标签位置在模块的下方,则翻转到上方。2.2.8 隐藏标签选择菜单命令【FormatHide Name),则模块的标签从 屏幕上消失。此时Hide Name变成为【Show Name,选 中它可以重新显示标签。2.2.8 增加阴影选择菜单命令【FormatShow Drop Shadow,则模块 增加阴影。此时Show Drop Shadow变成为【Hide Drop Shadow,选中它可以隐藏阴影。2.3 信号线操作2.3.1 绘制信号线2.3.2 移动线段2.3.3 移动节点2.3.4 删除信号线2.3.5 分割信号线置2.3.6 信号线标签2.4 模型注释2.4.1 增加注释的方法2.4.2 改变注释字体注意:要养成及时对模块和信号线的命名以及及时对模型 加标注的习惯,这会提高模型的可读性。2.3.1绘制信号线由输出端口拖曳鼠标到输入端口,或拖曳鼠标由输入端 口到输出端口GainGain2.3.2移动线段若想移动信号线的某段,单击选中此段。移动鼠标到目标 线段上,则鼠标的形状变为移动图标。按住鼠标,并拖曳 到新位置。放开鼠标,则信号线被移动到新的位置。2.3.3移动节点若想移动信号线的某段,单击选中此段。移动鼠标到目标 线段上,则鼠标的形状变为移动图标。按住鼠标,并拖曳 到新位置。放开鼠标,则信号线被移动到新的位置。GainGain2.3.4删除信号线同删除模块一样,删除信号线可以选中信号线,然后按 Delete键,或者利用菜单【Edit/Clear】或【Edit/Cut】选项进行删除。2.3.5分割信号线置先选中信号线。按住Shift键,然后在信号线上需要分割 的点上单击鼠标,拖动节点到新的位置,放开鼠标即可。2.3.6信号线标签每段信号线都可以有一个标签。双击要标注的信号线,则 信号线的附近就会出现一个编辑区,在编辑区内输入标签 的内容即可。Gain2.4 模型注释使用模型注释可以使模型更易读懂,其效果如同MATLAB 程序中的注释行一样。对于经常使用Simulink的用户,养 成经常使用注释的习惯是非常重要的。2.4.1 增加注释的方法在模型窗口中的任何想要注释的部位上双击鼠标,将会出现 一个编辑框,在该框内输入想要注释的内容即可。2.4.2 改变注释字体要改变注释内容的字体,先选中注释,选择模型窗口菜单中 的Format Font选项,就会出现一个字株选择的对话框,选中认为合适的字体,然后按【OK】。2.5 创建一个复杂模型通过两个算例来说明建模中的其他一些技巧例子1一个生长在罐中的细菌的简单模型。假定细菌的出生率和当前细菌的总数成 正比,死亡率和当前的总数的平方成正比。若以“代表当前细菌的总数,则细菌的出生率可表示为:birth _ rate=bx细菌的死亡率可表示为:2death _ rate-px细菌总数的总变化率可表示为出生率与死亡率之差。因此系统可表示为如下 的微分方程形式:x=bx-px假定Z?=l/i,p=Q.5/h,当前细菌的总数为100,计算一个小时后罐中的 细菌总数。x=bx-px2步骤一:添加模块这是一个一阶系统,因此一个用来解微分方程的积分模块是必 要的。积分模块的输入为元输出为力文 一,_Integrator增益模块,来源于数学 模块库(Math)求和模块,来源于数 学模块库(Math)./增益模块,来源于数学 模块库(Math)乘法模块,来源于数学模块 库(Math),用于实现x2Gain Producto;匚Sum Integrator Scope示波器模块,来源于输Gainl 出显示模块库(Sink)积分模块,来源于连续模块库(Continuous)x=bx-px2步骤二:连接模块GainlScopex=bx-px2 匕=1 72=0.5当前细菌的总数为100,计算一个消失后罐中的细菌总数步骤三:设置仿真参数”05模型的起始时间默认为0,终止时间默认为10.0。需要改变终止 时间时,旋转模型菜单【SimuliiikParameters】,打开模型参 数对话框,设置Stop time)为10.0。现在模型就全部完成了,选择FileSave命令保存模型为 bio_example,Simulink 将以 bio_example.mdl 为文件名保存到 指兔的位置。步骤四:运行模型双击示波器模块,并选择【SimuliiikStart】命令运行模型,示 波器将绘制出仿真结果。so-:-;-;-:-1-:-;-1.I.I AI I I I I I I I I 翳.一 30 4-h-.-II I I I I II I 0 1 23456789 10Time例子2:三自由度结构的强迫振动动力学方程:写成矩阵形式:MX+KX一片一X=M=0k 2k km 00 m0 00 Km3k-k 0=k 2 k k0-k 3km 00 m00k2k-kPQ sin(m)00已知参数:n?=1,A=1,尸0=1,co=0.5解析解:倪振华振动力学P189 P233玉X2。)=-0.088sin(wf)-2.63 k-出 0 V3sin(wr)+0.21 k6-V2%sin(wZ)121k要求:采用Simulink对系统进行动态仿真,并与解析解进行对 照,计算时间0 50m0000 m00 m x33k-k+k 2 k0-kMX+KX=P(00Po sin(cot)-k03k一 43_0已知参数:m=1,k=1,X=-M KX+M i产尸o=1,co 0.50;0;0IntegratorK*u V刚度阵KJ.s 质量阵的逆MT 1;0;0一区Sine Wave 频率调整为0.5IntegrateScope0;0;00 5 10 15 20 25 30 35 40 45 502.6模型和图形拷贝到Word文档中2.6.1 拷贝到Word文档使用【EditCopy Model命令,然后在Word中粘贴2.6.2 在Word文档中编辑模型和图形使用取消组合命令SIMULINK 运行仿真本章内容和学习目的介绍两种Simulink运行仿真的方法3.1 使用窗口运行仿真3.2 使用MATLAB命令运行仿真掌握以上两种运行仿真的方法3.1使用窗口运行仿真优点:人机交互性强,不必记住繁琐的命令语句即可进行操 作。使用窗口运行仿真主要可以完成以下一些操作。1-设置仿真参数仿真参数和算法选择的设置2.应用仿真参数仿真参数和算法设置后,使之生效3.启动仿真 选择命令运行仿真4.停止仿真 选择命令停止仿真5.中断仿真 可以在中断点继续启动仿真,而停止仿真则不能6.仿真诊断 在仿真中若出现错误,Simulink将会终止仿真并在仿真诊断对话框中显示错误信息1.设置仿真参数选择菜单选项【SimulationParameters】,可以对仿真 参数及算法进行设置,共有五个选项卡 解法设置(Solver)工作间I/O(Workspace I/O)诊断页(Diagnostics)高级设置(Advanced)实时工具对话框(Real-Time Workshop)解法设置(Solver)(讲)设置起始和终止时间,选择积分分解法,指定求解参数和 选择输出选项工作间I/O(Workspace I/O)(讲)管理MATLAB工作间的输入输出项 诊断页(Diagnostics)(不讲,自学)选择在仿真中警告信息的等级 高级设置(Advanced)(不讲,自学)对仿真的一些高级配置进行设置 实时工具对话框(Real-Time Workshop)(不讲,自学)对实时工具中若干参数进行设置。若没有安装实时工具,不 出现此框。(1)解法设置页当选中菜单选项【SimulationParameters】后,出现参数 及算法等设置页。再点击【Solver,则出现解法设置页。解 法设置页包括三项内容:设置仿真的启动时间和终止时间选择算法并指定参数选择输出项仿真时间仿真解法(各种解法说明见下页)默认解法(ode45)变步长解法:ode45,ode23,odell3,odel5,discrete定步长解法:ode5,ode4,ode3,ode2,odel,discrete最大步长初始步长输出选项:用户用来控制仿真输出个数的对话框,共有三 个菜单选项:定义输出,产生附加输出,产生 指定输出。各种ode命令的说明解法指令解题类 型特点适合场合ode45非刚性采用4、5阶Runge-Kutta法大多数场合的首选算法ode23非刚性采用Adams算法较低精度(10 3)场合ode113非刚性多步法;采用Adams算法;高 低精度均可(10-3I。-6)ode45计算时间太长时 取代ode45ode23t适度刚 性采用梯形法则算法适度刚性ode15s刚性多步法;采用2阶Rosenbrock 算式,精度中等当ode45失败时使用;或存在质量矩阵时ode23s刚性一步法;米用2阶Rosenbrock 算式,低精度低精度时,比ode15s 有效;或存在质量矩阵 时ode23tb刚性采用梯形法则一反向数值微分 两阶段算法,低精度低精度时比ode15s有 效;或存在质量矩阵时(2)工作间I/OSimulink作为 MATLAB的一个附件,理应与 MATLAB 很好地结合,它的输入数据可以从MATLAB的工作空间中获 得,其仿真结果也可以被引入到MATLAB的工作空间。实现 此项功能需要用到仿真参数对话框中的工作间I/O页。工作间I/O页大致可以分为三个部分:从MATLAB工作空间获得系统输入(Load from workspace)仿真结果输出到MATLAB的工作空间(Save to workspace)输出选项(Save option)F面对Workspace I/O选项页的功能与使用分别予以简介。从MATLAB工作空间加载(Load from workspace)虽然Simulink提供了多种系统输入信号,但并不能完全满 足需要。Simulink允许使用用户自定义的信号作为系统输入信 号。在Load from workspace框中,用户可以设置MATLAB 中的变量作为系统输入信号或系统状态初值,如下所述:(1)Input:用来设置系统输入信号,其格式为t,u,其中 t、U均为列向量,t为输入信号的时间向量,U为相应时刻的 信号取值。可以使用多个信号输入,如t,ul,u2o输入信号 与Simulink的接口由Inport模块(Ini模块)实现。ln1 IntegratorLQDIntegratorl从MATLAB工作空间加载(Load from workspace)虽然Simulink提供了多种系统输入信号,但并不能完全满 足需要。Simulink允许使用用户自定义的信号作为系统输入信 号。在Load from workspace框中,用户可以设置MATLAB 中的变量作为系统输入信号或系统状态初值,如下所述:(1)Input:用来设置系统输入信号,其格式为t,u,其中 t、U均为列向量,t为输入信号的时间向量,U为相应时刻的 信号取值。可以使用多个信号输入,如也ul,u2o输入信号 与Simulink的接口由Inport模块(Ini模块)实现。(2)Initial state:用来设置系统状态变量的初始值。初始值 xlnitial可为列向量。注意:使用xlnitial state所设置的状态变量初始值会自动覆 盖系统模块中的设置。另外,输入信号与状态变量需要按照系统 2中Inport模块(即Ini模块)的顺序进行正确设置。仿真结果输出到MATLAB的工作空间(Save to workspace)使用Workspace I/O选项页可以将系统的仿真结果、系统 仿真时刻、系统中的状态或指定的信号输出到MATLAB的工 作空间中,以便用户对其进行定量分析,如下所述:(1)Time:输出系统仿真时刻。(2)States:输出系统模型中的所有状态变量。(3)Output:输出系统模型中的所有由Output模块(即 Outl模块)表示的信号。(4)Final state:输出系统模型中的最终状态变量取值,即最后仿真时刻处的状态值。*In14T-r IntegratorIntegrator!输出选项(Save option)(1)Limit data points to last:表示输出数据的长度(从信号 的最后数据点记起)。(2)Format:表示输出数据类型。共有三种形式:Structure with Time(带有仿真时间变量的结构体)、Structure(不带 仿真时间变量的结构体)、Array(信号数组)。举例说明:Scope假定两个输入信号都为正弦信号sin(t),并且假定初始值为0,1y 二jsin(r)=-cos。)+Cyl-cos(0+ly2 二 cos+2yl=-cos(0+ly2=-cos(0+2将Load from workspace栏的两项全部选上,并且将Input栏 诙写为t,u,uo将Save to workspace栏的四项全部选上。Save option 栏的三项分别为:1000,1,Array运行仿真前,首先需要生成系统输入信号与状态初始值,在MATLAB命令窗口中键入如下命令:t=0:0.1:10;t=f;u=sin(t);xlnitial=0,1;Scopeyl=-cos(0+ly2=cos。)+25 6 7 8 9 10Time运行whos的结果:Na mettoutu xFina l xlnitia l xout youtSize Bytes Cla ss101x1 808 double a rra y51x1 408 double a rra y101x1 808 double a rra y1x2 16 double a rra y1x2 16 double a rra y51x2 816 double a rra y51x2 816 double a rra y上面t和tout的维数不相同,这是因为在Solver中采用了变 步长解法,若采用定步长解法(步长取0.1)则维数相同。3.2使用MATLAB命令运行仿真MATLAB提供了 sim命令,用户可以在MATLAB的环境下 以命令行或M文件的形式运行Simulink模型。使用命令行方式,用户可以在脚本文件中重复地对同一系统在 不同的仿真参数或不同的系统模块参数下进行仿真,而无需一 次又一次启动Simulink图形窗口中的Start Simulinko如果需要分析某一参数对系统仿真结果的影响,用户可以很容 易地通过for循环自动修改任意指定的参数。F面对进行动态系统仿真的命令逐一介绍。首先看一个例子。建立一个简单的动态系统,其功能如下:(1)系统的输入为一单位幅值、单位频率的正弦信号;(2)系统的输出信号为输入信号的积分。sin。)要求如下:in。)力(1)系统的输入信号由MATLAB工作空间中的变量提供,时间0 10s;(2)使用MATLAB绘制原始输入信号与系统运算结果的曲线。问题描述:原函数:sin。)时间区域:二。10s原函数的积分为:X(t)=Jsin(0=-cos(0+C若取零初始条件,则有:C=1因此,有:x(t)=-COS(0+1xQ)=-cos(r)+lIn1IntegratorSimulink 模型(保存文件名为:command_in_out)对Workspace I/O页进行如下设置:(1)Load from workspace 栏:Input 打勾,并填入 sim_input(由MATLAB工作空间输入的输入名)。Initial state不诬。(2)Save to workspace 栏:Time 和 Output 项勾上,State 和 Final state 项不勾。(3)Save options 栏依次为:1000,1,Arrayx(r)=-cos(?)+l03In1Integrator在MATLAB工作空间中定义输入变量simjnput如下:t=0:0.1:10;t=f;%表示输入信号的时间范围u=sin(t);%产生输入正弦信号sim_input=u;%传递给Simulink系统模型的变量然后运行Simulink仿真。最后在MATLAB工作空间运行如下 命令:plot(t,u,tout,yout,gridu=sin。)yout=-cos(加混)+10.5-0.51.5103.2.1使用sim命令进行动态系统仿真1使用语法sim命令的格式为:t,x,y =sim(model,timespan,options,ut)t,x,yl,y2,yn =sim(model,timespan,options,ut)以上是完整的语法格式,实际使用时可以省略其中的某些参 数设置而采用默认参数。除了参数“model”夕卜,其它的仿真参数 设置均可以取值为空矩阵,此时sim命令对没有设置的仿真参数 使用默认的参数值进行仿真,默认的参数值由系统模型框图决定 o用户可以使用sim命令的options参数对可选参数进行设置,这 样设置的仿真参数将覆盖模型默认的参数。2参数说明sim命令的格式为:t,x,y =sim(model,timespan,options,ut)t,x,yl,y2,yn =sim(model,timespan,options,ut)(l)model:需要进行仿真的系统模型框图名称;(2)timespan:系统仿真的时间范围(起始至终止时间),可有 如下形式:tFinal:设置仿真终止时间。仿真起始时间默认为0;tStart tFinal:设置起始时间(tStart)与终止时间(tFinal);tStart OutputTimes tFinal:设置起始时间(tStart)与终止时 间(tFinal),并且设置仿真返回的时间向量tStart OutputTimes tFinal,其中 tStart、OutputTimes tFinal 必须按照升序排列。sim命令的格式为:t,x,y =sim(model,timespan,options,ut)t,x,yl,y2,yn =sim(model,timespan,options,ut)(3)options:由simset命令所设置的除仿真时间外的仿真参数;(4)ut:表示系统模型顶层的外部可选输入。ut可以是MATLAB 函数。可以使用多个外部输入utl、ut2、。(5)t:返回系统仿真的时间向量。(6)x:返回系统仿真的状态变量矩阵。(7)y:返回系统仿真的输出矩阵。按照顶层输出Outport模块的 顺序输出。如果输出信号为向量输出,则输出信号具有与此向量相 同的维数。(8)yl,yn:返回多个系统仿真的输出。3举例之一:简单仿真输入:sin(Z)X(0 二-COS(0+1m-In1文件名:Integratorcommand in outA焉对于前面的动态系统command_in_out,在前面进行仿真时没 有使用命令行方式,在此采用命令行语句进行仿真。在仿真之前,首先使用仿真参数设置对话框设置参数,然后在MATLAB命 令窗口中键入如下命令:t=0:0.1:10;t=f;%表示输入信号的时间范围 u=sin(t);%产生输入正弦信号sim_input=t9 u;%传递给Simulink系统模型的变量 tout,x,yout =sim(6command_in_ouf)%使用sim进行系统仿真,仿真参数取与前面相同plot(t,u,tout,yout,/);grid4举例之二:仿真时间设置在前面已经对sim命令中的仿真时间参数timespan设置 做了介绍。Timespan具有三种使用形式,根据不同动态系统 的不同要求,用户可以选择使用如下所示的三种形式进行系 统仿真:t,x,y =sim(model,tFinal)t,x,y =sim(model,tStart,tFinal)t,x,y =sim(model,tStart OutputTimes tFinal)t,x,y =sim(model,tFinal)t,x,y =sim(model,tStart,tFinal)t,x,y =sim(modeltStart outputTimes tFinal)此外在默认情况下,系统仿真的输出结果(输出时间、状态和 运算结果)受到Simulink求解器仿真步长的控制,因而系统仿 真输出结果也受到求解器步长的控制。如果需要在指定的时刻输出系统仿真结果,则需要使用仿皂时 间设置的第三种方式,其中tStart outputTimes tFinal表示输 出时间向量,此向量为一递增行向量。在sim命令中使用 timespan设置系统仿真时间范围,会覆盖Simulink原来的仿真 时间设置,但是并不会影响到系统模型。m-i-cd,n1 IntUor Ut1输入:sin(Z)X(t)=一 COS。)+1仍以前面的command_in_out为例进行说明。仿真参数设置对 话框内的设置与前面相同。使用四组不同的仿真时间对此系统 进行仿真。为了与系统模型文件command_in_out.mdl区别,所编制的M 文件名取为 command_in_out_m_m。若 M 文件名取为 command_in_out.m,则容 MATLAB工作空间运行时,将返回 系统模型丈在框图。M文件名:command_in_out_mt=0:0.1:10;t=f;u=sin(t);sim_input=t,u;toutl?xl9youtl=sim(icommand_in_out5);%仿真时间范围05s,输出时 间向量toutl由Simulimk的求解器乐长丧兔tout2,x2,yout2=sim(icommand_in_outl 8);%仿真时间范围1 8s,输出时间向量tout2由Simulimk的求解器步长决定tout3,x3,yout3=sim(icommand_in_outl:8);%仿真时间范围 1 8s,并 且每隔1s输出一次,即输出时间交量为12 34 5 67 8tout4,x4,yout4=sim(6command_in_out 1:0.2:8);%仿真时间范围 1 8s,并且每隔0.2s输出一次,即输出血旬变量为1L2L4.7.6 7.8 8subplot(2,2,l);plot(t,u,toutl,youtl,*);subplot(2,2,2);plot(t,u,tout2,yout2J*);subplot(2,2,3);plot(t,u,tout3,yout3,*);subplot(2,2,4);plot(t,u,tout4,yout4 J*);t=0:0.1:10;t=f;u=sin(t);sim_input=t,u;toutl,xl,youtl=sim(icommand_in_out5);tout29x29yout2=sim(6command_in_oufjl 8);tout3,x39yout3=sim(icommand_in_outl:8);tout4,x4,yout4=sim(6command_in_outl:0.2:8);subplot(2,2,l);subplot(2,2,2);plot(t,u,tout2,yout2J*);2subplot(2,2,3);plot(t,u,tout3,yout3:*);1,subplot(2,2,4);plot(t,u,tout4,yout4y);J输入:sin(0。5 iox(0=-cos(0+l5举例之三:外部输入变量设置前面对动态系统command_in_out进行仿真时,通过设置 Simulink仿真参数设置对话框中Workspace I/O中的外部变量 输入,以使系统在仿真过程中获取输入信号simjnputo除了使 用这种方法从MATLAB工作空间中获得系统输入信号之外,用户还可以通过使用sim命令中的ut参数来设置系统的外部输 入信号。下面介绍如何使用Ut参数设置外部输入信号。仍以command_in_out为例进行说明。使用如下命令:t,x,y=sim(model,timespan,options,ut)ut为一个具有两列的矩阵,第一列表示外部输入信号的时间,第二列代表与时间列相对应的外部输入信号。输入:sin(0 Q2)-=-cos(0+l ln1IntegratorHDOut1MATLAB 程序(程序名:command_in_out_m2.m)t=0:0.1:10;t=f;u=sin(t);sim_input=t,u;toutl,xl,youtl=sim(icommand_in_out 10);%使用 Simulink 仿真参 数对话框中的workspace I/O从MATLAB工作空间中获得输入信号u=cos(t);ut=t,u;%改变系统输入信号tout2,x2,yout2=sim(6command_in_out5,10,ut);%使用Sim中的 ut参数获得系统输入信号,ut的使用会覆盖由Workspace I/O的系统输入设 置,这一点可以在下面的系统仿真结果图形中反映出来subplot(l,2,1);plot(toutl,youtl);gridsubplot(l,2,2);plot(tout2,yout2);gridyoutl=jsin(towd)J(tout!)=-cos(towd)+l yout
展开阅读全文

开通  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 

客服