Simulink.sdi.getAllRunIDs

Получите всего Инспектора Данных моделирования идентификаторы запуска

Описание

пример

runIDs = Simulink.sdi.getAllRunIDs возвращает матрицу идентификаторов запуска для всех запусков в Инспекторе Данных моделирования репозиторий.

Примеры

свернуть все

Много задач выполнили использование Инспектора Данных моделирования программируемый интерфейсный запуск с получением ID запуска для запущенной симуляции. Этот пример иллюстрирует несколько методов, чтобы получить ID запуска для запуска. Можно использовать ID запуска, чтобы получить доступ к Simulink.sdi.Run объект, который содержит данные о запуске и метаданные и выполняет сравнения запуска с помощью Simulink.sdi.compareRuns функция.

Создайте запуск

Модель sldemo_fuelsys уже сконфигурирован для логгирования. Когда вы симулируете модель, Инспектор Данных моделирования автоматически создает запуск и присваивает его ID запуска.

load_system('sldemo_fuelsys')
sim('sldemo_fuelsys')

Получите запущенный ID Используя Simulink.sdi.getAllRunIDs

Simulink.sdi.getAllRunIDs функция возвращает массив всех идентификаторов запуска для запусков в Инспекторе Данных моделирования репозиторий, в порядке, с последний раз созданным запуском в конце.

runIDs = Simulink.sdi.getAllRunIDs;
runID = runIDs(end);

Получите запущенный ID Используя Simulink.sdi.getRunIDByIndex

Можно также использовать Simulink.sdi.getRunCount и Simulink.sdi.getRunIDByIndex функции, чтобы получить ID запуска для запуска. Этот метод полезен, если вы также хотите использовать count как переменная подсчета, чтобы индексировать посредством запусков в Инспекторе Данных моделирования репозиторий.

count = Simulink.sdi.getRunCount;
runID = Simulink.sdi.getRunIDByIndex(count);

Получите запущенный ID от Simulink.sdi.Run Объект

Можно также получить ID запуска от Simulink.sdi.Run объект, который соответствует запуску. Этот пример использует Simulink.sdi.getCurrentSimulationRun функция, чтобы получить Run объект, который соответствует новой симуляции sldemo_fuelsys модель. Можно также использовать Simulink.sdi.Run.getLatest функционируйте, чтобы получить доступ к последний раз созданному Run объект.

fuelsysRun = Simulink.sdi.getCurrentSimulationRun('sldemo_fuelsys');
runID = fuelsysRun.ID;

Используя Инспектора Данных моделирования программируемый интерфейс, можно задать значения допуска сигнала, чтобы использовать в сравнениях. Этот пример использует slexAircraftExample модель и Инспектор Данных моделирования, чтобы оценить эффект изменения постоянной времени для фильтра lowpass после входа управления.

Сконфигурируйте модель

Загрузите модель и отметьте представляющие интерес сигналы для логгирования. Этот пример данные логов для q и alpha сигналы.

load_system('slexAircraftExample')

Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

Запустите симуляции

Запуститесь симуляции с различным lowpass фильтруют постоянные времени, чтобы сгенерировать результаты выдержать сравнение. slexAircraftExample модель хранит переменные, сопоставленные моделью в рабочем пространстве модели. Чтобы изменить значение постоянной времени, получите доступ к рабочему пространству модели и используйте assignin функция.

out1 = sim('slexAircraftExample');

modelWorkspace = get_param('slexAircraftExample','modelworkspace');
assignin(modelWorkspace,'Ts',1)

out2 = sim('slexAircraftExample');

Доступ и сравнивает результаты симуляции

Доступ к результатам симуляции с помощью Инспектора Данных моделирования программируемый интерфейс. Каждая симуляция создает запуск в Инспекторе Данных моделирования с уникальным ID запуска. Вы используете идентификаторы запуска, чтобы сравнить результаты симуляции.

runIDs = Simulink.sdi.getAllRunIDs;
runIDTs1 = runIDs(end-1);
runIDTs2 = runIDs(end);

Используйте Simulink.sdi.compareRuns функция, чтобы сравнить данные из симуляций. Затем смотрите Status свойство результата сигнала видеть, находились ли сигналы в пределах допуска по умолчанию 0.

diffRun1 = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);

sig1Result1 = getResultByIndex(diffRun1,1);
sig2Result1 = getResultByIndex(diffRun1,2);

sig1Result1.Status
ans = 
OutOfTolerance
sig2Result1.Status
ans = 
OutOfTolerance

Сравните запуски с допусками сигнала

По умолчанию сигналы используют 0 для всех значений допуска, таким образом, сравнение возвращает результаты из допуска, когда сигналы не идентичны. Чтобы далее анализировать эффект изменения постоянной времени, задайте значения допуска для сигналов. Можно задать допуски к программируемому сравнению с помощью свойств Simulink.sdi.Signal объекты в запусках вы выдерживаете сравнение. Сравнение использует допуски, заданные в базовом Signal объект. Этот пример задает комбинацию времени и абсолютных допусков.

Задавать допуски, первый доступ Simulink.sdi.Signal объекты, которые соответствуют каждому сигналу в запусках, которые вы хотите сравнить.

run1 = Simulink.sdi.getRun(runIDTs1);
sigID1 = getSignalIDByIndex(run1,1);
sigID2 = getSignalIDByIndex(run1,2);

sig1 = Simulink.sdi.getSignal(sigID1);
sig2 = Simulink.sdi.getSignal(sigID2);

Проверяйте Name свойство идентифицировать каждый Signal объект.

sig1.Name
ans = 
'q, rad/sec'
sig2.Name
ans = 
'alpha, rad'

Задайте абсолютный допуск 0.1 и допуск времени 0.6 для q сигнал с помощью AbsTol и TimeTol свойства q предупредите об объекте в базовом запуске.

sig1.AbsTol = 0.1;
sig1.TimeTol = 0.6;

Задайте абсолютный допуск 0.2 и допуск времени 0.8 для alpha сигнал с помощью AbsTol и TimeTol свойства alpha предупредите об объекте в базовом запуске.

sig2.AbsTol = 0.2;
sig2.TimeTol = 0.8;

Сравните запуски снова и получите доступ к результатам.

diffRun2 = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
sig1Result2 = getResultByIndex(diffRun2,1);
sig2Result2 = getResultByIndex(diffRun2,2);

Проверяйте Status свойство каждого сигнала определить, находились ли результаты сравнения в пределах заданных допусков.

sig1Result2.Status
ans = 
WithinTolerance
sig2Result2.Status
ans = 
WithinTolerance

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

свернуть все

Матрица запущенных идентификаторов в Инспекторе Данных моделирования репозиторий.

Введенный в R2017a