exponenta event banner

Simulink.sdi.compareSignals

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

Описание

пример

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

Примеры

свернуть все

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

comparisonResults = Simulink.sdi.compareSignals(stick.ID,alpha.ID);
match = comparisonResults.Status
match = 
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

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

свернуть все

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

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

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

свернуть все

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

Ограничения

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

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

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

Представлен в R2011b