Simulink.sdi.compareSignals

Сравните данные из двух сигналов

Описание

пример

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

Примеры

свернуть все

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

% Load model slexAircraftExample and mark signals for streaming
load_system('slexAircraftExample')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

% Simulate model slexAircraftExample
out = sim('slexAircraftExample');

% Get run IDs for most recent run
allIDs = Simulink.sdi.getAllRunIDs;
runID = allIDs(end);

% Get Run object
aircraftRun = Simulink.sdi.getRun(runID);

% Get signal IDs
signalID1 = getSignalIDByIndex(aircraftRun,1);
signalID2 = getSignalIDByIndex(aircraftRun,2);

if (isValidSignalID(aircraftRun,signalID1))
    % Change signal tolerance
    signal1 = Simulink.sdi.getSignal(signalID1);
    signal1.AbsTol = 0.1;
end

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

    % Check whether signal result status
    match = sigDiff.Status
end
match = 
OutOfTolerance

В этом примере показано, как сравнить сигналы от различных запусков симуляции с помощью Инспектора Данных моделирования 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 сигнала для сигнала Baseline. Инспектор Данных моделирования присваивает сигнал и идентификаторы запуска, когда вы создаете запуск для своих данных. Можно получить доступ к ID сигнала от Simulink.sdi.Run объект с getSignalIDByIndex метод.

ID сигнала для сигнала Compare to. Инспектор Данных моделирования присваивает сигнал и идентификаторы запуска, когда вы создаете запуск для своих данных. Можно получить доступ к ID сигнала от Simulink.sdi.Run объект с getSignalIDByIndex метод.

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

свернуть все

Simulink.sdi.DiffSignalResult объект, содержащий результаты сравнения сигнала.

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