You are on page 1of 12

Họ và tên: Nguyễn Trương Gia Huy

MSSV: 2010026

Lớ p: L10

THÍ NGHIỆM LÝ THUYẾT ĐIỀU KHIỂN NÂNG CAO

BÀI CHUẨN BỊ THÍ NGHIỆM 3: ĐIỀU KHIỂN VỊ TRÍ ĐỘNG CƠ DC DÙNG BỘ TỰ


CHỈNH STR (SELF – TUNING REGULATOR)

1. Thu thập dữ liệu đầu vào – đầu ra và nhận dạng hệ thống

Mô hình thu thậ p số liệu độ ng cơ

- Tạ o file Matlab m-file vớ i tên ‘motor_model_init.m’ để xuấ t tín hiệu uk, thu thậ p tín hiệu
ngõ ra yk và chương trình nhậ n dạ ng hà m truyền đố i tượ ng:

% Cai dat chu ky lay mau T va thoi gian mo phong Tstop


N = 1000;
T = 0.01;
Tstop = (N-1)*T;
% Tao chuoi tin hieu dien ap dau vao ngau nhien uk
tt = 0:T:T*(N-1);
u = zeros(1,N);
u(1:90) = 1;
u(150:200) = 0.9;
u(270:350) = 0.8;
u(400:440) = 1;
u(480:500) = 0.7;
u(700:750) = 1;
u(800:900) = 0.6;
uk = [tt; u]';
% Chay mo phong mo hinh simulink vua tao o Hinh 6
sim('motor_model_sl.mdl');
% Ve tin hieu dau vao - dau ra
plot(tt,u','r',tt,out.yk,'b')
legend('uk','out.yk')
% Nhan dang doi tuong voi he so quen lamda
Theta = rand(4,N);
P = 1e5*eye(4);
lamda = 0.96;
for i=3:N
PHI = [-out.yk(i-1) -out.yk(i-2) u(i-1) u(i-2)]';
e = out.yk(i) - PHI'*Theta(:,i-1);
L = P*PHI / (lamda + PHI'*P*PHI);
P = 1/lamda *(P - P*PHI*PHI'*P /(lamda + PHI'*P*PHI));
Theta(:,i) = Theta(:,i-1) + L*e;
end
% Ve do thi cac he so a1, a2, b1, b2 vua nhan dang
figure;
subplot(2,1,1);
plot(tt,Theta(1,:),'r',tt,Theta(2,:),':r');
legend('a_1','a_2')
grid on
subplot(2,1,2);
plot(tt,Theta(3,:),'b',tt,Theta(4,:),':b')
legend('b_1','b_2');
grid on
% Hien thi gia tri Theta cuoi cung
Theta(:,N)
Cà i đặ t thô ng số mô phỏ ng

Đồ thị uk và y k

Đồ thị a 1 , a2 , b1 , b2
- Giá trị theta thu đượ c vớ i:

Lamda = 0.8 Lamda = 0.85 Lamda = 0.9 Lamda = 0.96

Lamda = 0.975 Lamda = 0.985 Lamda = 0.995 Lamda = 1

Nhận xét: Từ nhữ ng trườ ng hợ p trên ta thấy lamda cà ng lớ n thì tố c độ hộ i tụ củ a theta


cà ng nhanh và sai số lớ n, tuy nhiên khi lamda tă ng đến lớ n hơn 0.98 thì tố c độ hộ i tụ củ a
theta sẽ chậ m lạ i và sai số nhỏ .

2. Xây dựng bộ điều khiển tự chỉnh STR theo phương pháp đặt cực

a) Phương pháp đặt cực miền liên tục

- Tạ o file mô hình Simulink


Hệ thố ng điều khiển tự chỉnh theo phương phá p đặ t cự c

Sơ đồ khố i ‘Identification’

% Ham nhan dang thong so doi tuong


function [P, Theta] = Uocluong(uk1,uk2,yk1,yk2,yk3,P_,Theta_)

lamda = 0.96;

PHI = [-yk2; -yk3; uk1; uk2];


e = yk1 - PHI'*Theta_;
L = P_*PHI / (lamda + PHI'*P_*PHI);
P = 1/lamda*(P_ - P_*(PHI)*PHI'*P_ / (lamda + PHI'*P_*PHI));
Theta = Theta_ + L*e;
end

Sơ đồ khố i ‘Self-Tuning Regulator’

% Ham tinh thong so bo dieu khien theo pp dat cuc lien tuc
function u = STR_pp1(Theta,e1,e2,e3,u1,u2)

T0 = 0.005;
xi = 0.99;
wn = 20;

% Gan lai thong so de thuan tien viec tinh toan


a1 = Theta(1);
a2 = Theta(2);
b1 = Theta(3);
b2 = Theta(4);

%Tinh thong so bo dieu khien


