dairesel interpolasyon ile dogrusal interpolasyon arasinda fark

AhmetNuri

Üye
Katılım
19 Nis 2007
Mesajlar
179
Puanları
1
Yaş
40
dairesel interpolasyon ile dogrusal interpolasyon arasinda nasil bir fark var.
dairesel bir parca kesmek icinde neticede motorlara dogrusal komutlar gondermek yeterli olmasi lazim, aradaki farki acikalyabilirmisiniz?
 
G kodlarını bilmiyoru ama dairesel interpolasyon grafiğin X den Y ye mi yoksa Y den X emi doğru olacağını verir. Dairesel interpolasyonda ki değerler:
Yarıçap
Başlangıc koordinatı
Kiriş boyu

Aradaki fark ise sadece biri(dairesel) kendi içinde feedback oluşturur, diğeri (doğrusal) oluşturmaz.
kolay gelsin...
 
interpolasyon genel olarak iki veye daha fazla giriş bilgisi değerlerini kullanarak bir fonksiyon (mekenik anlamda yörünge denklemi)oluşturmaktır.
dik koordinat sisteminde (kartezyen de denir) A(x1,y1) noktasından B(x2.y2)noktasına en kısa yol nedir sorusunun cevabını oluşturan işlem doğrusal interpolasyondur. XY dözleminde hareket eden bir matkap ucunu düşünürsek A dan B ye x ve y eksenleri farklı hızla giderek aynı anda A dan B ye varırlar.Bu yol x ve y nin bileşkesi olan yoldur.
X ekseninin hızı X2-X1/t Y ekseninin hızı Y2-Y1/t olmalıdır,kısaca x ve y eksenlerinin hız oranı katettikleri mesafe oranında olmalı ki yörünge doğrusal ve en kısa yol olsun.
Dairesel (örneğin polar koordinat kolaylık için 2 boyut) interpolasyonda dikeksen ler yerine birim çember,bu çemberin yarıçapı AB noktaları arasındaki mesafe kadardır..
yine A dan B ye gitmek isteyelim .A noktası başlangıç da durduğumuz merkez B ise gidilecek AB yolu kadar çapı olan çember üzerindeki nokta olsun.Önce A noktasından yüzümüzü sıfır pozisyon açısından B noktasına doğru döndürürüz.Hadef B dir ve hızla B ye koşarız.Bu günlük hayatımızın koşuşturmalarından başka birşey değildir.
Bu konuda bilgi almak isteyenler analitik geometri kartezyen,polar ve silindirik koordinat konularını incelerse geniş bilgi alabilirler.
Google amca herşeyi öğretmez ama meraklısına yol gösterir.
 
Sayın Ahmet Nuri:
Sorunuz:
daireselinterpolasyoniledogrusal interpolasyon arasinda nasil bir fark var.
dairesel bir parca kesmek icinde neticede motorlara dogrusal komutlar gondermek yeterli olmasi lazim, aradaki farki acikalyabilirmisiniz?

Naçizane cevap:
Servo motor ve sürücüler açısından hiç bir fark yoktur.

Fark cnc control veya motion control veya plc açısından vardır.

3 yöntemle yapılabilir.

1-Tembellerin yöntemi (Türklerin yöntemi)
hazır bir cnc veya motion kontrol ünitesi alır ve büyük bir başarıymış gibi devreye alırsın.

2-Talaşlı imalatçıların yöntemi
Hazır bir cad-cam programi kullanirsin, geometrik şeklin 2 veya 3 boyutlu koordinatlarını post edersin, mümkün olan en büyük çözünürlükte,oldu bitti maşallah.
x10.785y2.672
x10.785y2.672z3.987
gibi

3-Son olarak , biz Türklerin aklının ermediği konuya geldik. matematik modelleme ve interpolasyon tablosu oluşturma.

Bu madde ile ilgileniyorsan hangi programlama dilini kullandigini soyle lütfen, yardimci olayim c++,vb,delphi buna benzer.
 
ikavakci bey, c++ ile yazmak istesek lineer ve dairesel enterpolasyonun matematik modellemesini nasıl çıkartabilirim?
 
Bu konular için makine bilen programcı değil program bilen makineci olmak daha iyidir.
Makineci elektrikçi ..gibiler matematiği geometriyi daha bir bilirler.
Ayrıca haritacılarda interpolasyon konularında baya iyidirler.

Türk ler her şeyi bildikleri gibi bu konuları da gayet iyi bilirler.
Küçümseyenler ancak , başkasındaki obüsü görmeden kendindekini piyade tüfeği sananlardır , kınıyorum ve artık bu aşağılık kompleksi triplerinden kurtulmaları için uyarıyorum.
Bu işlerden anlayanları ortalıkta gezerken bulamazsınız , işleri güçleri vardır ve aylaklarla bir arada bulunmazlar.
Bu yüzden aylaklar onları yok sanırlar.

