Получите все Моделирование идентификаторы выполнения Data Inspector
runIDs = Simulink.sdi.getAllRunIDs
возвращает матрицу идентификаторов выполнения для всех выполнений в Моделировании репозиторий Data Inspector.runIDs = Simulink.sdi.getAllRunIDs
Много рабочих процессов, которые используют Моделирование 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
runIDs
— Матрица Моделирования Data Inspector запускает идентификаторыМатрица запущенных идентификаторов в Моделировании репозиторий Data Inspector.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.