BÀI GIẢNG MATLAB - Trang 221

219

với

23

2 2

2

3 3

3

2 2

2

3 3

3

cos

cos

sin

sin

q

q l

q

q l

q

q l

q

q l

q

= 

J

ɺ

ɺ

ɺ

ɺ

ɺ

,

1

1

1

1

1

1

cos

sin

q

l

q

q

l

q

= 

J

ɺ

ɺ

Triển khai trong Matlab với các m-file

1. Các phương trình liên kết

function f = bkbl_ ptlk(q1, q2, q3)
global l1 l2 l3 dx dy
f1 = l1*cos(q1) + l2*cos(q2) - l3*cos(q3) - dx;
f2 = l1*sin(q1) + l2*sin(q2) - l3*sin(q3) - dy;
f=[f1; f2];

2. Các ma trận Jacobi

function [J1, J23] = bkbl_Jacob(q1,q2,q3)
global l1 l2 l3 dx dy
J1 = [-l1*sin(q1); l1*cos(q1)];
J23 = [-l2*sin(q2), l3*sin(q3);
l2*cos(q2), -l3*cos(q3)];

3. ðạo hàm của ma trận Jacobi

function [dJ1, dJ23] = bkbl_Jacdot(q1,q2,q3, dq1, dq2,dq3)
global l1 l2 l3 dx dy
dJ1 = -l1*dq1*[cos(q1); sin(q1)];
dJ23 = [-dq2*l2*cos(q2), dq3*l3*cos(q3);
-dq3*l2*sin(q2), dq3*l3*sin(q3)];

4. Chương trình chính

function bkbl_main
global l1 l2 l3 dx dy
l1 = 0.12; l2 = 0.70; l3 = 0.40; dx = 0.50; dy = 0.10;
%cho goc cua tay quay OA
q10 = 0.5; % rad
omega = 1.0; % rad/s
t = linspace(0, 5*pi/omega, 360);
a(1) = 0.2; b(1) = 0.542; % chon xap xi ban dau cho q2, q3
for i=1:length(t)
q1(i)= q10+omega*t(i);
dq1(i) = omega; ddq1(i) = 0;
f = ptlk_bkbl(q1(i), a(1), b(1));
k = 1;
while (norm(f,2) > 1.0e-10 && k < 30)
[J1, J23] = Jacob_bkbl(q1(i), a(1), b(1));
deltax = inv(J23)*(-f);
a(2) = a(1)+deltax(1);

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.