ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:31.67KB ,
资源ID:10716087      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10716087.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Simulink初学者指南.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Simulink初学者指南.docx

1、Simulink初学者指南Simulink 指南1引言Simulink 软件是动态系统建模、 仿真和分析的工具, 它支持线性系统和非线性系统、连续时间系统和离散采样时间系统以及它们之间相互混合后的系统。0.1 Simulink 概述0.1.1 建模工具使用 Simulink ,用户可以在理想的线性模型之外研究更接近现实情况的非线性模型,比如摩擦力干扰、空气阻力、齿轮打滑、急刹车等。Simulink 提供给用户众多工具用以对真实世界中几乎所有的问题进行建模仿真。Demo Models 展示了很多的真实世界现象的模型。Simulink 提供了良好的图形界面,使用户把模型建成结构图的形式。 Simu

2、link 包含非常全面的 block 模块图:汇、源、线性和非线性元件以及连接器。如果这些图块不能满足需求, 用户可以自行创建模块图。 交互式的图形环境简化了建模过程,消除了建立微分和差分方程的需要。模型具有等级性,可通过自上而下和自下而上的手段建模。0.1.2 仿真工具仿真可通过 Simulink 菜单栏或者在 Matlab 中输入指令来完成。指令输入的方式对于运行一组 (批)仿真实验是比较有利的, 比如蒙特卡罗仿真或者某参数有多个可能的取值。仿真结果可通过 scopes 和其他显示模块看到。随意更改某个参数的值可以看结果的变化。0.1.3 分析工具模型分析工具包括线性化和调整( trimm

3、ng)工具,可通过 Matlab 命令行以及许多应用工具箱完成。0.1.4 Simulink 与 Matlab 环境的交互Simulink 与 Matlab 环境紧密集成。它依赖 Matlab 才能运行,定义和评估模型及参数。例如:定义模型输入;存储模型输出的数据用以分析和可视化;在模型内完成函数体的编写。0.2 基于模型的设计基于模型的设计是对控制系统、 信号处理系统和通信系统等动态系统进行设计的更快、成本更低的一种设计过程。在整个过程中,系统模型居于中心,从需求的建立,到设计、执行和测试,模型是一个可不断重新定义的能够执行的实例。一旦模型建立之后,仿真可以显示模型的工作结果。设计流程:1、

4、定义系统对于大系统,最好将其分解为几个子系统,分别进行考虑。2、确定系统的组成要素分成三类:参数(常量) 、状态(随时间变化的量) 、信号流(输入或输出)3、通过方程对系统建模代数方程、逻辑运算、微分方程(连续系统) 、差分方程(离散系统)4、搭建 Simulink 动态结构图5、运行仿真6、验证仿真结果1 Simulink介绍1.1 Simulink 基本使用1.1.1 启动 Simulink软件打开 Matlab 软件后,通过以下两种方式启动 Simulink:在工具条上点击 Simulink 图标在 Matbla 指令窗口中输入 simulink启动后,左侧会出现模块图库( block

5、library ),以树状结构显示了系统安装的所有模块图,通过拖曳的方式可以将其复制到模型窗口中去。1.1.2 打开一个模型打开模型不仅将模型加载到内存中, 而且模型图也同时显示在模型窗口中。 如果只想将模型加载在内存中而不显示,可参考“加载模型” 。1.1.2.1 打开一个已经存在的模型操作方式:菜单栏: file-open工具条: open 图标快捷键: ctrl+o指令窗:如果 .mdl 文件在当前文件夹或路径上, 可直接输入模型的名字 (不需要加后缀)1.1.2.2 用不同字符编码的环境中打开模型如果出现警告信息,需要关闭所有已打开的模型,使用 slCharacterEncoding指

6、令改变软件的字符编码格式,然后再打开。1.1.3 加载一个模型1.1.4 保存一个模型编码出错无法保存: 如果保存时, 你在模型中引入了不能识别的字符, 保存结果为 .err 文件,这时候需要通过文本编辑器查找到错误字符的位置进行修改。将文件保存为之前版本的文件。1.1.5 使用模型编辑器包括工具条、菜单栏、画布、背景菜单和状态条。1.1.6 撤销一个操作可撤销连续 101 次操作1.1.7 缩放模型动态结构图放大:菜单栏 View-Zoom in 或者 r缩小:菜单栏 View-Zoom out 或者 v适合窗口:菜单栏 View-Fit System To View 或者 空格键真实大小:

