Mô phỏng bằng phần mềm Matlab

Một phần của tài liệu Nghiên cứu thiết kế rô bốt song song hai bậc tự do ứng dụng trong khắc chữ (Trang 32 - 50)

2.3.1. Giới thiệu phần mềm MATLAB, công cụ SIMULINK

MATLAB là một bộ chương trình phần mềm lớn được viết cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học kỹ thuật với các phần tử cơ bản là các ma trận. Thuật ngữ MATLAB là chữ viết tắt từ hai từ MATrix và LABoratory, thể hiện định hướng chính của chương trình là các phép tính vector

và ma trận. Phần cốt lõi của chương trình bao gồm các hàm toán học, chức năng xuất nhập cũng như khả năng điều khiển chương trình .

Matlab cung cấp các Toolbox với phạm vi chuyên dụng khác nhau.Ví dụ như: Một số Toolbox liên quan tới điều khiển ( control system toolbox, Optimzation toolbox...) ;

Các Toolbox liên quan tới những lĩnh vực điện –cơkhí …

SIMULINK là một công cụ của Matlab nhằm mục đích mô hình hóa, mô phỏng và khảo sát các hệ thống động học. Giao diện đồ họa trên màn hình của SIMULINK Cho phép thể hiện hệ thống dưới dạng sơ đồ tín hiệu với các khối chức năng quen thuộc. SIMULINK cung cấp cho người sử dụng một thư viện phong phú, có sẵn với số lượng lớn các khối chức năng cho các hệ tuyến tính , phi tuyến và gián đoạn.

- Các biến: thông thường các kết quả thường gán cho ẩn. Sử dụng dấu bằng ta có thể định nghĩa một biến, đồng thời gán giá trị cho biến đó. Tất cả các biến đều là biến global trong Workspace. Tên của biến có thể chứa tới 32 chữ cái, gạch ngang thấp ( _ ) cũng như chữ số. Chữ viết hoa To và chữ viết nhỏ đều được phân biệt .

-Việc nhập giá trị có thể được thực hiện thành một chuỗi trong cùng một dòng, chỉ cách nhau dấu (;), nếu sử dụng dấu (,) để tách các lệnh thì khi ấy các giá trị được xuất ra màn hình .

Một số biến như: pi , i , j và đã được matlab dùng để chỉ các hằng số hay ký hiệu vậy ta tránh sử dụng chún. Đối với các phép tính bất định trên màn hình sẽ xuất hiện kết quả NaN (Not a Number).esp cho phép ta biết cấp chính xác tương đối khi biểu diễn số với dấu phẩy động. (ví dụ: esp = 2.2204e-016)

Các ký hiệu

= gán giá trị cho biến. + - * / ^ các phép tính.

; Nhập giá trị (còn giữ vai trò dấu cách khi nhập nhiều giá trị trong cùng một dòng )

, dấu cách khi xuất nhiều giá trị trong cùng một dòng

Esp cấp chính xác tương đối khi sử dụng giá tri dấu phẩy động. i, j toán tử ảo

inf vô cùng (∞) NaN Not a Number

Nhóm lệnh lập trình trong MATLAB

* Lệnh EVA

- Công dụng :

Chuyển đổi chuỗi ký tự thành biểu thức . - Cú pháp :

kq = eval(‘string’) - Giải thích :

kq: biến chứa kết quả .

nếu ‘string’ là các ký số thì chuyển thành những con số.

nếu ‘string’ là câu lệnh thì chuyển thành các lệnh thi hành được .

* Lệnh FOR

- Công dụng :

Dùng để thực hiện một công việc cần được lặp đi lặp lại theo một quy luật, với số bước lặp xác định trước.

- Cú pháp :

For biến điều khiển = giá trị đầu : giá trị cuối , Thực hiện công việc;

End

- Giải thích :

Công việc chính là các lệnh cần thi hành , có thể có nhiều lệnh, kết thúc lệnh phải có dấu ;

* Lệnh FUNCTION

- Công dụng :

Tạo thêm hàm mới . - Cú pháp :

function s = n(x) - Giải thích :

