Загрузите Большие данные для симуляций

Имитационные модели со многими временными шагами и сигналами могут использовать и создать данные, которые являются слишком большими, чтобы поместиться в оперативную память на вашем компьютере. Когда ваши входные данные симуляции не помещаются в память, можно выбрать одну из нескольких стратегий использовать те данные в качестве входа симуляции с корневым уровнем блоки Inport. Эти стратегии работают на загрузку данных, хранимых в Dataset формат в MAT-файле Версии 7.3, включая данные регистрируется от другой симуляции.

  1. Когда отдельные входные сигналы являются слишком большими, чтобы поместиться в память, можно использовать matlab.io.datastore.SimulationDatastore возразите, чтобы получить доступ к данным сигнала. Данные из SimulationDatastore возразите загрузкам в симуляцию инкрементно во фрагментах, которые помещаются в память.

  2. Когда ваши входные параметры симуляции заданы Simulink.SimulationData.Dataset объект в файле, который является слишком большим, чтобы загрузить в память, можно передать целое содержимое потоком Dataset возразите в свою модель с помощью Simulink.SimulationData.DatasetRef объект.

  3. Когда сигналы помещаются в память и хранятся в файле, который является слишком большим, чтобы загрузить в память, можно загрузить отдельные сигналы из файла в память с помощью 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 список, разделенный запятыми параметра.

Смотрите также

| |

Похожие темы