1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tính toán động học, động lực học trung tâm phay CNC 5 trục ảo kiểu hexapod

130 315 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 130
Dung lượng 4,92 MB

Nội dung

NGUYỄN TIẾN THỊNH BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - KS NGUYỄN TIẾN THỊNH CHUYÊN NGÀNH: CƠ ĐIỆN TỬ TÍNH TOÁN ĐỘNG HỌC, ĐỘNG LỰC HỌC TRUNG TÂM PHAY CNC TRỤC ẢO KIỂU HEXAPOD LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ CƠ ĐIỆN TỬ KHOÁ: 2012B Hà Nội – 9/2014 i BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - KS NGUYỄN TIẾN THỊNH TÍNH TOÁN ĐỘNG HỌC, ĐỘNG LỰC HỌC TRUNG TÂM PHAY CNC TRỤC ẢO KIỂU HEXAPOD CHUYÊN NGÀNH: CƠ ĐIỆN TỬ LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ CƠ ĐIỆN TỬ NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS TẠ KHÁNH LÂM TS NGUYỄN HỒNG THÁI Hà Nội – 9/2014 ii LỜI CAM ĐOAN Tên em Nguyễn Tiến Thịnh, học viên cao học khóa 2012B.CĐT.KH chuyên ngành Cơ Điện Tử Sau năm học tập, nghiên cứu trường Đại Học Bách Khoa Hà Nội, giúp đỡ thày cô giáo, đặc biệt PGS.TS Tạ Khánh Lâm TS Nguyễn Hồng Thái, em hoàn thành xong luận văn tốt nghiệp thạc sĩ Em xin cam đoan đề tài luận văn “Tính toán động học, động lực học trung tâm phay CNC trục ảo kiểu Hexapod” công trình nghiên cứu cá nhân em dự hướng dẫn PGS.TS Tạ Khánh Lâm TS Nguyễn Hồng Thái tham khảo tài liệu liệt kê Em không chép công trình cá nhân khác hình thức Nếu có, em xin hoàn thành chịu trách nhiệm Hà Nội, ngày tháng năm 2014 Người cam đoan Nguyễn Tiến Thịnh iii LỜI CẢM ƠN Trong trình thực đề tài " Tính toán động học, động lực học trung tâm phay CNC trục ảo kiểu Hexapod ", em đạt số kết định: Tìm hiểu cấu trúc máy song song kiểu hexapod gia công khí, tính toán động học, động lực học điều khiển, thực mô gia công OpenGL Em xin trân trọng cảm ơn giúp đỡ PGS.TS Tạ Khánh Lâm, TS.Nguyễn Hồng Thái thầy cô môn hướng dẫn, giúp đỡ tạo điều kiện cho em hoàn thành đề tài Tuy nhiên, với kinh nghiệm thực tế hạn chế nên luận văn tránh thiếu sót chưa thể hoàn thiện mong đợi, kính mong quý thầy cô đóng góp ý kiến để đề tài hoàn thành tốt Em xin trân trọng cảm ơn! Học viên Nguyễn Tiến Thịnh iv MỤC LỤC LỜI CAM ĐOAN iii LỜI CẢM ƠN iv MỤC LỤC v DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT vii DANH MỤC CÁC BẢNG xi DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ xi MỞ ĐẦU 1 ĐẶT VẤN ĐỀ MỤC ĐÍCH NGHIÊN CỨU CỦA ĐỀ TÀI Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI NỘI DUNG NGHIÊN CỨU CỦA LUẬN VĂN Chương TỔNG QUAN VỀ TRUNG TÂM PHAY CNC TRỤC ẢO KIỂU HEXAPOD 1.1 MÁY CNC CÓ CẤU TRÚC CHUỖI ĐỘNG HỌC HỞ TRUYỀN THỐNG 1.2 CÁC MÁY CNC CÓ CẤU TRÚC CHUỖI ĐỘNG HỌC SONG SONG 1.2.1 Sự phát triển máy có cấu trúc chuỗi động học song song 1.2.2 Sự phát triển máy công cụ CNC có cấu trúc chuỗi động học song song 1.3 ƯU NHƯỢC ĐIỂM CỦA CƠ CẤU SONG SONG 12 1.4 NHỮNG NGHIÊN CỨU ĐÃ ĐƯỢC CÔNG BỐ VỀ MÁY CNC CÓ CẤU TRÚC ĐỘNG HỌC SONG SONG 13 1.5 TÍNH ĐƯỜNG DỤNG CỤ TRONG GIA CÔNG BỀ MẶT KHÔNG GIAN TRÊN MÁY PHAY CNC TRỤC 14 1.5.1 Tính đường dụng cụ với dao phay ngón đầu cầu 16 1.5.2 Tính đường dụng cụ với dao phay ngón đầu 16 1.5.3 Tính đường dụng cụ với dao phay ngón đầu xuyến 17 1.5.4 Định hướng trục dụng cụ hệ tọa độ phôi 18 1.5.5 Xây dựng hệ quy chiếu trung tâm phay CNC trục 21 1.5.6 Hệ quy chiếu lực cắt gia công CNC trục 23 1.6 KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU 27 Chương 28 PHÂN TÍCH ĐỘNG HỌC TRUNG TÂM PHAY CNC TRỤC ẢO KIỂU HEXAPOD 28 2.1 PHÂN TÍCH LỰA CHỌN KẾT CẤU MÁY 28 2.2 THIẾT LẬP PHƯƠNG TRÌNH ĐỘNG HỌC VỊ TRÍ 31 2.2.1 Giải toán động học ngược 35 2.2.2 Phương pháp điều khiển toán động học ngược gia công khí35 2.2.3 Thuật toán điều khiển động học gia công bề mặt phức tạp 37 2.2.4 Ví dụ áp dụng 41 2.3 BÀI TOÁN VẬN TỐC 51 2.3.1 Vận tốc dài vận tốc góc giá di động 51 2.3.2 Ma trận jacobi 56 v 2.3.3 Vận tốc góc chân 59 2.3.4 Vận tốc trọng tâm chân 60 2.4 VÍ DỤ ÁP DỤNG 61 Chương 64 BÀI TOÁN ĐỘNG LỰC HỌC 64 3.1 BÀI TOÁN GIA TỐC 64 3.2 XÁC ĐỊNH GIA TỐC VÀ GIA TỐC GÓC CỦA KHÂU THAO TÁC 65 3.3 GIA TỐC TRỌNG TÂM CÁC KHÂU 65 3.4 PHÂN TÍCH ĐỘNG LỰC HỌC THEO PHƯƠNG PHÁP NEWTONEULER 66 3.4.1 Xét cho nhánh chân 66 3.4.2 Xét riêng khâu nhánh chân thứ i 70 3.5 Ví dụ áp dụng 71 KẾT LUẬN 81 I Về mặt lý thuyết 81 II Về mặt thực tiễn 81 III Các đề xuất phát triển hoàn thiện kết nghiên cứu luận văn 81 TÀI LIỆU THAM KHẢO 82 PHỤ LỤC 84 PHỤ LỤC A: CHƯƠNG TRÌNH MÔ PHỎNG MATLAB 84 Hàm tính toán độ biến thiên chiều dài chân 84 Hàm tính toán vẽ đồ thị độ biến thiên vận tốc góc 87 Tính toán gia tốc góc chân điểm tạo hình CCi 89 Tính toán vận tốc dài chân điểm tạo hình CCi 91 Tính toán vận tốc trọng tâm chân điểm tạo hình CCi 93 Tính toán gia tốc trọng tâm chân điểm tạo hình CCi 97 PHỤ LỤC B: CHƯƠNG TRÌNH MÔ PHỎNG TRÊN VISUAL C SỬ DỤNG THƯ VIỆN OPENGL 104 Chương trình đọc file liệu đầu vào dạng txt 104 Chương trình tính toán đưa thông số điều khiển 105 Chương trình mô 111 PHỤ LỤC C: THÔNG SỐ ĐỘNG LỰC HỌC TỪ SOLIDWORKS 116 vi DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT Ký hiệu CNC Nội dung, ý nghĩa Computer numerical controlled_Điều khiển số máy tính Aj Tọa độ khớp cầu thứ j giá cố định ( j   ) Bji Tọa độ khớp cầu thứ j giá di động thời điểm thứ i ϑu Hệ quy chiếu gốc máy RBSS: ϑu{OXYZ} B Hệ quy chiếu gốc phôi RBSS: ϑB{OBMXBMYBMZBM} ϑ0 ϑ2 ϑd Hệ quy chiếu đặt tâm giá cố định RBSS ϑ0{SRBXRBYRBZRB} Hệ quy chiếu đặt tâm giá di động RBSS: ϑ2{PUVW} Hệ quy chiếu đặt điểm định vị dụng cụ chọn dụng cụ: ϑd{CLTuvw} dji Chiều dài chân thứ j thời điểm thứ i R Bán kính đường tròn qua khớp giá cố định r Bán kính đường tròn qua khớp giá di động aj Tọa độ khớp cầu thứ j giá cố định ( j   ) bj Tọa độ khớp cầu thứ j giá di động so với gốc tọa độ AjBji Chiều dài chân thứ j thời điểm thứ i ( j   ) P Tọa độ gốc P đặt tâm giá di động so với gốc tọa độ sji Véc tơ hướng của chân thứ j thời điểm i ( j   ) bj Tọa độ khớp cầu thứ j so với hệ quy chiếu động R2 Ma trận quay chuyển từ hệ quy chiếu ϑ hệ quy chiếu ϑ vii ij Vận tốc góc khâu thứ j thời điểm thứ i ( j   ) v2 Vận tốc dài hệ quy chiếu ϑ so với hệ quy chiếu ϑ cố định 2 v Bji Vận tốc góc hệ quy chiều động ϑ so với hệ quy chiếu ϑ cố định Vận tốc dài khớp cầu thứ j giá di động thời điểm thứ i( j   ) ~  Toán tử sóng vận tốc góc 2 ~ v2 Toán tử sóng vận tốc dài v R Ma trận đạo hàm ma trận quay R ~s ji Toán tử sóng véc tơ s ji 1 R2  m1 ji  m ji Ma trận nghịch đảo ma trận quay R Véc tơ vị trí trọng tâm chân thứ j thời điểm thứ i Véc tơ vị trí trọng tâm chân thứ j thời điểm thứ i v M1 ji Vận tốc dài trọng tâm chân thứ j thời điểm thứ i v M ji Vận tốc dài trọng tâm chân thứ j thời điểm thứ i 2 a Bji  ji a M1 ji Gia tốc góc hệ quy chiếu ϑ so với hệ quy chiếu ϑ cố định Gia tốc dài điểm Bj thời điểm thứ i ( j   ) Gia tốc góc chân thứ j thời điểm thứ i( j   ) Gia tốc dài trọng tâm chân thứ j thời điểm thứ i viii a M ji Gia tốc dài trọng tâm chân thứ j thời điểm thứ i d j0 Chiều dài chân thứ j vị trí “0” ban đầu dmax Giới hạn hành trình trượt lớn chân dmin Giới hạn hành trình trượt nhỏ chân CL Tọa độ tâm dao vị trí “0” ban đầu H Tọa độ theo trục z giá cố định ϑ so với giá cố định ϑ lc Khoảng cách từ tâm bán cầu dao so với hệ quy chiếu động ϑ T CL i Điểm định vị dụng cụ thời điểm thứ i CCi Điểm tạo hình phôi thời điểm thứ i T  rAj Véc tơ định vị điểm Aj hệ quy chiếu ϑ  rOSRB Véc tơ vị trí điểm SRB hệ quy chiếu ϑ  rBji Là véc tơ định vị điểm Bji hệ quy chiếu ϑ T  td0 Là véc tơ phương trục dụng cụ vị trí “0” ban đầu P  t di Véc tơ hướng trục dụng cụ phôi thời điểm thứ i T  t di Véc tơ hướng trục dụng cụ thời điểm thứ i   Góc hướng trục dụng cụ T t di hướng trục dụng cụ  phôi P tdi Mk i ,  i   rCL0  Ma trận quay góc  quanh k Tọa độ điểm tạo hình T CL vị trí “0” ban đầu gi Khoảng dịch chuyển từ vị trí CL0 đến vị trí CLi Q Ma trận quay ix j f Aj Lực liên kết khớp Aj f Bji Lực liên kết khớp Bji thời điểm thứ i m1 j g Trọng lực khớp trượt m2j g Trọng lực khớp trượt j M Aj Mô men tác dụng lên nhánh Aj thời điểm thứ i j L Aj Tổng mô men động lượng hai khâu j j (nối với j j1 ji , j1 ji khớp trượt) tác dụng lên A j Các ma trận quán tính tĩnh x cdam22j(i)=sqrt(am22j(1,:,i)*am22j(1,:,i)+am22j(2,:,i)*am22j(2,:,i)+am22j(3,:,i)*a m22j(3,:,i)); cdam23j(i)=sqrt(am23j(1,:,i)*am23j(1,:,i)+am23j(2,:,i)*am23j(2,:,i)+am23j(3,:,i)*a m23j(3,:,i)); cdam24j(i)=sqrt(am24j(1,:,i)*am24j(1,:,i)+am24j(2,:,i)*am24j(2,:,i)+am24j(3,:,i)*a m24j(3,:,i)); cdam25j(i)=sqrt(am25j(1,:,i)*am25j(1,:,i)+am25j(2,:,i)*am25j(2,:,i)+am25j(3,:,i)*a m25j(3,:,i)); cdam26j(i)=sqrt(am26j(1,:,i)*am26j(1,:,i)+am26j(2,:,i)*am26j(2,:,i)+am26j(3,:,i)*a m26j(3,:,i)); end plot(cdam21j,'k');hold on plot(cdam22j,'m') plot(cdam23j,'r') plot(cdam24j,'g') plot(cdam25j,'c') plot(cdam26j,'b') title('GIA TOC TRONG TAM CAC CHAN') xlabel('Tai diem thu i') ylabel('GIA TOC'); 103 PHỤ LỤC B: CHƯƠNG TRÌNH MÔ PHỎNG TRÊN VISUAL C SỬ DỤNG THƯ VIỆN OPENGL Chương trình đọc file liệu đầu vào dạng txt - Tên hàm: ReadFile - Mục đích: Đọc file liệu lấy giá trị CCi giá trị hướng phục vụ cho việc tính toán động học - Đầu vào: file txt - Đầu ra: Tọa độ điểm CCi - Code: =================Đọc file liệu đầu vào===================== void CCTRPANEL::ReadFile(CString filename) { FILE *f; int i; double a2,b2,c2,R1_dao,r_dao,delta_ldao; double a3,b3,c3,a4,b4,c4,a5,b5,c5; int noP_row,noP_col,typeTool,type_TP; noP=10045; i=0; f=fopen(filename,"rt"); a=new double[noP]; b=new double[noP]; c=new double[noP]; td1=new double[noP]; td2=new double[noP]; td3=new double[noP]; while (!feof(f)) { fscanf(f,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf",&a[i], &b[i], &c[i],&a2, &b2, &c2,&a3, &b3, &c3,&a4, &b4, &c4,&a5, &b5, &c5, &td1[i], &td2[i], &td3[i]); td1[i]=td1[i]; td2[i]=td2[i]; td3[i]=td3[i]; a[i]=a[i]; b[i]=b[i]; c[i]=c[i]+200; 104 i++; } fclose(f); Calculate(); } Chương trình tính toán đưa thông số điều khiển - Tên hàm: Calculate - Mục đích: Tính toán thông số động học phục vụ cho toán mô - Đầu vào: Tọa độ điểm Cci, thông số điều khiển hướng, thông số động học máy - Đầu ra: Các thông số điều khiển - Code: trình =============Chương toán================================== void CCTRPANEL::Calculate() { UpdateData(true); double Pi=3.145926535897932384626433832795; double l,za,zb,lc,i,xkn,ykn,zkn; lc=113.539; zb=0; za=689.811; double *lp,*lo,*b1o,*b2o,*b3o,*b4o,*b5o,*b6o; 105 tính lp=new double[3],lo=new double[3],b1o=new double[3],b2o=new double[3],b3o=new double[3],b4o=new double[3],b5o=new double[3],b6o=new double[3]; double *B1,*B2,*B3,*B4,*B5,*Bp1,*Bp2,*Bp3,*Bp4,*Bp5,*Bp6,*B6,oz[3]; oz[0]=0;oz[1]=0;oz[2]=1; double*A1,*A2,*A3,*A4,*A5,*A6,*s2,*s3,*s4,*s5,*s6,*s1,*k1,*k2,*k3,*k4,*k5,* k6,*k,M[3][3]; s1=new double[3],s2=new double[3],s3=new double[3],s4=new double[3], s5=new double[3],s6=new double[3]; Bp1=new double[3],Bp2=new double[3],Bp3=new double[3],Bp4=new double[3], Bp5=new double[3],Bp6=new double[3]; B1=new double[3],B2=new double[3],B3=new double[3],B4=new double[3], B5=new double[3],B6=new double[3]; A1=new double[3],A2=new double[3],A3=new double[3],A4=new double[3], A5=new double[3],A6=new double[3]; x1=a[t];//-300 y1=b[t];//+300 z1=c[t];//250 Bp1[0]=46.297;Bp1[1]=95.980;Bp1[2]=zb; Bp2[0]=-47.518;Bp2[1]=95.776;Bp2[2]=zb; Bp3[0]=-105.782;Bp3[1]=-8.89;Bp3[2]=zb; Bp4[0]=-59.98;Bp4[1]=-88;Bp4[2]=zb; Bp5[0]=59.64;Bp5[1]=-88.5;Bp5[2]=zb; Bp6[0]=106.5;Bp6[1]=-7.4;Bp6[2]=zb; A1[0]=60.073;A1[1]=177.397;A1[2]=za; 106 A2[0]=-59.927;A2[1]=177.397;A2[2]=za; A3[0]=-194.978;A3[1]=-56.266;A3[2]=za; A4[0]=-134.978;A4[1]=-160.189;A4[2]=za; A5[0]=134.905;A5[1]=-160.316;A5[2]=za; A6[0]=194.905;A6[1]=-56.393;A6[2]=za; xkn= td2[t]*oz[2] - oz[1]*td3[t]; //td1=td1[0] td2=td1[1] td3=td1[2] ykn= oz[0]*td3[t] - oz[2]*td1[t]; zkn= td1[t]*oz[1] - oz[0]*td2[t]; xk=xkn/(sqrt(xkn*xkn+ykn*ykn+zkn*zkn)); yk=ykn/(sqrt(xkn*xkn+ykn*ykn+zkn*zkn)); zk=zkn/(sqrt(xkn*xkn+ykn*ykn+zkn*zkn)); l=sqrt(td1[t]*td1[t]+td2[t]*td2[t]+td3[t]*td3[t])*sqrt(oz[0]*oz[0]+oz[1]*oz[1 ]+oz[2]*oz[2]); m_alpha=acos((td1[t]*oz[0]+td2[t]*oz[1]+td3[t]*oz[2])/l); if(m_alpha>Pi/6) { m_alpha=Pi/3-m_alpha; } M[0][0]=xk*xk*(1-cos(m_alpha))+cos(m_alpha); M[1][0]=xk*yk*(1-cos(m_alpha))+zk*sin(m_alpha); M[2][0]=xk*zk*(1-cos(m_alpha))-yk*sin(m_alpha); M[0][1]=yk*xk*(1-cos(m_alpha))-zk*sin(m_alpha); M[1][1]=yk*yk*(1-cos(m_alpha))+cos(m_alpha); M[2][1]=yk*zk*(1-cos(m_alpha))+xk*sin(m_alpha); 107 M[0][2]=zk*xk*(1-cos(m_alpha))+yk*sin(m_alpha); M[1][2]=zk*yk*(1-cos(m_alpha))-xk*sin(m_alpha); M[2][2]=zk*zk*(1-cos(m_alpha))+cos(m_alpha); lp[0]=0;lp[1]=0;lp[2]=lc; lo[0]=M[0][0]*lp[0]+M[0][1]*lp[1]+M[0][2]*lp[2]; lo[1]=M[1][0]*lp[0]+M[1][1]*lp[1]+M[1][2]*lp[2]; lo[2]=M[2][0]*lp[0]+M[2][1]*lp[1]+M[2][2]*lp[2]; b1o[0]=M[0][0]*Bp1[0]+M[0][1]*Bp1[1]+M[0][2]*Bp1[2]; b1o[1]=M[1][0]*Bp1[0]+M[1][1]*Bp1[1]+M[1][2]*Bp1[2]; b1o[2]=M[2][0]*Bp1[0]+M[2][1]*Bp1[1]+M[2][2]*Bp1[2]; b2o[0]=M[0][0]*Bp2[0]+M[0][1]*Bp2[1]+M[0][2]*Bp2[2]; b2o[1]=M[1][0]*Bp2[0]+M[1][1]*Bp2[1]+M[1][2]*Bp2[2]; b2o[2]=M[2][0]*Bp2[0]+M[2][1]*Bp2[1]+M[2][2]*Bp2[2]; b3o[0]=M[0][0]*Bp3[0]+M[0][1]*Bp3[1]+M[0][2]*Bp3[2]; b3o[1]=M[1][0]*Bp3[0]+M[1][1]*Bp3[1]+M[1][2]*Bp3[2]; b3o[2]=M[2][0]*Bp3[0]+M[2][1]*Bp3[1]+M[2][2]*Bp3[2]; b4o[0]=M[0][0]*Bp4[0]+M[0][1]*Bp4[1]+M[0][2]*Bp4[2]; b4o[1]=M[1][0]*Bp4[0]+M[1][1]*Bp4[1]+M[1][2]*Bp4[2]; b4o[2]=M[2][0]*Bp4[0]+M[2][1]*Bp4[1]+M[2][2]*Bp4[2]; b5o[0]=M[0][0]*Bp5[0]+M[0][1]*Bp5[1]+M[0][2]*Bp5[2]; b5o[1]=M[1][0]*Bp5[0]+M[1][1]*Bp5[1]+M[1][2]*Bp5[2]; b5o[2]=M[2][0]*Bp5[0]+M[2][1]*Bp5[1]+M[2][2]*Bp5[2]; b6o[0]=M[0][0]*Bp6[0]+M[0][1]*Bp6[1]+M[0][2]*Bp6[2]; b6o[1]=M[1][0]*Bp6[0]+M[1][1]*Bp6[1]+M[1][2]*Bp6[2]; b6o[2]=M[2][0]*Bp6[0]+M[2][1]*Bp6[1]+M[2][2]*Bp6[2]; 108 B1[0]=x1+lp[0]+b1o[0];B1[1]=y1+lp[1]+b1o[1];B1[2]=z1+lp[2]+b1o[2]; B2[0]=x1+lp[0]+b2o[0];B2[1]=y1+lp[1]+b2o[1];B2[2]=z1+lp[2]+b2o[2]; B3[0]=x1+lp[0]+b3o[0];B3[1]=y1+lp[1]+b3o[1];B3[2]=z1+lp[2]+b3o[2]; B4[0]=x1+lp[0]+b4o[0];B4[1]=y1+lp[1]+b4o[1];B4[2]=z1+lp[2]+b4o[2]; B5[0]=x1+lp[0]+b5o[0];B5[1]=y1+lp[1]+b5o[1];B5[2]=z1+lp[2]+b5o[2]; B6[0]=x1+lp[0]+b6o[0];B6[1]=y1+lp[1]+b6o[1];B6[2]=z1+lp[2]+b6o[2];*/ B1[0]=x1+lo[0]+b1o[0];B1[1]=y1+lo[1]+b1o[1];B1[2]=z1+lo[2]+b1o[2]; B2[0]=x1+lo[0]+b2o[0];B2[1]=y1+lo[1]+b2o[1];B2[2]=z1+lo[2]+b2o[2]; B3[0]=x1+lo[0]+b3o[0];B3[1]=y1+lo[1]+b3o[1];B3[2]=z1+lo[2]+b3o[2]; B4[0]=x1+lo[0]+b4o[0];B4[1]=y1+lo[1]+b4o[1];B4[2]=z1+lo[2]+b4o[2]; B5[0]=x1+lo[0]+b5o[0];B5[1]=y1+lo[1]+b5o[1];B5[2]=z1+lo[2]+b5o[2]; B6[0]=x1+lo[0]+b6o[0];B6[1]=y1+lo[1]+b6o[1];B6[2]=z1+lo[2]+b6o[2]; m1=sqrt((-A1[0]+B1[0])*(-A1[0]+B1[0])+(-A1[1]+B1[1])*(A1[1]+B1[1])+(-A1[2]+B1[2])*(-A1[2]+B1[2])); s1[0]=(A1[0]-B1[0])/m1;s1[1]=(A1[1]-B1[1])/m1;s1[2]=(A1[2]B1[2])/m1; m2=sqrt((A2[0]-B2[0])*(A2[0]-B2[0])+(A2[1]-B2[1])*(A2[1]B2[1])+(A2[2]-B2[2])*(A2[2]-B2[2])); s2[0]=(A2[0]-B2[0])/m2;s2[1]=(A2[1]-B2[1])/m2;s2[2]=(A2[2]B2[2])/m2; m3=sqrt((A3[0]-B3[0])*(A3[0]-B3[0])+(A3[1]-B3[1])*(A3[1]B3[1])+(A3[2]-B3[2])*(A3[2]-B3[2])); s3[0]=(A3[0]-B3[0])/m3;s3[1]=(A3[1]-B3[1])/m3;s3[2]=(A3[2]B3[2])/m3; 109 m4=sqrt((A4[0]-B4[0])*(A4[0]-B4[0])+(A4[1]-B4[1])*(A4[1]B4[1])+(A4[2]-B4[2])*(A4[2]-B4[2])); s4[0]=(A4[0]-B4[0])/m4;s4[1]=(A4[1]-B4[1])/m4;s4[2]=(A4[2]B4[2])/m4; m5=sqrt((A5[0]-B5[0])*(A5[0]-B5[0])+(A5[1]-B5[1])*(A5[1]B5[1])+(A5[2]-B5[2])*(A5[2]-B5[2])); s5[0]=(A5[0]-B5[0])/m5;s5[1]=(A5[1]-B5[1])/m5;s5[2]=(A5[2]B5[2])/m5; m6=sqrt((A6[0]-B6[0])*(A6[0]-B6[0])+(A6[1]-B6[1])*(A6[1]B6[1])+(A6[2]-B6[2])*(A6[2]-B6[2])); s6[0]=(A6[0]-B6[0])/m6;s6[1]=(A6[1]-B6[1])/m6;s6[2]=(A6[2]B6[2])/m6; d1=m1;d2=m2;d3=m3;d4=m4;d5=m5;d6=m6; xk1= s1[1]*oz[2] - oz[1]*s1[2]; yk1= oz[0]*s1[2] - oz[2]*s1[0]; //td1=oz[0] td2=oz[1] td3=oz[2] zk1= s1[0]*oz[1] - oz[0]*s1[1]; xk2= s2[1]*oz[2] - oz[1]*s2[2]; yk2= oz[0]*s2[2] - oz[2]*s2[0]; zk2= s2[0]*oz[1] - oz[0]*s2[1]; xk3= s3[1]*oz[2] - oz[1]*s3[2]; yk3= oz[0]*s3[2] - oz[2]*s3[0]; zk3= s3[0]*oz[1] - oz[0]*s3[1]; xk4= s4[1]*oz[2] - oz[1]*s4[2]; yk4= oz[0]*s4[2] - oz[2]*s4[0]; zk4= s4[0]*oz[1] - oz[0]*s4[1]; xk5= s5[1]*oz[2] - oz[1]*s5[2]; 110 yk5= oz[0]*s5[2] - oz[2]*s5[0]; zk5= s5[0]*oz[1] - oz[0]*s5[1]; xk6= s6[1]*oz[2] - oz[1]*s6[2]; yk6= oz[0]*s6[2] - oz[2]*s6[0]; zk6= s6[0]*oz[1] - oz[0]*s6[1]; m_alpha1=acos((s1[0]*oz[0]+s1[1]*oz[1]+s1[2]*oz[2])/(sqrt(s1[0]*s1[0]+s1 [1]*s1[1]+s1[2]*s1[2])*sqrt(oz[0]*oz[0]+oz[1]*oz[1]+oz[2]*oz[2]))); m_alpha2=acos(s2[2]/(sqrt(s2[0]*s2[0]+s2[1]*s2[1]+s2[2]*s2[2]))); m_alpha3=acos(s3[2]/(sqrt(s3[0]*s3[0]+s3[1]*s3[1]+s3[2]*s3[2]))); m_alpha4=acos(s4[2]/(sqrt(s4[0]*s4[0]+s4[1]*s4[1]+s4[2]*s4[2]))); m_alpha5=acos(s5[2]/(sqrt(s5[0]*s5[0]+s5[1]*s5[1]+s5[2]*s5[2]))); m_alpha6=acos(s6[2]/(sqrt(s6[0]*s6[0]+s6[1]*s6[1]+s6[2]*s6[2]))); UpdateData(false); } Chương trình mô - Tên hàm: Paint - Mục đích: Mô chuyển động gia công bề mặt phức tạp - Đầu vào: Các thông số điều khiển - Đầu ra: Giao diện mô với chuyển động gia công - Code: ==================Chương trình vẽ khâu mô phỏng====================== void CPSKView::OnInitialUpdate() { CView::OnInitialUpdate(); m1_bemat=false; m1_banmay=false; m1_phoi=false; 111 m1_dungcu=false; m1_trucdao=false; m1_phaptuyen=false; init=false; Pi=3.145926535897932384626433832795; m_pInitGL->SetBkgColor(RGB(44,167,255)); m_pInitGL->BeginGLCommand(); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); m_khung.setModel("STL1/CUM KHUNG.STL"); m_A1.setModel("STL1/TRUC NGOAI.STL"); m_A2.setModel("STL1/TRUC NGOAI.STL"); m_A3.setModel("STL1/TRUC NGOAI.STL"); m_A4.setModel("STL1/TRUC NGOAI.STL"); m_A5.setModel("STL1/TRUC NGOAI.STL"); m_A6.setModel("STL1/TRUC NGOAI.STL"); m_Dao.setModel("STL1/CUMDAO.STL"); m_B1.setModel("STL1/TRUC TRONG.STL"); m_B2.setModel("STL1/TRUC TRONG.STL"); m_B3.setModel("STL1/TRUC TRONG.STL"); m_B4.setModel("STL1/TRUC TRONG.STL"); m_B5.setModel("STL1/TRUC TRONG.STL"); m_B6.setModel("STL1/TRUC TRONG.STL"); m_QuyDao.clear(); m_QuyDao.setSize(10045*3); m_QuyDao.setColor(CColor(1,0,0)); m_QuyDao.set_line(1); m_QuyDao.setSizePoint(1); m_pInitGL->EndGLCommand(); m_pInitGL->EndGLCommand(); } void CPSKView::Paint() { m_QuyDao.addPoint(CPoint4D(x1,y1,z1)); m_pInitGL->BeforeDrawing(); glPushMatrix(); /* m_KhungRoBot.setMaterial(storageMaterial[5]); m_ConTruot.setMaterial(storageMaterial[13]); m_Cum1.setMaterial(storageMaterial[20]); m_Cum2.setMaterial(storageMaterial[20]); m_CumDauDao.setMaterial(storageMaterial[13]); m_CumVM.setMaterial(storageMaterial[8]);*/ m_khung.setMaterial(storageMaterial[5]); 112 m_A1.setMaterial(storageMaterial[12]); m_A2.setMaterial(storageMaterial[12]); m_A3.setMaterial(storageMaterial[12]); m_A4.setMaterial(storageMaterial[12]); m_A5.setMaterial(storageMaterial[12]); m_A6.setMaterial(storageMaterial[12]); m_Dao.setMaterial(storageMaterial[9]); m_B1.setMaterial(storageMaterial[6]); m_B2.setMaterial(storageMaterial[6]); m_B3.setMaterial(storageMaterial[6]); m_B4.setMaterial(storageMaterial[6]); m_B5.setMaterial(storageMaterial[6]); m_B6.setMaterial(storageMaterial[6]); m_pInitGL->UseUCS(); m_pInitGL->TranslateGL(); m_pInitGL->MouseMoveGL(); m_pInitGL->ScaleGL(); glScalef(1.5,1.5,1.5); glTranslated(200,300,-200); if(init) { glPushMatrix(); // ToaDoDauDao(); m_khung.drawObject(); glPopMatrix(); glPushMatrix(); glTranslated(x1,y1,z1); glRotated(alpha*180/Pi,xk,yk,zk); m_Dao.drawObject(); /*glColor3d(1,0,0); Line(0,0,0,100,0,0); glColor3d(0,1,0); Line(0,0,0,0,100,0); glColor3d(0,0,1); Line(0,0,0,0,0,100);*/ glPopMatrix(); glPushMatrix(); glTranslated(60.073,177.397,689.811); /*glColor3d(1,0,0); Line(0,0,0,100,0,0); glColor3d(0,1,0); Line(0,0,0,0,100,0); glColor3d(0,0,1); 113 Line(0,0,0,0,0,100);*/ glRotated(-alpha1*180/Pi,xk1,yk1,zk1); m_A1.drawObject(); glTranslated(0,0,-m1); m_B1.drawObject(); /*glColor3d(1,0,0); Line(0,0,0,100,0,0); glColor3d(0,1,0); Line(0,0,0,0,100,0); glColor3d(0,0,1); Line(0,0,0,0,0,100);*/ glPopMatrix(); glPushMatrix(); glTranslated(-59.927,177.397,689.811); glRotated(-alpha2*180/Pi,xk2,yk2,zk2); m_A2.drawObject(); glTranslated(0,0,-m2); m_B2.drawObject(); glPopMatrix(); glPushMatrix(); glTranslated(-194.978,-56.266,689.811); glRotated(-alpha3*180/Pi,xk3,yk3,zk3); m_A3.drawObject(); glTranslated(0,0,-m3); m_B3.drawObject(); glPopMatrix(); glPushMatrix(); glTranslated(-134.978,-160.189,689.811); glRotated(-alpha4*180/Pi,xk4,yk4,zk4); m_A4.drawObject(); glTranslated(0,0,-m4); m_B4.drawObject(); glPopMatrix(); glPushMatrix(); glTranslated(134.905,-160.316,689.811); glRotated(-alpha5*180/Pi,xk5,yk5,zk5); m_A5.drawObject(); glTranslated(0,0,-m5); m_B5.drawObject(); glPopMatrix(); glPushMatrix(); glTranslated(194.905,-56.393,689.811); glRotated(-alpha6*180/Pi,xk6,yk6,zk6); 114 m_A6.drawObject(); glTranslated(0,0,-m6); m_B6.drawObject(); glPopMatrix(); } if(m1_bemat) m_QuyDao.drawPoints(); if(m1_phoi) ToaDoPhoi(); glPopMatrix(); m_pInitGL->AfterDrawing(); } 115 PHỤ LỤC C: THÔNG SỐ ĐỘNG LỰC HỌC TỪ SOLIDWORKS Để lấy thông số động lực học mô hình như: khối lượng, ma trận quán tính, tọa độ trọng tâm… ta sử dụng chức Mass Properties phần mềm Solid Works Hình C.1 Thông số động lực học cụm khung đế Hình C.2 Thông số động lực học cụm giá di động 116 Hình C.3 Thông số động lực học khớp chân Hình C.4 Thông số động lực học khớp chân 117 ... tài " Tính toán động học, động lực học trung tâm phay CNC trục ảo kiểu Hexapod ", em đạt số kết định: Tìm hiểu cấu trúc máy song song kiểu hexapod gia công khí, tính toán động học, động lực học. .. Tính toán động học, động lực học trung tâm phay CNC trục ảo kiểu Hexapod để thực luận văn MỤC ĐÍCH NGHIÊN CỨU CỦA ĐỀ TÀI - Phân tích lựa chọn kết cấu máy, thiết kế cấu trung tâm phay CNC trục. .. thấy việc nghiên cứu tính toán động học, động lực học trung tâm phay CNC trục ảo kiểu Hexapod cần thiết việc nghiên cứu mô trình điều khiển động lực học để xuất tín hiệu lực điều khiển quan trọng

Ngày đăng: 23/07/2017, 09:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w