HBM512
Bilimsel Hesaplama II
Dönem Projesi
Bilgisayar Destekli Tasarım/İmalat Sistemlerinde Kullanılan Modelleme
Yöntemleri: Bézier ve Tiriz Eğrileri ve İmalat Uygulamaları
(Modeling Methods in CAD/CAM Systems: Bézier and Spline Curves and Their
Application in Manufacturing)
Hazırlayan: Hamdi Nadir Tural 702061013 Hesaplamalı Bilim ve Mühendislik
1
1. Özet
Bilgisayarların hızlı gelişimi birçok bilim ve mühendislik alanında kolaylıklar
getirmeye başlamıştır. Bu kolaylıkların ilki, hızlı işlem yapabilme yeteneğidir. Bunun
yanında artan depolama kapasiteleri yoğun veri giriş ve çıkışlı sistemlerin bilgisayarlar
üzerinde incelenmesine olanak tanımıştır. Bu gelişmeler sonucu, doğadaki sistemlerin
gerçeğe daha yakın bir biçimde benzetim(simulation) modelleri kurulabilmekte, daha
hassas ve gerçekle mutabık hesaplar yapılabilmektedir.
Bu gelişmelerden en çok etkilenen alan tabiî ki İmalat Sektörü’dür. Özellikle
analog bilgisayarlardan dijital bilgisayarlara geçişten sonra geometrik modelleme
sistemleri ve sayısal kontrollü tezgâhlarda büyük ilerlemeler kaydedilmiştir. Yoğun
görselleştirme işlemleri GKS, PHIGS ve OpenGL gibi standart kütüphaneler sayesinde
donanım seviyesinde çözülerek çok daha verimli grafik tasarım ortamları/yazılımları
geliştirilmiştir. Bunun yanında, sayısal kontrolün bilgisayarlar yardımıyla
gerçekleştirilmesi, imalat ve otomasyon sistemlerinin gerçek zamanlı, hassas ve yüksek
doğrulukta işlem yapmalarına ortam hazırlamıştır.
Bu çalışmada Bilgisayar Destekli Tasarım (CAD-Computer Aided Design) ve
Bilgisayar Destekli İmalat (CAM-Computer Aided Manufacturing) ortamlarında kullanılan
tasarım yöntemleri incelenecektir.
Bilgisayar Destekli Tasarım’da en çok kullanılan geometrik modelleme yöntemleri
olan Bézier ve Tiriz Eğrileri ele alınacaktır. Kullanılan yöntemlerin matematiksel ifadeleri
çıkarılarak bu yöntemlerin birbirine göre üstünlükleri-zayıf noktaları incelenecektir.
Bilgisayar Destekli İmalat sistemlerinde kullanılan interpolasyon yöntemlerine
genel bir bakış yapılacaktır. Doğrusal ve Dairesel interpolasyon kullanan tezgâhların
işleme hassasiyetleri ve yapılan yaklaşım hataları incelenecektir. İnterpolasyonda yapılan
hataların azaltılması ve hassasiyetin artırılması için bazı yöntemler önerilecektir.
2. Giriş
Bilgisayar grafikleri ve geometrik modelleme, mühendislik tasarımında temel bir
rol oynar. Kesinleşmiş bir kanıdır ki, bilgisayarlar veri depolama ve sayısal işlem yapma
bakımından günümüzün vazgeçilmez araçlarıdır. Bilgisayar destekli modelleme ise bir
tasarım hakkında mühendisin düşünme kabiliyetine güç katar. Çünkü tasarımın başlangıç
safhasında gerekli parçaların yerlerine konulması, eksiklerin anlaşılması, uyumsuzlukların
giderilmesi bununla mümkündür.
Mimarlık ve mühendislik alanlarında bilgisayar grafikleri, özellikle tasarım ve
gerçekleştirme aşamasında zaman kazandıran bir faktör olarak ortaya çıkmıştır.
Neredeyse tüm ürünler, bilgisayar üzerinde yapılan modellemelerin neticesinde bu denli
mükemmel gerçekleştirilebiliyor. BDT (Bilgisayar Destekli Tasarım - Computer Aided
2
Design) yöntemiyle yolcu uçakları, taşıt araçları, bilgisayarlar ve her türlü sanayi ürünü
daha hızlı ve kolay tasarlanabiliyor [6].
Bilgisayar grafikleri, tasarlanan bir parçanın bütünüyle tanımlanarak bir BDT
(Bilgisayar Destekli Tasarım) sisteminde saklanmasını sağlar. Bu işlem, nesnelerin
oluşturulmasında hem görsel hem de parçaya ait nicel değerlerin saklanmasını içine alır
[1]. Geometrik modelleme bir nesnenin matematiksel ve kuramsal ilişkilerini tanımlar ve
geometrinin verimli bir şekilde bilgisayarda görselleştirilmesine odaklanır.
İşte bu noktada nesnelerin bilgisayarda nasıl ifade edileceği meselesi karşımıza
çıkar. Bu konu hakkında çalışmalar 1960’lı yıllarda başlamıştır [1]. Günümüze kadar
birçok yöntem geliştirilerek, BDT paketlerinde daha verimli ve gerçekçi olarak geometrik
şekillerin gösterilmesine çalışılmıştır. Günümüzde Bézier Eğrileri, Spline, B-Spline, T-
Spline ve en sonunda NURBS gibi modelleme, eğri uydurma/interpolasyonu yöntemleri
BDT programlarının kullandığı vazgeçilmez matematik modeller olmuştur. Bu yöntemlerin
kullanılmasının temel amacı serbest şekil verilmiş yüzeylerin (free form surface) rahatça
ifade edilebilmesidir.
Özellikle uçak ve otomotiv sektöründe sıkça bulunan bu serbest şekil verilmiş
yüzeyler nedeniyle öncelikle bu iki sektörde çalışan mühendisler bu probleme çözüm
aramışlar. İlk defa 1959’de Citroën’de çalışan Paul de Casteljau ve bunu takip eden
1967’de Coon ve 1972’de Renault’da çalışan Pierre Bézier serbest şekil verilmiş
yüzeylerin matematiksel olarak ifade edilmesine çalışmışlardır [7]. 1973’te Reisenfield
yerel kontrolü daha iyi olan B-Spline eğrilerini ortaya sürmüştür [2]. En son olarak
NURBS (Non-Uniform Rational B-Spline) eğrileri/yüzeyleri geliştirilerek günümüz BDT
sistemlerinin temel arayüzü haline gelmiştir. Son yıllarda neredeyse bütün BDT yazılımları
NURBS eğrilerini standart modelleme birimi olarak kullanmaktadır [1].
Günümüz imalat sektörünün temel taşı olan BSK (Bilgisayar Sayısal Kontrol -
Computer Numerical Control) tezgâhları, gelişen bilgisayar teknolojisinin de yardımıyla
BDT yazılımlarında tasarlanan parçaların imalatını yüksek hassasiyette ve hızlı olarak
yapabilmektedir.
Sayısal kontrollü tezgâhlarda parçaların işlenmesi için önce bir CAD modelinin
bilgisayarda tasarlanması, daha sonra bu modelin bir CAM programına aktarılıp gerekli
ayrıklaştırma işlemlerine tabi tutularak geometrinin işleme hassasiyeti ölçüsünde küçük
doğru parçacıkları şeklinde Kesici Takım Yolu (Cutter Tool Path) oluşturulur. Oluşturulan
bu kesici yolu CNC kodlarına çevrilir. Daha sonra bu kodlar CNC tezgâhına yüklenerek
parçanın işlenmesi gerçekleştirilir. Aşağıda bu aşamaları gösteren bir blok diyagram
verilmiştir.
3
Şekil 1. Parça İmalatı Akış Diyagramı
Günümüzde kullanılan konvansiyonel sayısal kontrollü tezgâhlar doğrusal(G01) ve
dairesel(G02-G03) interpolasyonu desteklemektedir. Bu nedenle, hassas bir işleme
toleransı gerektiğinde CAD modelinden oluşturulan ayrıklaştırılmış (doğrusal
interpolasyonla) CAM modeli binlerce doğru parçasına sahip olabiliyor. Tabiî ki bunun
neticesinde oluşturulan CNC kodları da binlerce satıra ulaşabiliyor. Şekil 2’de bir
geometrinin farklı toleranslarda doğrular olarak ayrıklaştırılmasını görüyoruz.
Şekil 2. Bir eğrinin a) belirli bir toleransta doğrusal interpolasyonu ve b) daha hassas
olarak interpolasyonu
Şekil 3. Bir eğrinin belirli bir toleransta dairesel(circular) interpolasyonu
Burada toleransın daha hassas olması durumunda konvansiyonel yaklaşımda
karşımıza çıkan problemler şöyle özetlenebilir [10]:
CAD Geometrisi (Spline, Bézier, NURBS Eğrileri)
Geometri Ayrıklaştırma
(Doğru Parçaları)
CAM Kodları (G,M,S,T)
Parça İşleme
CAD Yazılımı CAM Yazılımı CNC Tezgâh
4
• Hassas toleranslar, daha kısa doğru parçacıklarının oluşmasını ve
sonucunda CNC tezgâha aktarılan veri boyutunun büyümesine neden olur.
• Yüksek Hızlı İşleme (High Speed Machining) sırasında verilerin aktarım hızı
yetersiz kalabilir(Doğrudan Sayısal Kontrol sistemleri için–Direct Numerical
Control ).
• Doğru parçacıklarının birleşme noktalarında hız süreksizlikleri ve ilerleme
çalkantıları (Feedrate Fluctuations) oluşur.
• İvme süreksizlikleri ve sıçramalar (jerks), Yüksek Hızda İşleme sırasında
titreşim problemi yaratabilir ve işleme hassasiyetini düşürebilir.
Bu problemler göz önüne alındığında konvansiyonel yaklaşımın Hızlı ve Hassas
işleme açısından çok iyi irdelenmesi gerektiği anlaşılmaktadır. Bir şekilde, belirli bir
hassasiyetin altına düşmeyen, hızlı işlemeye uygun ve veri boyutu küçültülmüş bir
yaklaşımın ortaya konulması gerekmektedir.
Günümüzde bazı tezgah üreticileri bu problemleri aşmak için yeni interpolasyon
algoritmalarını donanım seviyesinde (hardware level) ortaya koymaya başlamışlardır.
Bunlardan GE Fanuc ve SIEMENS, NURBS interpolasyonunu destekleyen tezgâhları ortaya
sürmüşlerdir. Böylece çok ileri bir noktaya varılmıştır. Çünkü NURBS interpolasyonunu
destekleyen bir tezgâh, eğer işlenecek parça NURBS ile geometrik modelleme yapılmış ise
doğrudan CAD verisini herhangi bir ayrıklaştırma işlemine tabi tutmadan kayıpsız olarak
işleyebilmektedir. Ancak bu tezgâhların fiyatları genel bir kullanıcı/imalatçı için temin
edilebilir boyutlarda değildir. Bu durumda elimizde olan konvansiyonel tezgâhlarda bu işi
nasıl daha iyi yapabileceğimizi araştırmak gereklidir.
Burada geometrik modelleme yöntemlerinden bahsedilecek ve konvansiyonel
tezgâhlarda hassas ve hızlı işleme için ortaya bir çözüm önerisi sunulacaktır. İleriki
bölümler bu konuları ihtiva etmektedir.
3. Geometrik Modelleme Yöntemleri: Eğriler/Yüzeyler
Geometrik modellemede kullanılan eğriler Doğrular ve Daireler gibi basit şekiller
olabilir. Ancak, araba, uçak, gemi tasarımı gibi uygulamalar çok daha karmaşık eğrileri
ihtiyaç duyulur. Bu amaçla, Pierre Bézier’le (Aslında Casteljau da aynı dönemde bu
eğrileri bulmuştur) başlayan, serbest şekil verilmiş yüzeylerin matematiksel olarak ifade
edilmesi isteği günümüzde NURBS eğrilerine kadar uzanmıştır. Şimdi bu eğrilerin (free
form curves) sanayide en çok kullanılanlarını inceleyelim.
3.1. Bézier Eğrileri
Bézier eğrileri, ),..,( 0 nVV şeklinde sıralı olarak verilen kontrol noktaları veya
kontrol köşelerini kullanarak bir eğri yaklaşımı yapar. Bu noktalar oynanarak istenilen
şekle haiz bir nesne oluşturulabilir. Bézier eğrileri, serbest şekilli eğrilerin gösterimi olan
5
çokterimli fonksiyonlara dayanır [1]. n. dereceden bir Bézier eğrisi, n+1 kontrol noktası
olan aşağıdaki gibi bir parametrik fonksiyondur;
∑=
=n
inii tBVtQ
0, )()(
Burada iV , n+1 kontrol noktasını belirten vektör ve niB , ise Bernstein
çokterimlileri olarak bilinen Bézier geçiş fonksiyonlarıdır. Burada Bernstein çokterimlileri;
inini tt
in
tB −−
= )1()()(, 10 ≤≤ t ,
)!(!!
inin
in
−=
ni ,...,0=
olarak verilmektedir. Bu geçiş fonksiyonları aşağıdaki şartları sağlamaktadır,
• Bütün i değerleri için 0)(, ≥tB ni 10 ≤≤ t
• 1)(0
, =∑=
n
ini tB 10 ≤≤ t
Burada verilen ikinci şart ‘Normalleştirme Özelliği’ olarak bilinir. Bu şartlar
oluşturulan eğrinin bir içbükey alan içerisinde kalmasını sağlar. Burada kontrol
noktalarının oluşturduğu poligonsal bölge Dışbükey Kaburga/Kabuk (Convex Hull) olarak
isimlendirilir.
Şekil 4. P kontrol noktaları kullanılarak oluşturulan Bézier Eğrileri
Örnek olarak yukarıdaki şekilde verilen Bézier eğrisinin geçiş fonksiyonlarını
oluşturalım,
3,333,223,113,00)( BPBPBPBPtQ +++=
Geçiş fonksiyonları ise,
3303,0 )1()1(
!3!.0!3
tttB −=−=
2213,1 )1(3)1(
!2!.1!3
ttttB −=−=
)1(3)1(!1!.2
!3 2123,2 ttttB −=−=
3033,3 )1(
!0!.3!3
tttB =−=
6
Normaleştirme özelliğini kontrol edelim,
1)1(3)1(3)1()( 3223
0, =+−+−+−=∑
=
tttttttBn
ini
Geçiş fonksiyonlarını genel denklemde yerine koyarsak,
33
22
21
30 )1(3)1(3)1()( tPttPttPtPtQ +−+−+−=
Burada dikkat edersek,
0)0(0 PQt =→= ve 3)1(1 PQt =→=
olduğu için Bézier eğrileri başlangıç ve bitiş noktasından geçmektedir.
3.2. Kübik Tiriz (Cubic Spline)
En genel halde Kübik Tiriz Çokterimlisi dört adet sabit sayı içermektedir
( 32)( dxcxbxaxP +++= denklemindeki dcba ,,, gibi). Bu bize çokterimlinin hem tanım
aralığı içerisinde hem de tanım aralığının uç noktalarında türevlenebilirlik kabiliyetini de
sağlar (ikinci türevi 2
2
dx
Pdtanımlı).
Şimdi, ],[ ba aralığında bxxxa n =<<<= ...10 noktalarında tanımlı bir )(xf
fonksiyonuna ait kübik tirizi oluşturmak için gerekli olan koşulları yazalım [5];
a. )(xS bir kübik çokterimli olmak üzere 1,...,1,0 −= nj için ],[ 1+jj xx alt aralığında
tanımlı olan çokterimli )(xS j olarak gösterilir.
b. Her bir nj ,...,1,0= için )()( jj xfxS = ’dir.
c. Her bir 2,...,1,0 −= nj için )()( 111 +++ = jjjj xSxS ’dir.
d. Her bir 2,...,1,0 −= nj için )()( 111 +++ ′=′ jjjj xSxS ’dir.
e. Her bir nj ,...,1,0= için )()( 111 +++ ′′=′′ jjjj xSxS ’dir.
f. Ve aşağıdaki sınır koşullardan birini taşıma şartı ile
- 0)()( 0 =′′=′′ nxSxS (Doğal Tiriz)
- )()( 00 xfxS ′=′ ve )()( nn xfxS ′=′ (Kenetlenmiş Tiriz)
Koşullarını sağlayan eğriler Parçalı Kübik Tiriz yaklaşımını ifade etmektedir. Burada
sistemin çözüm aralığındaki parçalı fonksiyonları aşağıda verilen doğrusal denklem
sisteminin çözülmesi ile elde edilir. jjj yxfa == )( ve jjj xxh −= +1 denklemleri yerine
konularak aşağıdaki denklem takımı çözülür. Burada tek bilinmeyen jc değerleridir.
+
+=
−−−−
10000)(2..
.....0.)(20.001
1122
1100
nnnn hhhh
hhhhA
7
−−−
−−−
=
−−−
−−
0
)(3
)(3
.
)(3
)(3
0
212
11
010
121
nnn
nnn
aah
aah
aah
aah
B ve
=
−
n
n
cc
cc
x
1
1
0
.
şeklindeki BxA =. lineer denklem takımıdır. Buradan jc sayıları çözülerek önce jc ve
sonra da jc katsayılarının hesabı yapılabilir.
Buna göre dcb ,, katsayılarının hesap adımlarını gösteren bir blok diyagram
çizelim;
Şekil 5. Katsayıların Hesap Adımlarını Gösteren Blok Diyagram
Örnek olarak aşağıda verilen veriler için kübik tiriz yaklaşımını uygulayalım ve tiriz
fonksiyonlarını oluşturalım.
x 0 0.25 0.75 1.25 1.5 1.75 1.875 2 2.125 2.25 y 1.2 1.18 1.1 1 0.92 0.8 0.7 0.55 0.35 0
)(xS Tiriz denklemleri:
)(1 xS 1.2000-0.065631*x-0.22991*x3 )(2 xS 1.2072-0.10874*x-0.17243*(x-0.2500)2+0.13981*(x-0.2500)3 )(3 xS 1.2322-0.17631*x+0.037289*(x-0.7500)2-0.16934*(x-0.7500)3 )(4 xS 1.3325-0.26603*x-0.21673*(x-1.2500)2+0.0033347*(x-1.2500)3 )(5 xS 1.4806-0.37376*x-0.21422*(x-1.5000)2-0.84287*(x-1.5000)3 )(6 xS 1.9181-0.63891*x-0.84638*(x-1.7500)2-3.5384*(x-1.7500)3 )(7 xS 2.6057-1.0164*x-2.1733*(x-1.8750)2+5.6342*(x-1.8750)3 )(8 xS 3.1412-1.2956*x-0.060455*(x-2.0)2-18.998*(x-2.0000)3 )(9 xS 5.0277-2.2013*x-7.1849*(x-2.1250)2+19.160*(x-2.1250)3
jx
jy ja
jh jc
jb
jd
Bilinenler Hesaplanacak Değerler
8
Şekil 6. Verilen Noktalar ve bu noktalardan geçen Kübik Tiriz
4. CNC Tezgâhlarda Doğrusal İnterpolasyon
Burada CAD yazılımlarında sık kullanılan modelleme tekniklerini anlattıktan sonra,
bu modellerin nasıl imal edileceği konusuna değinilecektir. En genel halde 3. mertebeden
eğrilerin doğrusal interpolasyon kullanarak nasıl daha hassas ve hızlı işleme yapılabilir
sorusuna cevap aranacak.
4.1. Doğrusal İnterpolasyon Algoritması
Bir kübik eğri en genel halde 3. mertebeden bir çokterimlidir,
dcubuauuP +++= 23)(
Burada u ]1,0[ aralığında değişen parametrik skalar değerdir. 3 boyutlu uzaysal
eğriler için eğri üzerindeki bir noktanın koordinatları ],,[ zyxP = ve ],,[ zyx aaaa = ,
],,[ zyx bbbb = , ],,[ zyx cccc = , ],,[ zyx dddd = de eğrinin şeklinin (kontrol noktaları) ve
türünün (Bézier, B-Spline, vs.) değiştirilmesi ile elde edilen sabitlerdir.
Bir eğri üzerindeki noktaların tayininde en hızlı/verimli yaklaşım, çokterimli
ifadesini Horner Gösterimi ile İleri Fark Alma (Forward Differencing) yöntemi kullanılarak
elde edilir [9]. n. dereceden bir çokterimli n tane çarpım, n tane toplam işlemi olarak
yazılabilir.
n. dereceden bir çokterimli Horner Gösterimi ile şu şekilde yazılabilir,
nnn xaxaxaaxP ++++= ...)( 2
210 (n. dereceden çokterimli)
9
0121 )...))(...(()( axaxaxaxaxP nnnn +++++= −− (Horner Gösterimi)
Şimdi İleri Fark Alma yöntemini uygulayalım. Bir çokterimlinin
δδδ nxxxx +++ ,...,2,, gibi eşit aralıklı noktalarda hesabı istenmiş olsun. Bunun için
örnek olarak 1. dereceden çokterimli alalım,
xaaxP 101 )( +=
Bu çokterimlinin birbirini takip eden iki nokta arasında yazarsak,
δδδ 11010111 )())(()()()( axaaxaaxPxPx =+−++=−+=∆
Böylece eşit aralıklı dağılmış noktalarda )(1 xP çokterimlisi aşağıdaki algoritma ile
hesap edilebilir,
δ11 a=∆
00 =x
001 )( axP =
Döngü: i=1’den n’ye kadar
1111 )()( ∆+= −ii xPxP
Döngü Sonu
Yine örnek olarak 2. dereceden çokterimli alalım,
22102 )( xaxaaxP ++=
Bu çokterimlinin birbirini takip eden iki nokta arasında yazarsak,
)())()(()()()( 2210
2210111 xaxaaxaxaaxPxPx ++−++++=−+=∆ δδδ
δδδ xaaax 22
211 2)( ++=∆
Bu durumda algoritmamız,
00 =x
002 )( axP =
Döngü: i=1’den n’ye kadar
δδδ 122
211 2 −++=∆ ixaaa
1122 )()( ∆+= −ii xPxP
Döngü Sonu
Burada )(x∆ 1. dereceden bir çokterimlidir. Bu durumda yeni bir tanım yapılırsa,
22112 2)()()( δδ axxx =∆−+∆=∆
Bu denklem de kullanılarak algoritmamız geliştirilirse,
10
00 =x
002 )( axP =
2211 δδ aa +=∆
222 2 δa=∆
Döngü: i=1’den n’ye kadar
1122 )()( ∆+= −ii xPxP
211 ∆+∆=∆
Döngü Sonu
Son olarak 3. dereceden bir çokterimli için algoritmamız,
22103 )( xaxaaxP ++=
Bu denklem de kullanılarak algoritmamız geliştirilirse,
00 =x
003 )( axP =
33
2211 δδδ aaa ++=∆
33
222 62 δδ aa +=∆
333 6 δa=∆
Döngü: i=1’den n’ye kadar
1133 )()( ∆+= −ii xPxP
211 ∆+∆=∆
322 ∆+∆=∆
Döngü Sonu
Yukarıda tanımladığımız u parametresi, 0’dan N’ye kadar değiştirilerek N adet eğri
parçasını ifade edecek şekilde genelleştirilebilir. Bu genelleştirilmiş form aşağıda
verilmiştir. ]1,0[ aralığında değişen u parametresi için sabit bir artım tanımlanırsa,
hiu .= Ni ,...,1= 10 ≤< h (h:hesap adımını belirtmektedir.)
İleri Fark Alma yöntemini kullanılarak )(uP çokterimlisinin ifade ettiği eğri
üzerindeki noktaların koordinatlarını şöyle hesaplanabilir,
dcubuauuP +++= 23)(
00 =u
duP =)( 0
11
chbhah ++=∆ 231
232 26 bhah +=∆
33 6ah=∆
Döngü: i=1’den n’ye kadar
11)()( ∆+= −ii uPuP
211 ∆+∆=∆
322 ∆+∆=∆
Döngü Sonu
Yalnız burada dikkat edilecek bir husus bulunmaktadır. Kullanılan algoritma,
bilgisayar aritmetiğinden dolayı her hesap adımında biriken(cumulative) hataya sebep
olmaktadır. 1∆ , 2∆ , 3∆ terimlerinin hesabında her biri için ε gibi bir hata varsayımı
yapılırsa, tek bir eksen (x,y,z) için maksimumu hata şöyle ifade edilebilir [3],
ε6
611 32 NNNRmaks
++=
Sonuç olarak, böyle algoritma hesap edilen koordinatların eğrimizin üzerinde
olmama ihtimalini doğurur. Bu problem her ne kadar kayan nokta işlemci (floating point
coprocessor) veya çoklu hassas aritmetik (multiple precision arithmetic) kullanılarak
çözülebilse de bir eğri parçasında birken hata diğer eğri parçasına aktarılmamalıdır. Bu
açıdan, algoritma biriken hataları bir sonraki eğri parçasına taşınmayacak şekilde kesici
takım eğri parçalarının son noktalarından geçeceği üzere geliştirilirse,
00 =u
duP =)( 0
chbhah ++=∆ 231
232 26 bhah +=∆
33 6ah=∆
Döngü: i=1’den n-1’e kadar
11)()( ∆+= −ii uPuP
211 ∆+∆=∆
322 ∆+∆=∆
Döngü Sonu
dcbauP n +++=)(
12
Eklenen son adım kesici takımın, bir sonraki eğrinin de başlangıç noktası olan, son
noktadan geçmesi garanti edilmiş olur. Böylece bir eğri parçasında biriken hata bir
sonraki eğriye taşınmaz. Biriktirilen her hata kendi eğri parçası üzerinde yer alır.
4.2. Adım Seçimi
Parça işleme toleranslarından dolayı böyle bir sistem için hesap adımı rasgele
olamaz. CNC kodlarının oluşturulmasında birçok yöntem kullanılmaktadır. Burada gerçek
zamanlı (real-time) kod oluşturma problemi ele alınmıştır. Bu problemin çözümü çok hızlı
olarak kodlar oluşturulup, tezgâha iletilmesini içerir.
İki interpolasyon noktasındaki hatayı ifadesini yaklaşık olarak aşağıdaki gibi orta
nokta hatası ile gösterebiliriz,
2)()(
22121 uPuPuu
P+
−
+≈δ
1,0 21 ≤≤ uu (eğrinin başlangıç ve bitiş nokta parametreleri)
Bu ifade eğrinin parametrik gösteriminde yerine konularak yazılırsa,
221
221
221
212 )2)(3()2)(3()2)(3()(
81
zzyyxx buuabuuabuuauu ++++++++−=δ
huu += 12 ve uu =1 yazarak denklem genelleştirilirse,
2222 )2)2(3()2)2(3()2)2(3(81
zzyyxx bhuabhuabhuah ++++++++=δ
( 10 ≤≤ u , h:sabit hesap adımı)
Şekil 7. Parametrik Eğri, Kesici Takım Yolu ve İnterpolasyon Hatası
Şimdi hatanın u’ya bağlı değişimini incelemek amacı ile elde edilen denklemin 1.
ve 2. türevlerini hesap edelim,
13
4 222
2222
)2)2(3()2)2(3()2)2(3(
))2)((3)(2(3
zzyyxx
xxxzzyyxx
bhuabhuabhua
uhcbabababah
dud
++++++++
++++++=
δ
3222
2222
2
2
))2)2(3()2)2(3()2)2(3((
))()()((18
zzyyxx
zxxzyzzyxyyx
bhuabhuabhua
babababababah
du
d
++++++++
−+−+−=
δ
İkinci türev ifadesinden de anlaşılacağı üzere )(uδ fonksiyonu yukarı doğru
yönelmiş bir içbükey eğri oluşturmaktadır. Bu nedenle ]1,0[ hu −∈ için eğrinin başlangıç
ve bitiş noktasında δ bir minimum değer almaktadır. İşte bu minimum değere tekabül
eden )(hu değeri bizim hesap adımımızı belirleyecektir. Ancak 2. türevin bulunduğu
denklem 6. dereceden bir denklem olması itibariyle daha basit bir formun kullanılması
önerilmektedir.
δ=
+++
+++
++
≤
+++
+++
++
2
2
2
2
2
2
2
2
)2)12(3(
)2)12(3(
)2)12(3(
81
)2)2(3(
)2)2(3(
)2)2(3(
81
zz
yy
xx
zz
yy
xx
bua
bua
bua
h
bhua
bhua
bhua
h (genelde h<1 olduğu için)
Burada h’yi denklemden çekersek,
222 )2)12(3()2)12(3()2)12(3(
22
zzyyxx buabuabuah
++++++++=
δ
Eğrinin başlangıç noktasında 0=u ,
2220
)23()23()23(
22
zzyyxx bababah
+++++=
δ
Eğrinin bitiş noktasında hu −= 1 ,
222
2221
)29()29()29(
22
)2)3(3()2)3(3()2)3(3(
22
zzyyxx
zzyyxx
h
bababa
bhabhabhah
+++++>
+−++−++−=−
δ
δ
0>h olduğu için bu formül basitleştirilebilir,
2221
)29()29()29(
22
zzyyxx
hbababa
h+++++
=−δ
Sonuç olarak hesap adımı için iki tane denklem elde ettik. Hatayı minimize etmek
için bu hesap adımlarından minimum olanı seçmemiz gereklidir. En son halde hesap adımı
şu hali alır,
},min{ 10 hhhh −=
14
4.3. Örnek Çalışma ve Sonuçlar
Örnek bir çalışma Kübik Tiriz eğrisi için verilen örneğin ilk dört parçası kullanılarak
yapılmıştır. Önce verilen denklemler parametrik forma dönüştürülmüş daha sonra farklı
işleme toleransları için doğrusal interpolasyon uygulanmıştır,
)(xS Tiriz denklemleri:
)(1 xS 1.2000-0.065631*x-0.22991*x3 )(2 xS 1.2072-0.10874*x-0.17243*(x-0.2500)2+0.13981*(x-0.2500)3 )(3 xS 1.2322-0.17631*x+0.037289*(x-0.7500)2-0.16934*(x-0.7500)3 )(4 xS 1.3325-0.26603*x-0.21673*(x-1.2500)2+0.0033347*(x-1.2500)3
y(u))(x(u), Parametrik Denklemleri
x(u) y(u)
0.25*u 1.2-0.065631*(0.25*u)-0.22991*(0.25*u)^3;
0.5*u+0.25 1.2072-0.10874*(0.5*u+0.25)-0.17243*((0.5*u+0.25)-0.25)^2+0.13981*((0.5*u+0.25)-0.25)^3
0.5*u+0.75 1.2322-0.17631*(0.5*t+0.75)+0.037289*((0.5*t+0.75)-0.75)^2-0.16934*((0.5*t+0.75)-0.75)^3
0.25*u+1.25 1.3325-0.26603*(0.25*u+1.25)-0.21673*((0.25*u+1.25)-1.25)^2+0.0033347*((0.25*u+1.25)-1.25)^3
10 ≤≤ u
* verilen eğrilerde uzunluk birimi ‘mm’ dir.
Farklı işleme toleransı değerleri için oluşturulan nokta sayıları ve hesap adımları,
Eğri Tolerans Hesap Adımı (h) Nokta Sayısı (n)
)(1 xS mµ1 0.0157 64
)(2 xS mµ1 0.0106 94
)(3 xS mµ1 0.0068 147
)(4 xS mµ1 0.0172 58
Eğri Tolerans Hesap Adımı (h) Nokta Sayısı (n)
)(1 xS mµ10 0.0497 20
)(2 xS mµ10 0.0336 30
)(3 xS mµ10 0.0216 46
)(4 xS mµ10 0.0545 18
Eğri Tolerans Hesap Adımı (h) Nokta Sayısı (n)
)(1 xS mµ100 0.1573 6
)(2 xS mµ100 0.1061 9
)(3 xS mµ100 0.0682 15
)(4 xS mµ100 0.1723 6
15
mµ100 işleme toleransında oluşturulan interpolasyon noktaları aşağıdaki grafikte
verilmiştir. Eğri parçaları anlaşılabilsin diye her parçadaki interpolasyon noktaları farklı
gösterime sahiptir.
Şekil 8. Tiriz Eğrileri ve Doğrusal İnterpolasyon Noktaları
Hata dağılımı,
Şekil 9. Tiriz Eğrileri ve Doğrusal İnterpolasyon Noktaları
16
5. Sonuçlar
Bu çalışmada konvansiyonel CNC tezgâhların en büyük problemi olan hızlı ve
hassas işleme konusuna değinildi. Bu problemin doğrusal interpolasyon ile nasıl
çözülebileceği üzerine öneriler getirildi.
Adaptif hesap adımı seçimi belirlenen tolerans değerleri için uygulandı. Bu
yöntemin başarısı daha önce kullanılan tek bir hesap adımlı yöntemlere göre çok
yüksektir. İnterpolasyon nokta sayılarının azalması, işlenecek şekle bağlı olarak aynı
tolerans değerine sahip tek hesap adımlı yöntemlerden çok daha iyi işleme performansı
sağlamaktadır.
Aşağıdaki tabloda tek adımlı ve adaptif adımlı yöntemler için oluşturulan
interpolasyon nokta sayıları verilmiştir. Adaptif yöntemin verimliliği hemen göze
çarpmaktadır.
Tek Adımlı Adaptif Adımlı Tek Adımlı Adaptif Adımlı
Tolerans mµ10 mµ10 mµ1 mµ1
Toplam Nokta Sayısı (n) 138 111 882 360
Sonuçlar 3. dereceden eğrilerin pratik uygulamalarda tatmin edici bir düzeyde
olduğunu göstermektedir. Bundan sonra, daha yüksek mertebeden eğrilerin gösterimi,
hassas ve hızlı işlenmesi hedef olarak karşımıza çıkmaktadır.
Ek Bilgiler
Bu çalışma 2005-2007 yılları arasında Standart Pompa ve Makina San. Tic. A.Ş.’de
imalat optimizasyonu konusunda yapılan çalışmaların bir kısmını oluşturmaktadır. Ar-Ge
departmanı tasarlanan parçaların hızlı prototip üretimi ve denenmesi için kendi CAD ve
CAM yazılımlarını geliştirme aşamasındadır.
Geliştirilen yöntemin başarısı pratik olarak test edilmektedir. İleriki dönemlerde
bununla ilgili olarak bilgi edinmeniz mümkündür.
17
Kaynaklar
1. Anand V.B., Computer Graphics and Geometric Modeling for Engineers, John
Wiley&Sons Inc., 1993.
2. Bahr B., Xiao X., Krishnan K., A real-time sheme of cubic parametric curve
interpolations for CNC systems, Computers in Industry (45), 2001.
3. Bartels R.H., Beatty J.C., Barsky B.A., An Introduction to Splines for Use in
Computer Graphics and Geometric Modeling, Morgan Kaufmann, Los Altos, 1987.
4. Bauer H., Einführung in die mathematische Beschreibung von Kurven und
Flachen, Aalen, 1991.
5. Burden R.L., Faires J.D., Numerical Analysis, 7th Ed. Brooks/Cole, 2001.
6. Çetin A., Bilgisayar Grafikleri, Seçkin Yayıncılık, Ankara, 2003.
7. Farin G., Curves and Surfaces for Computer Aided Geometric Design, 3rd Ed.,
Academic Press, Boston, 1993.
8. Hoschek J., Lasser D., Grundlagen der Geometrischen Datenverarbeitung, BG
Teubner, Stuttgart, 1992.
9. Sederberg T.W., Computer Aided Geometric Design, Course Notes, Brigham
Young University, 2007.
10. Yau H.T., Lin M.T., Tsai M.S, Real-time NURBS interpolation using FPGA for high
speed motion control, Computer Aided Design (38), 2006.
18
Ek1. Örnek Uygulama için Matlab Kodu
clear,clc; syms t; a=zeros(3,1); b=zeros(3,1); c=zeros(3,1); d=zeros(3,1); delta=1.0e-6; a(2)=-0.0035923438; c(1)=0.25; c(2)=-0.01640775; d(2)=1.2; h0=2*sqrt(2*delta/sqrt((3*a(1)+2*b(1))^2+(3*a(2)+2*b(2))^2+(3*a(3)+2*b(3))^2)); h1=2*sqrt(2*delta/sqrt((9*a(1)+2*b(1))^2+(9*a(2)+2*b(2))^2+(9*a(3)+2*b(3))^2)); h=min(h0,h1) n=int16(1/h) u=0:h:1; P(:,1)=d; dP1=h^3*a+h^2*b+h*c; dP2=6*h^3*a+2*h^2*b; dP3=6*h^3*a; for i=1:n-1 P(:,i+1)=P(:,i)+dP1; dP1=dP1+dP2; dP2=dP2+dP3; end P(:,n+1)=a+b+c+d; x=0.25*t; y=1.2-0.065631*(0.25*t)-0.22991*(0.25*t)^3; figure plot(P(1,:),P(2,:),'*-r'); hold on ezplot(x,y,[0,1]) hold off; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear P; delta=1.0e-6; a=zeros(3,1); b=zeros(3,1); c=zeros(3,1); d=zeros(3,1); a(2)=0.01747625; b(2)=-0.0431075; c(1)=0.5; c(2)=-0.05437; d(1)=0.25; d(2)=1.180015; h0=2*sqrt(2*delta/sqrt((3*a(1)+2*b(1))^2+(3*a(2)+2*b(2))^2+(3*a(3)+2*b(3))^2)); h1=2*sqrt(2*delta/sqrt((9*a(1)+2*b(1))^2+(9*a(2)+2*b(2))^2+(9*a(3)+2*b(3))^2)); h=min(h0,h1) n=int16(1/h) u=0:h:1; P(:,1)=d; dP1=h^3*a+h^2*b+h*c; dP2=6*h^3*a+2*h^2*b; dP3=6*h^3*a; for i=1:n-1 P(:,i+1)=P(:,i)+dP1; dP1=dP1+dP2; dP2=dP2+dP3;
19
end P(:,n+1)=a+b+c+d; x=0.5*t+0.25; y=1.2072-0.10874*(0.5*t+0.25)-0.17243*((0.5*t+0.25)-0.25)^2+0.13981*((0.5*t+0.25)-0.25)^3; hold on plot(P(1,:),P(2,:),'o-r'); hold off; hold on ezplot(x,y,[0,1]) hold off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear P; delta=1.0e-6; a=zeros(3,1); b=zeros(3,1); c=zeros(3,1); d=zeros(3,1); a(2)=-0.0211675; b(2)=0.00932225; c(1)=0.5; c(2)=-0.088155; d(1)=0.75; d(2)=1.0999675; h0=2*sqrt(2*delta/sqrt((3*a(1)+2*b(1))^2+(3*a(2)+2*b(2))^2+(3*a(3)+2*b(3))^2)); h1=2*sqrt(2*delta/sqrt((9*a(1)+2*b(1))^2+(9*a(2)+2*b(2))^2+(9*a(3)+2*b(3))^2)); h=min(h0,h1) n=int16(1/h) u=0:h:1; P(:,1)=d; dP1=h^3*a+h^2*b+h*c; dP2=6*h^3*a+2*h^2*b; dP3=6*h^3*a; for i=1:n-1 P(:,i+1)=P(:,i)+dP1; dP1=dP1+dP2; dP2=dP2+dP3; end P(:,n+1)=a+b+c+d; x=0.5*t+0.75; y=1.2322-0.17631*(0.5*t+0.75)+0.037289*((0.5*t+0.75)-0.75)^2-0.16934*((0.5*t+0.75)-0.75)^3; hold on plot(P(1,:),P(2,:),'x-r'); hold off; hold on ezplot(x,y,[0,1]) hold off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear P; delta=1.0e-6; a=zeros(3,1); b=zeros(3,1); c=zeros(3,1); d=zeros(3,1); a(2)=0.52104687e-4; b(2)=-0.13545625e-1; c(1)=0.25; c(2)=-0.66507500e-1; d(1)=1.25; d(2)=0.9999625;
20
h0=2*sqrt(2*delta/sqrt((3*a(1)+2*b(1))^2+(3*a(2)+2*b(2))^2+(3*a(3)+2*b(3))^2)); h1=2*sqrt(2*delta/sqrt((9*a(1)+2*b(1))^2+(9*a(2)+2*b(2))^2+(9*a(3)+2*b(3))^2)); h=min(h0,h1) n=int16(1/h) u=0:h:1; P(:,1)=d; dP1=h^3*a+h^2*b+h*c; dP2=6*h^3*a+2*h^2*b; dP3=6*h^3*a; for i=1:n-1 P(:,i+1)=P(:,i)+dP1; dP1=dP1+dP2; dP2=dP2+dP3; end P(:,n+1)=a+b+c+d; x=(0.25*t+1.25); y=1.3325-0.26603*(0.25*t+1.25)-0.21673*((0.25*t+1.25)-1.25)^2+0.0033347*((0.25*t+1.25)-1.25)^3; %figure hold on plot(P(1,:),P(2,:),'.-r'); hold off; hold on ezplot(x,y,[0,1]) hold off legend('Dogrusal Int.','Gercek Sekil') title('Kubik Tiriz Egrisini Parca Parca Dogrusal Interpolasyonu') grid on axis([0 1.5 0 1.4]), set(gca,'XTick',[0:0.25:1.5]) axis normal