generateSimulationEnsemble

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

Синтаксис

[status,E] = generateSimulationEnsemble(simin)
[status,E] = generateSimulationEnsemble(simin,location)
[status,E] = generateSimulationEnsemble(simin,location,Name,Value)

Описание

[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);
[22-Feb-2019 01:55:22] Running simulations...
[22-Feb-2019 01:55:29] Completed 1 of 5 simulation runs
[22-Feb-2019 01:55:35] Completed 2 of 5 simulation runs
[22-Feb-2019 01:55:41] Completed 3 of 5 simulation runs
[22-Feb-2019 01:55:48] Completed 4 of 5 simulation runs
[22-Feb-2019 01:55:54] Completed 5 of 5 simulation runs

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

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

  • Объект logsout — A Dataset, содержащий все данные, которые модель 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 array
    "SimulationInput"
    "SimulationMetadata"
    "Tacho"
    "Vibration"

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

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

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

свернуть все

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

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

  • Значения образцовых переменных

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

  • Образцовое начальное состояние

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

Введенный в R2018a