S: tên biến chứa giá trị trả về sau khi thi hành hàm. N : tên gợi nhớ

* Lệnh INPUT

- Công dụng :

Dùng để nhập vào một giá trị. - Cú pháp :

Tên biến = input (‘promt’) Tên biến = input (‘promt’, ‘s’) - Giải thích :

Tên biến: là nơi lưu giá trị nhập vào . ‘promt’ : chuỗi ký tự muốn nhập vào. ‘s’: cho biết giá trị nhập vào là nhiều ký tự.

* Lệnh IF …ELSEIF …ELSE

thực hiện lệnh khi thỏa mãn điều kiện . - Cú pháp :

If biểu thức luận lý 1

Thực hiện công việc 1; Else if biểu thức luận lý 2

Thực hiện công việc 2; else

Thực hiện công việc 3; End

- Giải thích :

Khi biểu thức luận lý 1 đúng thì thực hiện công việc 1, tương tự cho biểu thức luận lý 2.

Nếu cả hai biểu thức sai thì thực hiên công việc sau lệnh else. Biểu thức lý luận là các phép so sánh==,<,>,<=,>=

Công việc chính là các lệnh cần thi hành , có thể có nhiều lệnh , kết thúc lệnh phải co dấu;

*Lệnh MENU

- Công dụng:

Tạo menu để chọn chức năng. - Cú pháp :

Tên biến = menu (‘tên menu’, ‘chức năng 1’, ‘chức năng 2’,…, ‘chức năng n’)

- Giải thích :

Tên menu: là tiêu đề của menu.

Tên biến: là nơi cất giá trị nhận được sau khi chọn chức năng của menu.

Chức năng 1,2 , … ,n:khi chọn chức năng nào thì tên biến có giá trị là số thứ tự của chức năng đó .

* Lệnh PAUSE

- Công dụng:

Dừng chương trình theo ý muốn . - Cú pháp : pause on pause off pause (n) - Giải thích : pause on : dừng chương trình , và chờ nhấn một phím bất kỳ (trừ các phím điều khiển ) chương trình thực hiện tiếp .

pause off : tắt chức năng pause.

- Ví dụ :

for n = 1 : 3;

disp(‘Press any key to continue…’) pause

end

Press any key to continue… Press any key to continue… Press any key to continue…

* Lệnh WHILE:

- Công dụng:

Dùng để thực hiện một công việc cần lặp đi lặp lại theo một quy luật, với số bước lặp không xác định , phụ thuộc vào biểu thức luận lý. - Cú pháp :

While biểu thức luận lý

Thực hiện công việc; End

- Giải thích :

Biểu thức luận lý là các phép so sánh ==,<,>,<=,>=

Công việc chính là các lệnh cần thi hành , có thể có nhiều lệnh , kết thúc lệnh phải có dấu ;

Khi thực hiện xong công việc thì quay lên kiểm tra lai biểu thức luận lý ,nếu vẫn còn đúng thì tiếp tục thực hiện, nếu sai thì kết thúc .

2.3.2. Mô phỏng cho Robot

2.3.2.1. Chương trình mô phỏng miền làm việc của robot :

Chương trình mô phỏng miền làm việc : a1 = 20; a2 = 20; c1 = 5; c2 = 5; d1 =25; d2 = 25; for i = 1:50 for j = 1:50 b1 = i b2 = j

eqnP1 = '(Pxsol - b1)^2 +(Pysol - a1 + c1)^2 = d1^2 ' ; eqnP2 = '(Pxsol - b2)^2 +(Pysol + a2 - c2)^2 = d2^2'; solP=solve(eqnP1,eqnP2,' Pxsol, Pysol');

Pxpositions = eval( solP.Pxsol) ; Pypositions = eval( solP.Pysol); Px1= Pxpositions(1);

Px2= Pxpositions(2); Py1 = Pypositions(1); Py2=Pypositions(2); if (4*d1^2 - (b2 - b1)^2 - 4*(a1 -c1)^2)>=0 plot(Px1 ,Py1) plot(Px2,Py2) hold on end end end

2.3.2.2. Quá trình hoạt động của Robot

