21
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

HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 2: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 3: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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.

Page 4: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 5: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 6: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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 =−=

Page 7: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 8: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 9: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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)

Page 10: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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,

Page 11: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 12: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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 +++=)(

Page 13: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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,

Page 14: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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 −=

Page 15: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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

Page 16: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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ı

Page 17: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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.

Page 18: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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.

Page 19: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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;

Page 20: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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;

Page 21: HBM512 Bilimsel Hesaplama II Dönem Projesituralh/web/courses/hbm512/project.pdf · HBM512 Bilimsel Hesaplama II Dönem Projesi Bilgisayar Destekli Tasarım/İmalat Sistemlerinde

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