Matlab simulink建模与仿真 第十四章(信号输出库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili

一、信号输出库中的模块概览

注:部分模块在第二章中有介绍,本章不再赘述。

二、文件及工作空间模块

1、To File文件模块

(1)在MATLAB中可用MAT文件对工作区的变量进行保存(通常用来存储矩阵),而该模块则是可以将一个矩阵存储到一个MAT文件中。

(2)变量可以创建为MATLAB时间序列(Timeseries)或数组(Array)。

①若选择生成的形式为时间序列,输入信号的形式可以多种多样(可用于任何数据类型、复杂程度或维度),该模块将simulink中的仿真采用时间点序列作为一个列向量(成员名为Time),每个仿真采用时间点的输入信号作为也作为一个列向量(成员名为Data),二者组成一个结构体,该结构体存储在File name指定的MAT文件中,并将结构体赋给其中指定的变量(如果输入信号为标量或者向量,那么两个成员直接合并成矩阵,而不是存储为结构体)。

②若选择生成的形式为数组格式,则输入信号只能是矢量、浮点数或者非复数,数组的每一列第一行都有一个时间戳,其后各行都有一个包含相应数据样本的矢量。

(3)下例中To File1模块将数据存储为时间序列(仿真时长为10s,仿真步长为0.1s,共101个采样时间点),变量名为ans1,To File2模块将数据存储为数组格式,变量名为ans2。

2、To Workspace工作空间模块

(1)该模块和To File模块的使用方法类似,不同的是该模块是将数据导入工作空间中,而且不论选择哪种数据形式,输入信号都可以是矩阵(当输入信号为向量时,输入信号集是一个二维矩阵,不带时间戳,而当输入信号为矩阵时,输入信号集是一个三维矩阵,其中第三维用于记录各组数据的采样时刻排序,它并不能算作是时间戳)。

(2)下例中仿真时长为10s,仿真步长为0.1s,共101个采样时间点。To Workspace1模块将数据存储为带时间戳的结构体,变量名为simout1;To Workspace2模块将数据存储为不带时间戳的结构体,变量名为simout2;To Workspace3模块将数据存储为数组格式,变量名为simout3;To Workspace4模块将数据存储为时间序列,变量名为simout4。(需要说明的是,配置和输入信号类型的排列组合多种多样,本例不会一一演示)

①带时间戳的结构体:

②不带时间戳的结构体(默认选择"二维输入存储为3-D array"):

③数组格式(默认选择"二维输入存储为3-D array"):

④时间序列:

三、数据观察模块

1、Scope示波器模块

(1)Scope模块在第二章中已有介绍,这里对先前未做介绍的功能进行补充介绍。

(2)示波器模块检测到的数据可以导入工作区中,不过这个功能可以用To Workspace模块实现,所以示波器模块一般不开启这个功能。

(3)可以使用Layout工具将一个示波器划分为若干个窗口,比如有两个输入信号,那么可以划分出两个子窗口,这样,两个信号就可以在两个子窗口中分别进行显示。

2、XY Graph绘图模块

(1)该模块有两个输入端口X、Y,它会在每个时间步长绘制第二输入值(Y)与第一输入值(X)的散点,最后将它们连起来,以创建X-Y图(忽略超出x-min、x-max、y-min、y-max指定范围的数据)。(两个输入端口均只能为标量)

3、Floating Scope浮动示波器模块

(1)浮动示波器模块和普通示波器模块的使用方法类似,不过它没有输入端口,需要按下图所示打开信号选择器,在这里可以选择其它模块的输出端口进行"虚空连接",这样,浮动示波器就可以监测这些输出端口的输出信号了。(该模块使用并不频繁,这里仅做简单介绍)

(2)使用浮动示波器模块进行仿真时,需要取消下图所示两个选项的勾选,否则会报错。

4、Display显示模块

(1)该模块在前面介绍其它模块时经常使用,它的作用是将输入端口的信号值显示出来。

(2)信号值的显示格式有下图所示的几种,一般默认为short格式,这种格式基本满足大部分需求,不管输入是整数、浮点数、复数或者是矩阵,该格式都能显示,另外一种可能常用的格式为binary,该格式会直接将输入数据转换为二进制形式,前面的章节中有使用过这种形式,这里不再演示。

四、终止仿真模块

当输入值不为0(或者输入信号中含非零元素)时,Stop Simulation模块将使仿真暂停,这个暂停并不算是报错,而是相当于将仿真时长缩短罢了。

相关推荐
逝水无殇1 小时前
C# 异常处理详解
开发语言·后端·c#
玖玥拾3 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾3 小时前
Rust 学习目录
开发语言·学习·rust
云泽8083 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦3 小时前
GO---可见性规则
开发语言·golang
逝水无殇4 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
这是个栗子5 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
凤凰院凶涛QAQ5 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香5 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
右耳朵猫AI5 小时前
PHP周刊2026W28 | 安全更新、Laravel 13.18、Twig 3.28
开发语言·php·laravel