getResultByIndex

Результат сравнения возвращаемого сигнала

Описание

пример

diffSig = getResultByIndex(diffRes,index) возвращает Simulink.sdi.DiffSignalResult diffSig объекта при заданном индексе в Simulink.sdi.DiffRunResult объект, diffRes.

Примеры

свернуть все

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

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

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

Файл сеанса содержит четыре запусков. В этом примере вы сравниваете данные первых двух запусков в файле. Доступ к Simulink.sdi.Run объекты для первых двух запусков, загруженные из файла.

runIDs = Simulink.sdi.getAllRunIDs;
runIDTs1 = runIDs(end-3);
runIDTs2 = runIDs(end-2);

Теперь сравните эти два запусков, не задавая никаких допусков.

noTolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);

Используйте getResultByIndex функция для доступа к результатам сравнения для q и alpha сигналы.

qResult = getResultByIndex(noTolDiffResult,1);
alphaResult = getResultByIndex(noTolDiffResult,2);

Проверьте Status из каждого результата сигнала, чтобы увидеть, попадает ли результат сравнения в наш вне допуска.

qResult.Status
ans = 
OutOfTolerance
alphaResult.Status
ans = 
OutOfTolerance

В сравнении использовалось значение 0 для всех допусков, поэтому OutOfTolerance результат означает, что сигналы не идентичны.

Можно дополнительно проанализировать эффект постоянной времени, задав значения допуска для сигналов. Задайте допуски путем установки свойств для Simulink.sdi.Signal объекты, которые соответствуют сравниваемым сигналам. В сравнениях используются допуски, заданные для базовых сигналов. Этот пример задает временным допуском и абсолютной погрешностью.

Чтобы задать допуск, сначала получите доступ к Signal объекты из запуска опорной структуры.

runTs1 = Simulink.sdi.getRun(runIDTs1);
qSig = getSignalsByName(runTs1,'q, rad/sec');
alphaSig = getSignalsByName(runTs1,'alpha, rad');

Задайте абсолютную погрешность 0.1 и временной допуск 0.6 для q сигнал с использованием AbsTol и TimeTol свойства.

qSig.AbsTol = 0.1;
qSig.TimeTol = 0.6;

Задайте абсолютную погрешность 0.2 и временной допуск 0.8 для alpha сигнал.

alphaSig.AbsTol = 0.2;
alphaSig.TimeTol = 0.8;

Сравните результаты еще раз. Получите доступ к результатам сравнения и проверьте Status свойство для каждого сигнала.

tolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
qResult2 = getResultByIndex(tolDiffResult,1);
alphaResult2 = getResultByIndex(tolDiffResult,2);

qResult2.Status
ans = 
WithinTolerance
alphaResult2.Status
ans = 
WithinTolerance

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

свернуть все

Запустите результаты сравнения, содержащие результат сигнала, к которому вы хотите получить доступ, заданный как Simulink.sdi.DiffRunResult объект.

Индекс сигнала в Simulink.sdi.DiffRunResult объект, заданный как целое число.

Пример: 2

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

свернуть все

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

Введенный в R2012b