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 модель и Инспектор Данных моделирования, чтобы оценить эффект изменения постоянной времени для фильтра lowpass после входа управления.

Настройка

Загрузите модель и отметьте 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
out_1 = sim('slexAircraftExample');

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

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

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

% Simulate again
out_2 = 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 = getResultByIndex(diffRun1,1);
sig2Result1 = getResultByIndex(diffRun1,2);

% Check whether signals matched
sig1Result1.Status
ans = 
OutOfTolerance
sig2Result1.Status
ans = 
OutOfTolerance

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

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

% Get signal object for sigID1
run1 = Simulink.sdi.getRun(runID1);
sigID1 = getSignalIDByIndex(run1,1);
sigID2 = getSignalIDByIndex(run1,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 = getResultByIndex(diffRun2,1);
sig2Result2 = getResultByIndex(diffRun2,2);

% Check the result
sig1Result2.Status
ans = 
WithinTolerance
sig2Result2.Status
ans = 
WithinTolerance

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

свернуть все

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

Введенный в R2017a