带有许多时间步长和信号的模拟模型可以使用和创建数据,这些数据太大,无法放入计算机的工作内存中。当您的模拟输入数据不适合内存时,您可以选择几种策略中的一种来使用该数据作为根级模拟输入轮廓尺寸块。这些策略适用于加载存储的数据数据集
在7.3版本中的格式化,包括从另一个模拟中记录的数据。
当单个输入信号太大而无法装入内存时,您可以使用matlab.io.datastore.SimulationDatastore
对象来访问信号数据。来自SimulationDatastore
对象以适合内存的块的形式递增地加载到模拟中。
当您的模拟输入由金宝appSimulink.SimulationData.Dataset
对象中由于太大而无法加载到内存中的文件,则可以将数据集
对象添加到模型中金宝appsimulink.simulationdata.datasetref.
目的。
当信号适合内存并存储在一个文件中,该文件太大而无法加载到内存中时,您可以使用金宝appsimulink.simulationdata.datasetref.
目的。
笔记
当您想要使用一个模拟中记录的数据作为另一个模拟时,您还可以使用a将数据传输到模型中matlab.io.datastore.sdidatastore.
目的。这sdidatastore
对象引用磁盘上的Simulation data Inspector存储库中的数据,因此不必将记录的数据保存到文件中。考虑使用sdidatastore
对象作为迭代工作流的仿真输入。
所有大数据加载策略都是特例当您的数据不适合内存时,可能需要额外的步骤。这些示例使用完全符合内存的数据来说明大数据加载所需的步骤。当您的仿真输入适合内存时,请考虑使用其他加载技术。
SimulationDatastore
对象当输入数据中的单个信号太大而无法适合内存时,可以创建matlab.io.datastore.SimulationDatastore
对象,并将它们输入模型。创建一个SimulationDatastore
对象的一个信号,您想要流进您的模型,首先创建金宝appsimulink.simulationdata.datasetref.
对象引用数据集
包含您感兴趣的信号的对象。例如,创建一个DatasetRef
用于从模拟中的记录数据slexAircraftExample
模型。
logsout_DSR = 金宝appSimulink.SimulationData.DatasetRef ('aircortdata.mat'那'logsout');
你可以创建一个SimulationDatastore
通过索引到您所需信号的对象DatasetRef
对象或使用getasdatastore.
备DatasetRef
目的。在这两种情况下,SimulationDatastore
对象存在于价值
被遣返人的财产金宝appSimulink.SimulationData.Signal
目的。
当你知道信号的指数数据集
对象,您可以索引到DatasetRef
卷曲括号的对象创建一个SimulationDatastore
你的信号。
alphaRad_ds = logsout_DSR {4}
alphaRad_ds = 金宝appSimulink. simulationdata . signal Package: Simulink. .模拟Data Properties: Name: 'alpha, rad' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 4 Values: [1x1 matlab.io.datastore.SimulationDatastore] Methods, Superclasses
创建一个SimulationDatastore
对象的信号索引、名称或块路径,请使用getasdatastore.
方法。例如,创建一个SimulationDatastore
对象戳
信号。
stick_ds = logsout_dsr.getAsdataStore(“坚持”)
Simulink. s金宝appimulationdata . signal Package: Simulink。模拟Data Properties: Name: 'Stick' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 1 Values: [1x1 matlab.io.datastore.SimulationDatastore] Methods, Superclasses
因为这价值
属性stick_ds
和alpharad_ds.
金宝appSimulink.SimulationData.Signal
对象是仿真涂层
,信号数据流进入你的模型。你可以包括SimulationDatastore
支持信号
对象作为一个元素数据集
对象或作为项目输入
参数逗号分隔列表。
数据集
用一个DatasetRef
对象当您的模拟输入在数据集
在一个太大而无法加载到内存的文件中,您可以创建一个金宝appsimulink.simulationdata.datasetref.
对象将模拟输入流流入模型。指定一个DatasetRef
对象中输入参数的所有信号数据集
用于创建的对象DatasetRef
流入您的模型。使用其他大数据加载技术之一来加载或流中传输各个信号数据集
目的。
当文件输入的文件时数据集
存储包含其他数据集
和数据,你可以使用金宝appSimulink.SimulationData.DatasetRef.getDatasetVariableNames
函数查看列表数据集
文件中包含的对象。预览变量名称数据集
对象在文件内容无法装入内存时特别有用。
datasetnames = 金宝appsimulink.simulationdata.datasetref.getdatasetvariablenames('aircortdata.mat')
datasetnames =.1x3细胞{'logsout'} {'xout'} {'yout'}
创建一个DatasetRef
对象logsout
。
logsout_DSR = 金宝appSimulink.SimulationData.DatasetRef ('aircortdata.mat'那'logsout');
你可以加载logsout_dsr.
使用输入
参数同样地加载a金宝appSimulink.SimulationData.Dataset
目的。每个信号数据集
用于创建的对象DatasetRef
流以适合内存的块的形式进入模型。
DatasetRef
对象当你的模拟输入信号单独适合内存和存储在数据集
对象在不适合内存的文件中,使用a金宝appsimulink.simulationdata.datasetref.
对象将感兴趣的每个信号加载到内存中。然后,可以将信号加载为模型的模拟输入。
首先,创建一个DatasetRef
对象引用数据集
对象,该对象包含要加载的信号。例如,创建一个DatasetRef
对象的模拟中记录到文件的数据slexAircraftExample
模型。
logsout_DSR = 金宝appSimulink.SimulationData.DatasetRef ('aircortdata.mat'那'logsout');
你可以使用得到
或呕吐
方法将单个信号加载到内存中DatasetRef
目的。两种方法都使用相同的语法将指定的元素加载到内存中。您可以使用其索引指定要将其加载到内存中的信号数据集
对象或其名称。如果您不知道要加载的信号的名称,请使用getElementNames
方法查看元素的名称数据集
由此引用的对象DatasetRef
目的。
Elnames = logsout_dsr.getElementName.
elNames =15 x1细胞{0x0 char} {0x0 char} {'alpha,rad'} {'q,rad / sec'} {0x0 char} {'qgust'} {'wgust'} {'wgust'} {0x0 char} {0x0 char} {0x0 char}{0x0 char} {'stick'} {0x0 char} {0x0 char} {0x0 char}
加载qGust
使用其名称将信号变为内存。
qGust = logsout_DSR.getElement ('qgust')
qgust = 金宝appsimulink.simulationData.Signal包
你可以添加qGust
向A发出信号数据集
对象的仿真输入信号加载到模型中的根级导入块,也可以指定qGust
作为一个项目输入
参数逗号分隔列表。
matlab.io.datastore.SimulationDatastore
|金宝appSimulink.SimulationData.Dataset
|金宝appsimulink.simulationdata.datasetref.