7、菜单栏 View-Normal 或者 11.1.8 平移动态结构图当结构图太大时,可通过键盘 +鼠标的方式移动结构图。快捷键: p 或者 q1.1.9 视图操作历史无论是对模型图的缩放还是平移,这些操作都被记录下来,通过模型编辑器的 View 菜单按钮或者工具栏,可以展示前一个视角或者后一个视角,以及父图。1.1.10 前置 Matlab 窗口Simulink 以 Matlab 作为桌面打开模型窗口,可以通过 View-MATLAB Desktop 的方式使 Matlab 窗口前置。1.1.11 复制模型图到第三方软件1、设置图像复制选项: File-Preferences,设置保存格式,尽量

8、设置为 metafile;2、打开模型,在菜单编辑器中选择 Edit-复制模型到剪切板即可。1.1.12 更新动态结构图如果用户没有具体给定结构图的某些参数或属性, 例如信号的数据类型和采样时间, Simulink 可以自己推断最合适的值,如果无法推断,将会终止更新,显示错误对话框。每次仿真运行前, 动态结构图都要进行更新, 保证仿真能够反映最新的改变, 而且用户可以在任何时刻命令 Simulink 软件进行更新:操作方式: Edit-Update Diagram 或者 Ctrl+D。1.1.13 打印动态结构图操作方式1、菜单栏选项: File-Print2、命令行指令: print打印对话

9、框:选择当前模型图、包含父图、包含子图、打印所有图等选项设置纸张大小和方向设置打印位置:平铺打印: File-Enable Tile Printing显示页面边界: View-Show Page Boundaries设置打印页边距:设置打印页数:打印采样时间:在打印对话框中选择“ print sample time legend”1.1.14 生成模型报告模型报告是一个描述模型结构和内容的 HTML 文档,包括模型的动态结构图和所有的子系统以及参数的设置。操作方式: File-Print Details1.1.15 结束 Simulink1.1.16 鼠标键盘操作总结1模型视图快捷键2、模块编

10、辑快捷键3、线操作快捷键4、信号符号操作快捷键5、注释操作快捷键1.2 Simulink 如何工作1.2.1 介绍动态系统的仿真需要两步完成:1、利用模型编辑器创建动态结构图,以此描述系统的输入、状态、输出之间的数学关系;2、给定仿真开始时间和结束时间,进行仿真。1.2.2 动态系统建模1.2.2.1 动态结构图的语义动态结构图由基本的模块图和信号(线)组成。Simulink 中有两类模块图,一种是非虚拟的模块,代表基本的系统,另一种是虚拟的模块,只是为了图形和组织的方便而使用,可改善程度的可读性。通常来说,动态结构图是基于时间的。1.2.2.2 创建模型Simulink 提供了一个图形化的模

11、型编辑器,允许用户从模块库中选择模块类型创建和连接。模块图可代表基本的系统。 模块分为内置的模块和用户自定义的两种。1.2.2.3 时间动态结构图代表的是一个动态系统同时发生的行为。 确定一个系统随时间的行为需要没经过一个时间间隔便重复不断的求解系统。 这个在连续的时间间隔里不断的求解模型的过程就是系统仿真。1.2.2.4 状态Simulink 模型中存在两种状态:离散状态和连续状态。能够定义连续状态的标准模块图有:积分、状态空间、传递函数、变量传输延迟、零极点model 命令:显示模型所定义的状态的信息,包括状态的总数,每个模块对应的状态和每个状态的初始值。Simulink 调试时会在每个时

12、刻显示状态的值。Data Import/Export 窗口可以允许用户为状态赋初值,也可以输出各个时刻的状态值。计算连续状态在当前时刻的值, 需要从仿真开始时刻进行积分。 数值积分的精度反过来又依赖于时间间隔的大小,因此,时间间隔越小,解的精度越高。一些ODE解法,可以根据状态变化的速度自动改变时间步长,达到需要的精度。计算离散状态需要知道当前时刻与前一时刻状态之间的关系,即状态的更新函数。离散状态在仿真时间步长上设定约束。对于既含连续状态又含离散状态的系统, 我们称之为混合系统。 解算混合系统模型需要选择一个同时满足连续状态积分精度要求和采样时间的补偿。 连续系统的步长要小于离散系统下一个采

13、样点所用的时间。适合混合系统的有龙格库塔法、ODE23和 ODE45。1.2.2.5 模块参数1.2.2.6 可调参数可调参数是指不需要重新编译系统便能更改的参数。1.2.2.7 模块采样时间每一个模块都有一个采样时间用以定义模块执行。大多数模块允许用户通过 sampletime 参数设置采样时间。三种采样方式:离散采样、连续采样、继承采样对于离散采样模块, 离散采样时间是一个矢量 Ts To ,第一个分量表示采样间隔,第二个分量表示初始采样的值。对于连续采样模块,用 0,0 表示对于集成采样模块,用 -1, 0 表示。1.2.2.8 用户自定义模块1.2.2.9 系统与子系统一个 Simul

