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。(需要说明的是,配置和输入信号类型的排列组合多种多样,本例不会一一演示)
①带时间戳的结构体(values中的第三维记录各组数据采样时刻的先后顺序,这个并不能算是时间戳):
②不带时间戳的结构体(默认选择“二维输入存储为3-D array”,values中数据的行号代表采样时刻的先后顺序,这个并不能算是时间戳):
③数组格式(默认选择“二维输入存储为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模块将使仿真暂停,这个暂停并不算是报错,而是相当于将仿真时长缩短罢了。