Robot song song hai bậc tự do chuyển động theo quỹ đạo cho trước: là Robot được thiết kế một cách linh hoạt nhờ các kết cấu vững chắc của cơ khí. Không tạo ra rung động trong quá trình làm việc độ trượt nhỏ ở các trục. Robot có 2 cánh tay hoạt động linh hoạt và chính xác khi chuyển động của 2 cánh tay sẽ tạo ra chuyển động cắt nằm trong vùng không gian miền làm việc được mô phỏng bằng phần mềm Matlab ở trên. Như vậy robot tạo được chế độ cắt ở bất kỳ vị trí nào trong vùng làm việc của nó. Cánh tay Robot được điều khiển bằng chuyển động của các vít me đai ốc bi và các vít me này được nhận chuyển động của các động cơ có mô men truyền lớn như vậy tạo ra được chuyển động cắt, và vận tốc cắt ổn định liên tục không bị gián đoạn.

2.3.2.3. Hình dáng Robot

* Chương trình mô phỏng :

OA1=0.2;A1B1=0.1;B1B3=0.05 ;B1C1=0.25 ;C1C3=0.05; PC1=0.05; OA2=0.2;B2C2=0.25;PC2=0.05;C2C4=0.05;A1A3=0.5;A2A4=0.5;%(m) xO = 0 ;yO = 0; r = [xO yO 0];%Position of O

xO = 0 ;yO = 0; rO = [xO yO 0];%Position of O

xA1 = 0;yA1 = 0.20; rA1 = [ xA1 yA1 0 ];%Position of A1 xB1 = 0.1 ; yB1 = 0.20 ; rB1 = [ xB1 yB1 0];%Position of b1 xB3 = 0.15 ; yB3 = 0.20; rB3 = [ xB3 yB3 0]; phi1 = asin((OA1 - PC1)/B1C1); xC1 = B1C1*cos(phi1); xC1 = B1C1*cos(phi1)+A1B1; yC1=0.05;rC1=[ xC1 yC1 0]; xC3 = xC1 + C1C3; yC3 = 0.05; rC3= [xC3 yC3 0 ];

xA3 = 0.5 ; yA3 = 0.2 ; rA3= [ xA3 yA3 0 ]; xA2 = 0;yA2 = - 0.20; rA2 = [ xA2 yA2 0 ]; xC2 = xC1 ; yC2 = -yC1 ; rC2 = [xC2 yC2 0 ]; phi2= asin((OA2 - PC2)/B2C2);

xB2= xC2 - B2C2*cos(phi2); yB2= -0.20; rB2 = [xB2 yB2 0 ];

xC4= xC3; yC4 = -yC3; rC4 = [ xC4 yC4 0 ];

xB4 = xB2 + C2C4 ;yB4 = - 0.2;rB4 = [xB4 yB4 0 ]; xA4= 0.5; yA4 = -0.2; rA4 = [xA4 yA4 0];

fprintf('rA1=[%g,%g,%g](m) \n',rA1); rA1 =[0,0.2,0]% (m) fprintf('rB1=[%g,%g,%g](m) \n',rB1); rB1=[0.1,0.2,0]%(m) fprintf('rB3=[%g,%g,%g](m) \n',rB3); rB3=[0.15,0.2,0]%(m) fprintf('rC1=[%g,%g,%g](m) \n',rC1); rC1=[0.306334,0.05,0]%(m) fprintf('rC3=[%g,%g,%g](m) \n',rC3); rC3=[0.356334,0.05,0]%(m) fprintf('rC2=[%g,%g,%g](m) \n',rC2); rC2=[0.306334,-0.05,0]%(m) fprintf('rC4=[%g,%g,%g](m) \n',rC4); rC4=[0.356334,-0.05,0]%(m)

fprintf('rA2=[%g,%g,%g](m) \n',rA2); rA2=[0,-0.2,0]%(m)

fprintf('rB2=[%g,%g,%g](m) \n',rB2); rB2=[0.1,-0.2,0]%(m)

rB4=[0.15,-0.2,0]%(m)

fprintf('rA3=[%g,%g,%g](m) \n',rA3); rA3=[0.5,0.2,0]%(m)

