Получите всего Инспектора Данных моделирования идентификаторы выполнения
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
runIDs
— Матрица Инспектора Данных моделирования запускает идентификаторыМатрица запущенных идентификаторов в Инспекторе Данных моделирования репозиторий.
Simulink.sdi.Run
| Simulink.sdi.compareRuns
| Simulink.sdi.copyRun
| Simulink.sdi.copyRunViewSettings
| Simulink.sdi.deleteRun
| Simulink.sdi.exportRun
| Simulink.sdi.getRun
| Simulink.sdi.getRunCount
| Simulink.sdi.isValidRunID
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.