Simulink.sdi.compareSignals

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

Синтаксис

diff = Simulink.sdi.compareSignals(sigID1,sigID2)

Описание

пример

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

Примеры

свернуть все

Этот пример использует модель 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
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 = aircraftRun.getSignalIDByIndex(1);
signalID2 = aircraftRun.getSignalIDByIndex(2);

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

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

    % Check whether signals match within tolerance
    match = sigDiff.match
end
match = logical
   0

Этот пример показывает, как сравнить сигналы от различных выполнений моделирования с помощью Data Inspector Моделирования функция 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
sim('slexAircraftExample')

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

% Simulate again
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 = run1.getSignalIDByIndex(1);
sigID2 = run2.getSignalIDByIndex(1);

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

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

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

Simulink.sdi.view

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

свернуть все

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

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

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

свернуть все

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

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

Была ли эта тема полезной?