Simulink.sdi.compareSignals

Сравните данные в двух Simulink.sdi.Signal объекты

Описание

пример

diff = Simulink.sdi.compareSignals(sigID1,sigID2) сравнивает сигналы, которые соответствуют идентификаторам сигнала sigID1 и sigID2 и возвращает результаты в Simulink.sdi.DiffSignalResult объект. Для получения дополнительной информации о том, как результаты сравнения вычисляются, видят, Как Инспектор Данных моделирования Сравнивает Данные.

Примеры

свернуть все

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

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

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

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

aircraftRun = Simulink.sdi.Run.getLatest;

Затем можно использовать Simulink.sdi.getSignalsByName функционируйте, чтобы получить доступ к Stick сигнал, который представляет вход контроллеру и alpha, rad сигнал, который представляет выход.

stick = getSignalsByName(aircraftRun,'Stick');
alpha = getSignalsByName(aircraftRun,'alpha, rad');

Прежде чем вы сравните сигналы, можно задать значение допуска, чтобы использовать для сравнения. Сравнения используют значения допуска, заданные для базового сигнала в сравнении, таким образом установите значение абсолютной погрешности 0.1 на Stick сигнал.

stick.AbsTol = 0.1;

Теперь сравните сигналы с помощью Simulink.sdi.compareSignals функция. Stick сигнал является базовой линией и alpha, rad сигнал является сигналом выдержать сравнение с базовой линией.

comparisonResults = Simulink.sdi.compareSignals(stick.ID,alpha.ID);
match = comparisonResults.Status
match = 
  ComparisonSignalStatus enumeration

    OutOfTolerance

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

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

Сгенерируйте данные моделирования

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

% Load example model
load_system('slexAircraftExample')

% Mark the alpha, rad signal for streaming
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

% Simulate system
out_1 = sim('slexAircraftExample');

% Change input filter time constant
modelWorkspace = get_param('slexAircraftExample','modelworkspace');
assignin(modelWorkspace,'Ts',0.2)

% Simulate again
out_2 = sim('slexAircraftExample');

Получите идентификаторы сигнала для сравнения сигнала

Создайте объекты запуска с помощью идентификаторов запуска, и затем используйте getSignalIDByIndex заставить идентификаторы сигнала передавать Simulink.sdi.compareSignals.

% Get run data
runIDs = Simulink.sdi.getAllRunIDs;

runID1 = runIDs(end-1);
runID2 = runIDs(end);

run1 = Simulink.sdi.getRun(runID1);
run2 = Simulink.sdi.getRun(runID2);

sigID1 = getSignalIDByIndex(run1,1);
sigID2 = getSignalIDByIndex(run2,1);

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

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

diffResult = Simulink.sdi.compareSignals(sigID1,sigID2);

Simulink.sdi.view

Входные параметры

свернуть все

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

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

Выходные аргументы

свернуть все

Результаты сравнения сигнала, возвращенные как Simulink.sdi.DiffSignalResult объект. Комплексные результаты сравнения сигнала возвращены как массив двух DiffSignalResult объекты. Один DiffSignalResult объект содержит действительные данные, и другой содержит мнимые данные. Проверяйте Name свойство DiffSignalResult объект определить, содержит ли это действительные или мнимые данные.

Ограничения

Инспектор Данных моделирования не поддерживает сравнение:

  • Сигналы типов данных int64 или uint64.

  • Сигналы переменного размера.

Представленный в R2011b
Для просмотра документации необходимо авторизоваться на сайте