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);
[25-Aug-2021 18:38:13] Running simulations...
[25-Aug-2021 18:38:26] Completed 1 of 5 simulation runs
[25-Aug-2021 18:38:37] Completed 2 of 5 simulation runs
[25-Aug-2021 18:38:47] Completed 3 of 5 simulation runs
[25-Aug-2021 18:38:59] Completed 4 of 5 simulation runs
[25-Aug-2021 18:39:09] 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 имя аргумента и 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