7. Пилецкий, Лабеко. Синтез PID-регуляторов средствами Matlab и Simulink

Автор Виктор, Среда, марта 23, 2016, 23:25:32

« предыдущая тема - следующая тема »
Вниз

Виктор

Среда, марта 23, 2016, 23:25:32 Последнее редактирование: Среда, апреля 13, 2016, 03:25:35 от ran
Пилецкий Павел Евгеньевич, Лабеко Виктор Олегович
гр. 341 об
Научный руководитель доцент, к.т.н. Усенко В.И.
Синтез PID-регуляторов средствами Matlab и Simulink


В САУ всегда существует противоречие между качественной отработкой эталонного воздействия и быстрой компенсацией возмущений, так как один PID регулятор не может устранить это противоречие. В работе рассматриваются два способа улучшения показателей системы: создание ISA-PID регулятора и проектирование каскадной системы с PID регуляторами.

1. Проектирование ISA-PID регулятора для подавления возмущений с помощью PID Tuner.
Модель объекта управления задана в виде ПФ:

\[  G(s)=\frac{2(s+5)}{(s+1)^{3}} \]
%Модель объекта
G=zpk(-5,[-1 -1 -1],2)
G.InputName='u';
G.OutputName='y'
>> Zero/pole/gain from input "u" to output "y":
2 (s+5)
----------
(s+1)^3

Воспользуемся следующей командой в программе Matlab для проектирования  PI регулятора в параллельной форме для объекта G(s):
pidtool(G,'pi')
 Нажав кнопку Show parameters, получим значения коэффициентов регулятора и показатели качества системы (рис.1). Время переходного процесса составляет 10 с., а перерегулирование равно 8,07%, что вполне приемлемо для данного случая.
Теперь предположим, что на вход объекта подается единичное возмущение и главная цель PI - подавить это возмущение как можно быстрее. Так как уменьшение низкочастотного возмущения обратно пропорционально интегральному коэффициенту Ki, то максимизация этого коэффициента может дать хороший результат.
Переключим Response на Input disturbance rejection. Максимальное отклонение возмущения составляет 4,5 и оно становится меньше 0,1 примерно через 7 с. (рис.2). Переместим вправо движок времени установления для увеличения скорости отклика на возмущение. Коэффициент Ki вначале будет  расти, а затем уменьшаться. Добьемся значений коэффициентов Kp=0,15196 и Ki=0,05148 (рис.3).


Рис.1. Отклик системы с PI на единичную функцию


Рис.2. Отклик системы с PI на единичное возмущение


Рис.3. Улучшенный отклик системы на единичное возмущение

Экспортируем спроектированный PI в Workspace нажатием второй кнопки строки инструментов (рис.4).

Рис.4. Экспорт PI в Workspace

Обозначим вход и выход регулятора:
C2.InputName='e'
C2.OutputName='u'
disp('PI C2'),C2
>> PI C2
Continuous-time PI controller in parallel form, from input "e" to output "u":
           1
Kp + Ki * ---
           s
With Kp = 0.152, Ki = 0.0515

Расширим PID регулятор до ISA-PID регулятора. Он улучшает качество переходной характеристики с использованием дополни-тельного параметра b, для чего используется предшествующий фильтр с экспортированными коэффициентами и с  ПФ вида:
\[ F(s)=\frac{bK_{p}s+K_{i}}{K_{p}s+K_{i}} \]

Такой контроллер имеет два входа (r и y) и один выход (u). Структурная схема системы с ISA-PID приведена на рис.5:

Рис.5. Структурная схема СУ с ISA-PID регулятором

Параметр b является действительным числом между 0 и 1. При его уменьшении перерегулирование уменьшается. В этом примере выбрано b=0,9.
%Следующий код конструирует ISA-PID регулятор
%из фильтра F и регулятора C
disp('ПФ фильтра')
b=0.9;
F=tf([b*C2.Kp C2.Ki],[C2.Kp C2.Ki]);
F.InputName='r';
F.OutputName='uf'
disp('Sum')
Sum=sumblk('e','uf','y','+-')
ISAPID=connect(C2,F,Sum,{'r','y'},'u')
disp('ПФ ISAPID')
tf(ISAPID)
>> ПФ ISAPID
 Transfer function from input "r" to output "u":
0.1368 s^2 + 0.09782 s + 0.01744
--------------------------------
         s^2 + 0.3388 s
Transfer function from input "y" to output "u":
-0.152 s - 0.05148
------------------
        s

Проведем сравнение откликов
%Сравнение откликов системы с PID и ISAPID
disp('TF модель замкнутой системы с PID')
T1=feedback(G*C2,1)
disp('TF T2')
T2=minreal(connect(ISAPID,G,{'r','u'},'y'))
figure(1)
step(T1,'r-',T2(1),'b.',10),grid
legend('PID','ISAPID')
disp('TF T3')
T3=feedback(G,C2)
figure(2)
step(T3,'r-',T2(2),'b.'),grid


Рис.6. ПХ  СУ с PID и ISA-PID регуляторами


Рис.7. Реакция на единичное возмущение  СУ с PID и ISA-PID регуляторами

