Simulink.sdi.DiffRunResult

Доступ к запущенным результатам сравнения

Описание

Simulink.sdi.DiffRunResult объект обеспечивает доступ, чтобы запустить метаданные сравнения и результаты сравнения. Используйте getSignalByIndex функционируйте, чтобы получить доступ к метаданным и результатам сравнения для каждого сигнала в сравнении запуска.

Создание

Simulink.sdi.DiffRunResult объект создается, когда вы выполняете сравнение с помощью Инспектора Данных моделирования.

Когда вы сравните данные с помощью пользовательского интерфейса, используйте Simulink.sdi.getCurrentComparison функционируйте, чтобы получить доступ к результатам в Simulink.sdi.DiffRunResult объект.

Программируемые сравнения с помощью Simulink.sdi.compareRuns функционируйте или compare функциональный возврат DiffRunResult объект.

Свойства

развернуть все

Это свойство доступно только для чтения.

Версия MATLAB® раньше создавала DiffRunResult объект, возвращенный как вектор символов.

Это свойство доступно только для чтения.

Запустите идентификатор для базового запуска сравнения, возвращенного как целое число.

Это свойство доступно только для чтения.

Запустите идентификатор запуска, чтобы выдержать сравнение, возвращенный как целое число.

Это свойство доступно только для чтения.

Количество сигналов, которые выровнялись между двумя запусками в сравнении, возвратилось как целое число. Для получения дополнительной информации о том, как сигналы выравниваются для сравнений, видят Выравнивание Сигнала.

Это свойство доступно только для чтения.

Дата и время Simulink.sdi.DiffRunResult объект был создан, возвращенный как datetime объект.

Типы данных: datetime

Это свойство доступно только для чтения.

Глобальные значения допуска используются для сравнения запуска, возвращенного как структура с полями:

  • AbsTol — Глобальная абсолютная погрешность используется для сравнения запуска.

  • RelTol — Глобальная относительная погрешность используется для сравнения запуска.

  • TimeTol — Глобальный допуск времени используется для сравнения запуска.

Для получения дополнительной информации о том, как допуски используются и вычисляются для сравнений, см. Спецификацию Допуска.

Это свойство доступно только для чтения.

Сравнение заканчивается сводные данные, возвращенные как структура с полем для каждого Status результат сравнения сигнала мог иметь. Значение каждого поля указывает на количество сигналов в сравнении запуска с соответствующим Status.

  • WithinTolerance — Сравнение сигнала, завершенное, и все сравненные точки данных, находилось в пределах заданного допуска.

  • OutOfTolerance — Сравнение сигнала, завершенное, и некоторые сравненные точки данных, упало за пределами заданного допуска.

  • Unaligned — Сигнал от базового запуска не выровнялся с сигналом в запуске, чтобы выдержать сравнение.

  • Empty — Выровненный сигнал в базовом запуске или запуске, чтобы выдержать сравнение не содержит данных.

  • EmptySynced — Синхронизируемый сигнал в базовом запуске или запуске, чтобы выдержать сравнение не содержит данных. Пустой синхронизируемый сигнал может означать, что сигналы не перекрываются или, если вы задали intersection метод синхронизации, что они не включали ни один из тех же моментов времени,

  • Canceled — Результат сигнала не вычислил, потому что пользователь отменил сравнение.

  • Pending — Сравнение происходит, и расчет результата сигнала не запустился.

  • Processing — Происходящий расчет результата сигнала.

  • UnitsMismatch — Модули сигнала в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют.

  • DataTypeMismatch — Типы данных сигнала в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют. Только результаты сравнений, сконфигурированных, чтобы проверять типы данных сигнала, могут иметь это состояние.

  • TimeMismatch — Временные векторы сигнала в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют. Только результаты сравнений, сконфигурированных, чтобы проверять временные векторы сигнала, могут иметь это состояние.

  • StartStopMismatch — Запуск сигнала и времена остановки в базовом запуске и запуске, чтобы выдержать сравнение не соответствуют. Только результаты сравнений, сконфигурированных, чтобы проверять запуск сигнала и времена остановки, могут иметь это состояние.

  • Unsupported — Инспектор Данных моделирования алгоритм сравнения не поддерживает этот тип сигнала. Например, сигналы с типами данных, которые теряют точность, когда преобразовано в double не поддерживаются.

Для получения дополнительной информации о выравнивании, допуски и синхронизация, видят, Как Инспектор Данных моделирования Сравнивает Данные. Для получения дополнительной информации о том, как сконфигурировать сравнение, чтобы проверять дополнительные метаданные, смотрите Simulink.sdi.compareRuns.

Это свойство доступно только для чтения.

