Результат сравнения обратного сигнала
Можно программно задать значения допусков сигнала для использования при сравнениях, выполняемых с помощью инспектора данных моделирования. В этом примере сравниваются данные, собранные путем моделирования модели системы управления продольным полетом самолета. Каждое моделирование использует разное значение для постоянной времени входного фильтра и регистрирует входной и выходной сигналы. Влияние изменения постоянной времени анализируется путем сравнения результатов с помощью инспектора данных моделирования и допусков сигнала.
Сначала загрузите файл сеанса, содержащий данные моделирования.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.