Проект семейства ПИД-регуляторов для нескольких рабочих точек

Этот пример показов, как спроектировать массив ПИД-регуляторов для нелинейного объекта в Simulink, который работает с широкой областью значений рабочих точек.

Откройте модель объекта управления

Этот объект представляет собой непрерывный реактор с баком перемешиванием (CSTR), который работает в широкой области значений рабочих точек. Один ПИД-регулятор может эффективно использовать температуру хладагента для регулирования концентрации выхода вокруг небольшой рабочей области значений, для которого предназначен ПИД-регулятор. Однако, поскольку объект является сильно нелинейной системой, эффективность управления ухудшается, если рабочая точка значительно изменяется. Система с обратной связью может даже стать нестабильной.

Откройте модель объекта управления CSTR.

mdl = 'scdcstrctrlplant';
open_system(mdl)

Для получения дополнительной информации об этой системе см. раздел [1].

Введение в табличное управление

Общим подходом к решению нелинейной задачи управления является использование табличного управления с линейными контроллерами. Вообще говоря, разработка системы управления табличным управлением занимает четыре этапа.

  1. Получите модель объекта управления для каждой рабочей области. Обычной практикой является линеаризация объекта в нескольких рабочих точках равновесия.

  2. Разработайте семейство линейных контроллеров, таких как ПИД-регуляторы, для моделей объекта управления, полученной на предыдущем шаге.

  3. Реализуйте механизм планирования, так что коэффициенты контроллера, такие как коэффициенты ПИД, изменяются на основе значений переменных планирования. Для минимизации нарушений порядка при операции установки требуется плавная (бесшумная) передача между контроллерами.

  4. Оцените эффективность управления с помощью симуляции.

Для получения дополнительной информации о табличном управлении смотрите [2].

Этот пример фокусируется на разработке семейства ПИД-регуляторов для нелинейного объекта CSTR.

Получите линейные модели объекта управления для нескольких рабочих точек

Концентрация выхода C используется для идентификации различных рабочих областей. Объект CSTR может работать с любым темпом преобразования между низким темпом преобразования (C = 9) и высокий коэффициент преобразования (C = 2). В этом примере разделите рабочую область значений на восемь областей, представленных C = 2 через 9.

Задайте рабочие области.

C = [2 3 4 5 6 7 8 9];

Создайте массив спецификаций рабочих точек по умолчанию.

op = operspec(mdl,numel(C));

Инициализируйте спецификации рабочей точки, задав, что выходная концентрация является известным значением и задав выходное значение концентрации.

for ct = 1:numel(C)
	op(ct).Outputs.Known = true;
	op(ct).Outputs.y = C(ct);
end

Вычислите равновесные рабочие точки, соответствующие значениям C.

opoint = findop(mdl,op,findopOptions('DisplayReport','off'));

Линеаризация объекта в этих рабочих точках.

Plants = linearize(mdl,opoint);

Поскольку объект CSTR является нелинейным, линейные модели отображают различные характеристики. Например, модели объекта управления с высокими и низкими темпами преобразования стабильны, в то время как другие нет.

isstable(Plants,'elem')'
ans =

  1x8 logical array

   1   1   0   0   0   0   1   1

Проект ПИД-регуляторов для моделей объекта управления

Чтобы спроектировать несколько ПИД-регуляторы в пакете, используйте pidtune функция. Следующие команды генерируют массив ПИД-регуляторов в параллельной форме. Необходимая частота среза без разомкнутого контура находится на 1 рад/с, и запас по фазе является значением по умолчанию 60 степени.

Controllers = pidtune(Plants,'pidf',1);

Отобразите контроллер для C = 4.

Controllers(:,:,4)
ans =
 
             1            s    
  Kp + Ki * --- + Kd * --------
             s          Tf*s+1 

  with Kp = -12.4, Ki = -1.74, Kd = -16, Tf = 0.00875
 
Continuous-time PIDF controller in parallel form.

Чтобы проанализировать отклики замкнутой системы для отслеживания уставки шага, сначала создайте системы замкнутой системы.

clsys = feedback(Plants*Controllers,1);

Постройте график откликов с обратной связью.

figure
hold on
for ct = 1:length(C)
    % Select a system from the LTI array
    sys = clsys(:,:,ct);
    sys.Name = ['C=',num2str(C(ct))];
    sys.InputName = 'Reference';
    % Plot step response
    stepplot(sys,20);
end
legend('show','location','southeast')

Все замкнутые циклы стабильны, но перерегулирования циклов с нестабильными объектами (C = 4, через 7) слишком большие. Чтобы улучшить результаты для нестабильных моделей объекта управления, увеличьте целевую полосу пропускания разомкнутого контура до 10 рад/сек.

Controllers = pidtune(Plants,'pidf',10);

Отобразите контроллер для C = 4.

Controllers(:,:,4)
ans =
 
             1            s    
  Kp + Ki * --- + Kd * --------
             s          Tf*s+1 

  with Kp = -283, Ki = -151, Kd = -128, Tf = 0.0183
 
Continuous-time PIDF controller in parallel form.

Создайте системы с обратной связью и постройте график переходных характеристик с обратной связью для новых контроллеров.

clsys = feedback(Plants*Controllers,1);
figure
hold on
for ct = 1:length(C)
    % Select a system from the LTI array.
    sys = clsys(:,:,ct);
    set(sys,'Name',['C=',num2str(C(ct))],'InputName','Reference');
    % Plot the step response.
    stepplot(sys,20)
end
legend('show','location','southeast')

Теперь все отклики с обратной связью удовлетворительны. Для сравнения исследуйте ответ, когда вы используете один и тот же контроллер во всех рабочих точках. Создайте другой набор систем с обратной связью, где каждая из них использует C = 2 контроллер и постройте график их откликов.

clsys_flat = feedback(Plants*Controllers(:,:,1),1);

figure
stepplot(clsys,clsys_flat,20)
legend('C-dependent Controllers','Single Controller')

Массив ПИД-регуляторов, разработанных отдельно для каждой концентрации, обеспечивает значительно лучшую эффективность по сравнению с одним контроллером.

Однако отклики с обратной связью, показанные выше, вычисляются на основе линейных приближений полной нелинейной системы. Чтобы подтвердить проект, реализуйте механизм планирования в вашей модели с помощью блока ПИД-регулятора, как показано на Реализуйте ПИД-регуляторы Gain-Scheduled.

Закройте модель.

bdclose(mdl)

Ссылки

[1] Seborg, Dale E., Thomas F. Edgar, and Duncan A. Mellichamp. Динамика процесса и управление. 2-е изд., John Wiley & Sons, Inc, 2004, pp. 34-36.

[2] Руг, Уилсон Дж., и Джефф С. Шамма. 'Исследование по табличному управлению'. Автоматика 36, № 10 (октябрь 2000): 1401-1425.

См. также

| |

Похожие темы