generateSimulationEnsemble

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

Описание

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

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

пример

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

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

Примеры

свернуть все

Сгенерируйте simulation ensemble 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-Apr-2021 20:12:51] Running simulations...
[22-Apr-2021 20:13:12] Completed 1 of 5 simulation runs
[22-Apr-2021 20:13:29] Completed 2 of 5 simulation runs
[22-Apr-2021 20:13:52] Completed 3 of 5 simulation runs
[22-Apr-2021 20:14:24] Completed 4 of 5 simulation runs
[22-Apr-2021 20:14:41] Completed 5 of 5 simulation runs

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

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

  • logsout - A Dataset объект, содержащий все данные, для регистрации которых сконфигурирована модель Simulink.

  • PMSignalLogName - имя переменной, содержащей записанные в записанные данные ('logsout' в этом примере). The 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-файлу на симуляцию. Каждый файл включает следующие переменные:

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

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

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

  • PMSignalLogName - имя переменной, содержащей записанные в записанные данные ('logsout' по умолчанию). The 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