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

TÍNH TOÁN ĐỘNG học, ĐỘNG lực học máy PHAY CNC 5 TRỤC ảo KIỂU HEXAPOD

128 1,1K 5

Đ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 128
Dung lượng 16,76 MB

Nội dung

NGUY ỄN 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 TÍNH TOÁN ĐỘNG HỌC, ĐỘNG LỰC HỌC MÁY PHAY CNC TRỤC ẢO KIỂU HEXAPOD LUẬN VĂN THẠC SĨ KHOA HỌC CƠ ĐIỆN TỬ KHOÁ: Hà Nội – 9/2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - i KS NGUYỄN TIẾN THỊNH TÍNH TOÁN ĐỘNG HỌC, ĐỘNG LỰC HỌC MÁY PHAY CNC 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 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 ii LỜI CẢM ƠN Trong trình thực đề tài " Tính toán động học, động lực học 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 iii MỤC LỤC LỜI CAM ĐOAN .ii LỜI CẢM ƠN iii MỤC LỤC iv DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT .v DANH MỤC CÁC BẢNG vii DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ vii MỞ ĐẦU 1 ĐẶT VẤN ĐỀ MỤC ĐÍCH NGHIÊN CỨU CỦA ĐỀ TÀI .2 Ý 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 .2 Chương .3 TỔNG QUAN VỀ MÁY CNC TRỤC ẢO KIỂU HEXAPOD .3 1.1 MÁY CNC CÓ CẤU TRÚC CHUỖI ĐỘNG HỌC HỞ TRUYỀN THỐNG .4 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 10 1.3 ƯU NHƯỢC ĐIỂM CỦA CƠ CẤU SONG SONG 14 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 15 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 16 1.6 KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU 29 Chương 30 PHÂN TÍCH ĐỘNG HỌC MÁY CNC TRỤC ẢO KIỂU HAXAPOD 30 2.1 PHÂN TÍCH LỰA CHỌN KẾT CẤU MÁY 30 2.2 THIẾT LẬP PHƯƠNG TRÌNH ĐỘNG HỌC VỊ TRÍ 33 2.3 BÀI TOÁN VẬN TỐC 53 2.4 VÍ DỤ ÁP DỤNG 64 Chương 67 BÀI TOÁN ĐỘNG LỰC HỌC .67 3.1 BÀI TOÁN GIA TỐC 67 3.2 XÁC ĐỊNH GIA TỐC VÀ GIA TỐC GÓC CỦA KHÂU THAO TÁC 68 3.3 GIA TỐC TRỌNG TÂM CÁC KHÂU 68 3.4 PHÂN TÍCH ĐỘNG LỰC HỌC THEO PHƯƠNG PHÁP NEWTONEULER 69 3.5 Ví dụ áp dụng 74 KẾT LUẬN .84 PHỤ LỤC 87 iv PHỤ LỤC A: CHƯƠNG TRÌNH MÔ PHỎNG MATLAB 87 PHỤ LỤC B: CHƯƠNG TRÌNH MÔ PHỎNG TRÊN VISUAL C SỬ DỤNG THƯ VIỆN OPENGL 107 PHỤ LỤC C: THÔNG SỐ ĐỘNG LỰC HỌC TỪ SOLIDWORKS .119 DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT v 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} Hệ ϑ0 quy chiếu đặt tâm giá cố định RBSS ϑ0{SRBXRBYRBZRB} ϑ2 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 ϑ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 ϑ 0 ω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 ω ~v 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 −1 R2  m1 ji  m ji v M1 ji Toán tử sóng véc tơ s ji Ma trận nghịch đảo ma trận quay R vi 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ận tốc dài trọng tâm chân thứ j thời điểm thứ i DANH MỤC CÁC BẢNG Nội dung Trang Bảng 2.1 Tính chọn góc điều khiển hướng thực RBSS 28 Bảng 2.2 Bảng thông số kích thước động học 33 Bảng 3.1 Dữ liệu cắt [22] 72 Bảng 3.2 Các giá trị lực cắt lớn mô 74 thí nghiệm dao đầu cầu phay CNC trục Bảng 3.3 Bảng thông số động lực học 76 Bảng 3.4 Bảng trích ngang quỹ đạo mô lực 77 DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ vii MỞ ĐẦU ĐẶT VẤN ĐỀ Quá trình công nghiệp hóa mục tiêu phát triển nhiều quốc gia giới, sản phẩm công nghiệp ngày yêu cầu đạt độ xác độ bóng cao, chi tiết ngày tinh xảo phức tạp Chính mà máy công cụ điều khiển số hay gọi máy CNC ngày đại hóa sử dụng rộng rãi toàn giới Máy CNC phát triển năm 1940 trở nên phổ biến từ năm 1970, ban đầu từ máy 2, ½ , 3, 4, trục, thông thường máy có cấu trúc động học hở truyền thống Tuy nhiên đến đầu năm 1990 ngành công nghiệp an ninh quốc phòng đòi hỏi cần tạo sản phẩm có bề mặt phức tạp, có độ xác cao đòi hỏi ngày phải phát triển hoản thiện máy CNC hệ có tính linh động cao bên cạnh máy CNC chuỗi động học hở truyền thống Từ năm 1990 bắt đầu phát triển máy có cấu trúc động học song song nhằm tăng tính linh hoạt máy công cụ trình gia công chi tiết có bề mặt phức tạp Các máy công cụ gọi máytrục ảo ứng dụng việc chế tạo máy phay CNC cao tốc sử dụng cho loại bề mặt phức tạp Cho đến hầu hết máy thương mại hóa Mỹ, Nhật Bản dùng gia công sản phẩm có độ xác cao, cấu trúc máy song song ứng dụng nhiều nghành công nghiệp khác nghành công nghiệp hàng không, y học… Những năm gần nhiều nước tiến hành nghiên cứu phát triển kiểu cấu trúc máy này, điều thể qua công trình nghiên cứu đăng tạp chí uy tín giới Như nói mẫu máy CNC Do em chọn đề tài nghiên cứu: “Tính toán động học, động lực học 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 máy CNC trục ảo kiểu hexapod - Phân tích động học máy CNC trục ảo hiểu hexapod, thiết lập thuật toán điều khiển vị trí đầu trục - Thiết lập phương trình động lực học, xây dựng hệ thống điều khiển máy - Xây dựng phần mềm mô trình gia công bề mặt cong phức tạp máy CNC trục ảo kiểu hexapod Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI Luận văn nghiên cứu cấu trúc thuật toán điều khiển cho máy CNC trục ảo kiểu hexapod gia công bề mặt phức tạp, kết nghiên cứu nhằm đưa kết cấu hợp lý thuật toán điều khiển cho máy CNC trục ảo kiểu hexapod Các nghiên cứu luận văn sở cho việc nghiên cứu chế tạo máy CNC cấu trúc song song Việt Nam NỘI DUNG NGHIÊN CỨU CỦA LUẬN VĂN Luận văn trình bày 81 trang A4 35 trang phụ lục với chương: Chương 1: Tổng quan máy CNC trục ảo kiểu hexapod, ưu nhược điểm máy có cấu trúc chuỗi động học hở máy có cấu trúc động học song song Chương 2: Phân tích lựa chọn kết cấu máy, phân tích động học động học thuận, tính toán đưa thuật toán điều khiển toán động học ngược gia công khí Chương 3: Thiết lập phương trình động lực học, giải toán động lực học, xây dựng hệ thống điều khiển máy Luận văn kết thúc với ba phụ lục: Phụ lục A: Các chương trình MATLAB tính toán mô đặc tính động học biến khớp Phụ lục B: Chương trình phần mềm gia công bề mặt phức tạp Phụ lục C: Thông số động lực học từ Solidworks Chương TỔNG QUAN VỀ MÁY CNC TRỤC ẢO KIỂU HEXAPOD 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'); 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; 107 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; i++; } fclose(f); Calculate(); } 108 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: =============Chương trình 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; 109 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; 110 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] 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); M[0][2]=zk*xk*(1-cos(m_alpha))+yk*sin(m_alpha); 111 td2=td1[1] 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]; B1[0]=x1+lp[0]+b1o[0];B1[1]=y1+lp[1]+b1o[1];B1[2]=z1+lp[2]+b1o[2]; 112 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; 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])); 113 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]; yk5= oz[0]*s5[2] - oz[2]*s5[0]; zk5= s5[0]*oz[1] - oz[0]*s5[1]; 114 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]*o z[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; m1_dungcu=false; m1_trucdao=false; 115 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]); m_A1.setMaterial(storageMaterial[12]); m_A2.setMaterial(storageMaterial[12]); 116 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); Line(0,0,0,0,0,100);*/ glRotated(-alpha1*180/Pi,xk1,yk1,zk1); 117 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); m_A6.drawObject(); glTranslated(0,0,-m6); 118 m_B6.drawObject(); glPopMatrix(); } if(m1_bemat) m_QuyDao.drawPoints(); if(m1_phoi) ToaDoPhoi(); glPopMatrix(); m_pInitGL->AfterDrawing(); } 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 119 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 120 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 121 ... đề tài " Tính toán động học, động lực học 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... máy, thiết kế cấu máy CNC trục ảo kiểu hexapod - Phân tích động học máy CNC trục ảo hiểu hexapod, thiết lập thuật toán điều khiển vị trí đầu trục - Thiết lập phương trình động lực học, xây dựng hệ... cho thấy việc nghiên cứu tính toán động học, động lực học máy 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: 02/04/2017, 21:08

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w