Simulink.sdi.getAllRunIDs

Получите все Моделирование идентификаторы выполнения Data Inspector

Синтаксис

runIDs = Simulink.sdi.getAllRunIDs

Описание

пример

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

Примеры

свернуть все

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

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

Образцовый sldemo_fuelsys уже сконфигурирован для журналирования. Когда вы моделируете модель, Моделирование Data Inspector автоматически создает выполнение и присваивает его ID выполнения.

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

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

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

% 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 в качестве переменной подсчета, чтобы индексировать посредством выполнений в Моделировании репозиторий Data Inspector.

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

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

Настройка

Загрузите модель и отметьте 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

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

свернуть все

Матрица запущенных идентификаторов в Моделировании репозиторий Data Inspector.

Введенный в R2017a

Была ли эта тема полезной?