Simulink.sdi.DiffSignalResult

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

Описание

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

Создание

Когда вы используете Инспектора Данных моделирования, чтобы сравнить запуски или сигналы, можно получить доступ к результатам сравнения сигнала в Simulink.sdi.DiffSignalResult объект два пути:

Свойства

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

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

Базовое имя сигнала, возвращенное как вектор символов. Когда результаты сравнения являются комплексными, имя DiffSignalResult объект, который содержит действительные данные, добавлен с (real), и имя DiffSignalResult объект, который содержит мнимые данные, добавлен с (imag).

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

Состояние сравнения сигнала, соответствующего DiffSignalResult объект, возвращенный как одна из следующих опций. Состояние может указать, где данное сравнение сигнала находится в процессе сравнения во время длинного сравнения, или это может указать на информацию о результате сравнения сигнала.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уникальный идентификатор сигнала для базового сигнала в сравнении, возвращенном как целое число.

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

Уникальный идентификатор сигнала для сигнала выдержать сравнение с базовым сигналом, возвращенным как целое число.

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

Максимальная разница между двумя сигналами сравнения, возвращенными как двойное.

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

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

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

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

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

Сигнал различия, следующий из сравнения, возвращенного как timeseries объект.

Примеры

свернуть все

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

Сконфигурируйте и симулируйте модель

slexAircraftExample модель не делает данных логов. Загрузите модель и отметьте сигналы ввода и вывода для логгирования.

load_system('slexAircraftExample')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

Симулируйте модель. Данные для регистрируемых сигналов регистрируют Инспектору Данных моделирования и к рабочей области.

out = sim('slexAircraftExample');

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

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

aircraftRun = Simulink.sdi.Run.getLatest;

signalID1 = getSignalIDByIndex(aircraftRun,1);
signalID2 = getSignalIDByIndex(aircraftRun,2);

Задайте значения допуска

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

signal1 = Simulink.sdi.getSignal(signalID1);
signal1.AbsTol = 0.1;

Сравните сигналы

Используйте Simulink.sdi.compareSignals функция, чтобы сравнить сигналы ввода и вывода. Этот пример использует isValidSignalID функция, чтобы проверить, что оба идентификатора сигнала все еще допустимы прежде, чем вызвать Simulink.sdi.compareSignals функция. ID сигнала становится недопустимым, когда сигнал удален от Инспектора Данных моделирования. После сравнения проверяйте состояние в Simulink.sdi.DiffSignalResult объект.

if (isValidSignalID(aircraftRun,signalID1) && isValidSignalID(aircraftRun,signalID2))
    sigDiff = Simulink.sdi.compareSignals(signalID1,signalID2);

    match = sigDiff.Status
end
match = 
OutOfTolerance

Результат сравнения вне допуска. Можно использовать Simulink.sdi.view функция, чтобы смотреть и анализировать результаты сравнения.

Альтернативы

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

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