2. Проектирование каскадной системы с PID регулятором.
Каскадное управление используется для быстрого подавления возмущения, еще до того, как оно дойдет до других частей объекта. Простейшая система каскадного управления содержит два контура управления (внутренний и внешний), как показано на рис. 8.
Регулятор С1 во внешнем контуре является первичным и служит для регулирования управляемого параметра y1 с помощью уставки внутреннего контура. Регулятор С2 во внутреннем контуре является вторичным. Он подавляет возмущение локально еще до того, как оно распространится до P1. При этом внутренний контур должен реагировать намного быстрее, чем внешний. В данном примере мы синтезируем ПИ регулятор в одно-контурной системе и каскадную схему с двумя PI регуляторами. Затем сравним реакцию двух систем как на задающее воздействие, так и на возмущение.[/size]

Рис.8. Каскадная СУ

Используя команду pidtune, синтезируем PI регулятор стандартной форме для объекта\[ P(s)=P_{1}(s)P_{2}(s)=\frac{10}{(s+2)(s+4)}\cdot\frac{5}{(s+2)^{2}} \]Желаемая полоса пропускания разомкнутого контура равна 0,2 рад/с, что грубо соответствует времени отклика в 10 с. Вначале проектируем внутренний регулятор С2, а затем внешний С1. Выберем полосу пропускания внутреннего контура 2 рад/с, чтобы отклик внутреннего контура был более быстрым, чем внешнего. Ниже приведена программа для решения поставленной задачи.
clc
P2 = zpk([],[-2 -4],10);
P1 = zpk([],[-1 -1],5);
P = P1*P2;
%The desired open loop bandwidth is 0.2 rad/sec
pidtool(P,'pi');
% Use a PID or PIDSTD object to define the de-sired
%controller structure
disp('Controller C ')
C = pidstd(1,1);
% Use pidtune options to specify performance
%and robustness targets
options = pidtuneOptions('CrossoverFrequency',0.2);
% Design PI controller
C = pidtune(P,C,options);
C
%Design inner loop controller C2
%with open loop bandwidth at 2 rad/sec.
C2 = pidtune(P2,pidstd(1,1),...
    pidtuneOptions('CrossoverFrequency',2));
disp('Inner loop controller C2')
C2
%Design outer loop controller C1
%with the same bandwidth as the single loop sys-tem
% Inner loop system when the control loop is closed first
clsys = feedback(P2*C2,1);
% Plant seen by the outer loop controller C1 is clsys*P1
C1 = pidtune(clsys*P1,pidstd(1,1),pidtuneOptions('CrossoverFrequency',0.2));
disp('Outer loop controller C1')
C1
%First, plot the step reference tracking
%responses for both control systems
% single loop system for reference tracking
sys1 = feedback(P*C,1);
set(sys1,'Name','Single Loop');
% cascade system for reference tracking
sys2 = feedback(clsys*P1*C1,1);
set(sys2,'Name','Cascade');
% plot step response
figure(1);step(sys1,'r',sys2,'b'),grid
legend('show','location','southeast')
title('Reference Tracking')
%Secondly, plot the step disturbance
%rejection responses of d2 for both control sys-tems.
% single loop system for rejecting d2
sysd1 = feedback(P1,P2*C);
set(sysd1,'Name','Single Loop');
% cascade system for rejecting d2
sysd2 = P1/(1+P2*C2+P2*P1*C1*C2);
set(sysd2,'Name','Cascade');
% plot step response
figure(2);
step(sysd1,'r',sysd2,'b'),grid
legend('show')
title('Disturbance Rejection')
Controller C

C =
 
             1      1
  Kp * (1 + ---- * ---)
             Ti     s

  with Kp = 0.00349, Ti = 0.104
 
Continuous-time PI controller in standard form

Inner loop controller C2
C2 =
             1      1
  Kp * (1 + ---- * ---)
             Ti     s
with Kp = 0.839, Ti = 0.443
Continuous-time PI controller in standard form
Outer loop controller C1
C1 =
             1      1
  Kp * (1 + ---- * ---)
             Ti     s
with Kp = 2.08e-05, Ti = 0.0005
Continuous-time PI controller in standard form


Рис.9. Настройка ПИ регулятора


Рис.10. Реакция двух систем на задающее воздействие


Рис.11. Реакция двух систем на единичное возмущение  

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

ran

Да когда же он долетит?!

knoppix

#2
Среда, апреля 06, 2016, 23:25:07 Последнее редактирование: Среда, апреля 06, 2016, 23:28:55 от knoppix
Долетел!
Наблюдение небольшое по работе конференции, правка поста не поднимает тему вверх, а значит может пройти для участников совсем незамеченным.
Амурский Государственный Университет  - 2010 - Специалист
Harbin Institute of Technology - 2016 - M.Sc.Eng
Главный инженер-программист АСУ ТП

ran

Может быть, я проглядел, но все-таки. А что такое ISA?

PAVEL

Если рассматривать ISA как аббревиатуру, то это International Society of Automation (Международное общество автоматизации).
В данном докладе ISA-PID это Advanced PID control (расширенный PID регулятор).
Расширение заключается в добавлении фильтра, который содержит коррекции по производной и весу заданного значения.
Коррекция по производной (с) в данном докладе не рассматривается и равна 0.

Вверх