intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài tiểu luận: Phương pháp xây dựng bề mặt cho CAD/CAM

Chia sẻ: Ngọc Hưng | Ngày: | Loại File: DOC | Số trang:17

157
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Với kết cấu nội dung gồm 2 phần, bài tiểu luận "Phương pháp xây dựng bề mặt cho CAD/CAM" giới thiệu đến các bạn những nội dung về các kiến thức chung nhất về mô hình toán học và cách xây dựng đường cong Bezier, đường cong B-spline, mảnh mặt cong Bezier và mảnh mặt cong B-spline,... Đây là tài liệu tham khảo hữu ích cho các bạn chuyên ngành Công nghệ thông tin.

Chủ đề:
Lưu

Nội dung Text: Bài tiểu luận: Phương pháp xây dựng bề mặt cho CAD/CAM

  1. Phương pháp xây dựng bề mặt cho CAD/CAM LỜI NÓI ĐẦU Hiện nay việc gia công cơ các bề mặt sản phẩm trong công nghiệp rất  đa dạng và phức tạp, vì vậy để  thiết kế  và mô tả  nó thuận lợi người ta sử  dụng các phần mềm máy tính trợ  giúp. Trong đó các phần mềm CAD/CAM   đóng vai trò quan trọng trong việc trợ  giúp xây dựng các bề  mặt bằng máy  tính. Môn học: "Phương pháp xây dựng bề  mặt cho CAD/CAM" cung cấp   cho các học viên các phương pháp xây dựng bề  mặt thường gặp trong sản  xuất công nghiệp, trên cơ  sở  đó giúp cho học viên hiểu thêm quá trình xây  dựng các đường cong và các mặt phức tạp trong hệ thống CAD/CAM/CNC Trong quá trình tìm hiểu và học tập môn hoc, tác giả  đã tiến hành làm  tiêủ luận để có thức riêng cho bản thân về môn học và thực hành lập trình sơ  bộ  cho các biên dạng đường và mặt cơ  bản, bước đầu biết được nguyên lý  chung cho quá trình xây dựng các bề mặt này. Tiểu luận môn học sau được trình bày làm 2 phần: ­ Phần 1. Cơ sở lý thuyết: bao gồm các kiến thức chung nhất về mô  hình toán học và cách xây dựng đường cong Bezier, đường cong B­spline,  mảnh mặt cong Bezier và mảnh mặt cong B­spline. ­ Phần 2. Bài tập: sử dụng phần mềm Matlab để xây dựng đường  cong Bezier, đường cong B­spline, mảnh mặt cong Bezier và mảnh mặt cong  B­spline  Trong quá trình thực hiện tiểu luận, tác giả chân thành cảm ơn  sự giúp  đỡ tận tình của TS. Bùi Quý Lực, Bộ môn Máy ­ Ma sát, Khoa Cơ khí, Đại  học Bách khoa Hà nội và  các ý kiến đóng góp của các bạn trong lớp.Trong  qua trình làm tác giả không thể tránh được những thiếu sót, rât mong được sự  đóng góp của thầy cô và các bạn để có thể hoàn thiện tốt hơn. Hà nội, ngày 19 tháng 8 năm 2009 1 Học viên: Vũ Quang Lương
  2. Phương pháp xây dựng bề mặt cho CAD/CAM       Học viên Vũ Quang Lương 2 Học viên: Vũ Quang Lương
  3. Phương pháp xây dựng bề mặt cho CAD/CAM Phần 1. CƠ SỞ LÍ THUYẾT Để   tạo   thành  các   khối  vật   thể   trong  không   gian  3D,   trong   kĩ   thuật  người ta sử dụng các đường cong phẳng. Trong toán học, các đoạn cong được  biểu diễn bằng một hàm  ẩn, hàm tường minh hoặc một hàm tham số. Hàm  để  mô tả  đường cong được gọi là mô hình toán học của đường cong. Có  nhiều hàm để mô tả các đường cong nhưng người ta sử dụng rộng rãi hàm đa   thức vì hàm này dễ làm việc và linh hoạt trong việc mô tả  nhiều loại đường   cong kỹ thuật. Để xây dựng đoạn cong trên cơ sở điểm đã biết, người ta phải dựa vào  một hàm nào đó và gọi nó là hàm cơ sở. Sử dụng hàm đa thức chuẩn làm hàm  cơ sở có ưu việt là dễ dàng định nghĩa và đánh giá. Khảo sát hàm bậc ba: r(u)  = (x(u), y(u), z(u)) = a + bu + cu2 + du3 Thể hiện dưới dạng ma trận: a b ru 1 u u2 u3 c (1) d Hay r(u) = UA với 0 u 1. Trong đó U là véc tơ cơ sở và A là véc tơ hệ số. 1.1. Mô hình toán học đường cong Berier. Chúng ta trình bày cách xây dựng đường cong Bezier trên cơ  sở  đường  cong Ferguson với các điều kiện mút V0, V1, V2, V3 trong đó: V0 ­ điểm bắt đầu đoạn đường cong, tương ứng với điểm P0. V1 ­ điểm nằm trên véc tơ tiếp tuyến điểm đầu đường cong và bằng V 0  + t0/3 chỉ ra trên hình 1.  3 Học viên: Vũ Quang Lương
  4. Phương pháp xây dựng bề mặt cho CAD/CAM V2 ­ điểm nằm trên véc tơ tiếp tuyến điểm cuối đường cong và bằng V 3  ­ t1/3; V3 ­ Điểm cuối của đoạn cong ứng với đỉnh P1. Điểm cuối của đường cong Bezier với điều kiện mút được viết như  sau: V0 = P0; V1 = V0 + t0/3; V2 = V3 ­ t1/3; V3 = P1 t0 t1 V1 V1 V2 V1 V2 r(u) V3 V0 V0= P0 V3 = P1 V0 V3 V2 Hình 1. Ví dụ đường cong Bezier bậc 3 Để  có thể  dùng phương pháp xây dựng đường cong bậc ba Ferguson  vào xây dựng đường cong Bezier khi biết các điều kiện mút của nó, chúng ta  phải tìm môtis quan hệ  giữa điều kiện mút của đường cong bậc 3 Ferguson  P0, P1, t0, t1, và điều kiện mút của đường cong Bezier V0, V1, V2, V3 có nghĩa là  ta phải có: V0 = P0  V3 = P1 Xác định t0 theo V1 ta nhận được: V1 = V0 + t0/3 3V1 = 3V0 ­ t0 t0 = 3(V1­V0) Xác định t1 theo V2 ta có:  V2 = V3 ­ t1/3 4 Học viên: Vũ Quang Lương
  5. Phương pháp xây dựng bề mặt cho CAD/CAM 3V3 = 3V2 ­ t1 t1 = 3(V2­V3) Kết quả biến đổi ta nhận được hệ phương trình tuyến tính: V0 = P0  V3 = P1 t0 = 3(V1­V0) t1 = 3(V2­V3) Thể hiện dưới dạng ma trận: P0 1 0 0 0 V0 P1 0 0 0 1 V1 S L R (4) t0 3 3 0 0 V2 t1 0 0 3 3 V3 Thay (4) vào (2) ta nhận được đường cong Bezier bậc ba. r(u) = U C S = U C L R (5) Với 0 u 1 Đặt M = C L 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 3 3 0 0 M C L = 3 3 2 1 3 3 0 0 3 6 3 0 2 2 1 1 0 0 3 3 1 3 3 1 V0 V1 Và R =  V2 V3 Phương trình (5) được gọi là phương trình đường cong Bezier. 5 Học viên: Vũ Quang Lương
  6. Phương pháp xây dựng bề mặt cho CAD/CAM Phương trình trên cũng có thể biểu diễn dưới dạng hàm đa thức: r(u) = (U M) R = B0,3(u)V0 +  B1,3(u)V1 + B2,3(u)V2 + B3,3(u)V3 3 =  B1,3 (u )Vi i 0 trong đó: B0,3(u) = (1­u)3 B1,3(u) = 3u(1­u)2 B2,3(u) = 3u2(1­u) B3,3(u) = u3 Bi,3(u) được gọi là đa thức Bezier bậc 3 Đa thức  Bezier  tương   đương  với số  hạng trong khai triển nhị  phân  (u+v)n, với v = 1 ­ u. Dạng chung của đa thức Bezier bậc n được viết như sau: n! Bi,n (u)  u i (1 ­ u) n ­i   ( n i )!i! Đa thức trên được gọi là hàm cơ  sở  Bezier dùng để  định nghĩa đường  cong Bezier bậc n với n+1 điểm điều khiển. n r (u ) Bi ,n (u )Vi  với 0 u 1 i 0 Chúng ta có thể  tiến hành các phép như  là tăng bậc, giảm bậc hàm  Bezier. Ví dụ: đường cong Berier bậc ba Chương trình trên Matlab   hold off; % Vi tri vecto 6 Học viên: Vũ Quang Lương
  7. Phương pháp xây dựng bề mặt cho CAD/CAM P = [80 80;             150 100;            300 250;             450 20]; %P = [p1x p1y;      %p2x p2y;      %p3x p3y;      %p4x p4y] X = [0 0 0 0 1 1 1 1+eps];                 tmin=0; tmax=1; n = 3;   Bs = zeros(51,2);   for i = 1:51     t = tmin + (tmax­tmin)*(i­1)/50;     for j = 1:(n+1)         Bs(i,:) = Bs(i,:) + P(j,:)*bsplinebasis(j,4,t,X);                        end end plot(Bs(:,1),Bs(:,2),P(:,1),P(:,2),'­*r','LineWidth',2); title ( 'Duong cong Berier bac ba') grid on Ta sẽ có được biên dạng đường cong Berier bậc ba như sau: 1.2. Mô hình toán học đường cong B­spline đồng nhất 7 Học viên: Vũ Quang Lương
  8. Phương pháp xây dựng bề mặt cho CAD/CAM Để hiểu được đặc trưng hình học của một đường cong B­spline bậc 3  cần phải biết cấu trúc hình học của đường cong này.Giả  sử, bốn đỉnh điều  khiển của đường cong bậc ba này được ký hiệu V0, V1, V2, V3.Ta định nghĩa  như sau: V0 V1 M0 2  Là điểm giữa của V0 và V1 V1 V2 M1 2  Là điểm giữa của V1 và V2 2V1 M0 P0 3  Là điểm nằm ở một phần ba của đoạn thẳng V1 và M0 2V2 M1 P1 3  Là điểm nằm ở một phần ba của đoạn thẳng V2 và M1 Ta xây dựng đoạn cong r(u) thoả mãn điều kiện sau: ­ Đoạn cong bắt đầu từ điểm P0 và điểm cuối là P1 ­ Vectơ tiếp tuyến t0 ở điểm P0 là bằng ( M0­V0) ­ Vectơ tiếp tuyến t1 ở điểm P1 là bằng ( M1­V1) Điểm mút P0 và P1 của đoạn cong biểu diễn theo các đỉnh điều khiển như sau: ­ Điểm đầu P0 của đoạn cong B­spline r(u) được dánh giá như sau V0 v1 2V1 o  P 2V1 M0 2 4V1 V0 V2 0 3 3 6 4V1 (V0 V2 )   Hay   P0 r (0) 6   (1­a) Đánh giá r(u) tại điểm cuối P1 ứng với u = 1 V1 V3 2V 2 2V1 M0 2 4V 2 V1 V3 P1 3 3 6 4V2 (V1 V3 ) Biểu diễn tại P1:   P1 r (1) 6   (1­b) . Ta có  t 0 r (u ) , do đó ta xác định tiếp tuyến t0:  8 Học viên: Vũ Quang Lương
  9. Phương pháp xây dựng bề mặt cho CAD/CAM V0 V2 V2 V0 P0 M0 V0 V0 2 2 . V2 V0 Hay  t 0 r (0) 2   (2­a) Tương tự ta có:  V1 V3 V3 V1 P1 M1 V1 V1 2 2 . V3 V1 Hay  t1 r (1) 2   (2­b) Tử các phương trình (1­a), (1­b), (2­a), (2­b) ta có hệ phương trình tuyến tính 1 P0 (V0 4V 4 V2 0) 6 1 P1 (0 V1 4V 2 V3 ) 6 1 t0 ( 3V0 0 3V2 0) 6 1 t1 (0 3V1 0 3V3 ) 6 Chuyển sang dạng ma trận ta được: P0 1 4 1 0 V0 P1 1 0 1 4 1 V1 S KR t0 6 3 0 3 0 V2 t1 0 3 0 3 V3 Thay kết quả tìm được vào đường cong Ferguson ta tìm được cách biểu  diễn đường cong B­spline đồng nhất bậc 3 r(u)  =U C S = U C K R Với  0 ≤ u ≤ 1  = U (C K) R U = [1 u u2 u3 ] C – ma trận hệ số Ferguson  9 Học viên: Vũ Quang Lương
  10. Phương pháp xây dựng bề mặt cho CAD/CAM 1 4 1 0 1 3 0 3 0 N 6 3 6 3 0 1 3 3 1 R = [V0 V1 V2 V3 ]T  Trong đó N­ hệ số đường cong B­spline bậc ba Đường cong B­spline đồng nhất bậc ba viết dưới dạng biểu thức đại số như  sau: 1 3u 3u 2 u3 4 6u 2 3u 3 1 3u 3u 2 3u 3 u3 r( u ) V0 V1 V2 V3 6 6 6 6 Đặt: 1 3u 3u 2 u3 S 0,3 (u ) 6 4 6u 2 3u 3 S1,3 (u ) 6 1 3u 3u 2 3u 3 S 2,3 (u ) 6 u3 S 3,3 (u ) 6 Đường cong B­spline viết dưới dạng biểu thức đại số: 3 r (u ) S i ,n (u ).Vi i 0 Tập phương trình đại số Si,3(u) với i = 0,B­spline đồng nhất bậc ba hay   còn gọi là hàm hỗn hợp B­spline.  ­ Ví dụ: đường cong B­spline bậc 3 %function bspline(P,n) hold off; % Vi tri vecto P = [0 20 0;      10 40 150 ;      30 ­70 20]; %P = [p1x p1y p1z;      %p2x p2y p2z;      %p3x p3y p3z];      X = [0 0 0 1 1 1+eps];               10 Học viên: Vũ Quang Lương
  11. Phương pháp xây dựng bề mặt cho CAD/CAM   tmin=0; tmax=1; n = 2;   Bs = zeros(51,3);   for i = 1:51     t = tmin + (tmax­tmin)*(i­1)/50;     for j = 1:(n+1)         Bs(i,:) = Bs(i,:) + P(j,:)*bsplinebasis(j,n+1,t,X);                      end end plot3(Bs(:,1),Bs(:,2),Bs(:,3),P(:,1),P(:,2),P(:,3),'­*r','LineWidth',2); %axis([500 0 0 500]); title('B­Spline bac ba'); grid on Ta sẽ có một đường B­spline bậc ba như sau: 1.3. Mảnh mặt Berier Bây giờ chúng ta xây dựng mảnh mặt Bezier từ các đường cong Bezier  tương tự  như  phương pháp hình thành mảnh mặt Ferguson đã nêu trên. Giả  thiết rằng chúng ta có mảng 4x4 đỉnh điều khiển  Vi,j   được bố  trí như  trên  hình 4. 11 Học viên: Vũ Quang Lương
  12. Phương pháp xây dựng bề mặt cho CAD/CAM V03 V13 V02 V12 V23 v =0 V22 V01 V11 V21 V32 V33 V31 V00 V10 V20 u =0 V30 Hình 4. Mảnh mặt Bezier bậc 3 Các đỉnh điều khiển liên kết với nhau bằng đa thức Bernstein, mảnh  mặt Bezier bậc 3 được xác định như sau: 3 3 r(u, v) B3i (u ) B 3j (v)Vij i 0 j 0 3 3 3! 3! r(u, v) u i (1 u )3 i v j (1 v)3 j (10) i 0 j 0 (3 i )!i! (3 j )! j! = U M B MT VT Trong đó:  U =  1 u u2 u3 và V =  1 v v2 v3 1 0 0 0 3 3 0 0 M =  3 6 3 0 1 3 3 1 V00 V01 V02 V03 V10 V11 V12 V13 B V20 V21 V22 V23 V30 V31 V32 V33 M được gọi là ma trận hệ số Bezier B là ma trận hệ số điều khiển Bezier. Phương trình mảnh mặt Bezier tổng quát bậc n và m điều khiển như  sau: 12 Học viên: Vũ Quang Lương
  13. Phương pháp xây dựng bề mặt cho CAD/CAM m n r(u, v) Bim (u ) B nj (v)Vij (11) i 0 j 0 Trong đó: m! Bim (u ) u i (1 u ) m i (m i )!i! n! B nj (v ) v j (1 v) n j (n j )! j! Trong CAD/CAM người ta thường sử dụng mảnh mặt Bezier bậc  m=n=5 hoặc m=n=7. Khi bậc m=n=5 số đỉnh điều khiển cần thiết là 36. Chúng ta  có thể tiến hành tăng hoặc giảm bậc của phương trình mảnh  mặt tam giác Bezier. Ví dụ bề mặt Berierbậc 2 pr = 20;  P = zeros(3,3,3);   P(1,1,:) = [0 3 ­1];   P(1,2,:) = [0 7 5];  P(1,3,:) = [0 6 1];    P(2,1,:) = [2 3 1];  P(2,2,:) = [3 10 ­2];  P(2,3,:) = [1 7 0];    P(3,1,:) = [2 3 1];  P(3,2,:) = [4 5 0];  P(3,3,:) = [5 7 3];   n = 2; m = 2; % Knot vectors X = [0 0 0.5 1+eps 1+eps]; Y = [0 0 0.5 1+eps 1+eps]; Q = zeros(pr+1,pr+1); R = zeros(pr+1,pr+1); S = zeros(pr+1,pr+1); for g = 1:(pr+1)     u = (g­1)/pr;     for h = 1:(pr+1)         v = (h­1)/pr;         for i = 1:(n + 1)             for j = 1:(m + 1)                 Q(g,h)=Q(g,h)+  P(i,j,1)*bsplinebasis(i,m,u,X)*bsplinebasis(j,n,v,Y);                 R(g,h)=R(g,h)+  P(i,j,2)*bsplinebasis(i,m,u,X)*bsplinebasis(j,n,v,Y);                 S(g,h)=S(g,h)+  P(i,j,3)*bsplinebasis(i,m,u,X)*bsplinebasis(j,n,v,Y);             end 13 Học viên: Vũ Quang Lương
  14. Phương pháp xây dựng bề mặt cho CAD/CAM         end     end end hold off; surf(Q,R,S,'EdgeColor','none', 'FaceAlpha', 1); hold on; surf(P(:,:,1) ,P(:,:,2), P(:,:,3),'FaceColor', 'none','LineWidth',1.0); title('Be mat Bezier bac hai'); 1.4. Mảnh mặt B­spline đồng nhất  Mặt B­spline đồng nhất bậc ba của hai biến u và v được biểu diễn bởi  phương trình sau: 3 3 r (u, v) N i3 (u ) N 3j (u )Vij Với 0 ≤ u ≤ 1 i 0 j 0 = U N B NT VT Trong đó: U = [ 1 u u2 u3 ] V = [ 1 v v2 v3 ] 14 Học viên: Vũ Quang Lương
  15. Phương pháp xây dựng bề mặt cho CAD/CAM V00 V01 V02 V03 V10 V11 V12 V13 B V20 V21 V22 V23 V30 V31 V32 V33 1 4 1 0 1 3 0 3 0 N 6 3 6 3 0 1 3 3 1 1 3u 3u 2 u3 N 0,3 (u ) 6 4 6u 2 3u 3 N 1,3 (u ) 6 1 3u 3u 2 3u 3 N 2, 3 (u ) 6 u3 N 3,3 (u ) 6 Mặt B­spline đồng nhất được thể hiện dưới hình sau: V03 V13 V02 V12 V23 V22 V01 V11 V32 V33 v u V21 V31 V00 V10 V20 V30 Măt cong B­spline đồng nhất bậc hai được em như  là tích tensor của   đường cong B­spline đồng nhất bậc hai r(u) = U N 2  R. Mặt đồng nhất B­ spline có thể  có bậc của hai biến u và v khác nhau. Ví dụ  mặt B­spline có   biến u hoặc biến v bậc hai, phương trình được biểu diễn như sau: r(u)= U N B N2T VT Với 0 ≤ u ≤ 1  Trong đó: U = [ 1 u u2 u3 ] 15 Học viên: Vũ Quang Lương
  16. Phương pháp xây dựng bề mặt cho CAD/CAM V = [ 1 v v2 v3 ] V00 V01 V02 V10 V11 V12 B V20 V21 V22 V30 V31 V32 1 4 1 0 1 3 0 3 0 N 6 3 6 3 0 1 3 3 1 1 1 0 N2 2 2 0 1 2 1 Ví dụ mảnh mặt B­spline : pr = 20; % cac diem P = zeros(4,3,3)  P(1,2,:) = [2 1 2];   P(1,3,:) = [1 3 4];  P(1,4,:) = [1 7 3];  P(2,1,:) = [2 1 1];  P(2,2,:) = [2 ­5 3];  P(2,3,:) = [2 ­4 1];  P(2,4,:) = [1 10 6];  P(3,1,:) = [2 2 1];  P(3,2,:) = [3 2 0];  P(3,3,:) = [5 9 2];  P(3,4,:) = [2 3 ­1];  P(4,1,:) = [1 2 1];  P(4,2,:) = [4 3 2];  P(4,3,:) = [3 5 5];  P(4,4,:) = [4 6 8];     n = 3; m = 3; % Knot vectors X = [0 0 0 0.5 1+eps 1+eps 1+eps]; Y = [0 0 0 0.5 1+eps 1+eps 1+eps];   Q = zeros(pr+1,pr+1); R = zeros(pr+1,pr+1); S = zeros(pr+1,pr+1);   for g = 1:(pr+1)u     u = (g­1)/pr;     for h = 1:(pr+1)         v = (h­1)/pr; 16 Học viên: Vũ Quang Lương
  17. Phương pháp xây dựng bề mặt cho CAD/CAM         for i = 1:(n+1)             for j = 1:(m + 1)                 Q(g,h)=Q(g,h)+ P(i,j,1)*bsplinebasis(i,n­ 1,u,X)*bsplinebasis(j,m­1,v,Y);                 R(g,h)=R(g,h)+ P(i,j,2)*bsplinebasis(i,n­ 1,u,X)*bsplinebasis(j,m­1,v,Y);                 S(g,h)=S(g,h)+ P(i,j,3)*bsplinebasis(i,n­ 1,u,X)*bsplinebasis(j,m­1,v,Y);             end         end     end end hold off; surf(Q,R,S,'EdgeColor','none', 'FaceAlpha', 1); hold on; surf(P(:,:,1) ,P(:,:,2), P(:,:,3),'FaceColor', 'none','LineWidth',1.0); title('Manh mat B­Spline '); 17 Học viên: Vũ Quang Lương
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2