Имитационные модели со многими временными шагами и сигналами могут использовать и создать данные, которые являются слишком большими, чтобы поместиться в оперативную память на вашем компьютере. Когда ваши входные данные симуляции не помещаются в память, можно выбрать одну из нескольких стратегий использовать те данные в качестве входа симуляции с корневым уровнем блоки Inport. Эти стратегии работают на загрузку данных, хранимых в Dataset
формат в MAT-файле Версии 7.3, включая данные регистрируется от другой симуляции.
Когда отдельные входные сигналы являются слишком большими, чтобы поместиться в память, можно использовать matlab.io.datastore.SimulationDatastore
возразите, чтобы получить доступ к данным сигнала. Данные из SimulationDatastore
возразите загрузкам в симуляцию инкрементно во фрагментах, которые помещаются в память.
Когда ваши входные параметры симуляции заданы Simulink.SimulationData.Dataset
объект в файле, который является слишком большим, чтобы загрузить в память, можно передать целое содержимое потоком Dataset
возразите в свою модель с помощью Simulink.SimulationData.DatasetRef
объект.
Когда сигналы помещаются в память и хранятся в файле, который является слишком большим, чтобы загрузить в память, можно загрузить отдельные сигналы из файла в память с помощью Simulink.SimulationData.DatasetRef
объект.
Все большие стратегии загрузки данных для особого случая, когда ваши данные не помещаются в память и могут потребовать дополнительных шагов. Эти примеры используют данные, которые соответствуют полностью памяти, чтобы проиллюстрировать шаги, требуемые для большой загрузки данных. Когда ваши входные параметры симуляции помещаются в память, рассматривают использование других методов загрузки.
SimulationDatastore
ОбъектыКогда отдельные сигналы в ваших входных данных являются слишком большими, чтобы поместиться в память, можно создать matlab.io.datastore.SimulationDatastore
объекты для тех сигналов и потока их в вашу модель. Создать SimulationDatastore
объект для сигнала вы хотите передать потоком в свою модель, сначала создать Simulink.SimulationData.DatasetRef
возразите, чтобы сослаться на Dataset
объект, который содержит ваш сигнал интереса. Например, создайте DatasetRef
для записанных данных от симуляции slexAircraftExample
модель.
logsout_DSR = Simulink.SimulationData.DatasetRef('aircraftData.mat','logsout');
Можно создать SimulationDatastore
возразите для своего желаемого сигнала путем индексации в DatasetRef
объект с фигурными скобками или использованием getAsDatastore
метод для DatasetRef
объект. В обоих случаях, SimulationDatastore
объект существует в Values
свойство возвращенного Simulink.SimulationData.Signal
объект.
Когда вы знаете индекс сигнала в Dataset
объект, можно индексировать в DatasetRef
объект с фигурными скобками, чтобы создать SimulationDatastore
для вашего сигнала.
alphaRad_ds = logsout_DSR{4}
alphaRad_ds = Simulink.SimulationData.Signal Package: Simulink.SimulationData Properties: Name: 'alpha, rad' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 4 Values: [1x1 matlab.io.datastore.SimulationDatastore] Methods, Superclasses
Создать SimulationDatastore
объект для сигнала с помощью индекса сигнала, имени, или блока path, использует getAsDatastore
метод. Например, создайте SimulationDatastore
объект для Stick
сигнал.
stick_ds = logsout_DSR.getAsDatastore('Stick')
stick_ds = Simulink.SimulationData.Signal Package: Simulink.SimulationData Properties: Name: 'Stick' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 1 Values: [1x1 matlab.io.datastore.SimulationDatastore] Methods, Superclasses
Поскольку Values
свойства stick_ds
и alphaRad_ds
Simulink.SimulationData.Signal
объектами является SimulationDatastores
, потоки данных сигнала в вашу модель. Можно включать SimulationDatastore
поддержанный Signal
возразите как элемент в Dataset
возразите или как элемент в Input
список, разделенный запятыми параметра.
Dataset
Используя DatasetRef
ОбъектКогда ваши входные параметры симуляции заданы в Dataset
в файле, который является слишком большим, чтобы загрузить в память, можно создать Simulink.SimulationData.DatasetRef
возразите, чтобы передать ваши входные параметры симуляции потоком в вашу модель. Когда вы задаете DatasetRef
объект для Входного параметра на панели Импорта/Экспорта Данных, всех сигналах в Dataset
объект раньше создавал DatasetRef
поток в вашу модель. Используйте один из других больших методов загрузки данных, чтобы загрузить или передать отдельные сигналы потоком от Dataset
объект.
Когда файл, где ваш вход Dataset
симуляции хранится содержит другой
Datasets
и данные, можно использовать Simulink.SimulationData.DatasetRef.getDatasetVariableNames
функционируйте, чтобы просмотреть список Dataset
объекты содержатся в файле. Предварительный просмотр имен переменных в Dataset
объект особенно полезен, когда содержимое файла не помещается в память.
datasetNames = Simulink.SimulationData.DatasetRef.getDatasetVariableNames('aircraftData.mat')
datasetNames = 1x3 cell array
{'logsout'} {'xout'} {'yout'}
Создайте DatasetRef
объект для logsout
.
logsout_DSR = Simulink.SimulationData.DatasetRef('aircraftData.mat','logsout');
Можно загрузить logsout_DSR
использование Input
параметр тем же путем вы загрузили бы Simulink.SimulationData.Dataset
объект. Каждый сигнал в Dataset
объект раньше создавал DatasetRef
потоки в модель во фрагментах, которые помещаются в память.
DatasetRef
ОбъектКогда ваши входные сигналы симуляции индивидуально помещаются в память и хранятся в Dataset
объект в файле, который не помещается в память, используйте Simulink.SimulationData.DatasetRef
возразите, чтобы загрузить каждый сигнал интереса в память. Затем можно загрузить сигналы, когда симуляция вводит для модели.
Во-первых, создайте DatasetRef
возразите, чтобы сослаться на Dataset
объект в файле, который содержит сигналы, которые вы хотите загрузить. Например, создайте DatasetRef
объект для данных, регистрируемых к файлу от симуляции slexAircraftExample
модель.
logsout_DSR = Simulink.SimulationData.DatasetRef('aircraftData.mat','logsout');
Можно использовать get
или getElement
методы, чтобы загрузить отдельные сигналы в память с DatasetRef
объект. Оба метода загружают указанный элемент в память, с помощью того же синтаксиса. Можно задать сигнал, который вы хотите загрузить в память с помощью ее индекса в Dataset
возразите или его имя. Если вы не знаете имя сигнала, вы хотите загрузить, использовать getElementNames
метод, чтобы видеть имена элементов в Dataset
на объект ссылается DatasetRef
объект.
elNames = logsout_DSR.getElementNames
elNames = 15x1 cell array
{0x0 char }
{0x0 char }
{0x0 char }
{'alpha, rad'}
{'q, rad/sec'}
{0x0 char }
{'qGust' }
{'wGust' }
{0x0 char }
{0x0 char }
{0x0 char }
{'Stick' }
{0x0 char }
{0x0 char }
{0x0 char }
Загрузите qGust
сигнал в память с помощью ее имени.
qGust = logsout_DSR.getElement('qGust')
qGust = Simulink.SimulationData.Signal Package: Simulink.SimulationData Properties: Name: 'qGust' PropagatedName: '' BlockPath: [1x1 Simulink.SimulationData.BlockPath] PortType: 'outport' PortIndex: 2 Values: [1x1 timeseries] Methods, Superclasses
Можно добавить qGust
предупредите к Dataset
объект входных сигналов симуляции загрузить к корневому уровню, который Inport блокирует в вашей модели, или можно задать qGust
как элемент в Input
список, разделенный запятыми параметра.
Simulink.SimulationData.Dataset
| Simulink.SimulationData.DatasetRef
| matlab.io.datastore.SimulationDatastore