Этот пример показывает, как выполнить основанную на оптимизации систему управления в приложении 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:
Усиление — Полное усиление контроллера
Действительные нули — Нули, следующие из дифференциатора и интегратора
Действительный полюс — полюс, следующий из фильтра нижних частот дифференциатора
Чтобы просмотреть структуру блока 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 и задайте имя для сеанса.