fprintf('rA4=[%g,%g,%g](m) \n',rA4); rA4=[0.5,-0.2,0]%(m)

plot([xA1,xB1],[yA1,yB1],'k-o','LineWidth',2.5) hold on %holdsthecurrentplot

plot([xB1,xB3],[yB1,yB3],'k-o','LineWidth',2.5) hold on

plot([xB3,xA3],[yB3,yA3],'k-o','LineWidth',2.5) hold on

plot([xB1,xC1],[yB1,yC1],'b-o','LineWidth',1.5) hold on

plot([xB3,xC3],[yB3,yC3],'b-o','LineWidth',1.5) hold on

plot([xC1,xC3],[yC1,yC3],'b-o','LineWidth',1.5) hold on

plot([xC1,xC2],[yC1,yC2],'b-o','LineWidth',1.5) hold on

plot([xC3,xC4],[yC3,yC4],'b-o','LineWidth',1.5) hold on

plot([xC2,xC4],[yC2,yC4],'b-o','LineWidth',1.5) hold on

plot([xC2,xB2],[yC2,yB2],'b-o','LineWidth',1.5) hold on

plot([xC2,xB2],[yC2,yB2],'b-o','LineWidth',1.5) hold on

plot([xC4,xB4],[yC4,yB4],'b-o','LineWidth',1.5) hold on

plot([xB2,xB4],[yB2,yB4],'k-o','LineWidth',1.5) hold on

plot([xB2,xA2],[yB2,yA2],'k-o','LineWidth',1.5) hold on

plot([xB4,xA4],[yB4,yA4],'k-o','LineWidth',1.5) grid on,...

xlabel('x(m)'),ylabel('y(m)'),...

text(xA1,yA1,'\leftarrowA1=ground',... 'HorizontalAlignment','left'),... text(xB1,yB1,'B1'),... text(xB3,yB3,'B3'),... text(xC1,yC1,'C1'),... text(xC3,yC3,'C3'),... text(xC2,yC2,'C2'),...

text(xC4,yC4,'C4'),... text(xB2,yB2,'B2'),... text(xB3,yB3,'B3'),... text(xB4,yB4,'B4'),... text(xA3,yA3,'\leftarrowA3=ground ',... 'HorizontalAlignment','left '),... text(xA2,yA2,'\leftarrowC=ground',... 'HorizontalAlignment','left'),... text(xA4,yA4,'\leftarrowC=ground ',... 'HorizontalAlignment','left'),... axis

b. chương trình chuyển động của Robot: a1 = 20; a2 = 20; c1 = 5; c2 = 5; d1 =25; d2 = 25;

% ham chay mo phong Ro bot trong mien lam viec

for j = 1 : 50 b1 = i

b2 = j

eqnP1 = '(Pxsol - b1)^2 +(Pysol - a1 + c1)^2 = d1^2 ' ; eqnP2 = '(Pxsol - b2)^2 +(Pysol + a2 - c2)^2 = d2^2'; solP=solve(eqnP1,eqnP2,' Pxsol, Pysol');

Pxpositions = eval( solP.Pxsol) ; Pypositions = eval( solP.Pysol); Px1= Pxpositions(1); Px2= Pxpositions(2); Py1 = Pypositions(1); Py2=Pypositions(2); A = (b2 - b1)^2 + 4*(a1 -c1)^2 if Px1 > 0 && A <= 4*d1^2 Px = Px1 Py = Py1 else Px= Px2 Py= Py2 end

% ham hien thi hinh anh trong 0.005(s)

OA1=20 ;A1B1 = b1;B1B3=5 ;B1C1=25 ;C1C3= 5; PC1= 5;A1A3 = 50;B3A3 = 45- b1;

OA2=20; A2B2 = b2;B2C2= 25;PC2= 5;C2C4= 5;A2A4= 5;B4A4 = 45-b2% (m)

xO = 0 ;yO = 0; rO = [xO yO 0];%Position of O

