09-28-2015 05:02 AM - edited 09-28-2015 05:08 AM
Zaten işinize yarayacak türden sinyallerin benzerlerini üretmek en fazla zamanı aldı. Sizden bu sebeple en başta iki kanaldan tüm süreci içeren veriler eklemenizi istemiştim ancak paylaştığınız veriler pek faydalı olmadı açıkçası 🙂
Programda 3 ana kısım var ve bunlar ardışıl çalışıyor.
1.Dışarıdan veri topladığınız kısım. Örnekte tüm verilerin tek seferde toplandığı varsayılıyor. Paketler halinde bölmek isterseniz yazılımda değişiklik yapılması gerekebilir.
2.Alınan tetikleme sinyallerinin genişliklerine bakılarak (yükselen/düşen kenarlara göre) hız/veri bilgilerine dönüştürüldüğü kısım. Başlangıç anındaki ilk tetik ihmal edilebilir ve kullanılan enkoderin bir turdaki devir sayısına bağlı olrak hesaplama yapmak gerekir (bu sebeple 300 çarpanı var. 150 tetik/tur, 2 ise yükselen/düşen olduğu için 2 katsayısı ).
3.Devir bilgisine bağlı olarak verilerin belirli aralıklarla ortalamasının alınarak filtrelenmesi. Bu kısımda ise sizin istediğiniz devir aralıklarına göre (5) veriler parçalara ayrılıyor, parçaların ortalamaları hesaplanıyor ve sonuç veriler elde ediliyor. Yani 0-5 , 2-10 , 10-15, ... şeklinde parçalar alınıyor ve bu parçaların ortalaması o devir diliminin nihai verisi olarak kabul ediliyor.
Konu ile ilgili baştan beri çok soru sordum ama yapmaya çalıştığınız işi ve yazılımsal yaklaşımınızı görmeden yorum yapmak pek kolay değil. Buna rağmen eklediğim örnekde bazı mantık dışı noktalar olabilir. Alt yapısal değişiklik yapmanız gerekebilir. Bunun için tam olarak ne istediğinizi ve bunu nasıl sağlayacağınızı bilmeniz gerekli 🙂
Not : Çözemediğinizi söylediğiniz noktayı tam olarak açabilir misiniz? Kodlama mı, mantık mı,...?
10-02-2015 05:03 AM
...mantik güzel, ben codlamayi cözemzdim.
Iyi haftasonu dileklerimle
10-03-2015 12:37 PM
Rica ederim, umarım örnek olarak verdiğim yaklaşım işinize yaramıştır. Geri besleme yapmıyorsanız ve toplayacağınız veri belirliyse genelde tek paket halinde toplayabilirsiniz. Sürekli verilerde ise 500ms/1000ms mertebelerinde toplamak çoğu zaman yeterli olmaktadır. Yani 60ms çevrim yapmanıza gerek olamaması lazım. Başka bir şey varsa ekleyebilirsiniz.
İyi günler...
10-05-2015 04:12 AM
Günaydin, inanin türkcem den dolayi nedemek istediginizi anlayamadim, yani "Geri besleme yapabilmek" ne anlama geliyor?
Benim Maintest_motor codlamamda, Wait ile, 60ms saniyelik veri alimini tutabilmeliyim,
ayrica sizin vermis oldugunuz örnek yaklasiminizi benim maintest_motor daki devir ve basinc´a, tam olamsada,
benim codlamaya uygulama yapamadim .
10-05-2015 01:11 PM - edited 10-05-2015 01:40 PM
Geri Besleme -> Feedback
Sistem çıkışından aldığınız veri üzerinde bir takım işlemler gerçekleştirdikten sonra elde ettiğiniz sonuçları tekrar sistemin girşine vermek. Bu işlemi sürekli yaparak sistemi kontrol altında tutarsınız.
Siz çalışmanıza devam edin bir sorunuz olursa tekrar bakarız.
İyi akşamlar...
10-06-2015 01:40 AM
Sagolun, emeklerinize saglik!