Vấn đề đặt ra là tìm thuật toán điều khiển cho khớp thứ 2 để lắc đưaacrobot từ điểm ban đầu bất kỳ lên vị trí thẳng đứng và điều khiểnduy trì nó ở trạng thái thẳng đứng cân bằng không ổn
Trang 1CHƯƠNG I: TỔNG QUAN VỀ ACROBOT
Acrobot là rô bốt phẳng, hai bậc tự do nhưng chỉ có khớp thứhai được điều khiển như hình vẽ 1 Hệ phương trình động lực họccủa acrobot là một hệ phi tuyến có hai bậc tự do và một đầu vào Vấn
đề đặt ra là tìm thuật toán điều khiển cho khớp thứ 2 để lắc đưaacrobot từ điểm ban đầu bất kỳ lên vị trí thẳng đứng và điều khiểnduy trì nó ở trạng thái thẳng đứng cân bằng không ổn định này
Hình 1.1: Sơ đồ cấu trúc Acrobot
Trang 2CHƯƠNG II MÔ HÌNH HÓA HỆ THỐNG ACROBOT 2.1 Hệ thống Acrobot
Sơ đồ cấu trúc của acrobot [3] được thể hiện như hình vẽ 2.1
Hình 2.1 Hệ thống AcrobotTrong đó thông số cho bởi bảng sau:
Than
h 2
Than
h 1 l
c 1
Trang 3
3 4 3 4
x x f f f
00
g g g
2.2 Luật điều khiển cho acrobot
Hệ thống có bốn điểm cân bằng xác định bởi:
Trang 4.3
x c c + + c − g c c + x = (2.5)
Phương trình (2.5) mô tả chuyển động của con lắc với độ dài
l chịu ảnh hưởng của trọng lực ĝ, trong đó l = (c 1 +c 2 +2c 3 )/(c 4 +c 5) và
Tại đó k p , k d và k e là những hằng số dương Chú ý V là hàm
số bán xác định dương Đạo hàm (2.6) theo quỹ đạo phương trình(2.2) ta có: V. = k x xp 2 4+ k x xd 4 .4+ keÊ( ) x x u4
Trang 52.3 Chương trình mô phỏng acrobot trong không gian 2 chiều
function [sys, x0, str, ts]=animdemo(t, x, u, flag)
l1 = 2;
l2 = 4;
global xP1 xP2 yP1 yP2 R P xLink1 xLink2 yLink1 yLink2 xCenter yCenter
global Link1 Link2 Center
if any(get(0, 'Children' )==AnimDemoFigure)
set(0, 'CurrentFigure' , AnimDemoFigure);
xP1new = l1*cos(u(1)+pi/2) + P0(1);
yP1new = l1*sin(u(1)+pi/2) + P0(2);
R = [cos(u(1)+pi/2) sin(u(1)+pi/2);-sin(u(1)+pi/2) cos(u(1)+pi/2)];
P = [l2*cos(u(2)) l2*sin(u(2))]*R+[xP1new yP1new];
xP2new = P(1);
yP2new = P(2);
xLink1 = [P0(1) xP1new];
yLink1 = [P0(2) yP1new];
xLink2 = [xP1new xP2new];
yLink2 = [yP1new yP2new];
n = 100;
t = 0:2*pi/n:2*pi*(1-1/n);
Trang 6xCenter = xP1new + 02*cos(t);
yCenter = yP1new + 02*sin(t); set(Link1, 'XData' , xLink1, 'YData' , yLink1 ); set(Link2, 'XData' , xLink2, 'YData' , yLink2 ); set(Center, 'XData' ,xCenter, 'YData' ,yCenter); drawnow
Trang 7Link1 =plot(xLink1, yLink1, 'b' , 'LineWidth' ,6);
Link2 =plot(xLink2, yLink2, 'r' , 'LineWidth' ,3);
Center = plot(xCenter,yCenter, 'g' , 'LineWidth' ,5)
Trang 8CHƯƠNG III: THIẾT KẾ BỘ ĐIỀU KHIỂN 3.1 Tuyến tính hóa mô hình tại điểm cân bằng không ổn định
Hình 3.1 Điểm cân bằng không ổn định của hệ thốngTại điểm cân bằng không ổn định phía trên ta có:
8
Trang 91 2
20
q q
Các bước thiết kế bộ điều khiển:
- Bước 1: Chọn trước các điểm cực
- Bước 2: Xây dựng phương trình đặc tính
Trang 10
- Bước 3: Tìm K
3.2.2 Ứng dụng Matlab tìm bộ điều khiển cho acrobot
Ta có mô hình trạng thái xấp xỉ của acrobot xung quanh điểm cân bằng không ổn định là:
x J x J u & = x + u (3.2)
Chọn bộ điểm cực mong muốn của hệ kín là: p=[-4 -4 -4 -4]
Sử dụng lệnh acker trong Matlab ta có thể tìm được K:
K=acker(A,b,p)
Ta có bộ điều khiển dạng như sau:
K = [k1 k2 k3 k4]
3.3 Bộ điều khiển LQR
3.3.1 Phương trình Riccati đại số
Để đảm bảo hệ thống ổn định tại gốc tọa độ và có khả năngchống ảnh hưởng của nhiễu, một hàm mục tiêu được lựa chọn như sau:
Trong đó Q và R là các ma trận đối xứng xác định dương Chọn luật
điều khiển hồi tiếp trạng thái u = -Kx, K là véc tơ hằng số
0
1 2
Trang 11( )
0
1 2
Trang 12CHƯƠNG IV: MÔ PHỎNG 4.1 Bài toán 1
Trong phần này chúng tôi sẽ thiết kế bộ điều khiển phản hồitrạng thái, bộ điều khiển phi tuyến (2.11) cho acrobot với các thông
số đã cho trong bài báo [3]
Bảng 1: Các thông số của hệ thống Acrobot
Trang 13x4
Trang 14Dùng lệnh[ K P e , , ] = lqr A b Q R ( , , , ) ta thu được:
4.1.3 Bộ điều khiển phi tuyến
Dựa vào các thông số (4.1) chúng tôi thiết kế bộ điều khiểnphi tuyến theo luật (2.11) Trong quá trình mô phỏng, chúng tôi sửdụng một khâu chuyển mạch Khi hệ thống bắt đầu làm việc bộ điềukhiển phi tuyến sẽ được kết nối với hệ thống để điều khiển Khi màacrobot đạt tới vùng lân cận của điểm cân bằng không ổn định thì
-6 -4 -2 0 2 4 6 8 10
x4
Trang 15khâu chuyển mạch sẽ ngắt bộ điều khiển phi tuyến ra khỏi hệ thống
và kết nối bộ điều khiển phản hồi trạng thái với hệ thống
Chúng tôi sẽ mô phỏng với điều kiện đầu ở gần điểm cânbằng ổn định Đây là vị trí gần như là xa điểm cân bằng không ổn
định nhất Điều kiện đầu như sau: x1= − π , x2= 0, x3= 0, x4= 0.1
-8 -6 -4 -2 0 2 4 6 8 10
-15 -10 -5 0 5 10 15 20
x4
Trang 16số cho mô hình toán của nó Sau đó sẽ thiết kế bộ điều khiển và môphỏng kết quả trong Matlab/Simulink
Bảng 2: Các thông số của Acrobot thực
p=[-4 -4 -5 -5];
K=acker(A,b,p)
Ta tìm được bộ điều khiển K = [-0.7061 -0.2059 -0.2079 -0.1368]
-5 -4 -3 -2 -1 0 1
x2
Trang 17Hệ thống đạt tới trạng thái ổn định sau khoảng 3 giây.
4.2.2 Khảo sát khi có nhiễu tác động
Mô phỏng với điều kiện đầu x1 = − π , x2 = 0, x3 = 0, x4 = 0.1
Ư
Chúng ta có thể thấy với mô hình toán này, chỉ cần bộ điềukhiển phản hồi trạng thái là đủ để đưa acrobot về trạng thái cân bằngkhông ổn định từ bất kỳ trạng thái ban đầu nào
-4 -2 0 2 4 6 8 10 12 14
-30 -20 -10 0 10 20 30 40
x4
Trang 18CHƯƠNG V: GIẢI PHÁP THIẾT KẾ MÔ HÌNH THỰC CHO
ACROBOT 5.1 Thiết kế hệ thống điều khiển Acrobot
Để phục vụ cho việc nghiên cứu tôi đã thiết kế và chế tạo hệthống điều khiển Acrobot gồm có hai khớp, trong đó chỉ có khớp thứ
2 được điều khiển để lắc đưa Acrobot về vị trí cân bằng
5.2 Mô hình thí nghiệm Acrobot
Cấu trúc mô hình thí nghiệm Acrobot gồm:
- Máy tính xách tay: Core i5, 1,8Hz, Ram 4G – Phần mềmMatlab 2013a
- Card điều khiển Arduino
- Động cơ DC Encoder 334 xung
Trang 195.2.6 Thiết kế bộ điều khiển PI cho Acrobot
Sử dụng máy tính và Card Ardiuno điều khiển Acrobot.Các thông số được chọn bằng phương pháp thực nghiệm
Trang 20CHƯƠNG 6: KẾT LUẬN VÀ KIẾN NGHỊ 6.1 Kết luận
- Viết được chương trình mô phỏng acrobot trong không gian
2 chiều
- Thiết kế, mô phỏng và kiểm tra được các kết quả trong bàibáo [3] là đúng và chính xác
- Thiết kế và chế tạo được một mô hình acrobot thực
- Thử nghiệm các thuật toán để điều khiển trên acrobot thực
- Điều khiển được Acrobot ở lân cận vị trí cân bằng về vị trícân bằng
6.2 Kiến nghị
Ứng dụng thuật toán điều khiển Acrobot để điều khiểncác robot 2 bậc 3 bậc tự do
20
Trang 21TÀI LIỆU THAM KHẢO
1 Nguyễn Thương Ngô (2006) “Lý thuyết điều khiển tự động thông thường và hiện đại − Quyển 3: Hệ phi tuyến & Hệ ngẫu nhiên”,
Nhà xuất bản khoa học và kỹ thuật
2 Nguyễn Thương Ngô (2006) “Lý thuyết điều khiển tự động thông thường và hiện đại − Quyển 4: Hệ tối ưu & Hệ thích nghi”, Nhà xuất
bản khoa học và kỹ thuật
3 Arun D Mahindrakar and Ravi N Bnavar (2005) “A swing-up of
the acrobot based on a simple pendulum strategy”, International
Journal of Control, ( 6), 424 - 429.
4 R'emi Coulom CORTEX, Loria Nancy (2004) “High-AccuracyValue-Function Approximation with Neural Networks Applied to the
Acrobot”, European Symposium on Artificial Neural Networks, 28-30.
5 R M Murray and J Hauser (1991) “A case study in approximate
linearization: the acrobot example”, American control conference,
1-40
6 S A Bortoff (1992) “Pseudolinearization Using Spline FunctionsWith Application to the Acrobot” Ph.D thesis, Dept of Electricaland Computer Engineering, University of Illinois at Urbana- Champaign
7 Sam Chau Duong, Hiroshi Kinjo, Eiho Uezato and TetsuhikoYamamoto (2009) “On the Continuous Control of the Acrobot viaComputational Intelligence”, 231 – 241
Trang 228 Scott C Brown and Kevin M Passino (1997) “Intelligent Control
for an Acrobot”, Journal of Intelligent and Robotic Systems, (18), 209–
248
22