Bir eksen etrafında dönme hareketini hesaplama

Başlatan XX_CİHAN_XX, 24 Mart 2014, 19:32:11

XX_CİHAN_XX

Bir eksen etrafında 120 derecelik alanı tarayacak şekilde dönme hareketi yapan bir parça var.
Bu parçaya dışarıdan yönü ve şiddeti belli olmayan kuvvetler belirli aralıklarla uygulanıyor ve parça da bu kuvvet doğrultusunda kuvvetin kazandırdığı ivmeyle dairesel hareketini yapıyor. Bu parça üzerine ivme, açısal hız ve derece bilgilerini alabileceğim bir sensör yerleştirdim.
Amacım realtime olarak bu parçanın hareketini takip etmek. Burada hassasiyet çok önemli. 0.3 derece hata payım var diyelim.
Sensörün bana yeterli hassasiyet ve hızda bilgi verdiğini kabul edelim.
Amacım parça ne yöne kaç derecelik hareket yapıyorsa real time olarak ben de başka bir düzeneğe bir motor vasıtasıyla aynı yön ve şiddette bir kuvvet uygulayarak düzeneğimdeki parçayla referans aldığım parçanın aynı seviyede kalmasını sağlamak. Seviyeler arası 0.3 dereceden daha fazla seviye farkı olmaması gerektiği için parçanın hareketini önceden hesaplayıp kendi düzeneğime ona göre yön vermem gerktiğini düşünüyorum.
Düz mantıkla ölç uygula döngüsü yemedi. ölç, tahmini varacağı yeri hesapla düzeneği oraya taşı gibi bir yöntem gütmeliyim diye düşünüyorum.
Açısal hızı burada nasıl kullanabilirim. Düzgün doğrusal hızlanan bir haraket olmadığı için kafam karıştı. (sensörüm en az 5ms en çok 1sn aralıklarla ölçüm alabilmekte)
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

mufitsozen

Alıntı yapılan: XX_CİHAN_XX - 24 Mart 2014, 19:32:11
Bir eksen etrafında 120 derecelik alanı tarayacak şekilde dönme hareketi yapan bir parça var.
Bu parçaya dışarıdan yönü ve şiddeti belli olmayan kuvvetler belirli aralıklarla uygulanıyor ve parça da bu kuvvet doğrultusunda kuvvetin kazandırdığı ivmeyle dairesel hareketini yapıyor. Bu parça üzerine ivme, açısal hız ve derece bilgilerini alabileceğim bir sensör yerleştirdim.
Amacım realtime olarak bu parçanın hareketini takip etmek. Burada hassasiyet çok önemli. 0.3 derece hata payım var diyelim.
Sensörün bana yeterli hassasiyet ve hızda bilgi verdiğini kabul edelim.
Amacım parça ne yöne kaç derecelik hareket yapıyorsa real time olarak ben de başka bir düzeneğe bir motor vasıtasıyla aynı yön ve şiddette bir kuvvet uygulayarak düzeneğimdeki parçayla referans aldığım parçanın aynı seviyede kalmasını sağlamak. Seviyeler arası 0.3 dereceden daha fazla seviye farkı olmaması gerektiği için parçanın hareketini önceden hesaplayıp kendi düzeneğime ona göre yön vermem gerktiğini düşünüyorum.
Düz mantıkla ölç uygula döngüsü yemedi. ölç, tahmini varacağı yeri hesapla düzeneği oraya taşı gibi bir yöntem gütmeliyim diye düşünüyorum.
Açısal hızı burada nasıl kullanabilirim. Düzgün doğrusal hızlanan bir haraket olmadığı için kafam karıştı. (sensörüm en az 5ms en çok 1sn aralıklarla ölçüm alabilmekte)

kalman
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

XX_CİHAN_XX

