Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 130 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
130
Dung lượng
4,5 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 CHUN NGÀNH: CƠ ĐIỆN TỬ TÍNH TỐ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 TỐ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 tố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 tố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 tố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 khơng thể tránh thiếu sót chưa thể hồn thiện mong đợi, kính mong q thầy đó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 tốn động học ngược gia cơng khí35 2.2.3 Thuật tố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 tốn độ biến thiên chiều dài chân 84 Hàm tính tốn vẽ đồ thị độ biến thiên vận tốc góc 87 Tính tốn gia tốc góc chân điểm tạo hình CCi 89 Tính tốn vận tốc dài chân điểm tạo hình CCi 91 Tính tố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 tố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 Tố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 Mk 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 tố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 tốn đưa thơng số điều khiển - Tên hàm: Calculate - Mục đích: Tính tốn thơng số động học phục vụ cho tố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 tố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 tố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 tốn động học, động lực học điều... PHÂN TÍCH ĐỘNG HỌC TRUNG TÂM PHAY CNC TRỤC ẢO KIỂU HEXAPOD Chương trình bày tính tốn động học trung tâm phay CNC trục ảo sở tham số công nghệ liệu đường dụng cụ gia cơng trục, qua tính tốn tham... tính tốn giải phương trình động học, động lực học kết cấu có cấu trúc song song phức tạp Do em chọn đề tài ? ?Tính tố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