getResultByIndex

Возвратите результат сравнения сигнала

Описание

пример

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

Примеры

свернуть все

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

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

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