- •Комплексна робота
- •1.Технічне завдання
- •2.Структурні схеми передатних функцій
- •3.Матриця станів
- •4.Математична модель установки та її перетворення у простір станів
- •Перетворення математичної моделі у дискретний час і її перевірка з допомогою зняття розгінних характеристик
- •5.Синтез многомірного пі- регулятора
- •6.Моделювання замкненої системи та оцінка якості перехідних процесів
- •7.Перетворення моделі регулятора у форму, відповідаючою її реалізації у програмному забезпеченні
- •8.Програма і проектування багатомірного регулятора мовою Matlab
- •9.Графіки
5.Синтез многомірного пі- регулятора
Об’єкт управління з ПІ- регулятором у неперервному вигляді
Рисунок 5.1 – Об’єкт управління з ПІ- регулятором в неперервному вигляді
;
K=[K1 K2]=LQ1(A1,B1,Q,R)
L= =LQ1 (
В дискретному вигляді:
Рисунок 5.2 – Об’єкт управління з ПІ- регулятором у дискретному вигляді
;
Для синтезу ПІ- регулятора одержані матриці мають бути розширені у вигляді:
де – кількість строк матриці С,
– розмірність матриці А,
функція zeros (n) формує масив нулів розміру n х n
Матриці параметрів регулятора розраховані за допомогою програми dlqr.
K=dlqr(A1,B1,Q,R);
L=dlqr(A1’,C1’,Q1,R1)’.
функція dlqr
та Р=
де Q,R,Q1,R1- вагові матриці,
Вагові матриці Q,R,Q1,R1 спочатку мають бути обрані одиничними(для зручності одиничну матрицю генерує програма eye). Після оцінки якості перехідного процесу матриці Q, R потрібно відкоригувати збільшивши відповідний елемент Q, якщо вихідна змінна має велике пере регулювання, і збільшивши R, якщо керуючий вплив перевищує обмеження.
6.Моделювання замкненої системи та оцінка якості перехідних процесів
При оцінці якості перехідних процесів треба, щоб відхилення управляючих впливів не перевищували 30% відкриття(припускаючи, що номінальному режиму роботи установки відповідає 70% відкриття). Максимальне збурення слід прийняти на рівні 10% номінального значення відповідного параметра. Припустиме відхилення регульованих змінних треба прийняти на рівні 20% номінального значення. Якщо якість не відповідає треба змінити вагові матриці і повторити розрахунки.
7.Перетворення моделі регулятора у форму, відповідаючою її реалізації у програмному забезпеченні
Після розрахунку треба сформувати матриці регулятора:
K1=K(:,m:n);
K2=(:,n+m:n+m);
L1=(m:n,:);
L2=L(n+1:n+m,:);
Ar=[ Ad-Bd*K1 -Bd*K2-L1 L1;
C -L2 L2;
zeros(m,n+m) zeros(m) eye(m)];
Br=[zeros(n+m,m);zeros(m);eye(m)];
Cr=[-K zeros(m)].
де Ar, Br, Cr – матриці регулятора
Та записати замкнену систему у вигляді, в якому вона буде реалізована у програмному забезпеченні
x=zeros(m+n,1);xr=zeros(n+m+m,1); u=zeros(m,1);
yy=[];uu=[];
f=eye(m,1); z=zeros(m,1);
for i=1:1000,
y=C*x; e=-z+y;
u=Cr*xr; xr=Ar*xr+Br*e;
y=C*x; x=Ad*x+Bd*(u+f);
yy=[yy; y'];
uu=[uu;u'];
end
8.Програма і проектування багатомірного регулятора мовою Matlab
A=[0 0 0 0 0 0;
0 -1/300 0 0 0 0;
0 1 -6/200 -12/40000 0 0;
0 0 1 0 0 0;
0 0 0 0 -1/180 0;
0 0 0 0 1/350 -1/350]
B=[1/1000 0;0.00028/300 0;0 0;0 0;0 0.00056/180;0 0]
C=[1 0 0 0 0 0;0 1 -12/200 0 0 1]
D=[0 0;0 0]
t=[0:999];
dt=0.1/max(abs(eig(A)))
[Ad Bd]=c2d(A,B,dt)
Ad =
1.0000 0 0 0 0 0
0 0.9809 -0.0000 0.0000 0 0
0 5.2402 0.8365 -0.0016 0 0
0 15.6298 5.2923 0.9953 0 0
0 0 0 0 0.9684 0
0 0 0 0 0.0161 0.9836
Bd =
0.0058 0
0.0000 0
0.0000 0
0.0000 0
0 0.0000
0 0.0000
Cd=C;
y1=dstep(Ad,Bd,Cd,D,1,1000);
figure(1)
subplot(221);plot(t,y1(:,1));grid;ylabel('y1,C');title('Razgon u1,1%');
subplot(223);plot(t,y1(:,2));grid;ylabel('y2,C');
y2=dstep(Ad,Bd,Cd,D,2,1000);
subplot(222);plot(t,y2(:,1));grid;ylabel('y1,C');title('Razgon u2,1%');
subplot(224);plot(t,y2(:,2));grid;ylabel('y2,C');
A1=[Ad zeros(6,2); Cd eye(2)];
A1 =
1.0000 0 0 0 0 0 0 0
0 0.9809 -0.0000 0.0000 0 0 0 0
0 5.2402 0.8365 -0.0016 0 0 0 0
0 15.6298 5.2923 0.9953 0 0 0 0
0 0 0 0 0.9684 0 0 0
0 0 0 0 0.0161 0.9836 0 0
1.0000 0 0 0 0 0 1.0000 0
0 1.0000 -0.0600 0 0 1.0000 0 1.0000
B1=[Bd;zeros(2)];
B1 =
0.0058 0
0.0000 0
0.0000 0
0.0000 0
0 0.0000
0 0.0000
0 0
0 0
C1=[zeros(2,6) eye(2)];
C1 =
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
Q=C'*[1 0;0 1]*C; %зміна матриці Q
Q=[eye(6) zeros(6,2);zeros(2,6) eye(2)];
R=eye(2);
R=1e2*[12 0;0 1]; %зміна матриці R
Q1=eye(8);
R1=eye(2);
K=dlqr(A1,B1,Q,R)
K =
18.7305 -52.5153 0.9902 0.0288 -0.0070 -0.0093 0.9474 0.0000
-0.0478 51.6744 -0.0311 0.0104 30.5718 60.4547 -0.0000 0.9997
L=dlqr(A1',C1',Q1,R1)'
L =
0.4221 -0.0000
0.0000 0.1184
0.0000 -2.1711
0.0000 529.6743
-0.0000 0.0589
-0.0000 0.2692
1.2439 -0.0000
0.0000 1.4000
K1=K(:,1:6);
K2=K(:,7:8);
L1=L(1:6,:);
L2=L(7:8,:);
Ar=[Ad-Bd*K1 -Bd*K2-L1 L1;C eye(2)-L2 L2;zeros(2,6) zeros(2) eye(2)];
Br=[zeros(6,2);zeros(2);eye(2)];
Cr=[-K zeros(2)];
Az=[Ad Bd*Cr;Br*Cd Ar];
Bf=[Bd;zeros(10,2)];
Bz=[zeros(6,2);Br];
Cz=[Cd zeros(2,10)];
x=zeros(6,1);xr=zeros(10,1);u=zeros(2,1);
yy=[];uu=[];
f=[-0.3;-0.3];
z=[2;60]; %зміна завдання
for i=1:1000,
y=C*x;e=-z+y;
u=Cr*xr;xr=Ar*xr+Br*e;
y=C*x;x=Ad*x+Bd*(u+f);
yy=[yy; y'];uu=[uu;u'];
end
x1=x;xr1=xr;u1=u;
figure(2)
subplot(221);plot(yy(:,1));grid;ylabel('y1,m');title('Razgon z1');
subplot(223);plot(yy(:,2));grid;ylabel('y2,C');
subplot(222);plot(uu(:,1));grid;ylabel('u1,кг\с');title('Razgon z2');
subplot(224);plot(uu(:,2));grid;ylabel('u2,кг\с');