Параметры конфигурации используются для сравнения, возвращенного как n-by-2 cellArray. Каждая строка в массиве ячеек соответствует опции, используемой сравнением. Каждое сравнение требует, чтобы выровнял модульное соответствие сигнала, таким образом, Options свойство всегда включает строку, чтобы указать, что модули должны соответствовать. Другие возможные параметры конфигурации соответствуют этим парам "имя-значение" для Simulink.sdi.compareRuns функция:

  • DataType

  • Time

  • StartStop

  • StopOnFirstMismatch

Это свойство доступно только для чтения.

Состояние сравнения запуска, указывая, как законченное сравнение, возвратилось как одно из следующего:

  • Completed — Сравнение закончило вычислять все результаты

  • Canceled — Сравнение закончилось, потому что пользователь отменил операцию сравнения в пользовательском интерфейсе

  • Stopped — Сравнение закончилось, потому что сравнение обнаружило несоответствие и было сконфигурировано, чтобы остановиться на первом несоответствии

Это свойство доступно только для чтения.

Результат сигнала для сравнения сигнала, которое заставило сравнение запуска останавливаться, не сравнивая остающиеся сигналы, возвратился как Simulink.sdi.DiffSignalResult объект. StopReason свойство пусто, когда сравнение завершается, не обнаруживая несоответствие и когда сравнение не сконфигурировано, чтобы остановиться на первом несоответствии. Можно конфигурировать моделирование, чтобы остановиться на первом несоответствии с помощью Simulink.sdi.compareRuns функционируйте и 'StopOnFirstMismatch' пара "имя-значение".

Функции объекта

getResultByIndexВозвратите результат сравнения сигнала
saveResultСохраните результаты сравнения в файл MLDATX

Примеры

свернуть все

Можно программно задать значения допуска сигнала, чтобы использовать в сравнениях, выполняемых с помощью Инспектора Данных моделирования. В этом примере вы сравниваете данные, собранные путем симуляции модели самолета продольная система управления полетом. Каждая симуляция использует различное значение для входной постоянной времени фильтра и регистрирует сигналы ввода и вывода. Вы анализируете эффект изменения постоянной времени путем сравнения результатов с помощью Инспектора Данных моделирования и допусков сигнала.

Во-первых, загрузите файл сеанса, который содержит данные моделирования.

Simulink.sdi.load('AircraftExample.mldatx');

Файл сеанса содержит четыре запуска. В этом примере вы сравниваете данные из первых двух запусков в файле. Доступ к Simulink.sdi.Run объекты для первых двух запусков загружены из файла.

runIDs = Simulink.sdi.getAllRunIDs;
runIDTs1 = runIDs(end-3);
runIDTs2 = runIDs(end-2);

Теперь сравните два запуска, не задавая допусков.

noTolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);

Используйте getResultByIndex функционируйте, чтобы получить доступ к результатам сравнения для q и alpha сигналы.

qResult = getResultByIndex(noTolDiffResult,1);
alphaResult = getResultByIndex(noTolDiffResult,2);

Проверяйте Status из каждого результата сигнала видеть, находился ли результат сравнения в пределах нашего из допуска.

qResult.Status
ans = 
OutOfTolerance
alphaResult.Status
ans = 
OutOfTolerance

Сравнение использовало значение 0 для всех допусков, таким образом, OutOfTolerance закончитесь означает, что сигналы не идентичны.

Можно далее анализировать эффект постоянной времени путем определения значений допуска для сигналов. Задайте допуски путем установки свойств для Simulink.sdi.Signal объекты, которые соответствуют сравниваемым сигналам. Сравнения используют допуски, заданные для базовых сигналов. Этот пример задает допуск времени и абсолютную погрешность.

Задавать допуск, первый доступ Signal объекты от базового запуска.

runTs1 = Simulink.sdi.getRun(runIDTs1);
qSig = getSignalsByName(runTs1,'q, rad/sec');
alphaSig = getSignalsByName(runTs1,'alpha, rad');

Задайте абсолютную погрешность 0.1 и допуск времени 0.6 для q сигнал с помощью AbsTol и TimeTol свойства.

qSig.AbsTol = 0.1;
qSig.TimeTol = 0.6;

Задайте абсолютную погрешность 0.2 и допуск времени 0.8 для alpha сигнал.

alphaSig.AbsTol = 0.2;
alphaSig.TimeTol = 0.8;

Сравните результаты снова. Доступ к результатам сравнения и проверки Status свойство для каждого сигнала.

tolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
qResult2 = getResultByIndex(tolDiffResult,1);
alphaResult2 = getResultByIndex(tolDiffResult,2);

qResult2.Status
ans = 
WithinTolerance
alphaResult2.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 ограничение.

Представленный в R2012b