Tải bản đầy đủ (.pdf) (8 trang)

ĐỀ THI CÁC HỆ ĐIỀU KHIỂN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (750.49 KB, 8 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CƠ KHÍ
BỘ MÔN CƠ ĐIỆN TỬ

ĐỀ THI CUỐI HỌC KỲ
CÁC HỆ ĐIỀU KHIỂN 1
Ngày thi: 05/04/2012
Thời gian thi: 60 phút

Sinh viên được sử dụng tài liệu và máy vi tính
Câu 1: (3đ)
Hãy cho biết sự khác nhau giữa hệ thống rời rạc và hệ thống liên tục. Việc điều khiển
PID rời rạc và điều khiển PID liên tục cho động cơ có gì khác và giống nhau? Nêu
phương pháp biến đổi bộ điều khiển PID từ miền liên tục sang miền rời rạc?
Câu 2: (3đ) Cho sơ đồ như hình vẽ
a. Hãy viết biểu thức động lực học của hệ thống
trên.
b. Đặt x1  y
x2  y
x3  x
x4  x , hãy biểu
diễn phương trình động lực học của hệ thống
trên bằng phương pháp biến trạng thái.
c. Đề xuất phương án thiết kế bộ điều khiển cho hệ
thống trên sao cho dao động của hệ sau khi qua
vị trí gờ A tắt dần càng nhanh càng tốt.

Câu 3: (4đ) Cho hệ thống con lắc ngược như hình vẽ:

1. Hãy viết phương trình chuyển động của con lắc ngược trên. Cho góc hợp bởi con
lắc và trục thẳng đứng là .


2. Sinh viên tự chọn tín hiệu đầu ra u cho bộ điều khiển, hãy thiết kế bộ điều khiển
PID để điều khiển con lắc ngược trên giữ vị trí vuông góc 900 so với phương
ngang.
Chủ nhiệm bộ môn

Giảng viên ra đề thi

PGS.TS. Nguyễn Tấn Tiến

TS. Võ Tường Quân


ĐÁP ÁN ĐỀ THI
MÔN: CÁC HỆ ĐIỀU KHIỂN 1
Ngày thi: 05/04/2012
Thời gian: 60 phút
s

Câu 1: (3đ)
Hãy cho biết sự khác nhau giữa hệ thống rời rạc và hệ thống liên tục. Việc điều khiển PID rời rạc và
điều khiển PID liên tục cho động cơ có gì khác và giống nhau? Nêu phương pháp biến đổi bộ điều
khiển PID từ miền liên tục sang miền rời rạc?
Sự khác nhau giữa hệ thống rời rạc và hệ thống liên tục (1đ)
- Hệ thống rời rạc: hoạt động trong miền thời gian, có thể phản ánh đúng sự hoạt động của hệ
thực tế, có thể áp dụng trong việc điều khiển hoạt động của hệ thực.
- Hệ thống liên tục: hoạt động trong miền tần số, phản ánh hoạt động của hệ thống trên mặt lý
thuyết, không thể áp dụng trong việc điều khiển hoạt động của hệ thực.
Việc điều khiển PID rời rạc và điều khiển PID liên tục cho động cơ có gì khác và giống nhau (1đ)
- Giống nhau: đều áp dụng thuật toán PID trong điều khiển hệ thống.
- Khác nhau: Tương tự như phần trên đã trình bày, đó là miền hoạt động và phạm vi áp dụng khác

nhau (miền thời gian – miền tần số)
Phương pháp biến đổi bộ điều khiển PID từ miền liên tục sang miền rời rạc: sử dụng hàm ‘tustin’ và
đặt thời gian lấy mẫu hợp lý.
Câu 2: (3đ)
a. Biểu thức động lực học của hệ thống (1đ)
b
b
k
k
x 
y  s x  s y
(1)
m2
m2
m2
m2
b
b
(k  k w )
k
f (t )
x 
x 
y  s
x s y
(2)
m1
m1
m1
m1

m1
b. Đặt x1  y
x2  y
x3  x
x4  x , hãy biểu diễn phương trình động lực học của hệ thống
y 

trên bằng phương pháp biến trạng thái (1đ)
 x1  x2

 x 2   k s x1  b x2  k s x3  b x4
m2
m2
m2
m2


 x3  x4

ks
(k  k w )
b
b
f (t )
x1 
x2  s
x3 
x4 
 x 4  
m1

m1
m1
m1
m1


c. Đề xuất phương án thiết kế bộ điều khiển cho hệ thống trên sao cho dao động của hệ sau khi qua
vị trí gờ A tắt dần càng nhanh càng tốt (1đ)
Có thể sử dụng các thuật toán sau (Sinh viên nêu tối thiểu hai phương án, mỗi phương án 0.5đ)
- PID
- Fuzzy
- Fuzzy-PID
- Adaptive control….
Câu 3: (4đ)
a. Phương trình chuyển động của con lắc ngược trên (2đ)
M  mx  mlcos   ml 2 sin   F
mlx cos   ml 2  mgl sin   0

b. Đầu ra của bộ điều khiển thường được chọn là lực F
Áp dụng bài toán PID để tìm ra gía trị của F  Ghép công thức của PID vào hệ thống (1đ)


-

Thực hiện biến đổi liên tục sang rời rạc. (0.5đ)
Thực hiện đặt biến trạng thái để giải phương trình chuyển động của con lắc (0.5đ)


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CƠ KHÍ

BỘ MÔN CƠ ĐIỆN TỬ

ĐỀ THI CUỐI HỌC KỲ
CÁC HỆ ĐIỀU KHIỂN 2
Ngày thi: 07/06/2012
Thời gian thi: 90 phút

Sinh viên được sử dụng tài liệu và máy vi tính
Câu 1: (1đ)
Hãy cho biết các bước khi sử dụng phương pháp giản đồ Bode để nhận dạng hệ thống?
Câu 2: (3đ) Cho sơ đồ tay máy như hình vẽ

Giả sử chúng ta muốn điều khiển góc quay mong muốn của tay máy như sau:
1d  g1 sin(2ft ) và  2d  g 2 sin(2ft   )
Sử dụng bộ điều khiển PID, hãy viết biểu thức biểu diễn luật computed torque cho tay
máy trên. (Lưu ý: sinh viên phải viết đầy đủ các bước thực hiện).
Câu 3: (2đ)
a. Hãy cho một ví dụ cụ thể có sử dụng phương pháp LSA để ước lượng các thông
số của hệ thống.
b. Hãy thiết kế bộ điều khiển cho hệ thống đã ước lượng ở câu a.
Câu 4: (2đ) Cho một hệ Mass-Spring-Damper phi tuyến có phương trình như sau:
function dxdt = plant(t, x)
global coef_damping coef_spr u tsamp i
t=tsamp*i;
coef_damping=0.5-0.475*sin(2*pi*t);
coef_spr=1+0.15*cos(2*pi*0.5*t);
dxdt(1,1)=x(2);
dxdt(2,1)= -20*coef_spr*x(1) + coef_damping*x(2) + u;
a. Hãy đề xuất bộ điều khiển nhằm điều khiển khối m của hệ trên đạt được vị trí


mong muốn.
b. Viết đoạn chương trình thể hiện bộ điều khiển đã đề xuất ở câu a.
Câu 5: (2đ) Cho đoạn chương trình sau:
………………
kp = 2.8;
ki = 10.5;
kd = 10.5;
num_controller = [kd kp ki];

Lưu ý: Đề thi có 2 trang
1


den_controller = [0 1 1];
[numd_controller,dend_controller] = …
...c2dm(num_controller,den_controller,ts,'tustin');
b2_c = numd_controller(1);
b1_c = numd_controller(2);
b0_c = numd_controller(3);
a1_c = dend_controller(2);
a2_c = dend_controller(3);
yd(1) = 0; yd(2) = 0; e(1) = 0; e(2) = 0; u(1) = 0; u(2) = 0;
position(1) = 0;
position(2) = 0;
for i = 2:Run_time
time(i) = i*ts;
e(i) = ref - position(i);
u(i) = -a1_c*u(i-1) -a2_c*u(i-2) - b0_c*e(i) +
b1_c*e(i-1) + b2_c*e(i-2);
control_input = u(i);

[t,y] = ode45(@plant,tspan,x0);
x0 = y(length(y),:);
T = [T;i*tsamp];
X = [X;x0];
position(i) = X(i-2,1);
end
……………

a. Hãy chỉ ra các lỗi của đoạn chương trình trên và sửa lại cho đúng.
b. Nếu sử dụng bộ điều khiển Dahlin để thay thế bộ điều khiển PID trong điều khiển
cho hệ thống trên thì phải thực hiện như thế nào?
Chủ nhiệm bộ môn

Giảng viên ra đề thi

PGS.TS. Nguyễn Tấn Tiến

TS. Võ Tường Quân

2


ĐÁP ÁN ĐỀ THI
MÔN: CÁC HỆ ĐIỀU KHIỂN 2
Ngày thi: 07/06/2012
Thời gian: 90 phút
Câu 1: (1đ)
Các bước khi sử dụng phương pháp giản đồ Bode để nhận dạng hệ thống:
+ Thu thập dữ liệu thô Input/Output (bằng các phương pháp đo)
+ Thực hiện xử lý dữ liệu thô (có thể sử dụng hàm dtrend) và lọc nhiễu dữ liệu thô để có được dữ liệu

hoàn chỉnh của Input/Output.
+ Tìm vị trí, giá trị các đỉnh cực đại hoặc cực tiểu của tín hiệu Input/Output
+ Tính toán giá trị của tần số và độ lệch pha (Phase) theo công thức
+ Tính toán giá trị độ lợi (Gain) theo công thức với đơn vị là db.
+ Vẽ đồ thị Bode tương ứng với n cặp giá trị Input/Output
+ Xác định Gain Marin và Phase Marin
+ Xác định hàm truyền hệ thống.
Câu 2: (3đ)
+ Viết biểu thức động học của tay máy (1đ)
+ Viết được luật computed torque dựa vào phương trình error (1đ)
+ Viết được biểu thức cuối cùng của luật computed torque control (1đ)
  M (qd  K d  e  K p  e  K I   )  N với (  e)
Câu 3: (2đ)
a. Cho một ví dụ cụ thể có sử dụng phương pháp LSA để ước lượng các thông số của hệ thống.
Sinh viên có thể đưa ra một hệ phi tuyến/tuyến tính bậc 2 bất kỳ và đưa ra công thức tổng quát của hệ
bậc 2 là:
b0  b1Z 1  b2 Z 2
y k  
u k 
1  a1Z 1  a2 Z 2

y  k   a1 y  k  1  a2 y  k  2   b0u  k   b1u  k  1  b2u  k  2 
Sử dụng phương pháp LSA để ước lượng giá trị của các thông số: a1 , a2 , b0 , b1 , b2 (1)
b. Thiết kế bộ điều khiển cho hệ thống đã ước lượng ở câu a.
Sinh viên có thể sử dụng bất kỳ bộ điều khiển nào (vd: PID, Apdative control, Fuzzy,…) và phải viết
được công thức đầu ra u của bộ điều khiển (1đ).

Câu 4: (2đ)
a. Hãy đề xuất bộ điều khiển nhằm điều khiển khối m của hệ trên đạt được vị trí mong muốn.
Vì đây là một hệ phi tuyến nên bộ điều khiển khá tốt có thể được sử dụng để điều khiển hệ là:

Adaptive control hoặc Fuzzy,… (1đ)
b. Viết đoạn chương trình
Ví dụ: đoạn chương trình sử dụng Dahlin controller
tsamp = 0.01;
x0=[0 0];
tspan = [0 tsamp];
ThetaHat = [0 0 0 0 0]';
Phi = [0 0 0 0 0]';
Up = 10; % Gia tri vi du
initP = [Up 0 0 0 0;0 Up 0 0 0;0 0 Up 0 0;0 0 0 Up 0;0 0 0 0 Up];
y1Open = 0;
y2Open = 0;
u0Open = 0;
u1Open = 0;
u2Open = 0;

3


u0Close = 0;
u1Close = 0;
u2Close = 0;
y1Close = 0;
y2Close = 0;
y3Close = 0;
error1_Close = 0;
error2_Close = 0;
beta_select = 0.32; % Gia tri vi du
yout = 0;
Sum_error = 0;

for i = 1:i_end_2
i
ref(i) = 3;
% Uoc luong bang LSA
y = yout;
Theta = ThetaHat+initP*Phi*(y-Phi'*ThetaHat)/(1+Phi'*initP*Phi);
P = initP-initP*Phi*Phi'*initP/(1+Phi'*initP*Phi);
initP = P;
ThetaHat = Theta;
aa1(i) = Theta(1);
aa2(i) = Theta(2);
bb0(i) = Theta(3);
bb1(i) = Theta(4);
bb2(i) = Theta(5);
y_estimate(i) = Phi'*ThetaHat;
% Thiet ke bo dieu khien
if (bb0(i)~=0) || (bb1(i)~=0) || (bb2(i)~=0)
value1 = (1-exp(-beta_select*tsamp))/(bb0(i) + bb1(i) + bb2(i));
value2 = [1 value1 -aa1(i)*value1 -aa2(i)*value1];
error_Close = ref(i)-y3Close;
u3Close = value2*[u1Close error_Close error1_Close error2_Close]';
value3 = [aa1(i) aa2(i) bb0(i) bb1(i) bb2(i)];
y3Close = value3*[y1Close y2Close u0Close u1Close u2Close]';
yClose(i) = y3Close;
error2_Close = error1_Close;
error1_Close = error_Close;
error_save(i,:) = error_Close;
u2Close = u1Close;
u1Close = u0Close;
u0Close = u3Close;

