Simulink.sdi.getAllRunIDs

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

Синтаксис

runIDs = Simulink.sdi.getAllRunIDs

Описание

пример

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

Примеры

свернуть все

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

Моделируйте модель, чтобы создать выполнение

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

% Load and simulate system
load_system('sldemo_fuelsys')
sim('sldemo_fuelsys')

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

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

% Get runID for most recent run
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);

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

Настройка

Загрузите модель и отметьте q, rad/sec и сигналы alpha, rad для журналирования. Затем моделируйте модель, чтобы создать базовое выполнение.

% Load example model
load_system('slexAircraftExample')

% Mark the q, rad/sec and alpha, rad signals for logging
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

% Simulate system
sim('slexAircraftExample')

Измените параметр модели

Измените параметр модели Ts в рабочем пространстве модели, чтобы изменить временную константу входного фильтра нижних частот.

% Change input filter time constant
modelWorkspace = get_param('slexAircraftExample','modelworkspace');
modelWorkspace.assignin('Ts',1)

% Simulate again
sim('slexAircraftExample')

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

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

% Get run data
runIDs = Simulink.sdi.getAllRunIDs;
runID1 = runIDs(end - 1);
runID2 = runIDs(end);

% Compare runs
diffRun1 = Simulink.sdi.compareRuns(runID1,runID2);

% Get signal result
sig1Result1 = diffRun1.getResultByIndex(1);
sig2Result1 = diffRun1.getResultByIndex(2);

% Check whether signals matched
sig1Result1.Match
ans = logical
   0

sig2Result1.Match
ans = logical
   0

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

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

% Get signal object for sigID1
run1 = Simulink.sdi.getRun(runID1);
sigID1 = run1.getSignalIDByIndex(1);
sigID2 = run1.getSignalIDByIndex(2);

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

% Set tolerances for q, rad/sec
sig1.AbsTol = 0.1;
sig1.TimeTol = 0.6;

% Set tolerances for alpha, rad
sig2.AbsTol = 0.2;
sig2.TimeTol = 0.8;

% Run the comparison again
diffRun2 = Simulink.sdi.compareRuns(runID1,runID2);
sig1Result2 = diffRun2.getResultByIndex(1);
sig2Result2 = diffRun2.getResultByIndex(2);

% Check the result
sig1Result2.Match
ans = logical
   1

sig2Result2.Match
ans = logical
   1

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

свернуть все

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

Введенный в R2017a