getResultByIndex

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

Описание

пример

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

Примеры

свернуть все

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

Сконфигурируйте модель

Загрузите модель и отметьте представляющие интерес сигналы для логгирования. Этот пример данные логов для q и alpha сигналы.

load_system('slexAircraftExample')

Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

Запустите симуляции

Запуститесь симуляции с различным lowpass фильтруют постоянные времени, чтобы сгенерировать результаты выдержать сравнение. slexAircraftExample модель хранит переменные, сопоставленные моделью в рабочем пространстве модели. Чтобы изменить значение постоянной времени, получите доступ к рабочему пространству модели и используйте assignin функция.

out1 = sim('slexAircraftExample');

modelWorkspace = get_param('slexAircraftExample','modelworkspace');
assignin(modelWorkspace,'Ts',1)

out2 = sim('slexAircraftExample');

Доступ и сравнивает результаты симуляции

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

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

Используйте Simulink.sdi.compareRuns функция, чтобы сравнить данные из симуляций. Затем смотрите Status свойство результата сигнала видеть, находились ли сигналы в пределах допуска по умолчанию 0.

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

sig1Result1 = getResultByIndex(diffRun1,1);
sig2Result1 = getResultByIndex(diffRun1,2);

sig1Result1.Status
ans = 
OutOfTolerance
sig2Result1.Status
ans = 
OutOfTolerance

Сравните запуски с допусками сигнала

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

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

run1 = Simulink.sdi.getRun(runIDTs1);
sigID1 = getSignalIDByIndex(run1,1);
sigID2 = getSignalIDByIndex(run1,2);

sig1 = Simulink.sdi.getSignal(sigID1);
sig2 = Simulink.sdi.getSignal(sigID2);

Проверяйте Name свойство идентифицировать каждый Signal объект.

sig1.Name
ans = 
'q, rad/sec'
sig2.Name
ans = 
'alpha, rad'

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

sig1.AbsTol = 0.1;
sig1.TimeTol = 0.6;

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

sig2.AbsTol = 0.2;
sig2.TimeTol = 0.8;

Сравните запуски снова и получите доступ к результатам.

diffRun2 = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
sig1Result2 = getResultByIndex(diffRun2,1);
sig2Result2 = getResultByIndex(diffRun2,2);

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

sig1Result2.Status
ans = 
WithinTolerance
sig2Result2.Status
ans = 
WithinTolerance

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

свернуть все

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

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

Пример 2

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

свернуть все

Сравнение заканчивается для сигнала в заданном индексе, возвращенном как Simulink.sdi.DiffSignalResult объект.

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