y2Close = y1Close;
y1Close = y3Close;
else
yClose(i) = 0;
end
if (i==1)
yClose(i)= 4.25; % Gia tri vi du
end
control_input = ………; % Tuy chon gia tri va cac tinh toan
% Phan dong luc hoc cua robot
s_t = (i-1)*delta_t;
e_t = i*delta_t;
tspan = [s_t e_t];
x_tmp = size(x0,1);
x = x0(x_tmp,:);
%

Giai phuong trinh dong luc hoc cua he
[t,y] = ode45(@ptDLH,[tspan],x);
y_tmp = size(y,1);
x0(x_tmp+1,:) = y(y_tmp,:);
% Cap nhat gia tri
yout = x0(i,1);
y3Close= yout;

4


y2Open = y1Open;
y1Open = yout;

y_real(i,:) = y1Open;
u2Open = u1Open;
u1Open = yPID_max;
Phi = [y1Open y2Open u0Open u1Open u2Open]';
end

Câu 5: (2đ)
a. Đoạn chương trình trên có các dòng bị lỗi sau: (1đ)
+
den_controller = [0 1 1];  den_controller = [0 1 0];
+
b2_c = numd_controller(1);  b2_c = numd_controller(3);
+
b0_c = numd_controller(3);  b0_c = numd_controller(1);
+
for i = 2:Run_time  for i = 3:Run_time
+
e(i) = ref - position(i);  e(i) = ref - position(i-1);
+
u(i) = -a1_c*u(i-1) -a2_c*u(i-2) - b0_c*e(i) +
b1_c*e(i-1) + b2_c*e(i-2);
 u(i) = -a1_c*u(i-1) -a2_c*u(i-2) + b0_c*e(i) +
b1_c*e(i-1) + b2_c*e(i-2);
b. Nếu sử dụng bộ điều khiển Dahlin để thay thế bộ điều khiển PID trong điều khiển cho hệ thống

trên thì phải thực hiện như sau (1đ)
Cần thay đổi công thức tính gía trị u và bổ sung thêm một số phần tính toán liên quan của thuật
toán Dahlin vào chương trình (Ví dụ: giá trị hội tu ).

5




×