exponenta event banner

Семейство контроллеров МТС для нескольких рабочих точек

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

Открыть модель завода

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

Откройте модель завода CSTR.

mdl = 'scdcstrctrlplant';
open_system(mdl)

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

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

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

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

  2. Проектирование семейства линейных контроллеров, например PID-контроллеров, для моделей установки, полученных на предыдущем этапе.

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

  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

Проектирование контроллеров МТС для моделей установки

Для проектирования нескольких контроллеров PID в пакете используйте pidtune функция. Следующие команды генерируют массив контроллеров PID в параллельной форме. Требуемая частота перехода с разомкнутым контуром находится на 1 rad/sec, а поле фазы является значением по умолчанию 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')

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

Однако характеристики замкнутого цикла, показанные выше, вычисляются на основе линейных аппроксимаций полной нелинейной системы. Для проверки проекта необходимо внедрить механизм планирования в модели с использованием блока PID Controller, как показано в разделе Реализация контроллеров PID с планированием усиления (Simulink Control Design).

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

bdclose(mdl)

Ссылки

[1] Себорг, Дейл Э., Томас Ф. Эдгар и Дункан А. Мелликамп. Динамика процессов и управление. 2-е изд., John Wiley & Sons, Inc, 2004, стр. 34-36.

[2] Раг, Уилсон Дж. и Джефф С. Шамма. «Исследование планирования прибыли». Automatica 36, no. 10 (Октябрь 2000): 1401-1425.

См. также

| (Simulink Control Design) | (Проект управления Simulink)

Связанные темы