Доступ к запущенным результатам сравнения
Simulink.sdi.DiffRunResult
объект обеспечивает доступ, чтобы запустить метаданные сравнения и результаты сравнения. Используйте getSignalByIndex
функционируйте, чтобы получить доступ к метаданным и результатам сравнения для каждого сигнала в сравнении запуска.
Simulink.sdi.DiffRunResult
объект создается, когда вы выполняете сравнение с помощью Инспектора Данных моделирования.
Когда вы сравните данные с помощью пользовательского интерфейса, используйте Simulink.sdi.getCurrentComparison
функционируйте, чтобы получить доступ к результатам в Simulink.sdi.DiffRunResult
объект.
Программируемые сравнения с помощью Simulink.sdi.compareRuns
функционируйте или compare
функциональный возврат DiffRunResult
объект.
MatlabVersion
— Версия программного обеспечения раньше создавала объектЭто свойство доступно только для чтения.
Версия MATLAB® раньше создавала DiffRunResult
объект, возвращенный как вектор символов.
RunID1
— Базовая линия запускает IDЭто свойство доступно только для чтения.
Запустите идентификатор для базового запуска сравнения, возвращенного как целое число.
RunID2
— ID для запущенного, чтобы выдержать сравнениеЭто свойство доступно только для чтения.
Запустите идентификатор запуска, чтобы выдержать сравнение, возвращенный как целое число.
Count
— Количество сигналов сравненоЭто свойство доступно только для чтения.
Количество сигналов, которые выровнялись между двумя запусками в сравнении, возвратилось как целое число. Для получения дополнительной информации о том, как сигналы выравниваются для сравнений, видят Выравнивание Сигнала.
DateCreated
— Дата создания объектаdatetime
Это свойство доступно только для чтения.
Дата и время Simulink.sdi.DiffRunResult
объект был создан, возвращенный как datetime
объект.
Типы данных: datetime
GlobalTolerance
— Глобальные значения допуска используются для сравненияЭто свойство доступно только для чтения.
Глобальные значения допуска используются для сравнения запуска, возвращенного как структура с полями:
AbsTol
— Глобальная абсолютная погрешность используется для сравнения запуска.
RelTol
— Глобальная относительная погрешность используется для сравнения запуска.
TimeTol
— Глобальный допуск времени используется для сравнения запуска.
Для получения дополнительной информации о том, как допуски используются и вычисляются для сравнений, см. Спецификацию Допуска.
Summary
— Сравнение заканчивается сводные данныеЭто свойство доступно только для чтения.
Сравнение заканчивается сводные данные, возвращенные как структура с полем для каждого Status
результат сравнения сигнала мог иметь. Значение каждого поля указывает на количество сигналов в сравнении запуска с соответствующим Status
.
WithinTolerance
— Сравнение сигнала, завершенное, и все сравненные точки данных, находилось в пределах заданного допуска.
OutOfTolerance
— Сравнение сигнала, завершенное, и некоторые сравненные точки данных, упало за пределами заданного допуска.
Unaligned
— Сигнал от базового запуска не выровнялся с сигналом в запуске, чтобы выдержать сравнение.
Empty
— Выровненный сигнал в базовом запуске или запуске, чтобы выдержать сравнение не содержит данных.
EmptySynced
— Синхронизируемый сигнал в базовом запуске или запуске, чтобы выдержать сравнение не содержит данных. Пустой синхронизируемый сигнал может означать, что сигналы не перекрываются или, если вы задали intersection
метод синхронизации, что они не включали ни один из тех же моментов времени,
Canceled
— Результат сигнала не вычислил, потому что пользователь отменил сравнение.
Pending
— Сравнение происходит, и расчет результата сигнала не запустился.
Processing
— Происходящий расчет результата сигнала.
UnitsMismatch
— Модули сигнала в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют.
DataTypeMismatch
— Типы данных сигнала в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют. Только результаты сравнений, сконфигурированных, чтобы проверять типы данных сигнала, могут иметь это состояние.
TimeMismatch
— Временные векторы сигнала в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют. Только результаты сравнений, сконфигурированных, чтобы проверять временные векторы сигнала, могут иметь это состояние.
StartStopMismatch
— Запуск сигнала и времена остановки в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют. Только результаты сравнений, сконфигурированных, чтобы проверять запуск сигнала и времена остановки, могут иметь это состояние.
Unsupported
— Инспектор Данных моделирования алгоритм сравнения не поддерживает этот тип сигнала. Например, сигналы с типами данных, которые теряют точность, когда преобразовано в double
не поддерживаются.
Для получения дополнительной информации о выравнивании, допуски и синхронизация, видят, Как Инспектор Данных моделирования Сравнивает Данные. Для получения дополнительной информации о том, как сконфигурировать сравнение, чтобы проверять дополнительные метаданные, смотрите Simulink.sdi.compareRuns
.
Options
— Настройка сравнения2
cellArrayЭто свойство доступно только для чтения.
Параметры конфигурации используются для сравнения, возвращенного как n-by-2
cellArray. Каждая строка в массиве ячеек соответствует опции, используемой сравнением. Каждое сравнение требует, чтобы выровнял модульное соответствие сигнала, таким образом, Options
свойство всегда включает строку, чтобы указать, что модули должны соответствовать. Другие возможные параметры конфигурации соответствуют этим парам "имя-значение" для Simulink.sdi.compareRuns
функция:
DataType
Time
StartStop
StopOnFirstMismatch
Status
— Состояние запущенного сравненияCompleted
| Canceled
| Stopped
Это свойство доступно только для чтения.
Состояние сравнения запуска, указывая, как законченное сравнение, возвратилось как одно из следующего:
Completed
— Сравнение закончило вычислять все результаты
Canceled
— Сравнение закончилось, потому что пользователь отменил операцию сравнения в пользовательском интерфейсе
Stopped
— Сравнение закончилось, потому что сравнение обнаружило несоответствие и было сконфигурировано, чтобы остановиться на первом несоответствии
StopReason
— Результат сигнала, который остановил сравнение запускаSimulink.sdi.DiffSignalResult
Это свойство доступно только для чтения.
Результат сигнала для сравнения сигнала, которое заставило сравнение запуска останавливаться, не сравнивая остающиеся сигналы, возвратился как Simulink.sdi.DiffSignalResult
объект. StopReason
свойство пусто, когда сравнение завершается, не обнаруживая несоответствие и когда сравнение не сконфигурировано, чтобы остановиться на первом несоответствии. Можно конфигурировать моделирование, чтобы остановиться на первом несоответствии с помощью Simulink.sdi.compareRuns
функционируйте и 'StopOnFirstMismatch'
пара "имя-значение".
getResultByIndex | Возвратите результат сравнения сигнала |
saveResult | Сохраните результаты сравнения в файл MLDATX |
Используя Инспектора Данных моделирования программируемый интерфейс, можно задать значения допуска сигнала, чтобы использовать в сравнениях. Этот пример использует slexAircraftExample
модель и Инспектор Данных моделирования, чтобы оценить эффект изменения постоянной времени для фильтра lowpass после входа управления.
Сконфигурируйте модель
Загрузите модель и отметьте представляющие интерес сигналы для логгирования. Этот пример данные логов для q
и alpha
сигналы.
load_system('slexAircraftExample') Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on') Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')
Запустите симуляции
Запуститесь симуляции с различным lowpass фильтруют постоянные времени, чтобы сгенерировать результаты выдержать сравнение. slexAircraftExample
модель хранит переменные, сопоставленные моделью в рабочем пространстве модели. Чтобы изменить значение постоянной времени, получите доступ к рабочему пространству модели и используйте assignin
функция.
out1 = sim('slexAircraftExample'); modelWorkspace = get_param('slexAircraftExample','modelworkspace'); assignin(modelWorkspace,'Ts',1) out2 = sim('slexAircraftExample');
Доступ и сравнивает результаты симуляции
Доступ к результатам симуляции с помощью Инспектора Данных моделирования программируемый интерфейс. Каждая симуляция создает запуск в Инспекторе Данных моделирования с уникальным ID запуска. Вы используете идентификаторы запуска, чтобы сравнить результаты симуляции.
runIDs = Simulink.sdi.getAllRunIDs; runIDTs1 = runIDs(end-1); runIDTs2 = runIDs(end);
Используйте Simulink.sdi.compareRuns
функция, чтобы сравнить данные из симуляций. Затем смотрите Status
свойство результата сигнала видеть, находились ли сигналы в пределах допуска по умолчанию 0.
diffRun1 = Simulink.sdi.compareRuns(runIDTs1,runIDTs2); sig1Result1 = getResultByIndex(diffRun1,1); sig2Result1 = getResultByIndex(diffRun1,2); sig1Result1.Status
ans = OutOfTolerance
sig2Result1.Status
ans = OutOfTolerance
Сравните запуски с допусками сигнала
По умолчанию сигналы используют 0
для всех значений допуска, таким образом, сравнение возвращает результаты из допуска, когда сигналы не идентичны. Чтобы далее анализировать эффект изменения постоянной времени, задайте значения допуска для сигналов. Можно задать допуски к программируемому сравнению с помощью свойств Simulink.sdi.Signal
объекты в запусках вы выдерживаете сравнение. Сравнение использует допуски, заданные для базового Signal
объект. Этот пример задает комбинацию времени и абсолютных погрешностей.
Задавать допуски, первый доступ Simulink.sdi.Signal
объекты, которые соответствуют каждому сигналу в запусках, которые вы хотите сравнить.
run1 = Simulink.sdi.getRun(runIDTs1); sigID1 = getSignalIDByIndex(run1,1); sigID2 = getSignalIDByIndex(run1,2); sig1 = Simulink.sdi.getSignal(sigID1); sig2 = Simulink.sdi.getSignal(sigID2);
Проверяйте Name
свойство идентифицировать каждый Signal
объект.
sig1.Name
ans = 'q, rad/sec'
sig2.Name
ans = 'alpha, rad'
Задайте абсолютную погрешность 0.1
и допуск времени 0.6
для q
сигнал с помощью AbsTol
и TimeTol
свойства q
предупредите об объекте в базовом запуске.
sig1.AbsTol = 0.1; sig1.TimeTol = 0.6;
Задайте абсолютную погрешность 0.2
и допуск времени 0.8
для alpha
сигнал с помощью AbsTol
и TimeTol
свойства alpha
предупредите об объекте в базовом запуске.
sig2.AbsTol = 0.2; sig2.TimeTol = 0.8;
Сравните запуски снова и получите доступ к результатам.
diffRun2 = Simulink.sdi.compareRuns(runIDTs1,runIDTs2); sig1Result2 = getResultByIndex(diffRun2,1); sig2Result2 = getResultByIndex(diffRun2,2);
Проверяйте Status
свойство каждого сигнала определить, находились ли результаты сравнения в пределах заданных допусков.
sig1Result2.Status
ans = WithinTolerance
sig2Result2.Status
ans = WithinTolerance
Можно использовать Simulink.sdi.compareRuns
функция, чтобы сравнить данные сигнала и метаданные, включая тип данных и запуститься и времена остановки. Одно сравнение может проверять на несоответствия в одной или нескольких частях метаданных. Когда вы проверяете на несоответствия в метаданных сигнала, Summary
свойство Simulink.sdi.DiffRunResult
объект может отличаться от основного сравнения потому что Status
свойство для Simulink.sdi.DiffSignalResult
объект может указать на несоответствие метаданных. Можно сконфигурировать сравнения с помощью Simulink.sdi.compareRuns
функция для импортированных данных и для данных регистрируется от симуляции.
Этот пример конфигурирует сравнение запусков, созданных из данных о рабочей области три способа показать как Summary
из DiffSignalResult
объект может предоставить определенную информацию о несоответствиях сигнала.
Создайте данные о рабочей области
Simulink.sdi.compareRuns
функция сравнивает данные временных рядов. Создайте данные для синусоиды, чтобы использовать в качестве базового сигнала, с помощью timeseries
формат. Дайте timeseries
имя Wave Data
.
time = 0:0.1:20;
sig1vals = sin(2*pi/5*time);
sig1_ts = timeseries(sig1vals,time);
sig1_ts.Name = 'Wave Data';
Создайте вторую синусоиду, чтобы выдержать сравнение с базовым сигналом. Используйте немного отличающийся временной вектор и ослабьте сигнал, таким образом, два сигнала не идентичны. Бросьте данные сигнала к single
тип данных. Также назовите этот timeseries
объект Wave Data
. Инспектор Данных моделирования алгоритм сравнения выровняет эти сигналы для сравнения с помощью имени.
time2 = 0:0.1:22;
sig2vals = single(0.98*sin(2*pi/5*time2));
sig2_ts = timeseries(sig2vals,time2);
sig2_ts.Name = 'Wave Data';
Создайте и сравните запуски в инспекторе данных моделирования
Simulink.sdi.compareRuns
функция сравнивает данные, содержавшиеся в Simulink.sdi.Run
объекты. Используйте Simulink.sdi.createRun
функция, чтобы создать запуски в Инспекторе Данных моделирования для данных. Simulink.sdi.createRun
функция возвращает ID запуска для каждого созданного запуска.
runID1 = Simulink.sdi.createRun('Baseline Run','vars',sig1_ts); runID2 = Simulink.sdi.createRun('Compare to Run','vars',sig2_ts);
Можно использовать Simulink.sdi.compareRuns
функция, чтобы сравнить запуски. Алгоритм сравнения преобразует данные сигнала в double
тип данных и синхронизирует данные сигнала прежде, чем вычислить сигнал различия.
basic_DRR = Simulink.sdi.compareRuns(runID1,runID2);
Проверяйте Summary
свойство возвращенного Simulink.sdi.DiffRunResult
объект видеть результат сравнения.
basic_DRR.Summary
ans = struct with fields:
OutOfTolerance: 1
WithinTolerance: 0
Unaligned: 0
UnitsMismatch: 0
Empty: 0
Canceled: 0
EmptySynced: 0
DataTypeMismatch: 0
TimeMismatch: 0
StartStopMismatch: 0
Unsupported: 0
Различие между сигналами вне допуска.
Сравните запуски и проверку на соответствие типа данных
В зависимости от ваших системных требований можно хотеть типы данных для сигналов, которые вы сравниваете с соответствием. Можно использовать Simulink.sdi.compareRuns
функция, чтобы сконфигурировать алгоритм сравнения, чтобы проверять на и сообщить о неверных типах данных.
dataType_DRR = Simulink.sdi.compareRuns(runID1,runID2,'DataType','MustMatch'); dataType_DRR.Summary
ans = struct with fields:
OutOfTolerance: 0
WithinTolerance: 0
Unaligned: 0
UnitsMismatch: 0
Empty: 0
Canceled: 0
EmptySynced: 0
DataTypeMismatch: 1
TimeMismatch: 0
StartStopMismatch: 0
Unsupported: 0
Результатом сравнения сигнала является теперь DataTypeMismatch
потому что данными для базового сигнала является double
тип данных, в то время как данными для сигнала по сравнению с базовой линией является single
тип данных.
Сравните запуски и проверяйте на соответствие запуска и времени остановки
Можно использовать Simulink.sdi.compareRuns
функция, чтобы сконфигурировать алгоритм сравнения, чтобы проверять, имеют ли выровненные сигналы то же самое, запускается и времена остановки.
startStop_DRR = Simulink.sdi.compareRuns(runID1,runID2,'StartStop','MustMatch'); startStop_DRR.Summary
ans = struct with fields:
OutOfTolerance: 0
WithinTolerance: 0
Unaligned: 0
UnitsMismatch: 0
Empty: 0
Canceled: 0
EmptySynced: 0
DataTypeMismatch: 0
TimeMismatch: 0
StartStopMismatch: 1
Unsupported: 0
Результатом сравнения сигнала является теперь StartStopMismatch
потому что сигналы, созданные в рабочей области, имеют различные времена остановки.
Можно просмотреть и смотреть результаты сравнения с помощью Инспектора Данных моделирования пользовательский интерфейс. Для получения дополнительной информации смотрите, Сравнивают Данные моделирования.
Для тестов программного обеспечения смотрите Simulink.sdi.constraints.MatchesSignal
ограничение.
compare
| Simulink.sdi.compareRuns
| Simulink.sdi.DiffSignalResult
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.