BÀI TẬP LỚN KỸ THUẬT ROBOT ĐỀ 18
Câu 1:
a) Xây dựng hệ tọa độ cho các thanh nối
Từ sơ đồ cánh tay ta gắn các hệ trục tọa độ như sau:
• Vị trí gốc tọa độ:
- Khâu số 0 thân Robot là khâu cố định có gốc tọa độ O được đặt tại khớp 1
- Khung tọa độ 1 có gốc O1 được gắn vào khớp thứ 2
- Khung tọa độ 2 có gốc O2 được gắn vào khớp thứ 3
- Khung tọa độ 3 có gốc O3 được gắn vào khâu tác động cuối
• Chiều của các khung tọa độ :
- Khung tọa độ số 0 có trục Z0 trùng với trục của khớp 1, trục X0 được chọn vuông
góc với mặt giấy
- Khung tọa độ số 1 có trục Z1 vuông góc với mặt phẳng giấy và trục X1 trùng với
trúc của khớp thứ 2
- Khung tọa độ số 2 có trục Z2 trùng với trục của khớp số 3 và trục X2 được chọn
vuông góc với mặt giấy
- Khung tọa độ số 3 có trục Z3 trùng với phương của trục Z2 và trục X3 vuông góc
với mặt giấy
- Trục Y0, Y1, Y2, Y3 được xác định theo quay tắc bàn tay phải.
Từ đó ta xây dựng được hệ trục tọa độ như sau:
1
o
0
1
0
2
03
K
1
K2
K
3
X0
Y0
Z0
x1
y1
z1
x2
z2
x3
z3
b) Xác định ma trận T biểu diễn hệ tọa độ tay robot
Từ hình vẽ trên ta lập được bảng D-H các tham số sau:
KTĐ a
i
K1 0 0
K2 0
K3 0 0 0
Vị trí của hai khâu liền kề nhau được mô tả bởi một ma trận biến đổi đồng nhất
i-1
A
i.
Ma trận
0
A
1
mô tả quan hệ giữa khâu 1 và khâu 0 (khâu cố gắn với thân Robot), ma trận
1
A
2
mô tả quan hệ giữa khâu 2 và khâu 1, ma trận
2
A
3
mô tả quan hệ giữa khâu 3 và khâu 2.
Dạng tổng quát của ma trận
i-1
A
i
như sau:
2
i-1
A
i
=
. . .
. . .
0
0 0 0 1
C i S i C i S i S i ai C i
S i C i C i C i S i ai S i
S i C i di
θ θ α θ α θ
θ θ α θ α θ
α α
−
−
Áp dụng với các tham số bảng D-H ta có:
0
A
1
=
1 1
1 1
0 0
0 0
0 1 0 0
0 0 0 1
C S
S C
θ θ
θ θ
−
1
A
2
=
2 2
2 2
2
0 0
0 0
0 1 0
0 0 0 1
C S
S C
a
θ θ
θ θ
−
−
2
A
3
=
3
1 0 0 0
0 1 0 0
0 0 1
0 0 0 1
d
Từ đó ta thu được ma trận T như sau:
T=
0
A
1
.
1
A
2
.
2
A
3
=
1 2 1 1 2 2 1 3 1 2
1 2 1 1 2 2 1 3 1 2
2 2 3 2
. . . .
. . . .
0 .
0 0 0 1
C C S C S a S d C C
S C C S S a C d S S
S C d C
θ θ θ θ θ θ θ θ
θ θ θ θ θ θ θ θ
θ θ θ
− − −
− − −
c) Giải thích ý nghĩa của ma trận T:
Ma trận T có dạng tổng quát như sau:
3
T=
0 0 0 1
x x x x
y y y y
z z z z
n o a p
n o a p
n o a p
Trong đó:
- Vector
n
,
o
,
a
xác định hướng của khung tọa độ tay so với khung tọa độ gốc cố định.
- Vector
p
biểu diễn vị trí của khung tọa độ tay so với khung tọa độ gốc.
Qua ma trận T người ta có thể phân tích sự hoạt động và lập trình điều khiển cho Robot.
Ma trận T có ý nghĩa rất lớn trong bài toán động học thuận và bài toán động học ngược:
- Động học thuận: khi biết giá trị của các biến khớp thay đổi theo thời gian thì vị trí và
hướng của tay Robot sẽ hoàn toàn xác định tại mọi thời điểm.
- Động học ngược: khi biết hướng và vị trí của điểm tác động cuối ta hoàn toàn có thể
xác định được giá trị của các biến khớp từ việc giải hệ phương trình động học T trên.
d) Xác định vị trí tay Robot trong hệ tọa độ gốc khi =30
o
, , d
3
=0.1m
Khi robot quay một góc =30
o
;
, d
3
=0.1m thì ta có ma trận T như sau:
T=
o o o o o o o
o o o o o o o o
o o o
C30 .C30 -S30 C30 .S30 0,3.S30 0,1.C30 .C30
S30 .C30 C30 S30 .S30 0,3.C30 0,1.S30 .S30
S30 0 C30 0,1.C30
0 0 0 1
o
− −
− − −
=
3 1 3 0,3
4 2 4 4
3 3 1 0,6. 3 0,1
4 2 4 4
1 3 0,1. 3
0
2 2 2
0 0 0 1
− −
+
− −
Vậy vị trí của gốc tọa độ gắn lên tay có vị trí như sau:
4
p
=
0,3
4
0,6. 3 0,1
4
0,1. 3
2
1
+
−
Câu 2:
a) Xác định momen khớp quay và lực tổng ở các khớp tịnh tiến khi Robot ở cuối hành
trình chuyển động
Ta có mô hình của Robot như sau:
Để xây dựng được các phương trình động lực học của Robot θ-rđơn giản chúng ta giả
thuyết:
- Khối lượng m
1
của xilanh tập trung tại điểm cuối của xilanh tức là điểm A
- Khối lượng m
2
của pittong tập trung ở bàn tay Robot tức là tập trung tại điểm B
- Mômen quán tính ở khớp J
i
= 0
5
Trình tự xây dựng phương trình động lực học như sau:
Xác định hàm lagrange
Phương trình lagrange của một cơ cấu được xác định như sau:
Trong đó:
- K: Tổng động năng của hệ thống
- P: Tổng thế năng của hệ thống
Với khớp quay ta có phương trình động lực học như sau:
M =
d L L
dt
θ θ
∂ ∂
−
÷
∂ ∂
&
Với khớp tịnh tiến ta có phương trình động lực học như sau:
F=
d L L
dt r r
∂ ∂
−
÷
∂ ∂
&
• Xác định động năng của hệ thống
Động năng của hệ thống: K = K
1
+ K
2
Trong đó:
K
1
: động năng của khớp 1
K
2
: động năng của khớp 2
Theo hình vẽ ta có:
- Động năng của khớp 1:
Vị trí của điểm A trong hệ tọa độ như sau:
X
1
= r
1
. cos
θ
Y
1
= r
1.
sin
θ
Đạo hàm hai vế theo thời gian thu được thành phần vận tốc theo các trục:
1 1
.sin .X r
θ θ
= −
&
&
1 1
.cos .Y r
θ θ
=
&
&
Vận tốc điểm A:
2 2 2 2 2
1 1 1 1
v x y r
θ
= + =
&
& &
Động năng của khớp 1:
6
2 2
1 1 1
1
2
K m r
θ
=
&
- Động năng của khớp 2:
Vị trí của điểm B trong hệ tọa độ như sau:
2
cosx r
θ
=
2
siny r
θ
=
7
Vận tốc của điểm B theo các trục như sau:
2
sin . cos .x r r
θ θ θ
= − +
&
& &
2
cos . sin .y r r
θ θ θ
= +
&
& &
Vận tốc của B:
2 2 2 2 2 2
2 2 2
v x y r r
θ
= + = +
&
& & &
Động năng của khớp 2:
2 2 2
2 2
1
( )
2
K m r r
θ
= +
&
&
• Xác định thế năng của hệ thống
- Thế năng của khớp 1:
1 1 1
sinP m gr
θ
=
- Thế năng của khớp 2:
1 2
sinP m gr
θ
=
• Hàm Lagrange
Từ các tính toán trên ta có hàm Lagrange như sau:
1 2 1 2
2 2 2 2 2
1 1 2 1 1 2
( )
1 1
( ) ( sin sin )
2 2
L K K P P
m r m r r m gr m gr
θ θ θ θ
= + − +
= + + − +
& &
&
Tính Mô men khớp quay (khớp 1)
Mô men quán tính được tính theo công thức:
d L L
M
dt
θ θ
∂ ∂
= −
÷
∂ ∂
&
Ta có:
2 2
1 1 2
2 2
1 1 2 2
2
L
m r m r
d L
m r m r m rr
dt
θ θ
θ
θ θ θ
θ
∂
= +
∂
∂
= + +
÷
∂
& &
&
&& && &
&
&
Và
1 1 2
cos cos
L
m gr m gr
θ θ
θ
∂
= − −
∂
Từ đó mô men khớp quay như sau:
8
2 2
1 1 2 2 1 1 2
2 2
1 1 2 2 1 1 2
2 ( ) cos
( ) 2 ( ) cos
M m r m r m rr m r m r g
m r m r m rr m r m r g
θ θ θ θ
θ θ θ
= + + + +
= + + + +
&& && &&
&
&& &
&
9
Tính lực khớp tịnh tiến (khớp 2)
Lực tác động lên khớp tịnh tiến đưuọc tính như sau:
d L L
F
dt r r
∂ ∂
= −
÷
∂ ∂
&
Trong đó:
2
2
2
2 2
sin
L
m r
r
d L
m r
dt r
L
m r m g
r
θ θ
∂
=
∂
∂
=
÷
∂
∂
= −
∂
&
&
&&
&
&
Vậy lực cần tìm là:
2
2 2 2
sinF m r m r m g
θ θ
= − +
&
&&
Tính toán tham số cụ thể
Robot
θ
-
r
có hai bậc tự do gồm khớp 1 là khớp quay, khớp thứ 2 là khớp tịnh tiến.
Giả thuyết chuyển động của các khớp này là chuyển động đều. Đồng thời thời gian để khớp
quay quay hết quỹ đạo yêu cầu bằng thời gian mà khớp tịnh tiến thực hiện hết hành trình làm
việc của mình.
Thời gian để cơ cấu tịnh tiến chuyển động từ r
1
= 0.5(m) tới vị trí r
max
=1.0(m) với vận
tốc r = 0.125(m/s) là:
max 1
1.0 0.5
4( )
0.125
r r
t s
r
−
−
= = =
Mặt khác cơ cấu Robot lại quay từ 0
0
với tốc độ
16
π
θ
=
&
và thời gian khớp quay đúng
bằng thời gian khớp tịnh tiến thực hiện hết hành trình của mình Vậy ở cuối hành trình thì
khớp đã quay một góc:
4
. ( )
16 4
t rad
π π
θ θ
= = =
&
Tiếp theo ta có khớp quay và khớp tịnh tiến chuyển động đều với vận tốc không đổi
nên:
10
0r
=
&&
và
0
θ
=
&&
Mặt khác ở cuối hành trình chuyển động thì:
r = r
max
=1.0 (m) và
( )
4
rad
π
θ
=
thay vào các công thức đã xây dựng ở trên ta được:
- Mômen của khớp quay:
2 2
1 1 2 2 1 1 2
2 2
1 1 2 2 1 1 2
2 2
2 ( ) cos
( ) 2 ( ) cos
(2,5.0,5 2,5.1,0 ).0 2.2,5.1,0.0,125. (2,5.0,5 2,5.1,0).9,81. os 26,13( )
16 4
M m r m r m rr m r m r g
m r m r m rr m r m r g
c Nm
θ θ θ θ
θ θ θ
π π
= + + + +
= + + + +
= + + + + =
&& && &
&
&& &
&
- Lực tổng của khớp tịnh tiến:
2
2 2 2
2
sin
2,5.0 2,5.1,0. 2,5.9,81.sin 17,24[ ]
16 4
F m r m r m g
N
θ θ
π π
= − +
= − + =
÷
&
&&
b) Thiết kế bộ điều khiển phản hổi PD cho từng khớp
Phương trình động lực học của cơ cấu Robot θ-r đã trình bày ở trên được viết lại
như sau:
2
1 1 2 2 1 1 2
2
2 2 2
( . ) 2 ( )M m r m r m rr m r m r gc
F m r m r m gS
θ θ θ
θ θ
= + + + +
= − +
&& &
&
&
&&
Hay viết dưới dạng ma trận:
(2-1)
Trong đó:
M
M
F
=
- mô men hoặc lực của khớp
2 2
1 1 2
2
0
0
m r m r
H
m
+
=
- ma trận mô men hoặc lực tỉ lệ với gia tốc
11
ĐK1 ĐK2
R
2
2
2
2m rr
V
m r
θ
θ
=
−
&
&
&
- ma trận mô men và lực nhớt
1 1 2
2
( )m r m r gC
G
m gS
θ
θ
+
=
-ma trận mô men và lực của trọng lực
Nguyên lý thiết kế bộ điều khiển mô men tính toán là:khử các thành phần phi tuyến của
phương trình động lực học của Robot và phân ly đặc tính động học của các thanh nối.Kết
quả nhận được một hệ thống tuyến tính từ đó dễ dàng sử dụng các phương pháp thiết kế kinh
điển của hệ thống tuyến tính.
Phương trình luật điều khiển có dang:
dk P D
M K= ε +Κ ε
&
(24)
Với:
d
q q
ε
= −
là vector sai số vị trí của khớp robot;
P
K
=
diag
1 2
( , )
p p
K K
- ma trận đường chéo các kệ số khuếch đại
D
K =
diag
1 2
( , )
d d
K K
- ma trận đường chéo các kệ số đạo hàm
Từ ý tưởng đó ta có cấu trúc bộ điều khiển :
Hình 2.2. cấu trúc bộ điều khiển
12
U
Tuyến tính phi tuyến
Để làm được điều đó chọn phương trình mô tả bộ điều khiển mô men tính toán như
sau:
(2-2)
Từ (2-1) và (2-2) ta có:
(2-3)
Thiết kế luật điều khiển PD cho Robot ta có:
(2-4)
Từ (2-3) và (2-4) có :
Laplace hóa hai vế của phương trình thu được phương trình sau:
2
0 (2 5)
d p
p K p K+ + = −
Mong muốn hệ thống có đáp ứng như khâu giao động bặc 2 có dạng như sau :
2 2
2 0 (2 6)
n n
p p
ξω ω
+ + = −
13
Trong đó:
ξ
- hệ số suy giảm.
4
n
qd
t
ω
ξ
=
- tần số dao động.
Cân bằng phương trình (2-5) và (2-6) thu được:
2
2
4 8
2 2 .
4
di n
qd qd
pi n
qd
K
t t
K
t
ξω ξ
ξ
ω
ξ
= = =
= =
÷
÷
Hình 2.3. sơ đồ cấu trúc hệ thống điều khiển mô men tính toán
Chọn chất lượng điều khiển có hệ số suy giảm
0,7
ξ
=
và thời gian quá độ t
qd
= 1s
thu được tham số bộ điều khiển của khớp i như sau:
2
8
8
1
4
32,65
0,7.1
di
pi
K
K
= =
= =
÷
14
Trong bài này bộ điều khiển thiết kế cho hai khớp là giống nhau nên các thông số
bộ điều khiển của hai khớp giống nhau.
Suy ra các hệ số bộ điều khiển:
8 0
0 8
32,65 0
0 32,65
d
p
K
K
=
=
c) Mô phỏng hệ thống
• Thiết kế quỹ đạo chuyển động cho hai khớp dạng 2 – 1 – 2
Để đảm bảo tay Robot di chuyển từ vị trí ban đầu A(x
0
, y
0
) đến vị trí cuối cùng là
B(x
c
, y
c
) trong khoảng thời gian t
c
(s) ta có thể tính toán quỹ đạo như sau:
Hình 2.4. quỹ đạo 2-1-2
Khi nó Robot di chuyển từ A tới B xảy ra 3 quá trình :
15
- Đầu tiên là quá trình khởi động có dạng bậc 2
- Quá trình chuyển động đều có dạng là đường thẳng bậc 1
- Quá trình hãm có dạng đường cong bậc 2
Ta giả thuyết
0
0
0
c
q
q
=
=
&
&
. mặt khác ta có :
0
2
1
1 1 1 1 1 1 1 0
1
2
1 0 1 1
2
0
1
1
; .
2 2
. . . . 0
1
.
2
2 4
c c
m m
m
c c
m
c c c
t q q
t q
q q
q q t q t q t t q q
t t
q q q t
t t q q
t
q
+
= =
−
= = ⇒ − + − =
−
= +
−
→ = −
& && && &
&&
m
&&
Từ đồ thị trên chúng ta thấy
1
2
c
t
t <
. Do đó :
2
0
1
1
(2 7)
2 4
c c c
t t q q
t
q
−
= − − −
&&
Biểu thức (2-7) có nghĩa khi và chỉ khi :
2
0
1
0
1 1
2
4
4.
(2 8)
c c
c
cp
c
t q q
q
q q
q q
t
−
−
−
⇒ < ≤ −
&&
&& &&
Giới hạn của gia tốc phụ thuộc vào độ bền cơ khí của Robot . Như vậy quỹ đạo thiết
kế như sau:
16
2
1 0 1
1
1 2 0 1 1
2
2 3 1 1
1
0 : ( ) .
2
: ( ) ( )
2
1
: ( ) ( )
2
c c
t q t q q t
t
t t q t q q t t
t t q t q q t t t
− = +
− = + −
− = − −
&&
&&
&&
Trong đó:
- Chọn
1
q
&&
nằm trong khoảng theo biểu thức (2-8).
- Biết
1
q
&&
, tc, qc, q0 ta tính được t1 theo (2-7).
• Kết quả mô phỏng
Mô men và lực của 2 khớp
0 1 2 3 4 5 6
0
2
4
6
8
10
12
14
Mo men khop 1
Luc khop 2
Sai lệch của biến khớp
0 1 2 3 4 5 6
-0.06
-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
khop 2 quay
khop 1 tinh tien
17
18
Góc quay θ khớp 1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Độ dịch chuyển r khớp 2
0 1 2 3 4 5 6
0.6
0.7
0.8
0.9
1
1.1
1.2
Nhận xét: Góc quay của các biến khớp là θ và r bám sát quỹ đạo 2-1-2 cho trước với
sai số nhỏ và các khớp thực hiện tới đúng điểm dừng cuối.
Chương trình mô phỏng
%======================================
% CHUONG TRINH CHINH
%=======================================
% khai bao gia tri bo dieu khien
% goi ham RobotThetaR
[At1,Aq1,qdd1,Aq2,qdd2,Adq1,Adq2,AM1,AM2,AeTheta,Aer] = RobotThetaR()
% ========================================
% do thi tin hieu thu duoc
%=========================================
% ve mo men va luc cua robot tren cung do thi
plot(At1,AM1,'r') % mo mem khop quay (khop 1)
hold on
plot(At1,AM2) % luc cua khop tinh tien (khop 2)
grid
% ve sai so goc quay va tinh tien tren cung do thi
19
plot(At1,AeTheta,'r') % mo mem khop quay (khop 1)
hold on
plot(At1,Aer) % luc cua khop tinh tien (khop 2)
grid
% ve goc quay khop 1
plot(At1,Aq1)
grid
% do dich chuyen cua khop 2 tinh tien
plot(At1,Aq2)
grid
Xây dựng các hàm
+ hàm RobotThetaR
function[At1,Aq1,qdd1,Aq2,qdd2,Adq1,Adq2,AM1,AM2,AeTheta,Aer] =
RobotThetaR(Kp,Kd)
tc = 4; %Dat thoi gian di chuyen cua tay Robot.
m1 = 2.5 ; %Khoi luong thanh 1
m2 = 2.5 ; %Khoi luong thanh 2
r1 = 0.5; %Chieu dai thanh noi 1
%===Vi tri cua tay ban dau` va` cuoi ==
%Vi tri ban dau va cuoi cua cac khop
q0 = [0;0.5];
qc = [pi/4;1.0]; % rmax =1.2 m
%Khac phuc truong hop chia 0
if (qc(2)==q0(2));
qc(2) = qc(2)-0.0001;
end
if (qc(1)==q0(1));
qc(1) = qc(1)-0.0001;
end
%Tinh toan gia toc hai khop tinh tien va quay
ddq1 = 1.3*4*abs(qc(1)-q0(1))/tc^2; %Gia toc khop quay
ddq2 = 1.3*4*abs(qc(2)-q0(2))/tc^2; %Gia toc khop tinh tien
%Xac dinh cac khoang thoi gian chuyen dong tang toc, deu va giam toc cho
%cac khop
t11 = tc/2 - sqrt((tc^2*ddq1-4*(qc(1)-q0(1)))/ddq1)/2; %Thoi gian tang toc
t21 = tc - t11; %t21 - t11/2 se la thoi gian chuyen dong deu, tc-t21 se la
%thoi gian giam toc ve 0. Tuc la thoi gian tang va giam toc
%deu bang t11/2
t12 = tc/2 - sqrt((tc^2*ddq2-4*(qc(2)-q0(2)))/ddq2)/2; %Thoi gian tang toc
t22 = tc - t12;
Tk = 0.01; %Sau Tk(s) ta se tinh toan cac tham so cua robot
%Dieu kien ban dau (So kien)
q = q0; dq = [0;0];
X0 = [q0(1);dq(1);q0(2);dq(2)]; %So kien bien trang thai X
20
file1 = fopen('RobotThetaR.txt','w');
i = 0; %Bien dung de dem
for t = 0:0.001:tc;
i = i+1;
At1(i)=t; %Lay thoi gian de ve do thi
%Tinh toan gia tri dat cho cac khop trong tung khoang thoi gian chuyen
%dong
[qd1, dqd1] = quiDaoKhopThetaR(q0(1),qc(1),ddq1,t11,t21,tc,t); %dqd1 la
van
%toc cua khop 1, ddq1 la gia toc khop 1
[qd2, dqd2] = quiDaoKhopThetaR(q0(2),qc(2),ddq2,t12,t22,tc,t);
qd = [qd1; qd2];
dqd = [dqd1; dqd2];
G11 = (m1*r1 + m2*X0(3))*9.81*cos(X0(1));
G12 = m2*9.81*sin(X0(1));
G1 = [G11;G12];
v1 = 2*m2*X0(3)*X0(4)*X0(2);
v2 = -m2*X0(4)*X0(1)*X0(1);
V1 = [v1;v2];
H11 = m1*r1^2 + m2*X0(3)^2; %r = x21
H12 = 0;
H21 = 0;
H22 = m2;
H = [H11, H12; H21, H22];
%Tinh momen can thiet de thuc hien chuyen dong
[M, fe] = ControllerPD(qd,dqd,q,dq,Kp,Kd,G1,V1,H);
%Lay thong so qui dao thuc robot chuyen dong duoc qua M
[q, dq] = RobotModel(M,X0,Tk);
%Lay cac thong so de ve do thi
%
qdd1(i)= qd(1);
qdd2(i) = qd(2);
Aq1(i) = q(1); %Goc quay khop quay
Aq2(i) = q(2); %r
Adq1(i) = dq(1);%Toc do khop quay
Adq2(i) = dq(2);%Toc do khop tinh tien
AM1(i) = M(1); %Mo men khop quay
AM2(i) = M(2); %Luc truyen dong cho khop tinh tien
AeTheta(i) = qd(1) - q(1); %Sai lech goc quay
Aer(i) = qd(2) - q(2); %Sai lech chuyen dong tinh tien
%
X0 = [q(1); dq(1); q(2); dq(2)]; %Dat lai so kien cho lan tinh sau
%q(1)-> Theta; q(2)->r
% plot(At1,q(1))
%Luu du lieu vao file
fprintf(file1,'%2.4f%2.4f%2.4f%2.4f%2.4f%3.4f
%3.4f\n',t,qd(1),q(1),qd(2),q(2),M(1),M(2));
end
fclose(file1);
21
+ hàm RobotModel :
function[q,dq] = RobotModel(M,X0,Tk)
%
M01 = M(1); %Mo men dieu khien cho khop quay
F02 = M(2); %Luc dieu khien cho khop tinh tien
x11 = X0(1); %Goc Theta1
x12 = X0(2); %Toc do goc khop quay
x21 = X0(3); %Gia tri r
x22 = X0(4); %Toc do khop tinh tien
%
%Cac thong so cua Robot
m1 = 2.5 ; %Khoi luong thanh 1
m2 = 2.5 ; %Khoi luong thanh 2
r1 = 0.5; %Chieu dai thanh noi 1
%
C1 = cos(x11);
S1 = sin(x11);
%
%Ma tran quan tinh
H11 = m1*r1^2 + m2*x21^2; %r = x21
H12 = 0;
H21 = 0;
H22 = m2;
H = [H11, H12; H21, H22];
%Momen nhot va momen huong tam
v1 = 2*m2*x21*x22*x12;
v2 = -m2*x22*x12*x12;
V = [v1;v2];
%Momen trong luc
G1 = (m1*r1 + m2*x21)*9.81*C1;
G2 = m2*9.81*S1;
G = [G1;G2];
%Nghich dao ma tran H
Hinv = inv(H);
%Tinh toan gia toc khop tu phuong trinh dong luc hoc dang nguoc
dX = -Hinv * (V+G) + Hinv*[M01;F02];
%Phuong trinh trang thai
x11p = x12; %Toc do khop quay
x21p = x22; %Toc do khop tinh tien
x12p = dX(1); %Gia toc khop quay
x22p = dX(2); %Gia toc khop tinh tien
%Tinh gan dung phuong trinh vi phan
x11 = x11 + Tk * x11p;
x21 = x21 + Tk * x21p;
x12 = x12 + Tk * x12p;
x22 = x22 + Tk * x22p;
22
X = [x11;x12;x21;x22];
%Tinh vi tri tay Robot
s = [x21; 0];
q = [x11; x21];
dq = [x12; x22];
+ hàm quiDaoKhopThetaR:
function[q,dq] = quiDaoKhopThetaR(q0,qc,ddq,t1,t2,tc,t)
if t<=t1 %Tang toc
q = q0 + ddq*t^2/2;
dq = ddq * t;
elseif((t>t1) & (t<=t2)) %Chuyen dong deu
q = q0 + ddq*t1*(t-t1/2);
dq = ddq * t1;
elseif((t>t2)&(t<=tc)) %Giam toc do ve khong
q = qc - ddq*(t-tc)^2/2;
dq = ddq*t1 - ddq*(t-t2);
end
end
+ hàm ControllerPD
function[M,errorTheta, errordTheta] =
ControllerPD(sd,dsd,theta,dtheta,Kp,Kd,G,V,H)
%Cai dat tham so bo dieu khien vi tri phan hoi PD
kp1 = Kp; kp2 = Kp; kd1 = Kd; kd2 = Kd;
%Tinh sai lech goc quay va dao ham
errorTheta = sd - theta;
errordTheta = dsd - dtheta;
%Momen dieu khien
Kp = [kp1,0; 0,kp2];
Kd = [kd1,0; 0,kd2];
%M = Kp * errorTheta - Kd * dtheta + G;
U = dsd+Kp*errorTheta+Kd*errordTheta;
M=H*U+V+G;
23
Tài liệu tham khảo:
[1]. TS. Nguyễn Mạnh Tiến . Điều Khiển Robot Công Nghiệp . Nhà xuất bản Khoa Học và
Kỹ Thuật. Hà Nội 2006.
[2]. TS. Nguyễn Mạnh Tiến . Bài Giảng Robot Công Nghiệp .
[3]. GS.TSKH . Nguyễn Thiện Phúc . Robot Công Nghiệp . Nhà xuất bản Khoa Học và Kỹ
Thuật. Hà Nội 2006.
24