Dòng dữ liệu từ đơn vị đầu vào đến đơn vị đầu ra chỉ được truyền thẳng. Việc xử lý dữ liệu có thể mở rộng ra nhiều lớp, nhưng không có các liên kết phản hồi. Nghĩa là, các liên kết mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vào trong cùng một lớp hay các lớp trước đó là không cho phép.
2.3.2. Mạng hồi quy (Recurrent neural network):
Có chứa các liên kết ngược. Khác với mạng truyền thẳng, các thuộc tính động của các mạng mới quan trọng. Trong một số trường hợp, các giá trị kích hoạt của cá đơn vị trải qua quá trình nới lỏng (tăng giảm số đơn vị và thay đổi các liên kết) cho đến khi mạng đạt đến một trạng thái ổn định và các giá trị kích hoạt không thay đổi nữa. Trong ứng dụng khác mà chạy động tạo thành đầu ra của mạng thì những sự thay đổi các giá trị kích hoạt là đáng quan tâm.
Input Layer Hidden Layer Output Layer
Hình 2.7 Mạng nơ-ron hoi quy
2.4. Huấn luyện mạng:
Chức năng của một mạng nơ-ron được quyết định bởi các nhân tố như: hình dạng mạng (số lớp, số đơn vị trên mỗi tầng, và cách mà các lớp được liên kết với nhau) và các trọng số của các liên kết bên trong mạng. Hình dạng của mạng thường là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm). Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đích mong muốn được gọi là học (learning) hay huấn luyện (training). Rất nhiều thuật toán học đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài toán. Các thuật toán
Hình 2.8 Mô hình học có thầy (Supervised learning)
2.4.2. Học không có thầy (Unsupervised learning):
Với cách học không có thầy, không có phản hồi từ môi trường để chỉ ra rằng đầu ra của mạng là đúng. Mạng sẽ phải khám phá các đặc trưng, các điều chỉnh các mối tương quan , hay các lớp trong dữ liệu vào một cách tự động. Trong thực tế, đối với phần lớn các biến thể của học không có thầy, các đích trùng với đầu vào. Nói một cách khác, học không có thầy luôn thực hiện một công việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.
2.5. Hàm mục tiêu:
Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây dựng một hàm mục tiêu để cung cấp cách thức đánh giá khả năng hệ thống một cách không nhập nhằng. Việc chọn hàm mục tiêu là rất quan trọng bởi vì hàm này thể hiện các mục tiêu thiết kế và quyết định thuật toán huấn luyện nào có thể được áp dụng. Để phát triển một hàm mục tiêu đo được chính xác cái chúng ta muốn không phải là việc dễ dàng. Một vài hàm cơ bản được sử dụng rất rộng rãi. Một trong số chúng là hàm tổng bình phương lỗi (sum of squares error function).
p N
e=ềXỈ^-y^
P=1i=1
i: số thứ tự của đơn vị đầu ra
tpj và ypi : tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng cho đơn vị đầu ra thứ i trên mẫu thứ p.
Trong các ứng dụng thực tế, nếu cần thiết có thể làm phức tạp hàm số với một vài yếu tố khác để có thể kiểm soát được sự phức tạp của mô hình.
CHƯƠNG 3 GIỚI THIỆU QUANSER 2DOF ROBOT
3.1. Giới thiệu chung về hệ thống robot 2 bậc của hãng Quanser:
Hệ thống robot Quanser 2 DOF như hình 1.1 là một loại robot “pantograph” 2 bậc tự do. Cấu trúc robot gồm 4 khâu với 3 khớp thụ động, được tạo thành bởi liên kết 4 thanh với 2 động cơ Servo DC được gắn cố định.
Robot Quanser 2 DOF là một loại robot được chế tạo dùng để nghiên cứu và học tập.
Vị trí ban đầu của robot trong hệ tọa độ Oxy:
Hình 3.1 Mô hình robot 2 bậc của Quanser. Bảng 3.1 Thông số của hệ thống robot.
Ký hiệu Mô tả Giá trị Đơn vị
Mlk Khối lượng của 4 khâu liên kết 0.335 Kg
Mb Khối lượng 1 khâu 0.065 Kg
Lb Độ dài của khâu 0.127 m
J
b,og Mô-men quán tính của khâu (cog) 8.74x10-5 Kg-m2
Jb,piv Mô-men quán tính của khâu (trục) 4.41x10-4 Kg-m2
Hình 3.2 Hệ tọa độ hình học phẳng của robot.
3.2. Động học thuận của robot :
Trong hệ thống robot này do thiết kế có dạng hình học phẳng và được gắn vào hệ tọa độ Oxy nên ở đây chúng ta áp dụng hình học phẳng để giải tìm phương trình động học của robot.
Xây dựng quĩ đạo chuyển động của biến khớp: dA, 0B
Góc dA, 0B tại 2 khớp A, B của robot, cũng là vị trí đặt hai động cơ Servo DC.
trục
C là cx = Lb cos 0A và cy = Lb sin 0A. Tương tự, tọa độ Cartesian của trục D là Dx = Bx — Lb
cos 0B và Dy = Lb cos 0B . Khoảng cách p giữa 2 điểm C và D như trong hình3.3 có thể được tính dựa trên định lý Pythagorean.
p = J(DX — cx)2 + (Dy - cy)
Bởi vì chiều dài các cánh tay robot là như nhau (Lb ), tam giác ACDE là tam giác cân. Qua E kẻ đường vuông góc với đường CD, đường này sẽ cắt CD tại trung điểm của nó. Từ đó ta tính được cos a : _ „ _ p/2 cos a = —■—L b p a = arcos-^— 2Lb tanp = !D—— Dx — Cx Dy H = artanD
Tông của 2 góc, a và p cho ta góc quay của cánh tay CE so với trục X. Từ đây, ta có thể tính được trực tiếp tọa độ của điểm E (tọa độ điểm cuối của robot cần tìm).
Phương trình động học thuận của robot có dạng:
Ex = cx + Lb cos(ư + P) Ey = Cy + Lb sin(a + P)
Phương trình động học thuận đầy đủ có dạng:
3.3. Động học nghịch robot :
^ Suy ra:
Tính góc Ị) :
Ex = Lb cos dA + Lb cos (arcos Ey = Lb sin dA + Lb sin (arcos
(DX— Cx)2+ (Py— C y') 2Lb (DX— Cx)2+ (Dy — Cy) 2Lb + artan + artan _ Dx Dy-Ty) Dx — Cx j Dy-A — Cx I (3.1) (3.2)
Hình 3.4 Hệ robot trong tọa độ Oxy.
Cho trước tọa độ của điểm cuối E trong hệ tọa độ Cartesian, Ex và Ey, ta cần tính
góc quay tương ứng tại các trục A và B, dA và dB . Khảo sát tam giác AABE như trong hình , gọi hai cạnh AE và EB lần lượt là m và n. Độ dài của các cạnh này lần lượt là
m = IEX2 + Ey2
n = l(Ex - Bx)2 + Ey2
Sử dụng định lý Cosine trên AACE và ABDE: m2 = 2Lb2(1 — COSÀ.A) n2 = 2Lb2(1 — COSÀ.B) ^ Suy ra góc ẰA, ẢB : 2Lb2 — m2 ẰAA = arcos———5— 2Lb2 2Lb 2 — n2 ẢBB = arcos—--—5— 2Lb2
^ Suy ra: re — ẢB <PB = —2 Ta có: 2Lp — Ex ƠB = art an (—) Phương trình động học nghịch của robot có dạng:
2Lb2-Ex2+Ey2 /F X n-arcos—-
—-—2——
0A = ƠA — VA = artan (p) - ---Y2^---
3.4. Mô tả bộ điều khiển của hệ thống:
3.4.1 Hàm truyền của động cơ robot (servo SRV02):
Bảng 3.2 Thông số kỹ thuật của khối động cơ Servo SRV02.
Mô tả Giá trị Đơn vị
Kích thước khối động cơ (LxWxH) 15x15x18 cm
Khối lượng 1.2 k
g
Điện áp định mức 6 V
Dòng điện tối đa của động cơ 1 A
Tốc độ tối đa của động cơ 6000 V/phút
Phạm vi chiết áp ± 5 V
Độ phân giải Encoder 4096 (212) Xung/vòng
Tỉ số truyền 70 n/a
hàm truyền từ điện áp-sang-vị trí của động cơ servo SRV02 được mô tả như sau : P(S)^^_
s(rs + 1) Thông số K và T của động cơ:
K = 1.53 rad/(V - s) (3.3) (3.4) _____2Lb2-(Ex-Bx)2+Ey2 „ X n-arcos— --- —ị---— 2Lh -Ex 2Lu Ey ) - ---2- ---
hình, hàm truyền vòng kín có thể được viết lại dưới dạng Y
( s) _ ửy
R(s) s2 + 2^tóns + tón2
Trong đó ớ)n là tần số riêng và ^ (zeta) là hệ số tắt dần. Đáp ứng của hàm truyền này phụ thuộc vào giá trị của ớ)n X.
3.4.2. Bộ điều khiển PV của hệ thống:
Từ hình 3.5 ta xác định được thời gian xác lập: tp, độ vọt lố: PO.
Khảo sát hàm truyền bậc 2 như mô tả trong công thức với ngõ vào là hàm bậc thang được cho bởi
R(s) = s
Biên độ bước của R0 = 1.5 . Đáp ứng của hệ thống được mô tả trong hình 3.5, trong đó đường màu xanh là ngõ vào bậc thang r(t) còn đường màu đỏ là đáp ứng ngõ ra y(t). Giá trị lớn nhất của ngõ ra là ymax tại thời điểm tmax.
Hình 3.5 Đáp ứng cơ bản của hệ thống.
Khoảng thời gian từ t0 đến khi đáp ứng đạt giá trị lớn nhất được gọi là thời gian đỉnh của hệ thống:
tp — tmax t 0
Đối với hệ thống bậc 2, độ vọt lố chỉ phụ thuộc vào hệ số tắt dần và được tính bằng
( ™ỵ )
PO — 100e xĩ-^
Thời gian đỉnh phụ thuộc vào cả tần số riêng và hệ số tắt dần n
p Cún\-1 — ổ2
Yêu cầu thiết kế được đặt ra cho bộ điều khiển vị trí động cơ servo SRV02 là:
|
ess|
< 0.5 deg tp — 0.15 s PO — 5.0%
Có nghĩa là sai số ở trạng thái ổn định phải nhỏ hơn hoặc bằng 0.5 deg, thời gian đỉnh nhỏ hơn hoặc bằng 0.15 seconds và độ vọt lố không vượt quá 5%.
k _ C^ n
Bộ bù tỉ lệ vận tốc PV (proportional-velocity) để điều khiển vị trí động cơ SRV02 có dạng:
Vỉ„<t) = k„(ed(t) - 6,(t))
Trong đó kp là hệ số tỉ lệ, kv là hệ số vận tốc, 6d (t) là góc quay tham chiếu, 61 (t)là góc quay hiện tại đo được từ cảm biến và Vm(t) là điện áp ngõ vào của động cơ SRV02.fc’(ấ6|(t))
Chúng ta cần tìm hàm truyền vòng kín oi (t)/od (t) . Lấy Laplace phương trình chúng ta thu được:
Kn(s) = kp(0d(s) - 0i(s)) - kvs0i(s)
Từ sơ đồ khối 6 và công thức (1), ta có thể viết
0i(s) = K Vm(s) S(TS+1)
Thay (3.5) vào (3.6) ta thu được hàm truyền vòng kín: ới(s) _ Kkp
ỡd(s) TS2 + (1 + Kkv)s + Kkp
3.5. Sơ đồ khối hệ thống điều khiển robot (dùng Matlab/Simulink):
Hệ thống robot 2 bậc của Quanser sử phần mềm Matlab/Simulink để điều khiển và mô phỏng. Dựa vào lý thuyết điều khiển và sơ đồ khối bộ điều khiển PV, hãng đã thiết lập các thông số phần mềm lẫn phần cứng của hệ thống robot và thiết kế bộ điều khiển PV cho robot.
(3.5)
3.6. Thiết kế quỹ đạo và hoạch định chuyển động cho robot:
Nhập thông số đã tính toán động học thuận (Forward Kinematics) và động học nghịch (Inverse Kinematics) của robot vào Simulink.
Dùng hàm function của Matlab nhập động học thuận vào khối Inverse Kinematics
trong hình 3.8. Code:
function [theta A,theta B] = inv kin 2d robot(Ex, Ey, Lb in) % link length (in)
Lb = Lb in; Bx = 2*Lb; m = sqrt( ExA2+EyA2 ); n = sqrt( (Ex-Bx)A2 + EyA2 ); lambda A = acos(1/2*(2*LbA2-mA2)/LbA2); lambda B = acos(1/2*(2*LbA2-nA2)/LbA2); phi A = 1/2*pi-1/2*lambdaA; phi B = 1/2*pi-1/2*lambdaB; sigma A = atan(Ey/Ex);
Kinematics.
Hình 3.10 Trong khối Scopes có chứa khối Forward Kinematics.
Code :
function [Ex,Ey] = fwrd kin 2d robot(theta A, theta B, Lb in) % Convert link
length to meters. Lb = 0.0254*Lb in; Bx = 2*Lb; Cx = Lb*cos(thetaA); Cy = Lb*sin(thetaA); Dx = Bx - Lb*sin(theta B); Dy = Lb*cos(thetaB); p = sqrt( (Dx-Cx)A2 + (Dy-Cy)A2 ); alpha = acos( 1/2*p/Lb );
beta = atan( (Dy-Cy) / (Dx-Cx) ); Ex = Cx + Lb*cos(alpha + beta); Ey = Cy + Lb*sin(alpha+beta);
vào hệ thống điều khiển (hình 3.7), code : function [x,y] = vechu iuh(t)
% phuong trinh duong thang dang tham so, % Vi tri ban dau cua diem cuoi dau
cong tac toa do(5;5) if t<=1 x=5-t; % tu diem (5;5) den diem(4;4)
y=5-t;
elseif (t>1)&(t<=2)
x=4; % tu diem (4;4)den diem(4;5)
y=4+(t-1);
elseif (t>2)&(t<=3)
x=4+0.5*(t-2); % tu diem (4;5) den diem (4.5;5)
y=5; elseif (t>3)&(t<=4) x=4.5; % tu diem (4.5;5) den diem (4.5;4.5) y=5-0.5*(t-3);
elseif (t>4)&(t<=7.1416) x=0.5*cos(-(3.1416-(t-4)))+5; %tu diem (4.5;4.5) den
diem (5.5;4.5) y=0.5*sin(-(3.1416-(t-4)))+4.5;
elseif (t>7.1416)&(t<=8.1416)
x=5.5; % tu diem (5.5;4.5) den diem (5.5;5)
y=4.5+0.5*(t-7.1416);
elseif (t>8.1416)&(t<=9.1416)
x=5.5+0.5*(t-8.1416); %tu diem (5.5;5) den diem (6;5)
y=5;
elseif (t>9.1416)&(t<=10.1416)
x=6; % tu diem (6;5) den diem (6;4)
y=5-(t-9.1416);
elseif (t>11.1416)&(t<=12.1416)
x=6+(t-11.1416); % tu diem (6;4.5) den diem (7;4.5)
y=4.5;
elseif (t>12.1416)&(t<=13.1416)
x=7; % tu diem (7;4.5) den diem (7;4)
y=4.5-0.5*(t-12.1416);
else
x=7; % tu diem (7;4) den diem (7;5)
y=4+(t-13.1416);
end
CHƯƠNG 4 THIẾT KẾ BỘ ĐIỀU KHIÊN THÔNG MINH (NEURAL NETWORK).
4.1. Thiết kế bộ điều khiển mạng nơ-ron:
Bảng 4.1 Dữ liệu (Data) của robot (có file Excel kèm theo).
Data của robot
mẫu 1 mẫu 2 mẫu 3 1__________
1.11E-16 0 2.52E-15 -0.00039992 -0.0090793 -0.00079968 -0.0181549 -0.00119928 -0.0272269 "1 -0.00159872 -0.0362953 -0.00199801 -0.0453601 -0.00239713 -0.0544213 "1 -0.00279609 -0.0634789 -0.0031949 0 -0.0725329 "1 -0.00359355 -0.0815833
x2 = [mau2]'; x = [x1;x2]; t = [mau3]'; net = feedforwardnet(50); net = train(net,x,t); y = net(x); gensim(net); trong đó:
maul là data của theta_d mau2 là data của theta_l mau3 là data của u(V) ngõ ra. x là ngõ vào của mạng.
t là mục tiêu của mạng.
feedforwardnet(50) là loại mạng được sử dụng có 50 nút ở lớp ẩn. gensim(net) là tạo mạng trong Simulink.
theta I (rad) Feed-Forward Neural Network
Hình 4.1 Bộ điều khiển mạng nơ-ron.
4.2. Đánh giá kết quả:
Kết quả ngõ ra của bộ điều khiển mạng nơ-ron được so sánh với bộ điều khiển PV của nhà sản xuất:
- Tín hiệu ngõ ra của mạng nơ-ron bám sát với tín hiệu ngõ ra của PV và bám sát với tín hiệu đặt.
- Sai số của mạng nơ-ron < 5%.
- Mạng nơ-ron đã giảm bớt độ giật của các khớp,khâu robot so với bộ PV. Hạn chế :
- Chưa tối ưu hóa bộ được điều khiển mạng nơ-ron, vì mạng nơ-ron chỉ mới bám sát giá trị của bộ điều khiển PV.
Hình 4.2 Tín hiệu ngõ ra (dùng mạng nơ-ron) của khớp A.
Hình 4.4 Tín hiệu ngõ ra (dùng mạng nơ-ron) của khớp B.
Để hoàn thành đồ án tốt nghiệp này, em đã nhận được sự giúp đỡ rất nhiều quý thầy, cô và các bạn sinh viên trong lớp. Đặc biệt phải kể đến thầy Nguyễn Ngọc Anh Tuấn, giảng viên hướng dẫn đồ án, với thân thiện cùng chuyên môn của thầy đã giúp em rất nhiều trong nghiên cứu đồ án này. Đồ án này một thử thách lớn đối với em. Nhưng dù vậy em đã cố gắng hết sức để vượt qua.
Em cũng chân thành cảm ơn Bộ môn cũng như khoa đã giúp đỡ rất nhiều đặc biệt là đã hỗ trợ mô hình robot 2 bậc để em có thể hoàn thành đồ án này. Mô hình robot này tuy không lớn như nó lại khá phức tạp, dù vậy bên bộ môn cũng đã cung cấp nhiều tài liệu có liên quan để hỗ trợ cho em hoàn thành đồ án.
Qua đây, em cũng xin cảm ơn khoa, trường đã tạo điều kiện giúp đỡ em trong khoảng thời nghiên cứu đồ án. Đã biệt là sau kì nghỉ tránh dịch Covid-19, khoa cũng đã tổ chức, sắp xếp thời gian cho sinh viên bảo vệ khóa luận, đồ án tốt nghiệp một cách hợp lý giúp cho sinh viên chúng em kịp thời xét tốt nghiệp đúng hẹn.
Xin chân thành cảm ơn.