输入
使用顶层输入端口加载仿真的外部输入数据的选项
模型配置窗格: 数据导入/导出
描述
输入参数指定是否为顶层输入端口加载外部输入数据。当您选择输入参数时,还必须指定要为每个顶层输入端口加载的外部输入数据。
在仿真模型层次结构时,只有顶层模型中的输入端口从工作区加载数据。除非将引用模型作为顶层模型进行仿真,否则将忽略引用模型的输入参数值。要将数据加载到未作为顶层模型仿真的引用模型中,请使用 Inport 模块或 In Bus Element 模块以外的加载模块,例如 From Workspace 模块。
有关详细信息,请参阅将数据加载到根级输入端口。
设置
off
(默认) | on
off
默认情况下,禁用输入参数。当模型不包含顶层输入端口时,保留此参数处于禁用状态。
on
当您的模型包含顶层输入端口时,请选择输入参数来指定在仿真期间为每个端口加载的输入数据。在文本框中,将要加载的外部输入数据指定为 MATLAB® 变量(包含所有顶层输入端口数据),或指定为以逗号分隔的列表(其中每项都包含一个顶层输入端口的数据)。您可以使用几种格式来表示所有顶层输入端口的数据,以及表示每个顶层输入端口的数据。对于所有数据格式:
时间值必须具有
double
数据类型,并且呈现单调递增。时间和信号数据不能包含
Inf
或NaN
值。
下表总结了将输入参数值指定为包含所有顶层输入端口数据的变量时所支持的数据格式。
格式 描述 提示和注意事项 Dataset
对象中的每个元素都包含一个顶层输入端口的数据。Dataset
对象可以包含产生标量、向量和多维信号的顶层端口的数据,以及总线和总线数组的数据。要创建包含每个顶层输入端口元素的
Dataset
对象,请使用createInputDataset
函数。数据集是大多数记录类型(包括输出、状态和信号记录)的默认格式。
DatasetRef
对象引用保存在 MAT 文件中的Dataset
对象。DatasetRef
对象引用的Dataset
对象的每个元素都包含一个顶层输入端口的数据。仿真以增量方式加载
DatasetRef
对象引用的数据,而不是在仿真开始时将所有数据加载到内存中。当您需要加载大量数据时,请考虑使用DatasetRef
对象。有关详细信息,请参阅:结构体
包含以下字段的结构体:
signals
- 结构体数组,其中每个结构体都包含一个顶层输入端口的数据time
- 与所有顶层输入端口的信号值对应的时间值的可选数组
此格式不支持总线或总线数组的输入数据。
当您仅加载离散输入信号的数据时,请考虑省略
time
字段。有关详细信息,请参阅Control How Models Load Input Data。要创建等间距时间向量,请创建一个包含所需时间步数的整数向量,然后按采样时间缩放向量中的值。
time = sampleTime*(0:numSteps);
使用其他选项(如
linspace
)时,浮点精度舍入可能会导致数据出现差异。
数组
数组中的第一列包含必须呈现单调递增的时间值。随后的列按端口号的顺序包含每个对应的顶层输入端口的数据。
数组格式仅支持加载实数标量信号和实宽或向量信号。
数组中的值必须具有
double
数据类型。当您的模型有顶层 Trigger 模块时,请在最后一列中指定触发信号的数据。
除了选择将要加载的数据指定为单个变量还是以逗号分隔的列表,您还必须选择如何表示每个端口的输入数据。支持的格式取决于您如何指定输入参数的值以及端口产生的输出类型。下表总结了可用于根据端口在模型中产生的输出类型指定顶层输入端口数据的格式。
输出的类型 支持的输入数据格式 支持的输入参数值 提示和注意事项 标量或向量信号
只包含单列的
timetable
timeseries
对象具有与结构体或带时间的结构体记录格式匹配的字段和层次结构的结构体
二维数组,其中第一列是时间,一个或多个其他列包含每个时间戳对应的信号值
Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象结构体
数组
逗号分隔的列表
对于标量和向量信号,信号数据中的行数必须与时间向量中的行数匹配。
要创建一个
timetable
对象,时间值必须为duration
向量。仿真时间始终使用秒为单位。当创建使用秒以外的单位的持续时间向量时,软件会将值转换为秒以便在仿真中使用。
数组格式不支持复信号值或数据类型不是
double
的信号值。
多维信号
timeseries
对象只包含单列的
timetable
Simulink.SimulationData.Signal
对象matlab.io.datastore.SimulationDatastore
对象具有与结构体或带时间的结构体记录格式匹配的字段和层次结构的结构体
Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象结构体
逗号分隔的列表
对于具有二维或更多维的值的多维信号,最后一个维度的长度必须与时间向量的长度匹配。
例如,
2
×2
矩阵信号的 10 个采样的输入数据具有一个包含 10 行的时间向量和一个由维度为2
×2
×10
的信号值组成的数组。要创建一个
timetable
对象,时间值必须为duration
向量。仿真时间始终使用秒为单位。当创建使用秒以外的单位的持续时间向量时,软件会将值转换为秒以便在仿真中使用。
可变大小信号 具有与结构体或带时间的结构体记录格式匹配的字段和层次结构的结构体
Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象结构体
逗号分隔的列表
要以可使用 From Workspace 模块加载的格式记录可变大小信号,请将该信号连接到一个顶层 Outport 模块,并将模型的格式配置参数设置为结构体或带时间的结构体。
总线 timetable
、timeseries
或matlab.io.datastore.SimulationDatastore
对象的结构体:将输出数据类型参数指定为定义总线的
Simulink.Bus
对象。结构体的层次结构和字段名称必须与总线的层次结构和元素名称匹配。
每个
timetable
或timeseries
对象包含总线中一个叶信号的数据。每个
timetable
只能包含一列。
Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象逗号分隔的列表
要部分指定总线的输入数据,请在输入数据结构体中将不需要加载数据的总线元素设置为
[]
。总线数组 结构体数组,其中每个结构体表示总线数组内的一个总线的数据 Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象逗号分隔的列表
要部分指定总线数组的输入数据,请在表示该总线的数据的结构体中将不需要加载数据的总线元素设置为
[]
。函数调用信号 n
×1
列向量,指定每个函数调用事件的时间Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象结构体
逗号分隔的列表
要配置顶层 Inport 模块以产生函数调用信号,请为该模块选中输出函数调用参数。
Ground []
Simulink.SimulationData.Dataset
对象Simulink.SimulationData.DatasetRef
对象结构体
逗号分隔的列表
当您不想为输入端口加载外部输入数据时,请将该端口的数据指定为
[]
。仿真期间,输入端口会在模型中产生接地值。
提示
在具有几个顶层 Inport 或 In Bus Element 模块的模型中,您可以使用根输入端口映射器来帮助将输入数据映射到顶层输入端口。要打开根输入端口映射器,请点击连接输入。
您不能使用数据字典来存储顶层输入端口的外部输入数据。在解析您为输入数据指定的值时,输入参数不包括数据字典。当模型使用数据字典并且您禁用对基础工作区的访问时,输入参数仍可访问基础工作区中的仿真输入数据。有关软件如何解析符号的详细信息,请参阅符号解析。
顶层模型中的 Inport 模块根据模块参数值内插和外插输入数据值。
顶层模型中的 In Bus Element 模块始终对输入数据值进行线性内插和外插。
推荐的设置
此表根据与代码生成相关的注意事项总结此参数的建议值。
应用场景 | 设置 |
---|---|
调试 | 无影响 |
可追溯性 | 无影响 |
效率 | 无建议 |
安全预警 | 无建议 |
编程用法
参数:LoadExternalInput |
值:'on' | 'off' |
默认值:'off' |
参数:ExternalInput |
类型:字符串 | 字符向量 |
值:Simulink.SimulationData.Dataset 对象 | Simulink.SimulationData.DatasetRef 对象 | 结构体 | 数组 | 时间表达式 | 以逗号分隔的列表,其中每项都包含一个顶层输入端口的数据 |
默认值:'[t,u]' |
版本历史记录
在 R2006a 之前推出