exponenta event banner

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