14、ink 动态结构图可以由多层构成,每一层定义为一个子系统。子系统有另类:虚拟的和非虚拟的。非虚拟的子系统可控。虚拟的子系统:虚拟的子系统只是为了提供图形上的等级性。模型执行时, Simulink 引擎会在适当的时候展开子系统。非虚拟的子系统:非虚拟的子系统既能执行, 又可提供图形上的等级性。 在执行时, 被视作一个单元。非虚拟的子系统包括:原子子系统enabled 子系统:Enabled 子系统与 atomic 子系统基本一致,唯一不同的是, enabled 子系统只有在 enable 端口的信号驱动值大于零时才执行。用户可以通过 States when enabling参数设置一个 enab

15、led 子系统保持或重置状态值;也可以通过 Output when disabled 参数设置保持或重置输出值。触发式子系统函数调用子系统Enabled with trigger subsystemsAction subsystemsWhile-subsystemsFor-subsystems1.2.2.10 信号在动态结构图中,信号以带箭头的线表示。1.2.2.11 模块的方法模块代表多重方程。通常的方法有:输出、更新、求导模块的命名: BlockType.MethodType 例如: Gain.Outputs1.2.2.12 模型的方法输出、更新、求导1.2.3 动态系统仿真1.2.3.1

16、 模型编译当从模型编辑器的仿真菜单中选择开始时, 仿真第一步便启动了模型编译器。 模型编译器将模型转换为可执行的形式。1.2.3.2 链接阶段在此阶段, Simulink 引擎为执行分配内存。1.2.3.3 仿真循环阶段分为两个子阶段:循环初始化和循环迭代阶段。每一步, Simulink 都会:1、计算模型的输出2、计算模型的状态3、随意的检查连续状态模块的不连续性4、计算下一步的时间1.2.3.4 求解器动态系统的仿真过程就是利用模型信息在连续的时间步长上计算状态。 这个过程就是求解模型的过程。求解器有多种。固定步长求解器 VS. 可变步长求解器固定步长求解器以固定的时间间隔求解模型。 一般

17、来说, 步长越小,解的精度越高。可变步长求解器根据状态变化的快慢改变求解步长。连续求解器 vs.离散求解器连续求解器利用数值积分计算模型的连续状态。 ODEs 离散求解器主要用于解算纯离散模型。二级步长一些连续的解算器将仿真总时间细分为一级、 二级时间步长。 利用二阶步长的结果代替一级步长,可提高精度。形状保留对于导数变化剧烈的信号,需要输入导数的信息以获取更高精度的积分结果。1.2.3.5 过零检测过零检测的两种算法:自适应算法和非自适应算法。算 法 的 选 择 方 式 : 菜 单 栏 Simulation-Configuration Parameter-Solver pane-Algori

18、thm: choose Nonadaptiveor Adaptive自适应算法适用于:1系统包含大量振颤现象2用户系统确定一个保护频段自适应算法结束括搜(迭代)当出现以下情况时:1过零误差很小。需要在 solver pan 中选择 Signal threshold选项。2连续过零穿越次数已超过最大值需要进行过零检测的模块1.2.3.6 代数循环什么是代数循环?代数循环是指输入口依赖于输出的情况。 可以通过直接穿过或者通过其他模块反馈的形式。direct feedthrough (直接穿过)Math Function blockGain blockIntegrator block, when t

19、he initial condition port depends on theblock outputProduct blockState-Space block, when the D matrix coefficient is nonzero SumblockTransfer Fcn block, when the numerator and denominator are of the same orderZero-Pole block, when the block has as many zeros as poles代数循环的数学定义常微分方程( ODE)可写为:x f x,t微分

20、代数方程( DAE)写为:0 g x, xa ,tSimulink 不直接求解 DAE,用 ODE求解 DAE代数循环的物理意义质量或能量守恒定律,固定的设计参数代数循环诊断Simulation-Configuration Parameter-Diagnostics-Algebraic loop利用代数循环诊断高亮显示代数循环利用 ashow编译命令高亮显示代数循环Simulink代数循环解算器如果模型中含有代数循环, Simulink 软件在每一时刻都会使用非线性求解器用来计算代数循环。 求解器会使用迭代运算确定代数循环的解。 这样,模型便比没有代数循环的模型运行得要慢很多。代数循环求解的算