xA1 = 0;yA1 = 20; rA1 = [ xA1 yA1 0 ];%Position of A1 xB1 = b1 ; yB1 = 20 ; rB1 = [ xB1 yB1 0];%Position of b1 xB3 = b1 + 5 ; yB3 = 20; rB3 = [ xB3 yB3 0];

xC1 = Px

yC1=Py + 5 ;rC1=[ xC1 yC1 0]; xC3 = xC1 + C1C3;

yC3 = Py + 5; rC3= [xC3 yC3 0 ];

xA3 = 50 ; yA3 = 20 ; rA3= [ xA3 yA3 0 ]; xA2 = 0 ; yA2 = - 20; rA2 = [ xA2 yA2 0 ]; xC2 = xC1 ; yC2 = Py - 5 ; rC2 = [xC2 yC2 0 ]; xB2 = b2

yB2 = -20 ; rB2 = [xB2 yB2 0 ];

xC4 = xC3; yC4 = Py -5 ; rC4 = [ xC4 yC4 0 ];

xB4 = xB2 + C2C4 ;yB4 = - 20 ; rB4 = [xB4 yB4 0 ]; xA4 = 50; yA4 = - 20; rA4 = [xA4 yA4 0];

fprintf('rO1=[%g,%g,%g](m) \n',rO1); rO1 = [ xO1 yO1 0]%cm

if (xB3<=50 && xB4 <=50)

plot([xO1],[yO1], 'k-o',[xA1,xB1],[yA1,yB1],'k-o'...

,[xB1,xB3],[yB1,yB3],'k-o',[xB3,xA3],[yB3,yA3],'k-o'...

,[xB1,xC1],[yB1,yC1],'b-o',[xB3,xC3],[yB3,yC3],'b-o',[xC1,xC3], [yC1,yC3],'b-o'...

,[xC1,xC2],[yC1,yC2],'b-o',[xC3,xC4],[yC3,yC4],'b-o',[xC2,xC4], [yC2,yC4],'b-o'...

,[xC2,xB2],[yC2,yB2],'b-o',[xC4,xB4],[yC4,yB4],'b-o',[xB2,xB4], [yB2,yB4],'k-o'...

,[xB2,xA2],[yB2,yA2],'k-o',[xB4,xA4],[yB4,yA4],'k-o','LineWidth',1.5) axis equal

pause(0.005)

end end end

xlabel('x(m)'),ylabel('y(m)'),...

text(xA1,yA1,'\leftarrowA1=ground',... 'HorizontalAlignment','left'),... text(xB1,yB1,'B1'),... text(xB3,yB3,'B3'),... text(xC1,yC1,'C1'),... text(xC3,yC3,'C3'),... text(xC2,yC2,'C2'),... text(xC4,yC4,'C4'),... text(xB2,yB2,'B2'),... text(xB3,yB3,'B3'),... text(xB4,yB4,'B4'),... text(xA3,yA3,'\leftarrowA3=ground ',... 'HorizontalAlignment','left '),... text(xA3,yA3,'\leftarrowA3=ground ',... 'HorizontalAlignment','left '),... text(xA2,yA2,'\leftarrowC=ground',... 'HorizontalAlignment','left'),... text(xA4,yA4,'\leftarrowC=ground ',... 'HorizontalAlignment','left'),... axis grid on,...

Chương trình mô phỏng vẽ đường tròn của robot trong miền làm việc: a1 = 20;

a2 = 20; c1 = 5; c2 = 5; d1 =25; d2 = 25;

% ham chay mo phong mien lam viec

for i = 1 :100 t = 2*pi*i/100 Px = 10*cos(t) Py = 10*sin(t)

eqnb1 = '(Px - b1sol)^2 +(Py - a1 + c1)^2 = d1^2 ' ; eqnb2 = '(Px - b2sol)^2 +(Py + a2 - c2)^2 = d2^2' ; solb=solve(eqnb1,eqnb2,' b1sol, b2sol');

b1positions = eval( solb.b1sol) ; b2positions = eval( solb.b2sol); b11 = b1positions(1); b12 = b1positions(2); b21 = b2positions(1); b22 = b2positions(2); if (b11 > 0 && b11<= 45)||(b21 > 0 &&b21<= 45) b1 = b11 b2 = b21 else b1 = b12 b2 = b22 end