Hocam sensör çıkışım zaten kalmandan geçiyor. Benim yapmam gereken sadece kararlı ve hızlı çalışan bir tracking algoritmasi oluşturmak bunun için bir kalman daha kullanmak işleri çok karıştırır diye düşünüyorum. Parçaya uygulanan kuvvetler çok sık değişen testere dişi gibi değil daha ziyade sinus gibi yumuşak hatları olan tarzda kuvvetler olduğu için daha basit bir mantıkla iş çözülebilir diye ümit ediyorum :)
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

mufitsozen

Alıntı yapılan: XX_CİHAN_XX - 24 Mart 2014, 22:21:37
....olduğu için daha basit bir mantıkla iş çözülebilir diye ümit ediyorum :)
Sayin @XX_CIHAN_XX unlu biri zamaninda soyle birsey demis:
Her komplex problem icin mutlaka akla ilk gelen kolay, temiz,makul ve YANLIS bir cozum vardir. ;)

Benim nacizane onerim, muhendislik problemlerine muhendisce cozum getiriniz.  ???
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

z

Alıntı Yap1) Burada hassasiyet çok önemli. 0.3 derece hata payım var diyelim
2) sensörüm en az 5ms en çok 1sn aralıklarla ölçüm alabilmekte

Sample alma zamanin 5ms olursa;

En iyimser durumda 10ms lik zaman araliginda milin 0.3 dereceden daha az donmesi lazim.

10ms de    0.3 derece donerse
kac ms de  360 derece doner

3600/0.3=18000 ms   18 sn

bu mil 120 derece değil de 360 derece donebilseydi 1 turunu 18 sn de tamamlayacakti.

Hareketler bu kadar yavas mi?

Kaldi ki  sample alma sureni 0.5 ms aldik. 1sn alirsak durum daha da vahim.

-----------------

Bu projeye soyunacak olsam;

Sensor olarak biri referans milde digeri de motorda olmak uzere 2 adet RVDT kullanirdim.  Alternatif sensorum en azindan 12000 ppr shaft encoder olurdu.

PID ile baslardim ama projeyi basariyla bitirebilirmiyim emin değilim.



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

XX_CİHAN_XX

#5
Alıntı yapılan: mufitsozen - 24 Mart 2014, 23:05:18
Sayin @XX_CIHAN_XX unlu biri zamaninda soyle birsey demis:
Her komplex problem icin mutlaka akla ilk gelen kolay, temiz,makul ve YANLIS bir cozum vardir. ;)

Benim nacizane onerim, muhendislik problemlerine muhendisce cozum getiriniz.  ???
Tavsiyeniz için teşekkür ederim hocam elimden geldiğince uymaya çalışacağım.
Zira bu amaçla dün sistemden bir tomar haraket ölçümü alıp bunları analiz etmeye çalıştım.
Bu analiz sonucunda elde ettiğim verilerden biriside şuydu; normal şartlarda 5ms süre içersinde parçanın hiç bir zaman 0.6 dereceden daha fazla yol almayacağını tespit ettim. Ben toleranslı çalışmayı severim bunu 1 derece yapalım.
Yani bu durumda alacağım iki sample arasında kayma miktarı en fazla 1 derece olur. Deyip araya @z hocamın önerisini alarak devam etmek istiyorum.

Alıntı yapılan: z - 25 Mart 2014, 00:24:44

Bu projeye soyunacak olsam;

Sensor olarak biri referans milde digeri de motorda olmak uzere 2 adet RVDT kullanirdim.  Alternatif sensorum en azindan 12000 ppr shaft encoder olurdu.

PID ile baslardim ama projeyi basariyla bitirebilirmiyim emin değilim.


Hocam şuan zaten pid uyguluyorum büyük ölçüde verim aldım ancak tam oturmayan birşeyler vardı. Dün aldığım ölçümler doğrultusunda pid mantığını biraz evirmeye karar verdim. Şöyle ki; iki konum ölçümü arasındaki fark bana iki örnek arasında kaç derecelik fark olduğunu verir. Dün düzeneğimi ölçtüm ve minimum 0.025 derece adım hassasiyetiyle step motorumun bağlı olduğu kasnak düzeneğini hareket ettirebiliyorum. Bu durumda;

