第7章:动态系统Simulink建模与仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
继电模块输出值可以在两个设定值之间切换。当 继电器吸合时,它保持吸合状态输出直到输入信 号值小于继电断开值(Switch off point)。当继 电器分离时,它保持分离状态输出直到输入信号 可按设定的穿越检测方向 (Hit crossing direction) 值大于继电吸合值(Switch on point)。 检测信号达到设定值的时 磁滞回环模块(Backlash):建立间隙模型。 间。此时输出一个正脉冲。 继电模块(Relay)
(1)在MATLAB命令窗口输入“simulink”命令。 (2)单击MATLAB主窗口左下角的“Start”按钮,在弹出的快 捷菜单中单击【Simulink】→【Library Browser】命令。 (3)单击MATLAB主窗口工具栏里的工具。
图7-1 Simulink窗口界面
2 Simulink模块库组件
5.模块的连接
将鼠标移动到模块的输出端子上,当鼠标出现“十字”符号 后,按下鼠标左键并拖动到下级模块的输入端子上,完成模 块信号的连接。如上图所示。 选中信号输出模块,按下键盘“Ctrl”键并单击下级模块完成 模块信号的连接。 在已存在的信号线上引出新的信号线时,可用鼠标右键单击 源信号线,并按住不放拖动到指定位置,完成信号线的分支 连接。如图所示,在模块没有完成连接时,以红色虚线显示, 当连接完成后以黑色实线显示。
Simulink是Simulation(仿真)与link(连接)的简写形式, 它提供一个动态系统建模、仿真和综合分析的集成环境 ,是 MATLAB最重要的组件之一,也是其它仿真工具箱的可视化 仿真平台 。 优点:建模方便灵活, 适用面广, 结构和流程清晰, 效率高等。
7.1.2 Simulink组成 1 Simulink启动
仿真参数配置完毕后,可运行仿真,方法有三种: ①单击模型窗口工具栏 工具 ②单击“Simulation”菜单,在弹出的下拉菜单中单击“Start”命令 ③同时按下快捷键“Ctrl+T”。 双击“Scope”模块,弹出如图所示仿真输出结果
3. 运行仿真与仿真输出
7.3动态系统Simulink仿真模型的建立
其它模块请参考MATLAB软件!
7.2 Simulink建模与仿真基本方法
7.2.1
简单系统仿真模型的建立
Simulink空白模型的建立可方法如下: 在MATLAB主窗口中选择菜单File/New/Model。 选择Simulink模块库浏览器窗口的菜单 File/New/Model。 单击Simulink模块库浏览器工具栏的新建图标 “”。
逻辑操作(Logic Operator)模块, 信号合成器(Mux)模块, 输出接口(Out1)模块, 乘法(Product)模块, 关系操作(Relational Operator)模块, 饱和(Saturation)模块, 示波器(Scope)模块, 子系统(Subsystem)模块, 求和模块(Sum), 开关转换模块(Switch), 信号终端(Terminator)模块, 单位延迟(Unit Delay)模块。
Simulink7.1模块库共包含16个子模块库,它们是:
Commonly Used Blocks(常用模块库) Continuous(连续系统模块库) Discontinuous(非连续系统模块库) Discrete(离散系统模块库) Logic and Bit Operations(逻辑与位操作模块库) Lookup Tables(查询表模块库) Math Operations(数学操作模块库) Model Verification(模型验证模块库)
离散状态空间模型(Discrete State-Space):离散状态空间模型实现 下面系统模型 一阶离散传递函数功能模块(Transfer Fcn First Order):用于建立 一阶的离散传递函数模型。 传递函数引导或终止模块(Transfer Fcn Lead or Lag):用于实现输 入信号的离散时间引导或终止补偿。 实数零点传递函数功能模块(Transfer Fcn Real Zero):用于实现具 有一个实数零点而无极点的传递函数模型。 加权滑动平均模块(Weighted Moving Average):模块采样并保持 最近N个输入信号,并根据设定的权重参数值(weights)计算它们的 平均值。该模块适用于SISO系统或SIMO系统模型。 记忆模块(Memory):输出前一时刻的输入信号值。 一阶保持器(First-Order Hold):实现离散采样系统的一阶采样保持 功能。 零阶保持器(Zero-Order Hold):实现离散采样系统的零阶采样保持 功能。
量化模块(Quantizer):用于输入信号的量化处理。 穿越值检测模块(Hit Crossing): 库仑与黏性摩擦(Coulomb & Viscous Friction): 返回零模块(Wrap to Zero)
当输入信号值超过设定的极限值 (Threshold),输出信号返回到 零值。
由系统框图建立Simulink仿真模型
由传递函数建立Simulink仿真模型 由状态方程建立Simulink仿真模型 由微分方程建立Simulink仿真模型
7.1.1 由系统框图建立Simulink仿真模型
建立上图所示系统框图的Simulink仿真模型的基本方法如下; 1.启动MATLAB/Simulink工具箱 2.建立Simulink空白模型
3.根据系统框图选择模块 4.模块的复制与删除操作 在模块库选中模块后,按住鼠标左键不放并拖动到Simulink 模型窗口指定位置,释放鼠标左键,完成模块的复制操作。 在模块库选中模块后,单击鼠标右键,在弹出的快捷菜单中, 单击“Add to Example_Model”命令将模块添加到指定模型 窗口,完成模块的复制操作。 在模块库选中模块后,在库浏览器窗口的Edit菜单中选择 Copy命令,用鼠标单击目标模型窗口中指定位置,再从模 型窗口的Edit菜单中选择Paste,完成模块的复制操作。 当模型窗口已有所需模块时,也可以直接从该处复制模块, 操作方是单击鼠标右键,在弹出的快捷菜单中单击“Copy” 命令,然后用鼠标右键单击模型窗口空白处,在弹出的快进 诶菜单中单击“Paste”命令来完成粘贴任务。此外,也可以 使用编辑菜单进行复制、粘贴操作。当然还可以用鼠标右键 按住所需复制的模块不放,并拖动到指定位置完成复制操作, 这可大大加快建模速度。
将各子模块连接起来后,构成如图所示的系统模型
7.2.2 Simulink仿真模型参数设置
1.基本模块参数设置 在完成模块的信号线连接并建立起系统的Simulink仿真模型 后,需要设置模块的参数。在Simulink模型里,双击需要修 改参数的模块,弹出参数设置对话框。
2. 仿真参数设置 单击模型窗口的“Simulation”菜单,在弹出的下拉菜单中单 击“Configuration Parameters”命令,打开“Configuration Parameters”对话框如图所示。
Model-Wide Utility, Ports & Subsystems(接口与子系统模块库), Signal Attributes(信号属性模块库) Signal Routing(信号路由模块库) Sinks(输出模块库) Sources(信号源模块库) User-Defined Functions(用户自定义模块库) Additional Math & Discrete (附加数学和离散系统模块库)
在零值为不连续点,在其它值 为连续线性增益。
(3)离散系统模块库 离散系统模块库主要包括用于建立离散采样系统的模块 ,包括:
单位延迟模块(Unit Delay):延迟一个采样周期 整数延迟模块(Integer Delay):延迟输入N个采样周期,N为自然数。 触发延迟模块(Tapped Delay):延迟N个采样周期后并输出全部的 输入信息。 离散时间积分器(Discrete-Time Integrator):离散积分器模块可以 代替积分器用来建立纯离散采样系统。在离散积分器模块参数对话框 里,可以设定初始状态值、增益值、输出饱和值。 离散传递函数功能模块(Discrete Transfer Fcn):可以建立离散传 递函数模型。 离散滤波器模块(Discrete Filter):用于建立离散系统滤波器仿真模 型。 离散零极点增益模型(Discrete Zero-Pole):使用零点、极点、增益 图7-4 值建立离散系统的零极点增益模型。 离散微分模块(Difference):输出当前输入信号值与前一个采样值 之差。派生离散微分模块(Discrete Derivative):模块的输出值按下 式计算:
(2) 连续系统模块库 连续系统(Continuous)模块库提供了连续系统Simulink建 模与仿真的基本模块,有: 微分环节模块(Derivative), 积分环节模块(Integrator), 状态空间模型(State-space), 传递函数功能模块(Transfer Fun), 传输延迟模块(Transport Delay), 可变时间延迟模块(Veriable Transport Delay), 可变传输延迟模块(Veriable Transport Delay) 零极点增益模块(Zero-Pole) 图7-3
用于设定死区区间。动态死 性模块(Saturation Danymic )可以根据 区非线性模块(Dead Zone 输入端口Up和Lo的设定值动态设置输出 非连续系统模块库(DisContinity )在以前版本中也称为非 Danymic)可以根据输入端 的上限和下限。 口Up和Lo的设定值动态设置 用于设置信号输出变化率 线性模块库,包含一些常用的非线性运算模块,主要包括: 死区区间。 限幅,即:上升变化率限幅 (Rising slew rate)和下降 变化率限幅(Falling slew rate)。 饱和非线性模块(Saturation)
(1) Commonly Used Blocks(常用模块库) 是为了加快建模速度,节省建模过程中寻找模块的时间而将 最常用的基本模块集中放在一起形成的,在初学Simulink建 模与仿真时,是使用最为频繁的模块库。
图7-2
常用模块库包括
总线信号生成器(Bus Creator)模块、 总线信号选择器(Bus Selector)模块、 常数模块(Constant)、 数据类型转换(Data Type Conversion)模块, 信号分离器(Demux)模块, 离散时间积分(Discrete-Time Integrator)模块, 增益(Gain)模块, 信号地(Ground)模块, 输入接口(In1)模块, 积分(Integrator)模块,
第7章:动态系统Simulink建模与仿真
本章内容: Simulink工具箱简介 Simulink建模与仿真基本方法 动态系统Simulink仿真模型的建立 Simulink子系统技术 S-函数与Simulink仿真 *模糊逻辑工具箱简介
7.1 Simulink工具箱简介
7.1.1 Simulink工具箱ቤተ መጻሕፍቲ ባይዱ介
(用于设置饱和输出上下限。动态饱和非线 3) 非连续系统模块库
死区非线性模块(Dead Zone) 变化率限幅模块(Rate Limiter) 变化率动态限幅模块(Rate Limiter Dynamic)
可以根据输入端口Up和Lo的 设定值动态设置信号上升变 化率限幅参数R和下降变化 率限幅参数L。