Этот пример показывает, как реализовать управление, запланированное по усилению в Simulink® моделировать с использованием семейства ПИД-регуляторов. ПИД-регуляторы настроены на серию установившихся рабочих точек объекта, которая является сильно нелинейной.
Этот пример основан на работе, проделанной в семействе проектов ПИД-регуляторов для нескольких рабочих точек. В этом примере модель объекта управления реактора с непрерывным перемешиванием (CSTR) линеаризируется в установившихся рабочих точках, которые имеют выходные концентрации C = 2, 3,..., 8, 9. Нелинейность в объекте CSTR приводит к различной линеаризированной динамике при различных выходных концентрациях. В примере используется pidtune
команда для генерации и настройки отдельного ПИД-регулятора для каждой концентрации выхода.
Можно ожидать, что каждый контроллер будет хорошо работать в небольшой рабочей области значений вокруг его соответствующей выходной концентрации. В этом примере показано, как использовать блок PID Controller для реализации всех этих контроллеров в запланированном строении с коэффициентом усиления. В таком строении коэффициенты ПИД изменяются при изменении выходной концентрации. Это строение обеспечивает хорошее управление ПИД при любой выходной концентрации в рабочей области значений системы управления.
Начните с контроллеров, сгенерированных в Проект семейства ПИД-регуляторов для нескольких рабочих точек. Если эти контроллеры еще не находятся в MATLAB® рабочей области, загрузите их из файла данных PIDGainSchedExample.mat
.
load PIDGainSchedExample
Эта операция помещает две переменные в рабочее пространство MATLAB, Controllers
и C
. Область массива моделей Controllers
содержит восемь pid
модели, каждая из которых настроена на одну выходную концентрацию в векторе C
.
Чтобы реализовать эти контроллеры в запланированном строении усиления, создайте интерполяционные таблицы, которые связывают каждую выходную концентрацию с соответствующим набором коэффициентов ПИД. Модель Simulink PIDGainSchedCSTRExampleModel
содержит такие интерполяционные таблицы, сконфигурированные для обеспечения запланированного по усилению управления для объекта CSTR. Откройте эту модель.
open_system('PIDGainSchedCSTRExampleModel')
В этой модели блок PID Controller сконфигурирован так, чтобы иметь внешние порты входа для коэффициентов ПИД. Использование внешних входов позволяет коэффициентам изменяться при изменении выходной концентрации. Откройте блок, чтобы изучить строение.
Установка параметра Source равной external
включает порты входа для коэффициентов.
Модель использует блок 1-D Lookup Table для каждого из коэффициентов ПИД. В целом для управления ПИД по расписанию усиления используйте вашу переменную планирования в качестве входа интерполяционной таблицы и соответствующие значения коэффициентов контроллера в качестве выхода. В этом примере выходная концентрация объекта CSTR является входом интерполяционной таблицы, и выходным коэффициентом является коэффициент ПИД, соответствующий этой концентрации. Чтобы увидеть, как сконфигурированы интерполяционные таблицы, откройте P Lookup Table
блок.
Параметр Table data содержит массив пропорциональных коэффициентов для каждого контроллера, Controllers.Kp
. (Для получения дополнительной информации о свойствах pid
модели в Controllers
массив, см. pid
.) Каждая запись в этом массиве соответствует записи в массиве C
который вводится в параметр Breakpoints 1. Для значений концентрации, которые находятся между входами в C
, а P Lookup Table
блок выполняет линейную интерполяцию, чтобы определить значение пропорционального коэффициента. Чтобы настроить интерполяционные таблицы для интегральных и производных коэффициентов, сконфигурируйте I Lookup Table
и D Lookup Table
блоки, использующие Controllers.Ki
и Controllers.Kd
, соответственно. В данном примере это строение уже выполняется в модели.
pid
модели в Controllers
массив выражает производный коэффициент фильтра как постоянную по времени, Controllers.Tf
(см. pid
страница с описанием для получения дополнительной информации). Однако PID Controller блок выражает производный коэффициент фильтра как обратную константу, N
. Поэтому N Lookup Table
блок должен быть сконфигурирован так, чтобы использовать обратное значение каждого значения в Controllers.Tf
. Откройте N Lookup Table
блок для просмотра строения.
Симулируйте модель. The Concentration Setpoint
блок сконфигурирован для прохождения последовательности уставок, которая охватывает рабочую область значений между C = 2
и C = 9
(показан желтым цветом на возможностях). Симуляция показывает, что запланированная по усилению строение достигает хорошего отслеживания уставки в этой области значений (розовый на возможностях).
Как показано Проект Семейства ПИД-контроллеров для нескольких рабочих точек, объекта CSTR нестабильен в рабочей области значений между C = 4
и C = 7
. Планируемые по усилению ПИД-регуляторы стабилизируют объект и дают хорошее отслеживание уставки через всю нестабильную область. Чтобы полностью подтвердить систему управления нелинейному объекту, примените множество тестовых последовательностей уставок, которые тестируют эффективность отслеживания для шагов различных размеров и направлений в рабочей области значений. Можно также сравнить эффективность с проектом без табличного управления, установив все записи в Controllers
массив равен.
n-D Lookup Table | pid
| PID Controller | pidtune