В этом примере показано, как использовать задачу Reduce Model Order в Live Editor, чтобы сгенерировать код для выполнения снижения сложности модели путем сбалансированного усечения, выбора режима и упрощения с нулем полюса. Задача Reduce Model Order позволяет вам в интерактивном режиме вычислять приближения высокого порядка моделей с сохранением характеристик модели, важных для вашего приложения.
Откройте этот пример, чтобы увидеть предварительно сконфигурированный скрипт, содержащий задачу Reduce Model Order. Дополнительные сведения о задачах Live Editor см. в разделе Добавление интерактивных задач к Live Script.
В Live Editor загрузите модель, которую вы хотите уменьшить, в рабочую область MATLAB ® .
load build G size(G)
State-space model with 1 outputs, 1 inputs, and 48 states.
Модель LTI G
является моделью пространства состояний с 48 состояниями. Некоторые из этих состояний могут быть сброшены при сохранении соответствующей динамики. Чтобы экспериментировать с уменьшением модели, откройте задачу Reduce Model Order Live Editor. На вкладке Live Editor выберите Task > Reduce Model Order.
Сбалансированное усечение вычисляет приближение вашей модели более низкого порядка путем удаления состояний с относительно небольшими энергетическими вкладами. Для получения дополнительной информации о сбалансированном усечении см. Снижение сложности модели сбалансированного усечения.
Чтобы сгенерировать код для сбалансированного усечения в задаче Reduce Model Order, выберите G
как модель для сокращения. Задайте Balanced Truncation
как метод.
Задайте целевой Пониженный Порядок уменьшенной модели. Можно использовать график Ханкеля с сингулярным значением, чтобы помочь выбрать целевой порядок. Этот график визуализирует относительный энергетический вклад каждого состояния в исходной модели. Задача отбрасывает состояния с меньшей энергией, чем состояние, выбранное на этом графике.
График отклика показывает диаграмму Боде исходной модели и модель пониженного порядка. Экспериментируйте с различными моделями пониженного порядка путем выбора различных порядков на графике сингулярного значения Ханкеля, используя график отклика, чтобы наблюдать, как изменяется модель пониженного порядка. (Чтобы увидеть абсолютную или относительную погрешность между исходной и уменьшенной моделью, используйте меню Model Response.)
Выберите наименьший порядок модели, который адекватно сохраняет динамику, важную для вашего приложения. Если вас интересует только динамика в определенной частотной области значений, можно ограничить расчет энергетических вкладов в эту область значений. Для этого выберите Частотную область значений. Затем введите минимальную и максимальную частоты или укажите область значений с помощью вертикальных ползунков на графике отклика. (Выбор области значений частот отменяет опцию «Сохранить коэффициент усиления постоянного тока», поскольку значение 0 рад/с не входит в диапазон частот по умолчанию.)
Задача генерирует код для вычисления указанной вами уменьшенной модели. Чтобы увидеть сгенерированный код, щелкните в нижней части задачи. Задача расширяется, чтобы показать сгенерированный код. Для сбалансированного усечения в Reduce Model Order используются balred
с опциями, заданными balredOptions
. (Чтобы включить код, который создает график отклика, в меню Output Plot, выберите ответ, который вы хотите.)
По умолчанию сгенерированный код использует sysReduced
как имя переменного выхода. Чтобы задать другое имя переменного выхода, введите новое имя в линию сводки в верхней части задачи.
Задача обновляет сгенерированный код, чтобы отразить новую переменную, и модель пространства состояний пониженного порядка появляется в рабочей области MATLAB ® с новым именем .
Можно использовать модель пониженного порядка в рабочем пространстве MATLAB, так как вы бы использовали любую другую модель LTI для анализа и системы управления. В этом примере сравните уменьшенные отклики модели с моделью пониженного порядка, созданной с помощью другого метода снижения сложности модели, выбора режима. Выбор режима уменьшает модель, отбрасывая динамику, которая падает за пределы заданной области частот.
Измените имя переменного выхода на G_mr
, поэтому вы не перезаписываете модель, созданную вами с помощью сбалансированного усечения. Затем установите метод сокращения равным Mode Selection
. Используйте вертикальные ползунки на графике, чтобы выбрать частотную область значений, в котором можно сохранить динамику, или введите частотную область значений в поле Частота отсечения (Cutoff Frequency).
Для выбора режима Reduce Model Order генерирует код, который использует freqsep
. Может быть полезно добавить диаграммы нулей и полюсов, чтобы наблюдать, какие полюсы и нули исключены из модели пониженного порядка. Для этого в меню «Выход на график» выберите Pole-Zero
. Этот выбор генерирует график, который показывает полюсы и нули как исходной, так и уменьшенной модели. Он также добавляет код для создания этого графика в сгенерированный код.
Упрощение с нулем полюса уменьшает порядок вашей модели точно путем отмены пар с нулем полюса или устранения состояний, которые не влияют на общую реакцию модели. Пары с нулем полюса могут быть введены, например, когда вы создаете архитектуры с обратной связью. Нормальные небольшие ошибки, сопоставленные с численными расчетами, могут преобразовать такие пары отмены в пары, близкие к отмене. Удаление этих состояний сохраняет характеристики отклика модели при упрощении анализа и системы управления.
Метод упрощения с нулем полюсов в порядке редуцирования модели автоматически устраняет:
Отмена или близкая к отмене нулевые пары полюса от передаточных функций
Ненаблюдаемые или неуправляемые состояния из моделей пространства состояний
Состояния, которые структурно отключены от входов или выходов.
Измените имя переменного выхода на G_pz
, поэтому вы не перезаписываете модель, созданную вами с помощью других методов. Затем установите метод сокращения равным Pole-Zero Cancellation
. Используйте параметр Tolerance, чтобы настроить, насколько близко к отмене пар полюс-ноль должно быть исключено. Переместите ползунок в сторону More, чтобы отменить больше пар «полюс-ноль», сократив модель до меньшего порядка. На выходном графике выберите Pole-Zero
и используйте график, чтобы наблюдать, какие полюсы и нули исключены из уменьшенной модели.
Задача Уменьшить порядок модели автоматически создает модели пониженного порядка в рабочем пространстве MATLAB. Можно использовать эти модели для последующего анализа или системы управления, так как вы использовали бы любую другую модель LTI. Например, сравните частотные характеристики исходной и всех моделей пониженного порядка на одном графике.
bode(G,G_bt,G_mr,G_pz,{0.1,1000}) legend