generateSimulationEnsemble

Сгенерируйте данные ансамбля путем выполнения модели Simulink

Описание

[status,E] = generateSimulationEnsemble(simin) генерирует данные для ансамбля симуляции путем выполнения модели Simulink®, заданной simin. Этот входной параметр является вектором из Simulink.SimulationInput объекты, который также задает другие параметры, чтобы измениться от симуляции до симуляции, чтобы сгенерировать ансамбль. Функция пишет файлы журнала данных моделирования в текущую папку. Каждый файл содержит соответствующий Simulink.SimulationInput возразите и все переменные, которые модель сконфигурирована, чтобы регистрировать для симуляции. Выходные аргументы указывают, генерируют ли какие-либо симуляции ошибки и возвращают какие-либо такие ошибки. Используйте simulationEnsembleDatastore создать datastore ансамбля для взаимодействия с симулированными данными.

Для получения общей информации об ансамблях данных, смотрите Ансамбли Данных для Мониторинга состояния и Прогнозирующего Обслуживания.

пример

[status,E] = generateSimulationEnsemble(simin,location) также задает путь к местоположению, в котором можно сохранить результаты симуляции.

[status,E] = generateSimulationEnsemble(simin,location,Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

Сгенерируйте datastore ансамбля симуляции данных, представляющих машину, действующую при условиях отказа путем симуляции модели Simulink® машины при варьировании параметра отказа.

Загрузите модель Simulink. Эта модель является упрощенной версией модели коробки передач, описанной в Использовании Simulink, чтобы Сгенерировать Данные об Отказе. В данном примере только один режим отказа моделируется, отказ зуба механизма.

mdl = 'TransmissionCasingSimplified';
open_system(mdl)

Отказ зуба механизма моделируется как воздействие в Gear Tooth fault подсистема. Величиной воздействия управляет переменная ToothFaultGain модели, где ToothFaultGain = 0 не соответствует никакому отказу зуба механизма (здоровая операция). Чтобы сгенерировать ансамбль данных об отказе, вы используете generateSimulationEnsemble симулировать модель в различных значениях ToothFaultGain, в пределах от-2, чтобы обнулить. Эта функция использует массив Simulink.SimulationInput объекты сконфигурировать модель Simulink для каждого члена в ансамбле. Каждая симуляция генерирует отдельный член ансамбля в его собственном файле данных. Создайте такой массив и используйте setVariable чтобы присвоить зубной отказ получают значение для каждого запуска.

toothFaultValues  = -2:0.5:0; % 5 ToothFaultGain values 

for ct = numel(toothFaultValues):-1:1
    simin(ct) = Simulink.SimulationInput(mdl);
    simin(ct) = setVariable(simin(ct),'ToothFaultGain',toothFaultValues(ct));
end

В данном примере модель уже сконфигурирована, чтобы регистрировать определенные значения сигналов, Vibration и Tacho (см., что данные сигнала экспорта Используют сигнал, регистрирующий (Simulink)). generateSimulationEnsemble далее конфигурирует модель к:

  • Сохраните записанные данные в файлы в папке, которую вы задаете.

  • Используйте timetable формат для логгирования сигнала.

  • Сохраните каждый Simulink.SimulationInput объект в сохраненном файле с соответствующими записанными данными.

Задайте местоположение для сгенерированных данных. В данном примере сохраните данные к папке под названием Data в вашей текущей папке. Индикатор status 1 (TRUE) если все симуляции завершаются без ошибки.

mkdir Data
location = fullfile(pwd,'Data');
[status,E] = generateSimulationEnsemble(simin,location);
[18-Aug-2020 02:51:41] Running simulations...
[18-Aug-2020 02:51:51] Completed 1 of 5 simulation runs
[18-Aug-2020 02:52:00] Completed 2 of 5 simulation runs
[18-Aug-2020 02:52:11] Completed 3 of 5 simulation runs
[18-Aug-2020 02:52:20] Completed 4 of 5 simulation runs
[18-Aug-2020 02:52:28] Completed 5 of 5 simulation runs

В Data папка, исследуйте один из файлов. Каждым файлом является MAT-файл, содержащий следующие переменные MATLAB®:

  • SimulationInputSimulink.SimulationInput объект, который использовался, чтобы сконфигурировать модель для генерации данных в файле. Можно использовать это, чтобы извлечь информацию об условиях (такой как дефектный или здоровый), под которым была запущена эта симуляция.

  • logsoutDataset объект, содержащий все данные, которые модель Simulink сконфигурирована, чтобы регистрировать.

  • PMSignalLogName — Имя переменной, которая содержит записанные данные ('logsout' в этом примере). simulationEnsembleDatastore команда использует это имя, чтобы проанализировать данные в файле.

  • SimulationMetadata — Другая информация о симуляции, которая сгенерировала данные, вошла в систему файл.

Теперь можно создать datastore ансамбля симуляции с помощью сгенерированных данных. Получившийся simulationEnsembleDatastore возразите указывает на сгенерированные данные. Списки объектов переменные данных в ансамбле, и по умолчанию все переменные выбраны для чтения. Исследуйте DataVariables и SelectedVariables свойства ансамбля подтвердить эти обозначения.

ensemble = simulationEnsembleDatastore(location)
ensemble = 
  simulationEnsembleDatastore with properties:

           DataVariables: [4x1 string]
    IndependentVariables: [0x0 string]
      ConditionVariables: [0x0 string]
       SelectedVariables: [4x1 string]
                ReadSize: 1
              NumMembers: 5
          LastMemberRead: [0x0 string]
                   Files: [5x1 string]

ensemble.DataVariables
ans = 4x1 string
    "SimulationInput"
    "SimulationMetadata"
    "Tacho"
    "Vibration"

ensemble.SelectedVariables
ans = 4x1 string
    "SimulationInput"
    "SimulationMetadata"
    "Tacho"
    "Vibration"

Можно теперь использовать ensemble считать и анализировать сгенерированные данные в datastore ансамбля. Смотрите simulationEnsembleDatastore для получения дополнительной информации.

Входные параметры

свернуть все

Настройки симуляции в виде вектора из Simulink.SimulationInput (Simulink) объекты. Настройки симуляции задают параметры для каждого сгенерированного члена ансамбля, такие как:

  • Модель Simulink, чтобы запуститься

  • Значения переменных модели

  • Параметры блоков

  • Начальное состояние модели

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

Путь к папке, в котором можно сохранить данные моделирования в виде строки или вектора символов. Если вы не обеспечиваете location, функция использует текущую папку (путь, возвращенный pwd).

В заданной папке функция пишет один MAT-файл на симуляцию. Каждый файл включает следующие переменные:

  • SimulationInputSimulink.SimulationInput объект, который использовался, чтобы сконфигурировать модель для генерации данных в этом файле. Можно использовать этот объект извлечь информацию об условиях (такой как дефектный или здоровый), под которым была запущена эта симуляция.

  • SimulationMetadata — Другая информация о симуляции, которая сгенерировала записанные данные в файле.

  • Dataset объект, содержащий все данные состояния и сигнала, которые модель Simulink сконфигурирована, чтобы регистрировать. По умолчанию эта переменная называется logsout, но имя конфигурируемо в модели.

  • PMSignalLogName — Имя переменной, которая содержит записанные данные ('logsout' по умолчанию). simulationEnsembleDatastore команда использует это имя, чтобы проанализировать данные в файле.

Для получения дополнительной информации о регистрации данных, смотрите, что Данные сигнала Экспорта Используют Сигнал, Регистрирующий (Simulink).

Пример: pwd + "\simResults"

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'UseParallel',true

Запустить ли параллельные симуляции в виде разделенной запятой пары, состоящей из 'UseParallel' и:

  • false — Не запускайте параллельные симуляции.

  • true — Используйте параллельный пул, чтобы запуститься, несколько параллельных симуляций (требует Parallel Computing Toolbox™).

Отобразиться ли, симуляция прогрессируют в командном окне MATLAB® в виде разделенной запятой пары, состоящей из 'ShowProgress' и:

  • true — Отобразите линию прогресса симуляции каждый раз, когда отдельная запущенная симуляция завершается.

  • false — Не отображайте прогресс симуляции.

Выходные аргументы

свернуть все

Ошибочное состояние симуляции, возвращенное как логическое значение:

  • 1 (TRUE), если все симуляции выполнение до завершения без ошибки

  • 0 (FALSE) в противном случае

Ошибки симуляции, возвращенные как массив структур с полями:

  • 'SimulationInput'Simulink.SimulationInput поскольку симуляция запускается, который сгенерировал ошибку

  • 'ErrorDiagnostic' — Строка, содержащая ошибка

Расширенные возможности

Введенный в R2018a