Linear interpolasyonda eksenlerin hız hesaplarından sonra hareket başlar ve bitene kadar rampalar hariç hep aynı kalır.
Dairesel interpolasyonda ise hareket hızı tüm yol boyunca yolun fonksiyonu olarak sürekli değişir.
Şöylede denebilir çizgisel hız sabit kalır.

Genel bir şey olacaksa kullanılan standartları bilmek gerekir.

Şunlar başlangıç için faydalı olabilir.

http://www.google.com.tr/url?sa=t&r...4MudCLtNnG5nybQcQ&sig2=H8UX7nRGZJyGV6vztuveWA


http://www.cncokulu.net/mill/text/circularinterpolasyon-G02-G03.html


Lineer interpolasyon için " maximus cnc " anahtar kelime .
Her şeyi ile paylaşılmış çooook eski bir bitirme projesidir.


 
Sn. Sasuke55

Ekteki kodu incele ve görüşelim.

Keşke bu yazılımı geliştirme konusunda bir desteğimiz olsa.
 

Ekli dosyalar

  • XY_Interpolation.txt
    4.1 KB · Görüntüleme: 180
ikavakci bey, c++ ile yazmak istesek lineer ve dairesel enterpolasyonun matematik modellemesini nasıl çıkartabilirim?


Akademik çalışma vs değilse, CNC kontrolü için soruyorsanız, Bresenham algoritması hem lineer hemde dairesel enterpolasyon için genellikle oldukça yeterlidir.
Nette de algoritma ile ilgili yeterince örnek var.
http://en.wikipedia.org/wiki/Bresenham's_line_algorithm
http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
http://www.ecse.rpi.edu/~wrf/Research/Short_Notes/bresenham.html

Bunların dışında linuxcnc gibi açık kaynak projelerde fikir verebilir.
cubicInterpolate vs.
http://git.linuxcnc.org/gitweb?p=li...798bf19cd52c56330a7cab216c2b473569979;hb=HEAD
 
Forum Sitesinden Alıntıdır:

You could just write your own.
The interpolation formula for a 2 dimentional lookup table is quite simple:-
y = (x - x0) * ((y1 - y0) / (x1 - x0) + y0
Where:-
x = input value
y = output value
x0 = nearest known x value data point below x
x1 = nearest known x value data point above x
y0 = nearest known y value data point below y
y1 = nearest known y value data point above y
This code will work for you:-
You can change the number of data points by changing the constant NUM_DATA_PTS and then adding the data in the structure. The data is in format x data followed by y data. Obviously the number of x data points has to be the same as the number of y data points.

Kod:
      FUNCTION_BLOCK FB95

    CONST
    NUM_DATA_PTS := 12;
    END_CONST

    VAR_INPUT
    X : REAL;
    END_VAR

    VAR_OUTPUT
    Y : REAL;
    END_VAR

    VAR
    TableData : STRUCT
        XData : ARRAY [0..NUM_DATA_PTS - 1] OF REAL := 800,   900,   1000,  1100,  1150,  1200,
                                                       1250,  1300,  1350,  1400,  1450,  1500;
        YData : ARRAY [0..NUM_DATA_PTS - 1] OF REAL := 0.553, 0.681, 0.786, 0.868, 0.901, 0.930,
                                                       0.953, 0.971, 0.986, 0.996, 1.000, 1.000;
    END_STRUCT;
    XIndex : INT;
    END_VAR

    BEGIN
    IF X < TableData.XData[0] THEN
        Y := TableData.YData[0];
    ELSE
        IF X > TableData.XData[NUM_DATA_PTS - 1] THEN
            Y := TableData.YData[NUM_DATA_PTS - 1];
        ELSE
            XIndex := 1;
            WHILE (XIndex < NUM_DATA_PTS) AND (X >= TableData.XData[XIndex]) DO
                XIndex := XIndex + 1;
            END_WHILE;
            Y := ((X - TableData.XData[XIndex - 1]) *
                 (TableData.YData[XIndex] - TableData.YData[XIndex - 1]) /
                 (TableData.XData[XIndex] - TableData.XData[XIndex - 1]) +
                 TableData.YData[XIndex - 1]);
        END_IF;
    END_IF;

    END_FUNCTION_BLOCK

Benzer konular ve açık kaynak kodlar:
https://support.automation.siemens....objaction=csview&extranet=standard&viewreg=WW

http://support.automation.siemens.c...=cseus&aktprim=4&extranet=standard&viewreg=WW

https://support.automation.siemens....term=interpolation&ID=59421716&ehbid=59421716
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…