我是靠谱客的博主 干净戒指,最近开发中收集的这篇文章主要介绍Matlab基础学习笔记(五)—— Simulink仿真笔记链接(点我)基础常用模块库动态系统仿真子系统S函数,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
听万门的一个Matlab实践课做的笔记 |
知识结构
笔记链接(点我)
- 知识点比较零散记得比较概括,用幕布看可能更清晰一点
- 本节内容只是做个简单记录,具体使用某个库再进行具体学习
- 顺便放个邀请注册链接,可以领一个月高级版
- 注册幕布
目录
- 笔记链接(点我)
- 基础
- 常用模块库
- 动态系统仿真
- 子系统
- S函数
基础
-
定义
- Simulink是一个进行动态系统建模、仿真和综合分析的集成软件包。
- 可处理系统
- 线性、非线性系统
- 离散、连续、混合系统
- 单任务、多任务离散事件系统
- 组成
- 模块库
- 模型构造
- 指令分析
- 演示程序
- 既适用于Top-down又适用于Bottom-up
-
特点
- 设计简单
- 分析直观
- 仿真快速、准确
-
典型模型结构
- 输入、状态、输出
- .mdl文件
-
实例
- 创建空白模块
- 添加模块
- 添加连接
- 仿真
- 保存模型
-
工作原理
- 模型编译
- 连接
- 仿真执行
- 【一般采用数值积分仿真,相邻两个时间点的长度为步长,步长的大小取决于求解器的类型】
常用模块库
-
公共模块库 + 专业模块库
-
Continuous(连续模块组)
- 包括连续时间线性系统、连续时间延迟模块
-
Math Operations(数学运算模块组)
- 包括数学运算、向量运算、复数、向量间的转换运算四种
-
Signal Routing(信号传输选择模块组)
- 包括信号传输与信号存储、访问两种
-
Sinks(输出模块组)
- 包括模型及子系统输出、数据观察器、仿真控制三种
-
Sources(信号源模块组)
- 包括模型及子系统输入与信号发生器两种
-
部分专业模块库
- Control System Toolbox
- Communications Blockset
- DSP Blockset
- Fuzzy Logic Toolbox
- Neural Network Blockset
- Simulink Extras
- Stateflow
- Real-Time Workshop (RTW)
动态系统仿真
-
建立简单模型
- 建立模型窗口
- 将功能模块从模块库中复制到模型窗口
- 对模块进行连接,构成所需要的系统模型
- 【视觉表现为直观的方框图,文件上则是扩展名为mdl的ASCII代码,数学上表现为微分方程或差分方程,行为上模拟了实际系统的动态特性】
- 编译报错注意检查模块是否来源于同一模块组
-
模块简单操作
- 模块的复制(或创建)
- 模块的移动
- 模块的删除
- 模块的外形调整
- 改变模块对象的大小
- 改变模块对象的方向
- 颜色设定
- 改变模块名称
- 改变模块名称的字体
- 改变模块名称的位置
- 是否显示模块名称
-
模块的连接
- 信号线
- 包括标量信号和向量信号
- 向量信号线与线型设定
- 信号线设置标签
- 信号线弯折(shift)
- 信号线分支(ctrl)
- 信号线
-
模块参数、属性设置
- General
- Description
- Priority
- Tag
- Block Annotation
- 有效属性标记
- Callbacks
- 回调函数
- ClipboardFcn、DeleteChildFcn、ErrorFcn、PreCopyFcn、PreDeleteFcn
- 仿真参数设置
- Solver
- Simulation time
- Solver selection
- Type:固定步长or可变步长
- 可变应指定容许误差限
- Solver:具体算法类型
- ode45
- Type:固定步长or可变步长
- Relative tolerance
- Max step size
- Data Import/Export
- Output option
- Refine out(细化输出)
- Produce additional output
- Produce specified output only
- Load from work space
- xInitial state
- 优先度高
- save to workspace
- save option
- xInitial state
- Output option
- Diagnostics
- Simulation option(一致性检验)
- Configuration option
- Code Generation
- Coverage
- Solver
- General
-
仿真结果观察
-
观察输出信号
- 输出模块组Sinks中的Scope、Display数学显示器
- 返回MATLAB命令窗口,利用绘图命令
- 输入To Workspace模块,用绘图命令
-
Scope示波器
- 是观察仿真结果的主要工具
- 可有多个坐标(每个端口一个)
- 所有坐标有共同的时间坐标和各自独立的y坐标
-
Display
- 以数字形式显示
- 可显示单个信号、向量信号、矩阵信号(帧信号)
-
To Workspace模块
-
子系统
-
创建
- 添加Subsystem模块
- Ports & System库
- In1为外部输入,Out1为内部输出
- 组合已有模块
- 用方框包围
- Create subsystem
- 添加Subsystem模块
-
分类
- 条件子系统
- 使能子系统
- 使能控制信号为标量
- 大于零则开始执行
- 使能控制信号为向量
- 其中一个大于零则开始执行
- 使能控制信号为标量
- 触发子系统
- 触发事件发生的时刻执行
- 触发事件
- 上升沿触发
- 下降沿触发
- 跳变触发
- 回调函数触发
- 半波整流模型
- 使能子系统
- 条件子系统
S函数
-
S函数是系统函数(System Function)的简称
- 由特定语法构成
- 用于描述并实现连续系统、离散系统以及复合系统等动态系统
- 可接收来自Solver的相关信息,并对求解器发出的命令做出适当响应
-
建立
- 可用m文件、C或Mex文件编写
- function[sys, x0, str, ts] = fname[(t, x, u, flag)]
- sys —— 通用返回参数
- x0 —— 初始状态,flag为0有效
- str —— 为未来应用保留
- ts —— 两列分别标识采样时间间隔和偏移
- 设计可参考模板文件sfuntmpl.m
-
S-Function的子函数
- mdlInitializeSize
- mdlDerivatives
- mdlUpdate
- mdlOutput
- mdlGetTimeOfNextVarHit
- mdlTerminate
欢迎交流讨论与指正 |
最后
以上就是干净戒指为你收集整理的Matlab基础学习笔记(五)—— Simulink仿真笔记链接(点我)基础常用模块库动态系统仿真子系统S函数的全部内容,希望文章能够帮你解决Matlab基础学习笔记(五)—— Simulink仿真笔记链接(点我)基础常用模块库动态系统仿真子系统S函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复