if(xi<1)
d1 = -2*exp(-xi*wn*T0)*cos(wn*T0*sqrt(1-xi*xi)); % xi<1
else
d1 = -2*exp(-xi*wn*T0)*cosh(wn*T0*sqrt(xi*xi-1)); % xi>1
end
d2 = exp(-2*xi*wn*T0);
r1 = (b1+b2)*(a1*b1*b2-a2*b1*b1-b2*b2);
s1 = a2*((b1+b2)*(a1*b2-a2*b1)+b2*(b1*d2-b2*d1-b2));
q2 = s1/r1;
gama = q2*b2/a2;
q1 = a2/b2 - q2*((b1/b2)-(a1/a2)+1);
q0 = (1/b1)*(d1+1-a1-gama);

% Luat dieu khien


u = q0*e1 + q1*e2 + q2*e3 + (1-gama)*u1 + gama*u2;
end

Cà i đặ t thô ng số Pulse Generator

Giá trị khở i tạ o củ a Theta và P

- Kết quả mô phỏ ng:


Đá p ứ ng ngõ ra vớ i ε =0.2 , wn =7

Đá p ứ ng ngõ ra vớ i ε =0.8 , w n=1 0

Đá p ứ ng ngõ ra vớ i ε =0.99 , w n=20

Đá p ứ ng ngõ ra vớ i ε =1 , wn=40
Nhận xét: Cặ p cự c quyết định cà ng xa trụ c ả o thì hệ thố ng có độ vọ t lố cà ng giả m và thờ i
gian xá c lậ p cà ng nhỏ => hệ thố ng cà ng ổ n định và đá p ứ ng tố t.

b) Phương pháp đặt cực miền rời rạc

- Ta thay đổ i cấ u hình sơ đồ khố i ‘Self – Tuning Regulator’ và code MATLAB Function củ a


nó .

% Ham tinh thong so bo dieu khien theo pp dat cuc lien tuc
function u = STR_pp1(wk,Theta,y0,y1,y2,u1,u2)

alpha = 0.05;
beta = 0.1;

% Gan lai thong so de thuan tien viec tinh toan


a1 = Theta(1);
a2 = Theta(2);
b1 = Theta(3);
b2 = Theta(4);

%Tinh thong so bo dieu khien


x1 = -4*alpha+1-a1;
x2 = 6*alpha*alpha+beta*beta+a1-a2;
x3 = 2*alpha*(2*alpha*alpha+beta*beta)-a2;
x4 = alpha*alpha*(alpha*alpha+beta*beta);
r0 = (x1+x2-x3+x4)/(b1+b2);
r1 = (b1+b2)*(a1*b1*b2-a2*b1*b1-b2*b2);
r2 = a1*b2*(b1*(x2-x3+x4)-b2*x1);
r3 = a2*b1*(b2*x1-b1*(x2-x3+x4));
r4 = (b1+b2)*(b1*x4+b2*(x3-x4));
r5 = b1*(b1*b1*x4+b1*b2*x3+b2*b2*x2)-b2*b2*b2*x1;
r6 = b1*b1*(a2*x3+a1*x4-a2*x4);
r7 = b2*(b1*(a1*x4+a2*x2-x4)-b2*(a2*x1+x4));
p1 = (r5-r1)/r1;
p2 = -r5/r1;
q0 = r0-((r2+r3+r4)/r1);
q1 = (r2+r3+r4-r6-r7)/r1;
q2 = (r6+r7)/r1;

% Luat dieu khien


u = r0*wk - q0*y0 - q1*y1 - q2*y2 - p1*u1 - p2*u2;
end
- Kết quả mô phỏ ng:

Đá p ứ ng ngõ ra vớ i α =0.05 , β=0.1


Đá p ứ ng ngõ ra vớ i α =0.4 , β =0.9

Đá p ứ ng ngõ ra vớ i α =0.9 , β=0.5

Đá p ứ ng ngõ ra vớ i α =2 , β=1

Nhận xét: Cặ p cự c quyết định nằ m trong vò ng trò n đơn vị và cà ng gầ n tâ m thì đá p ứ ng


có độ vọ t lố cà ng thấ p, thờ i gian xá c lậ p nhanh => hệ thố ng cà ng nhanh ổ n định và đá p
ứ ng tố t. Cò n cặ p cự c quyết định nằ m ngoà i vò ng trò n đơn vị thì hệ thố ng mấ t ổ n định.

c) Thay đổi mẫu số của hàm truyền


Sơ đồ Simulink thay đổ i mẫ u số hà m truyền đố i tượ ng

Đá p ứ ng ngõ ra khi thay đổ i mẫ u số hà m truyền đố i tượ ng

Nhận xét: Từ hình vẽ ta thấy bộ điều khiển tự chỉnh định có chấ t lượ ng rấ t tố t bở i vì
mặ c dù ta thay đổ i mẫ u số hà m truyền đố i tượ ng thì đá p ứ ng ngõ ra vẫ n bá m tố t theo
đượ c tín hiệu đặ t.

You might also like