% ham hien thi hinh anh trong 0.005(s)

OA1=20 ;A1B1 = b1;B1B3=5 ;B1C1=25 ;C1C3= 5; PC1= 5;A1A3 = 50;B3A3 = 45- b1;

OA2=20; A2B2 = b2;B2C2= 25;PC2= 5;C2C4= 5;A2A4= 5;B4A4 = 45-b2% (m)

xO = 0 ;yO = 0; rO = [xO yO 0];%Position of O

xA1 = 0;yA1 = 20; rA1 = [ xA1 yA1 0 ];%Position of A1 xB1 = b1 ; yB1 = 20 ; rB1 = [ xB1 yB1 0];%Position of b1 xB3 = b1 + 5 ; yB3 = 20; rB3 = [ xB3 yB3 0];

xC1 = Px

yC1=Py + 5 ;rC1=[ xC1 yC1 0]; xC3 = xC1 + C1C3;

yC3 = Py + 5; rC3= [xC3 yC3 0 ];

xA3 = 50 ; yA3 = 20 ; rA3= [ xA3 yA3 0 ]; xA2 = 0 ; yA2 = - 20; rA2 = [ xA2 yA2 0 ]; xC2 = xC1 ; yC2 = Py - 5 ; rC2 = [xC2 yC2 0 ]; xB2 = b2

yB2 = -20 ; rB2 = [xB2 yB2 0 ];

xC4 = xC3; yC4 = Py -5 ; rC4 = [ xC4 yC4 0 ];

xB4 = xB2 + C2C4 ;yB4 = - 20 ; rB4 = [xB4 yB4 0 ]; xA4 = 50; yA4 = - 20; rA4 = [xA4 yA4 0];

xO1 = Px + 2.5 ; yO1 = Py ; rO1 = [ xO1 yO1 0];

if (xB3<=50 && xB4 <=50)

plot([ xO1 ],[ yO1],'k-o',[xA1,xB1],[yA1,yB1],'k-o'...

,[xB1,xB3],[yB1,yB3],'k-o',[xB3,xA3],[yB3,yA3],'k-o'...

,[xB1,xC1],[yB1,yC1],'b-o',[xB3,xC3],[yB3,yC3],'b-o',[xC1,xC3], [yC1,yC3],'b-o'...

,[xC1,xC2],[yC1,yC2],'b-o',[xC3,xC4],[yC3,yC4],'b-o',[xC2,xC4], [yC2,yC4],'b-o'...

,[xC2,xB2],[yC2,yB2],'b-o',[xC4,xB4],[yC4,yB4],'b-o',[xB2,xB4], [yB2,yB4],'k-o'...

,[xB2,xA2],[yB2,yA2],'k-o',[xB4,xA4],[yB4,yA4],'k-o','LineWidth',1.5) axis equal

pause(0.005) hold on end end

xlabel('x(m)'),ylabel('y(m)'),...

text(xA1,yA1,'\leftarrowA1=ground',... 'HorizontalAlignment','left'),... text(xB1,yB1,'B1'),... text(xB3,yB3,'B3'),... text(xC1,yC1,'C1'),... text(xC3,yC3,'C3'),... text(xC2,yC2,'C2'),... text(xC4,yC4,'C4'),... text(xB2,yB2,'B2'),... text(xB3,yB3,'B3'),... text(xB4,yB4,'B4'),... text(xA3,yA3,'\leftarrowA3=ground ',... 'HorizontalAlignment','left '),... text(xA3,yA3,'\leftarrowA3=ground ',... 'HorizontalAlignment','left '),... text(xA2,yA2,'\leftarrowC=ground',... 'HorizontalAlignment','left'),... text(xA4,yA4,'\leftarrowC=ground ',... 'HorizontalAlignment','left'),... axis grid on,...

Đường tròn được vẽ nằm trong vùng hoạt động của rob

Đồ thị B1,B2 theo thời gian T trong quá trình hoạt động:

CHƯƠNG III. THIẾT KẾ CƠ KHÍ ROBOT SONG SONG HAI BẬC TỰ DO ỨNG DỤNG TRONG KHẮC CHỮ

