模拟模型与许多时间步骤和信号可以使用和创建是太大,无法进入你的电脑上工作存储器中的数据。当你的模拟输入数据不适合到内存中,您可以选择以下策略之一使用该数据为模拟输入具有root级别运行轨迹块。这些策略存储在加载数据的工作数据集
在7.3版MAT文件格式,包括数据从另一个模拟记录。
当单独的输入信号过大,以适应到内存中,你可以使用matlab.io.datastore.SimulationDatastore
对象来访问的信号数据。从数据SimulationDatastore
对象加载到仿真增量中装入内存块。
当你的模拟输入由指定万博1manbetxSimulink.SimulationData.Dataset
在一个文件对象是太大,加载到内存中,您可以流的全部内容数据集
对象为使用模型万博1manbetxSimulink.SimulationData.DatasetRef
宾语。
当信号加载到内存中,并存储在一个文件,该文件是太大,加载到内存中,您可以使用加载从文件中的各个信号转换成记忆万博1manbetxSimulink.SimulationData.DatasetRef
宾语。
当你想使用一个模拟数据记录作为另一个输入,也可以流数据到模型中使用matlab.io.datastore.sdidatastore
宾语。该sdidatastore
在磁盘上的模拟数据查验库对象引用的数据,所以你不必保存记录的数据到一个文件中。考虑使用sdidatastore
对象作为迭代工作流程模拟输入。
所有的大数据加载策略是,当你的数据不适合到内存中,并可能需要额外的步骤的特殊情况。这些示例使用的数据适合完全到内存中,说明大数据加载所需的步骤。当你的模拟输入装入内存,考虑使用其他加载技术。
SimulationDatastore
对象当您输入个人数据的信号过于大,不适合到内存中,您可以创建matlab.io.datastore.SimulationDatastore
对象为那些信号,并将其流进你的模型。要创建SimulationDatastore
对象要传输到模型的信号,首先创建一个万博1manbetxSimulink.SimulationData.DatasetRef
对象引用数据集
对象包含您感兴趣的信号。例如,创建一个DatasetRef
从的一个模拟记录的数据slexAircraftExample
模型。
logsout_DSR = 万博1manbetxSimulink.SimulationData.DatasetRef('aircraftData.mat','logsout');
您可以创建一个SimulationDatastore
通过索引进入对象为您期望的信号DatasetRef
用大括号或使用对象getAsDatastore
该方法DatasetRef
宾语。在这两种情况下,SimulationDatastore
对象的存在值
返回的财产万博1manbetxSimulink.SimulationData.Signal
宾语。
当你知道的信号中的索引数据集
对象,你可以索引到DatasetRef
用大括号对象来创建SimulationDatastore
为你的信号。
alphaRad_ds = logsout_DSR {4}
alphaRad_ds = 万博1manbetxSimulink.SimulationData.Signal封装:Simulink.SimulationData属性:名称: 'α,弧度' PropagatedName: '' BlockPath:[1x1的Simulink.SimulationData.BlockPath]端口类型: '外港' PortIndex:4倍的值:[1x1的matlab.io.datastore.SimulationDatastore多种方法,超类
要创建SimulationDatastore
对象为使用信号索引,名称或块路径的信号,使用getAsDatastore
方法。例如,创建一个SimulationDatastore
对象为棒
信号。
stick_ds = logsout_DSR.getAsDatastore('棒')
stick_ds = 万博1manbetxSimulink.SimulationData.Signal封装:Simulink.SimulationData属性:名称: '棒' PropagatedName: '' BlockPath:[1x1的Simulink.SimulationData.BlockPath]端口类型: '外港' PortIndex:1倍的值:[1x1的matlab.io.datastore.SimulationDatastore多种方法,超类
由于值
的性质stick_ds
和alphaRad_ds
万博1manbetxSimulink.SimulationData.Signal
对象SimulationDatastores
,信号数据流进入你的模型。您可以包括一个SimulationDatastore
支持信号
对象作为在一个元件数据集
对象或作为一个项目输入
参数逗号分隔的列表。
数据集
用一个DatasetRef
宾语当你的模拟输入在指定数据集
在文件太大加载到内存,您可以创建一个万博1manbetxSimulink.SimulationData.DatasetRef
对象流你的模拟输入到模型中。当您指定DatasetRef
对象用于在数据导入/导出窗格中的输入参数时,所有的信号中的数据集
对象用于创建DatasetRef
流进你的模型。使用的其他大数据加载技术到负载的一个或流从一个单独的信号数据集
宾语。
当文件在您的模拟输入数据集
存储包含其他数据集
和数据,可以使用万博1manbetxSimulink.SimulationData.DatasetRef.getDatasetVariableNames
功能查看的列表数据集
对象包含在文件中。预览中的变量名数据集
当该文件的内容不符合存储器目的是特别有用的。
datasetNames = 万博1manbetxSimulink.SimulationData.DatasetRef.getDatasetVariableNames('aircraftData.mat')
datasetNames =1×3单元{ 'logsout'} { 'XOUT'} { 'YOUT'}
创建一个DatasetRef
对象logsout
。
logsout_DSR = 万博1manbetxSimulink.SimulationData.DatasetRef('aircraftData.mat','logsout');
您可以加载logsout_DSR
使用输入
参数以同样的方式,你会加载万博1manbetxSimulink.SimulationData.Dataset
宾语。在每个信号数据集
对象用于创建DatasetRef
流进装入内存块的模型。
DatasetRef
宾语当你的模拟输入信号单独装入内存和存储在数据集
对象的文件不适合到内存中,使用万博1manbetxSimulink.SimulationData.DatasetRef
反对的每个感兴趣的信号加载到内存中。然后,你可以加载信号为模拟输入您的机型。
首先,创建DatasetRef
对象引用数据集
对象,它包含要加载的信号的文件中。例如,创建一个DatasetRef
对象数据记录到文件从的一个模拟slexAircraftExample
模型。
logsout_DSR = 万博1manbetxSimulink.SimulationData.DatasetRef('aircraftData.mat','logsout');
您可以使用得到
要么getElement
方法来单独信号加载到与所述存储器DatasetRef
宾语。这两种方法都将指定元素加载到内存中,使用相同的语法。您可以使用内它的索引指定要负载信号到内存数据集
对象或它的名字。如果你不知道你要加载的信号的名称,使用getElementNames
方法看到的元素的名称数据集
目的是通过引用DatasetRef
宾语。
elNames = logsout_DSR.getElementNames
elNames =15X1单元{为0x0炭} {为0x0炭} {为0x0炭} { 'α,弧度'} { 'Q,弧度/秒'} {为0x0炭} { 'qGust'} { 'wGust'} {为0x0炭} {为0x0炭}{为0x0炭} { '棒'} {为0x0炭} {为0x0炭} {为0x0炭}
加载qGust
使用其名称信号到存储器中。
qGust = logsout_DSR.getElement('qGust')
qGust = 万博1manbetxSimulink.SimulationData.Signal封装:Simulink.SimulationData属性:名称: 'qGust' PropagatedName: '' BlockPath:[1x1的Simulink.SimulationData.BlockPath]端口类型: '外港' PortIndex:2倍的值:[1x1的时间序列]的方法,超类
您可以添加qGust
信号到一个数据集
模拟输入信号的对象加载到根级别的运行轨迹块模型,也可以指定qGust
作为一个项目输入
参数逗号分隔的列表。
万博1manbetxSimulink.SimulationData.Dataset
|万博1manbetxSimulink.SimulationData.DatasetRef
|matlab.io.datastore.SimulationDatastore