Tải bản đầy đủ (.doc) (16 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (212.57 KB, 16 trang )

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
Học viên
Vũ Quang Lương

1



Học viên: Vũ Quang Lương


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:

[

r( u) = 1 u u2

a
b 
u3  
c 
 
d 


]

(1)

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.
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;
2

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM

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

V3

r(u)

V0= P0

V3 = P1

V0

V3

V0
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 P 0, 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
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
3

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM

V3 = P1
t0 = 3(V1-V0)
t1 = 3(V2-V3)
Thể hiện dưới dạng ma trận:
 P0   1
P   0
S =  1 = 
 t0  − 3
  
 t1   0

0 0
0 0

3 0
0 −3

0 V0 
1 V1 
=L R
0 V2 
 
3 V3 

(4)

Thay (4) vào (2) ta nhận được đường cong Bezier bậc ba.
r(u)

=UCS
=UCLR

(5)

Với 0≤u≤1
Đặt M = C L
0
0
01
1
0
0
1
0   0

M =C L=
− 3 3 − 2 − 1 − 3


10
 2 −2 1

0
0
0  1


0 0 1 − 3 3
0
=
3 0 0  3 − 6 3
 
0 − 3 3  − 1 3 − 3
0

0

0
0
0

1

V0 
V 

1
Và R =  
V2
 
V3 

Phương trình (5) được gọi là phương trình đường cong Bezier.
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

=

∑B
i −0

1, 3

(u )Vi

4

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM

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:
Bi,n (u) =

n!
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
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);

5

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
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
Để 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:
M0 =

V0 + V1
2

Là điểm giữa của V0 và V1

M1 =

V1 + V2
2

Là điểm giữa của V1 và V2

P0 =

2V1 + M 0
3

Là điểm nằm ở một phần ba của đoạn thẳng V1 và M0
6

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
P1 =

2V2 + M 1

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
2V + M 0
P0 = 1
=
3

o
Hay

P0 = r (0) =

2V1 +

V0 + v1
4V + V0 + V2
2
= 1
3
6

4V1 + (V0 + V2 )

6

(1-a)

Đánh giá r(u) tại điểm cuối P1 ứng với u = 1
2V + M 0
P1 = 1
=
3

Biểu diễn tại P1:
Ta có

.

t 0 = r (u ) ,

P1 = r (1) =

.

t 0 ≡ r (0) =

V1 + V3
4V + V1 + V3
2
= 2
3
6


4V2 + (V1 + V3 )
6

(1-b)

do đó ta xác định tiếp tuyến t0:

P0 = M 0 − V0 =

Hay

2V 2 +

V0 + V 2
V − V0
− V0 = 2
2
2

V 2 − V0
2

(2-a)

Tương tự ta có:
P1 = M 1 − V1 =

Hay

.


t1 ≡ r (1) =

V1 + V3
V − V1
− V1 = 3
2
2

V3 − V1
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
P0 =

1
(V0 + 4V 4 + V 2 + 0)
6

7

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
P1 =

1

(0 + V1 + 4V 2 + V3 )
6

t0 =

1
(−3V0 + 0 + 3V2 + 0)
6

t1 =

1
(0 − 3V1 + 0 + 3V3 )
6

Chuyển sang dạng ma trận ta được:
4
P0 
1
P 
0
1
1
1
S= = 
t 0  6 − 3 0
 

 0 −3
t1 


1 0 V0 
 
4 1 V1 
= KR
3 0 V 2 
 
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
=UCKR

Với 0 ≤ u ≤ 1

= U (C K) R
U = [1 u u2 u3 ]
C – ma trận hệ số Ferguson
4
1
1
− 3 0
3
1
N= 
6 3 −6 3


− 1 3 − 3

0
0
0

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:
r( u ) =

1 − 3u − 3u 2 − u 3
4 − 6u 2 − 3u 3
1 + 3u + 3u 2 − 3u 3
u3
V0 +
V1 +
V 2 + V3
6
6
6
6

Đặt:
S 0,3 (u ) =

1 − 3u − 3u 2 − u 3
6


8

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
S1,3 (u ) =

4 − 6u 2 − 3u 3
6

S 2,3 (u ) =

1 + 3u + 3u 2 − 3u 3
6

S 3,3 (u ) =

u3
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];
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:

9


Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM

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.
V03
V02

V13
V23

V12
v =0

V01

V00

V22

V11

V21

V32


V33

V31

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:
10

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
3

3

r(u, v) = ∑∑ B3i (u ) B 3j (v)Vij
i =0 j =0
3

3


3!
3!
u i (1 − u )3−i
v j (1 − v)3− j
(
3

i
)!
i
!
(
3

j
)!
j
!
j =0

r(u, v) = ∑∑
i =0

(10)

= U M B MT VT
Trong đó:



U=

[1

u u2

u3

V=

[1

v v2

v3

M=

0
0
1
− 3 3
0

 3 −6 3

−1 3 − 3

V00
V

B =  10
V20

V30

V01
V11
V21
V31

]

]

V02
V12
V22
V32

0
0
0

1

V03 
V13 
V23 

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:
m

n

r(u, v) = ∑∑ Bim (u ) B nj (v)Vij
i =0 j = 0

(11)

Trong đó:
Bim (u ) =

m!
u i (1 − u ) m−i
(m − i )!i!

B nj (v ) =

n!
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.

11

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM

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
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');

12

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM

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 ]
V00
V
B =  10
V20

V30

V01
V11
V21
V31

V02
V12
V22
V32


4
1
1
− 3 0
3
1
N= 
6 3 −6 3

− 1 3 − 3

V03 
V13 
V23 

V33 
0
0
0

1

13

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
N 0,3 (u ) =


1 − 3u − 3u 2 − u 3
6

N 1,3 (u ) =

4 − 6u 2 − 3u 3
6

N 2, 3 (u ) =

1 + 3u + 3u 2 − 3u 3
6

N 3,3 (u ) =

u3
6

Mặt B-spline đồng nhất được thể hiện dưới hình sau:
V03
V02
V01
V

00

V13
V23


V12
V22

V11
v u
V10

V21
V20

V32

V33

V31
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 ]
V = [ 1 v v2 v3 ]
V00 V01
V

V11
B =  10
V20 V21

V30 V31

V02
V12
V22
V32








14

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
4
1
1
− 3 0
3
1

N= 
6 3 −6 3

−1 3 − 3

0
0
0

1

1 0
1

N 2 = − 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
m
%
X
Y

= 3;
= 3;
Knot vectors
= [0 0 0 0.5 1+eps 1+eps 1+eps];
= [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;
for i = 1:(n+1)
for j = 1:(m + 1)
Q(g,h)=Q(g,h)+ P(i,j,1)*bsplinebasis(i,n1,u,X)*bsplinebasis(j,m-1,v,Y);
R(g,h)=R(g,h)+ P(i,j,2)*bsplinebasis(i,n1,u,X)*bsplinebasis(j,m-1,v,Y);
S(g,h)=S(g,h)+ P(i,j,3)*bsplinebasis(i,n1,u,X)*bsplinebasis(j,m-1,v,Y);

end
end
end

15

Học viên: Vũ Quang Lương


Phương pháp xây dựng bề mặt cho CAD/CAM
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 ');

16

Học viên: Vũ Quang Lương



×