3.1. Nội dung thiết kế robot

- Xác định nguyên tắc hoạt động và chế độ làm việc của robot dự định thiết kế.

- Lập sơ đồ chung toàn máy và các bộ phận robot thỏa mãn các yêu cầu cho trước. Đề xuất một phương án phù hợp thực hiện, đánh giá và so sánh các phương án để tìm ra phương án phù hợp nhất đáp ứng nhu cầu đã đặt ra.

- Xác định lực mô men tác dụng lên các bộ phận robot và đặc tính thay đổi của tảo trọng.

- Chọn vật liệu thích hợp nhằm sử dụng một cách có lợi nhất tính chất đa dạng và khác biệt của vật liệu để nâng cao hiệu quả và độ tin cậy làm việc của robot.

- Thực hiện tính toán động học, lực, độ bền và các tính toán khác nhằm xác định kích thước của robot, thỏa mãn các chỉ tiêu về khả năng làm việc đồng thời đáp ứng các yêu cầu công nghệ và lắp ghép.

3.1.1. Phương pháp tính toán thiết kế Robot

- Đối với sản phẩm, hoàn thành thiết kế chỉ là kết quả đầu tiên của công

việc thiết kế. Thông qua việc chế thử, các nhược điểm về kết cấu, công nghệ của bản chất thiết kế, kể cả sai sót về tính toán, sự không phù hợp về kích thước, tính không công nghệ, các khó khăn trong chăm sóc bảo dưỡng robot… sẽ được phát hiện và sửa chữa. Chi phí này càng ít nếu thiết kế đầu tiên được nghiên cứu, tính toán càng cẩn thận. Sự thay đổi dù không đáng kể về hình dánh và kích thước của robot. Vì vậy người thiết kế phải nắm rõ từng chi tiết, kích thước, từng đường nét của bản vẽ, từng yếu tố kết cấu trên cơ sở các tính toán chính xác và chú ý đầy đủ đến đặc điểm tính toán chi tiết cũng như phương án thiết kế robot nói chung.

3.1.2. Đặc điểm tính toán thiết kế

- Trong thiết kế tính toán chi tiết gặp nhiều khó khăn như: Hình dáng chi tiết khá phức tạp, các yếu tố lực không biết được chính xác, có nhiều yếu tố ảnh hưởng đến khả năng làm việc của chi tiết chưa được phản ánh đầy đủ vào công thức tính. Vì vậy người thiết kế cần lưu ý những đặc điểm tính toán chi tiết dưới đây để xử lí trong quá trình thiết kế.

- Tính toán xác định kích thước chi tiết thường tiến hành theo hai bước: tính thiết kế và tính kiểm nghiệm, trong đó do điều kiện làm việc phức tạp của chi tiết, tính toán thiết kế thường được đơn giản hóa và mang tính chất gần đúng. Từ các kết cấu và kích thước đã chọn, qua bước tính kiểm nghiệm sẽ quyết định lần cuối giá trị của các thông số và kích thước cơ bản của chi tiết.

- Bên cạnh việc sử dụng các thông thức chính xác để xác định những yếu tố quan trọng nhất của chi tiết, rất nhiều kích thước của các yếu tố kết cấu khác được tính theo công thức kinh nghiệm, chẳng hạn đối với bánh răng, ngoài đường kính và chiều rộng vành răng được xác định theo quan hệ kết cấu, dựa theo lời khuyên trong tài liệu kĩ thuật. Các công thức kinh nghiệm này thường cho trong một phạm vi rộng, do đó khi sử dụng cần nhắc lụa chọn cho phù hợp với trường hợp cụ thể của đề tài thiết kế.

- Tính toán thiết kế, số ẩn số nhiều hơn phương trình, vì vậy cần dựa vào các quan hệ kết cấu để lựa chọn trước một số thông số, trên cơ sở đó mà xác

Một phần của tài liệu Nghiên cứu thiết kế rô bốt song song hai bậc tự do ứng dụng trong khắc chữ (Trang 32 - 50)

Tải bản đầy đủ (DOC)

(62 trang)
w