《Matlab系列之Simulink仿真教程》由会员分享,可在线阅读,更多相关《Matlab系列之Simulink仿真教程(64页珍藏版)》请在金锄头文库上搜索。
1、MathLab Mathlab之simulink仿真 第九章Simulnk动态仿真 本章主要内容如下 9 1Simulink基本操作9 2模块库和系统仿真9 3子系统创建与封装9 4Simulink仿真举例 第九章Simulink动态仿真 Simulink中的 Simu 一词表示可用于计算机仿真 而 Link 一词表示它能进行系统连接 即把一系列模块连接起来 构成复杂的系统模型 作为MATLAB的一个重要组成部分 Simulink由于它所具有的上述的两大功能和特色 以及所提供的可视化仿真环境 快捷简便的操作方法 而使其成为目前最受欢迎的仿真软件 本章主要介绍Simulink的基本功能和基本操作
2、方法 并通过举例介绍如何利用Simulink进行系统建模和仿真 第九章Simulink动态仿真 9 1Simulink基本操作利用Simulink进行系统仿真的步骤是 启动Simulink 打开Simulink模块库打开空白模型窗口 建立Smulink仿真模型 设置仿真参数 进行仿真 输出仿真结果 9 1Simulink基本操作9 1 1启动Simulink启动Simulink 单击MATLABCommand窗口工具条上的Simulink图标 或者在MATLAB命令窗口输入simulink 即弹出图示的模块库窗口界面 SimulinkLibraryBrowser 该界面右边的窗口给出Simul
3、ink所有的子模块库 常用的子模块库有Sources 信号源 Sink 显示输出 Continuous 线性连续系统 Discrete 线性离散系统 Function Table 函数与表格 Math 数学运算 Discontinuities 非线性 Demo 演示 等 启动Simulink每个子模块库中包含同类型的标准模型 这些模块可直接用于建立系统的Simulink框图模型 可按以下方法打开子模块库 用鼠标左键点击某子模块库 如 Continuous Simulink浏览器右边的窗口即显示该子模块库包含的全部标准模块 启动Simulink用鼠标右键点击Simulink菜单项 则弹出一菜单条
4、 点击该菜单条即弹出该子库的标准模块窗口 如单击左图中的 Sinks 出现 Openthe Sinks Library 菜单条 单击该菜单条 则弹出右图所示的该子库的标准模块窗口 9 1Simulink基本操作9 1 1启动Simulink打开空白模型窗口模型窗口用来建立系统的仿真模型 只有先创建一个空白的模型窗口 才能将模块库的相应模块复制到该窗口 通过必要的连接 建立起Simulink仿真模型 也将这种窗口称为Simulink仿真模型窗口 以下方法可用于打开一个空白模型窗口 在MATLAB主界面中选择 File New Model 菜单项 单击模块库浏览器的新建图标 选中模块库浏览器的 F
5、ile New Model 菜单项 所打开的空白模型窗口如图所示 9 1 2建立Simulink仿真模型打开Simulink模型窗口 Untitled 选取模块或模块组在Simulink模型或模块库窗口内 用鼠标左键单击所需模块图标 图标四角出现黑色小方点 表明该模块已经选中 模块拷贝及删除在模块库中选中模块后 按住鼠标左键不放并移动鼠标至目标模型窗口指定位置 释放鼠标即完成模块拷贝 模块的删除只需选定删除的模块 按Del键即可 9 1Simulink基本操作9 1 2建立Simulink仿真模型模块调整改变模块位置 大小 改变模块方向使模块输入输出端口的方向改变 选中模块后 选取菜单Form
6、at RotateBlock 可使模块旋转900 9 1 2建立Simulink仿真模型模块参数设置用鼠标双击指定模块图标 打开模块对话框 根据对话框栏目中提供的信息进行参数设置或修改 例如双击模型窗口的传递函数模块 弹出图示对话框 在对话框中分别输入分子 分母多项式的系数 点击OK键 完成该模型的设置 如右下图所示 9 1 2建立Simulink仿真模型模块的连接模块之间的连接是用连接线将一个模块的输出端与另一模块的输入端连接起来 也可用分支线把一个模块的输出端与几个模块的输入端连接起来 连接线生成是将鼠标置于某模块的输出端口 显一个十字光标 按下鼠标左键拖动鼠标置另一模块的输入端口即可 分
7、支线则是将鼠标置于分支点 按下鼠标右键 其余同上 连接线 左键 分支线 右键 9 1 2建立Simulink仿真模型模块文件的取名和保存选择模型窗口菜单File Saveas后弹出一个 Saveas 对话框 填入模型文件名 按保存 s 即可 说明 模块的修改 调整 连接通常只能在仿真模型窗口中进行 不要直接对模块库中的模块进行修改或调整 9 1Simulink基本操作9 1 3系统仿真运行Simulink模型窗口下仿真步骤打开Simulink仿真模型窗口 或打开指定的 mdl文件 设置仿真参数 在模型窗口选取菜单 Simulation Parameters 弹出 SimulationParam
8、eters 对话框 设置仿真参数 然后按 OK 即可 说明 若不设置仿真参数 则采用Simulink缺省设置 9 1Simulink基本操作9 1 3系统仿真运行Simulink模型窗口下仿真步骤仿真运行和终止 在模型窗口选取菜单 Simulation Start 仿真开始 至设置的仿真终止时间 仿真结束 若在仿真过程中要中止仿真 可选择 Simulation Stop 菜单 也可直接点击模型窗口中的 或 启动 或停止 仿真 9 1Simulink基本操作9 1 3系统仿真运行MATLAB命令窗口下的仿真运行在Matlab命令窗口下可直接运行一个已存在的Simulink模型 t x y sim
9、 model timespan option ut 其中 t为返回的仿真时间向量 x为返回的状态矩阵 y为返回的输出矩阵 model为系统Simulink模型文件名 timespan为仿真时间 option为仿真参数选择项 由simset设置 ut为选择外部产生输入 ut T u1 u2 un 说明 上述参数中 若省略timespan option ut则由框图模型的对话框SimulationParameters设置仿真参数 back 9 2模块库和系统仿真9 2 1Simulink模块库Sources库也可称为信号源库 该库包含了可向仿真模型提供信号的模块 它没有输入口 但至少有一个输出口
10、双击图标即弹出该库的模块图 在该图中的每一个图标都是一个信号模块 这些模块均可拷贝到用户的模型窗里 用户可以在模型窗里根据自己的需要对模块的参数进行设置 但不可在模块库里进行模块的参数设置 Sources库SineWave 产生幅值 频率可设置的正弦波信号 双击图标 认定该模块已拷贝到用户模型窗 以下均如此 弹出正弦波的参数设置框图 图中参数为Simulink默认值 用户可根据需要对这些参数重新设置 幅值 频率为2 基准为0 5 其波形如下图所示 Sources库Step 产生幅值 阶跃时间可设置的阶跃信号 双击图标 弹出阶跃信号的参数设置框图 图中参数为Simulink默认值 当设置幅值为0
11、 8 阶跃时间为1秒时 阶跃波形如下图所示 9 2 1Simulink模块库Sinks库该库包含了显示和写模块输出的模块 双击即弹出该库的模块图 数字表 显示指定模块的输出数值 X Y绘图仪用同一图形窗口 显示X Y坐标的图形 需先在参数对话框中设置每个坐标的变化范围 当X Y分别为正 余弦信号时 其显示图形如下 9 2 1Simulink模块库Sinks库 示波器 显示在仿真过程产生的信号波形 双击该图标 弹出示波器窗如右图所示 Sinks库示波器属性对话框 设置Y轴个数 设置显示的时间范围 选择轴的标注方法 确定显示频度 每隔n 1个数据点显示一次 确定显示点的时间间隔 缺省为0表示连续显
12、示 示波器属性对话框General页 Sinks库示波器属性对话框 例9 1 示波器应用示例 Simulink仿真模型如左图所示 示波器输入为3 Y轴个数为3 右图为该示波器显示的三路输入信号的波形 9 2 1Simulink模块库Continuous库该库包含描述线性函数的模块 双击即弹出下图 微分环节 其输出为其输入信号的微分 如下图为输入斜坡信号时微分环节的输出 Continuous库 积分环节 其输出为其输入信号的积分 双击该模块 弹出积分器的参数对话框 可设置积分器的复位 积分上限和下限等 当设置为信号下跳过零复位 积分器限幅为 5时 积分器对谐波输入的输出如图所示 9 2 1Sim
13、ulink模块库Continuous库 分子分母为多项式形式的传递函数 双击该模块 弹出传递函数的参数对话框 设置框图中的参数后 该传递函数显示如下 9 2 1Simulink模块库Continuous库 零极点增益形式的传递函数 双击该模块 弹出传递函数的参数对话框 设置框图中的参数后 该传递函数显示如下 9 2 1Simulink模块库Math库该库包含描述一般数学函数的模块 双击即弹出右图 该库中模块的功能就是将输入信号按照模块所描述的数学运算函数计算 并把运算结果作为输出信号输出 9 2 1Simulink模块库Math库 加法器 该模块为求和装置 求和器形状 输入信号个数和符号可设置
14、 如右边框图 若设置如框图 则模块显示为 9 2 1Simulink模块库Math库 符号函数 该模块的输出为输入信号的符号 下图为对正弦信号经符号运算后的波形 Math库 实现一个数学函数 右图为该函数的参数设置框 点击函数设置的下拉窗口 可选择所需要的函数 选定函数后 该模块图标将显示所选函数 如选择 Square 则模块图标变为 9 2 1Simulink模块库Signals Systems库 信号分路器 将混路器输出的信号依照原来的构成方法分解成多路信号 信号汇总器将多路信号依照向量的形式混合成一路信号 9 2 2Simulink环境下的仿真运行仿真参数对话框点击Simullink模型
15、窗simulation菜单下的Parameters命令 弹出仿真参数对话框如右图所示 它共有5页 用得较多的主要是Solver页和WorkspaceI O页 Solver页Simulationtime 仿真时间 设置Starttime 仿真开始时间 和Stoptime 仿真终止时间 可通过页内编辑框内输入相应数值 单位 秒 另外 用户还可以利用Sinks库中的Stop模块来强行中止仿真 Solver页Solveroptions 仿真算法选择 分为定步长算法和变步长算法两类 定步长支持的算法可在Fixedstepsize编辑框中指定步长或选择auto 由计算机自动确定步长 离散系统一般默认地选择
16、定步长算法 在实时控制中则必须选用定步长算法 变步长支持的算法如图9 16所示 对于连续系统仿真一般选择ode45 步长范围使用auto项 图9 15定步长算法 图9 16变步长算法 Solver页ErrorTolerance 误差限度 算法的误差是指当前状态值与当前状态估计值的差值 分为Relativetolerance 相对限度 和Absolutetolerance 绝对限度 通常可选auto Outputoptions 输出选择项 有Refineoutput 细化输出 Produceadditionaloutput 产生附加输出 Producespecifiedoutputonly 只产生指定输出 WorkspaceI O页这个页面的作用是定义将仿真结果输出到工作空间 以及从工作空间得到输入和初始状态 Loadfromworkspace 勾选相应方框表明从工作空间获得输入或初始状态 若勾选Input 则工作空间提供输入 且为矩阵形式 输入矩阵的第一列必须是升序的时间向量 其余列分别对应不同的输入信号 WorkspaceI O页这个页面的作用是定义将仿真结果输出到工作空间 以及从工