В этом примере показано, как выполнить основанную на оптимизации систему управления в приложении Control System Designer, когда у вас есть программное обеспечение Control System Toolbox™. Вы проектируете ПИД-регулятор для линеаризовавшей модели Simulink®.
Вы выполняете следующие задачи:
Укажите, что частотный диапазон Предвещает требования запаса по фазе и величина.
Спроектируйте начальный контроллер, чтобы удовлетворить требования частотного диапазона.
Совершенствуйте первоначальный проект контроллера, чтобы ограничить выходной сигнал контроллера.
Модель Simulink, sldo_model2
, содержит Controller
блокируйтесь, который является ПИД-регулятором. Этот блок управляет выходом Plant
подсистема.
Используя программное обеспечение Simulink Control Design™, модель линеаризовалась в рабочей точке, заданной в модели. sldo_model2.mat
файл содержит предварительно сконфигурированный сеанс приложения Control System Designer, сохраненный после линеаризации модели. Чтобы узнать больше о линеаризации моделей Simulink для системы управления, см. Проект Системы управления и Настраивающийся (Simulink Control Design).
Plant
подсистема моделируется как система второго порядка с задержкой. Это содержит Передаточную функцию и Транспортные блоки Задержки.
Чтобы узнать больше о блоках, смотрите страницы с описанием блока Transfer Fcn и Transport Delay.
Компенсатор, который вы проектируете, должен соответствовать следующим конструктивным требованиям:
Предвещайте более низкую величину, связанную 0 в частотном диапазоне 1e-3 к 1 рад/секунда
Запас по фазе, больше, чем 60 градусов
Controller выход ограничивает в области значений [-250 550]
Чтобы спроектировать линейный контроллер для модели Simulink, сначала сконфигурируйте сеанс приложения Control System Designer.
Откройте сеанс приложения Control System Designer для линеаризовавшей модели Simulink.
Введите следующую команду в подсказке MATLAB®:
controlSystemDesigner('sldo_model2.mat')
sldo_model2.mat
файл содержит предварительно сконфигурированный сеанс приложения Control System Designer. Этот сеанс был сохранен после того, как программное обеспечение Simulink Control Design линеаризовало sldo_model2
.
Приложение Control System Designer открывается следующими графиками:
Переходной процесс с обратной связью системы
Выход Controller
блок
Чтобы выполнить оптимизацию ответа, в Tuning Methods выпадающий список, выбирают Optimization Based Tuning
.
В окне Response Optimization можно задать параметры контроллера и конструктивные требования, и выполнить оптимизацию.
Чтобы задать параметры контроллера, которые должны быть оптимизированы:
В окне Response Optimization выберите вкладку Compensators.
Вкладка Compensators отображает следующие установки параметров:
Значение Текущее значение параметров контроллера
Initial Guess — Начальное значение параметров контроллера
Minimum и Maximum — Границы параметра контроллера
Typical Value — Масштабный коэффициент для параметра контроллера
Элементы компенсатора или параметры не могут иметь неопределенности, когда используется с основанной на частотном диапазоне оптимизацией ответа.
Параметры контроллера появляются как полюса и нули в столбце Compensator elements:
Усиление — Полное усиление контроллера
Действительные нули — Нули, следующие из дифференциатора и интегратора
Действительный полюс — полюс, следующий из фильтра lowpass дифференциатора
Просмотреть структуру Controller
блокируйте, щелкните правой кнопкой по блоку по модели и выберите Mask> Look Under Mask.
Измените параметры ПИД-регулятора в формат параметров маски блока Simulink.
Щелкните правой кнопкой по строке sldo_model2/Controller и выберите Parameterized format.
Параметры контроллера теперь отображаются как параметры маски блока Simulink, P
i
, и D
. Для получения дополнительной информации см. Проект Линейные Контроллеры для Моделей Simulink. Чтобы узнать больше о параметрах маски, смотрите Параметры Маски (Simulink).
Выберите параметры контроллера, чтобы оптимизировать.
В столбце Optimize выберите P
i
, и D
.
Задайте Предвещать требование нижнего предела величины:
Во вкладке Design requirements нажмите Add new design requirement. Диалоговое окно New Design Requirement открывается.
В диалоговом окне New Design Requirement, в Design requirement type выпадающий список, выбирают Bode magnitude lower limit
.
В Requirement for response выпадающий список выберите Open Loop 1
.
Укажите диапазон Frequency как 1e-3
к 1
.
Укажите диапазон Magnitude как 0
к 0
.
Нажмите OK.
Предвещание более низкого предела величины добавляется к вкладке Design requirements.
Окно приложения Control System Designer обновляется, чтобы показать Диаграмму Боде в Bode Editor. Конструктивные требования отображены как сегмент черной линии.
Задайте требование запаса по фазе:
Щелкните правой кнопкой в пробеле Диаграммы Боде и выберите Design Requirements> New, чтобы открыть диалоговое окно New Design Requirement.
В диалоговом окне New Design Requirement, в Design requirement type выпадающий список, выбирают Gain & phase margins
.
Установите флажок Phase margin и задайте запас по фазе как 60
.
Нажмите OK.
В окне Response Optimization вкладка Design requirements обновляется, чтобы отобразить требование запаса по фазе.
В приложении, в Предвещать Редакторе, график обновляется, чтобы отобразить требование запаса по фазе.
Спроектировать контроллер с заданными конструктивными требованиями:
В окне Response Optimization, во вкладке Optimization, нажимают Start Optimization.
В каждой итерации оптимизации, методе оптимизации по умолчанию, Gradient descent
, уменьшает расстояние между текущим ответом и линейным сегментом требования к величине путем изменения параметров контроллера. Одновременно, программное обеспечение также вычисляет запас по фазе и уменьшает расстояние между текущим ответом и запасом по фазе. Чтобы узнать больше о доступных методах оптимизации, нажмите Optimization Options, и затем нажмите Help в Окне параметров.
После того, как оптимизация завершается, вкладка Optimization отображает итерации оптимизации и состояние.
Сообщение о состоянии, Successful termination
, указывает, что метод оптимизации нашел решение, которое соответствует конструктивным требованиям. Для получения дополнительной информации о выводах, отображенных в таблице Optimization progress, смотрите Итеративное Отображение (Optimization Toolbox).
Исследуйте параметры контроллера и отклик системы:
Во вкладке Compensator просмотрите оптимизированные значения параметров в столбце Value.
Исследуйте отклик системы на следующих графиках:
Диаграмма Боде:
Величина системы, отображенной как синяя кривая в главном графике, находится за пределами желтой области. Это указывает, что система удовлетворила Предвещать требование величины.
График фазы отображает запас по фазе (P.M). значение 86,1 градусов. Это указывает, что система соответствовала конструктивным требованиям запаса по фазе больших, чем 60 градусов.
Переходной процесс с обратной связью системы:
График показывает, что ответ с обратной связью системы устойчив. Система со спроектированным контроллером таким образом встречает и величине и требованиям запаса по фазе.
Выход Controller
блок:
График показывает, что пиковое значение контроллера, выход - приблизительно 1 100, который является большим и может повредить объект. Чтобы ограничить контроллер выход, примените нижние и верхние границы на сигнал, как задано в Конструктивных требованиях.
Чтобы настроить параметры компенсатора, чтобы соответствовать границам на контроллере, выведите:
Добавьте, что верхняя граница на контроллере вывела:
В контроллере выводит график, щелкают правой кнопкой по белой области и выбирают Design requirement> New.
В диалоговом окне New Design Requirement, в Design requirement type выпадающий список, выбирают Upper time response bound
.
Укажите диапазон Time как 0
к Inf
.
Укажите диапазон Amplitude как 550
к 550
.
Нажмите OK.
Добавьте, что нижняя граница на контроллере вывела:
В контроллере выводит график, щелкают правой кнопкой по белой области и выбирают Design requirement> New.
В диалоговом окне New Design Requirement, в Design requirement type выпадающий список, выбирают Lower time response bound
.
Укажите диапазон Time как 0
к Inf
.
Укажите диапазон Amplitude как -250
к -250
.
Нажмите OK.
В окне Response Optimization обновления вкладки Design requirements, чтобы отобразить границы на контроллере выводят.
График выхода Controller
блок отображает новые конструктивные требования.
Оптимизируйте параметры, чтобы встретиться, конструктивные требования на контроллере выводят:
В окне Response Optimization, во вкладке Compensators, выбирают строки, содержащие P
i
, и D
, и нажмите Use Value as Initial Guess.
Значения в обновлении столбца Initial Guess. Когда вы запускаете оптимизацию снова, метод оптимизации использует обновленные значения параметров в качестве начальной точки для совершенствования значений.
Во вкладке Optimization нажмите Start Optimization. В каждой итерации оптимизации метод оптимизации уменьшает расстояние между текущим ответом и верхними и нижними границами на сигнале. После того, как оптимизация завершается, вкладка Optimization отображает итерации оптимизации и состояние.
Сообщение о состоянии, Successful termination
, указывает, что метод оптимизации нашел решение, которое соответствует конструктивным требованиям.
Исследуйте графики отклика.
Диаграммы Боде показывают, что после совершенствования проекта, система продолжает встречать величине и требованиям запаса по фазе, заданным в Конструктивных требованиях.
Проверьте, что ответ с обратной связью системы остается устойчивым после совершенствования проектирования контроллера.
График выхода Controller
блокируйтесь показывает, что выход находится между 550 и-250, и таким образом встречается, конструктивные требования на границах контроллера вывели.
Исследуйте значения параметров оптимизированного контроллера.
В окне Response Optimization, во вкладке Compensators, просматривают оптимизированные значения параметров контроллера в столбце Value.
Запишите оптимизированные значения параметров контроллера в Controller
блокируйтесь в модели Simulink.
В приложении Control System Designer нажмите Update Blocks.
Сохраните сеанс оптимизированными параметрами контроллера.
В приложении Control System Designer выберите Save Session и задайте имя для сеанса.