Возвратите результат сравнения сигнала
Можно программно задать значения допуска сигнала, чтобы использовать в сравнениях, выполняемых с помощью Инспектора Данных моделирования. В этом примере вы сравниваете данные, собранные путем симуляции модели самолета продольная система управления полетом. Каждая симуляция использует различное значение для входной постоянной времени фильтра и регистрирует сигналы ввода и вывода. Вы анализируете эффект изменения постоянной времени путем сравнения результатов с помощью Инспектора Данных моделирования и допусков сигнала.
Во-первых, загрузите файл сеанса, который содержит данные моделирования.
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
diffRes — Запустите результаты сравненияSimulink.sdi.DiffRunResult объектЗапустите результаты сравнения, содержащие результат сигнала, к которому вы хотите получить доступ в виде Simulink.sdi.DiffRunResult объект.
index — Индекс сигнала в запущенных результатах сравненияИндекс сигнала в Simulink.sdi.DiffRunResult объект в виде целого числа.
Пример 2
diffSig — Сравнение заканчивается для сигнала в заданном индексеSimulink.sdi.DiffSignalResult объектСравнение заканчивается для сигнала в заданном индексе, возвращенном как Simulink.sdi.DiffSignalResult объект.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.