Kayma miktarı = Konum2 - Konum1
Atilacak Adim Sayisi = Kayma miktarı / Motor-Kasnak sistemindeki bir adım miktarı

Ben Sonraki sample a kadar (5ms içinde) Kaç adım boyu geride kaldigimi bu sekilde hesaplayıp o kadar adim gidebilirim ama tabi ben bu adımları giderken düzenekte ilerlemeye devam edecek çünkü ben bu adımları eski konumundaki kayıklığa göre hesapladım. Benim duzenek eski farkı kapatırken parçanın ilerleyeceği noktayı da hesaplayıp bu farka onu da eklemeliyim. Bu noktada biraz yardıma ihityacım var. Burada parçanın yönünün bir anda kestirilemez bir noktaya doğru birden dönüş yapması söz konusu olmadığı için halen kalmana gerek olmadığını düşünüyorum Müfit hocam.

Dün parçaya uyguladığım keskin darbeler sonucunda sensörden aldığım  aldığım değişim ve hız grafikleri aşağıdaki gibidir.



Burada 10ms aralıklarla 200 sample aldım. Normalde bu kadar sert kuvvet uygulanmayacak ben uç kısmları göreyim diye biraz sert giriştim :)
İsterseniz grafik üzerindeki herhangi bir ölçüm aralığındaki sayısal değerleri verebilirim.

Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

z

Sample aldığın anda mil pozisyonu ile motorun o anki pozisyonu kadar motoru derhal ilerlet. Bu ilerletme işlemi 5ms içinde tamamlanırsa 5 ms içinde de mil 0.3 dereceden fazla pozisyon değiştirmeyeceğinden ortada hiç sorun kalmıyor.

Bu durumda neden milin hareketini tahmin etmeye çalışasın ki?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

XX_CİHAN_XX

#7
Hocam 5mS içindeki konum değişimi 0 ile 0.6 derece arasında olabiliyor. Ben 5mS içinde 1.6 dereceye kadar motoru çevirebiliyorum. Yani bu konum değişimini çok rahat yakalayabilirim. Ancak 5ms içinde 0.3 dereceden fazla konum değişimi olmasaydı dediğiniz gibi milin konumunu tahmin etmeme gerek yoktu. Ama 5mS deki konum değişimi 0.6 derecelere kadar çıkabiliyor ne yazık ki.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

z

Hem diyorsun ki 5ms de sample bir aliyorum ve 5ms icinde mil 0.6 derece donebilir.

Hem de 5 ms icinde motor mili ile referans mil arasindaki hata 0.3 dereceden fazla olmamali.

Bu durumda bu proje yatar.

Ancak, referans milin hareketi bilinen bir fonksiyona gore degisiyorsa bir sansin olabilir.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

XX_CİHAN_XX

Hocam referans milinin hareketi sinüs hareketi gibi olacak (yukarıdaki açısal değişim grafiği gibi)
Ancak bu sinüs hareketinin frekansı ve genliği belirsiz. Sadece iki sample arası 0.6 dereceyi geçmeyecek bir hızda hareket ediyor bunu biliyoruz. Ben bu sinüs hareketinden 5ms aralıklarla sample alıp aynı sinüs hareketini yaptırmaya çalışıyorum. Bunu yaparken de 0.3 derece kayma hakkım var.

Şimdi buradaki sinüs hareketi tahmin edilebilir bir hareket. Referans milinden alınan eski ölçümlere bakarak sinüsün hangi fazında olduğumu, hangi yöne gittiğimi, hızlanıyor muyum yoksa yavaşlıyor muyum gibi bilgileri tespit edip bir sonraki ölçümde varacağı noktayı 0.3 derece toleransını aşmadan tespit edemez miyiz??
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.