Simulink.sdi.compareSignals

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

Описание

пример

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

Примеры

свернуть все

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

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

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 функция. The Stick сигнал является базовой линией, и alpha, rad сигнал является сигналом для сравнения с базовой линией.

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

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

В этом примере показано, как сравнить сигналы из различных запусков симуляции с помощью Simulink.sdi.compareSignals Данные Моделирования Inspector функция. Когда у вас есть только один сигнал интереса для сравнения, использование сравнения сигналов возвращает 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);

Сравнение сигналов

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

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

Simulink.sdi.view

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

свернуть все

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

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

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

свернуть все

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

Ограничения

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

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

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

Введенный в R2011b