21、法置信域算法和线搜索算法set_param( model_name, AlgebraicLoopSolver, TrustRegion); set_param( model_name, AlgebraicLoopSolver, LineSearch);代数循环的局限如果代数循环求解不能收敛或者很慢收敛,那么仿真将推出并显示错误。不能计算代数循环的情况:Blocks with discrete-valued outputsBlocks with nondouble or complex outputsStateflow chartsNonvirtual subsystems使用代数循环带来的问题

22、You cannot generate code for a model with algebraic loops.The Simulink algebraic loop solver cannot solve the algebraic The simulation executes slowly while Simulink is trying to solve the algebraic loop.loop.For most models, the algebraic loop solver is computationallyexpensive for the first time s

23、tep. Simulink solves subsequent timesteps rapidly because a good starting point for xa is available fromthe previous time step.2动态系统建模2.1 创建一个模型2.1.1 创建一个空模型模块库浏览器:单击工具栏上的 New 按钮;菜单栏: File-New-Model快捷键: Ctrl+New2.1.1.1 创建模型模板默认的模型配置参数:白画布ODE45解算器可视工具栏可自行编写函数产生一个自己想要的模型function new_model(modelname)%N

24、EW_MODEL Create a new, empty Simulink model%NEW_MODEL(MODELNAME) creates a new model with%the name MODELNAME. Without the MODELNAME%argument, the new model is named my_untitled.if nargin = 0modelname = my_untitled;end% create and open the modelopen_system(new_system(modelname);% set default screen c

25、olorset_param(modelname, ScreenColor, green);% set default solverset_param(modelname, Solver, ode3);% set default toolbar visibilityset_param(modelname, Toolbar, off);% save the modelsave_system(modelname);2.1.2 增加一个模型2.1.2.1 库浏览器用户可使用库浏览器进行浏览、搜索、复制模块图。2.1.2.2 打开库浏览器Simulink 按钮Simulink 命令行指令使库浏览器始终显

26、示在屏幕前端,可在库浏览器的工具栏上选择 Pushpin 按钮。2.1.2.3 浏览模块库树状结构文件夹2.1.2.4 搜索模块库1在模块库浏览器的搜索区域输入要搜索的字符串2回车或单击 Search按钮2.1.2.5 克隆模块图进入模型拖放即可2.1.3 选择对象2.1.3.1 选择单个对象单击对象,出现黑色小框2.1.3.2 选择多个对象每次选择一个: Shift+LMB(左键单击)每次选择多个:拉框选择所有对象: Edit-Select All2.1.4 定义结构图的颜色2.1.4.1 如何定义结构图的颜色可定义画布的背景、模块图(及注释)的前景色和背景色2.1.4.2 选择自定义颜色2

27、.1.4.3 定义自定义颜色2.1.4.4 在程序中定义颜色set_param(gcs, ScreenColor, 0.3, 0.9, 0.5)2.1.4.5 用颜色显示采样时间菜单栏: Format-Sample Time Colors2.1.5 连接模块图2.1.5.1 自动连接模块图连接两个模块图单击源模块,按下 Ctrl 键,左键单击目标模块连接模块组先选择组(可能是源,也可能是目标) ,按下 Ctrl 键,左键单击目标模块2.1.5.2 手动连接模块图Shift+托拉:画斜线画分支线:将鼠标位置放在主线上,按下 Ctrl 键,同时按下鼠标左键,拖动至目标模块的输入口。或者,右键托拉画

28、线的分段移动线的分段在线中插入模块图2.1.5.3 取消连接方式一、按下 Shift 键,拖动模块图至新位置方式二、鼠标移动至连线的终端箭头处,拖拽连线离开模块图旋转模块图有时候为了模型图美观,需要旋转模块图以改变连线的方向。操作方式:1、选中模块,菜单栏 Format-Rotate Block-Clockwise2、右键单击模块出现 context 菜单3、顺时针旋转的快捷键: ctrl+R2.1.6 自动对齐,均匀分布和重置大小选中模块后,菜单: Format-Align Blocks/ Distribute Blocks/Resize Blocks2.1.7 为结构图注释2.1.7.1 如何为结构图添加注释添加注释方式在空白区域双击鼠标, 一个小的矩形出现, 鼠标会同时变成插入点。 这时就可以键入注释内容移动注释将注释拖动至新的位置编辑注释选中注释后,如果要更换注释内容, 双击或者拖动鼠标选中要更换的文本, 然后键入新的注释如果要插入字符,在插入位置点击鼠标,键入文本如果要改变某个字符,拖动鼠标选中要更换的文本,然后键入新的文本删除注释按下 shift 键的同时单击注释,按 delete 或 backspace键改变注释的字体按下 shift 键,单击选中注释,从菜单栏 Format-Font 出现的对话框中选择字体和字号改变注释内文本对齐方式shift+

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1