Data Acquisition (DAQ) Hakkında

Katılım
27 Aralık 2021
Mesajlar
38
Oluşturduğum sistemde gözleyici (observer) ve kontrolcü (controller) performans testi yapmak için sensör verilerini MATLAB ortamına aktarmak istiyorum. Bunu bir DAQ aracılığı ile yapacağım fakat internette uygulama yönlü bir kaynak bulamadım. Genelde ya DAQ'ın ne olduğundan ya da verileri LABVIEW gibi ortamlara aktarıp neler yaptıklarından bahsediyorlar. Bununla ilgili yardımcı olacak ve doğru DAQ seçiminin nasıl yapılacağı ile ilgili bilgili arkadaşların, hocaların yardımına ihtiyacım var.
 
düşük çözünürlüklü işler için herhangi bir stm32 veya arduino boardu kullanabilirsin. sonuçta analog ya da dijital verileri alıp. seri veya usb port üzerinden matlaba aktarman yeterli. hatta arduino framwork için matlab gerekli kodları da veriyordu.

 
Real time çalışmaktansa sensor girdiklerini kaydedip test etmek daha ekonomik olur ben de biraz araştırmıstım bu daq işini ama fiyatlar bana pahalı geldi matlabın toolboxlarında tanımlı bazı modeller vardı onlar araştırılabilir ben realtime çalışmak zorunda olduğum için matlab coder ile c kodu üretip mikrodenetleyici içerisinde çalışmaya karar verdim ama henüz uygulamaya geçmedim
 
düşük çözünürlüklü işler için herhangi bir stm32 veya arduino boardu kullanabilirsin. sonuçta analog ya da dijital verileri alıp. seri veya usb port üzerinden matlaba aktarman yeterli. hatta arduino framwork için matlab gerekli kodları da veriyordu.

Bu seçenek daha mantıklı olacak. Çünkü sensörler doğrudan dijital çıkışlı. Analog yerine doğrudan dijital alan daqlar da çok pahalı. Sanırım basit bir board alıp bilgisayara entegrasyonu için küçük bir driver yazarak işi çözebilirim. En azından ciddi anlamda maliyetten kurtulurum.
Real time çalışmaktansa sensor girdiklerini kaydedip test etmek daha ekonomik olur ben de biraz araştırmıstım bu daq işini ama fiyatlar bana pahalı geldi matlabın toolboxlarında tanımlı bazı modeller vardı onlar araştırılabilir ben realtime çalışmak zorunda olduğum için matlab coder ile c kodu üretip mikrodenetleyici içerisinde çalışmaya karar verdim ama henüz uygulamaya geçmedim
Aslında bir nevi real time çalışmam gerekiyor. En azından yazdığım controller ve observerların sistem üzerindeki performansını doğrudan görmek istiyorum ama dediğiniz gibi daqlar çok pahalı. Üstte anlattığım şeyi yapıp MATLAB'a bağlamak ve board'u doğrudan daq gibi kullanmak daha iyi bir seçenek olacak gibi.
 
DAQ denince bundan analog sinyallerin örneklenmesi anlaşılıyor. Sizin aradığınız şey daha çok lojik analizör.

STM32F103 için buck50 diye isviçre çakısı gibi bir firmware var. Dijital örnekleme analog örnekleme osiloskop her şey mevcut içinde. O verileri basit bir script ile matlab olsun labview olsun istediğiniz ortama aktarabilirsiniz.

 
DAQ denince bundan analog sinyallerin örneklenmesi anlaşılıyor. Sizin aradığınız şey daha çok lojik analizör.

STM32F103 için buck50 diye isviçre çakısı gibi bir firmware var. Dijital örnekleme analog örnekleme osiloskop her şey mevcut içinde. O verileri basit bir script ile matlab olsun labview olsun istediğiniz ortama aktarabilirsiniz.

Lojik analizörü araştırdım fakat ya ben anlamadım ya da sistemin gereksinimine uymuyor. Çünkü lojik analizörün çıkışı gelen veriye göre voltaj üretmiyormuş. Aslında sistemde DAQ'ın çıkışı ESC'lere bağlı. Mesela DAQ sensörden veriyi alacak, veri bilgisayarda işlenecek. Daha sonra DAQ işlenmiş sinyalin bitine göre esc'ye sinyal gönderip motoru sürecek.
Ayrıca şunu farkettim, bu sistemi herhangi bir board ile de yapmam biraz sıkıntılı çünkü gelen veriye göre çıkışların değişken voltaj yapılması gerekiyor ya da benim devre bilgim burada patlıyor :)
 
Son düzenleme:
Labview 3. Parti cihazlarla da çalışabiliyor, kendi donanımınızı da geliştirebilirsiniz ama hazır arıyorsanız aliexpress i, çinli kaynakları zorlayın biraz çakması demek istemiyorum ama birebir benzeyen cihazları yaptıklarına eminim.

2209 kapsamında alet, techizat alımı oluyor mu? Sanki biraz o fikrin var okul imkanı var al sana malzeme parası gibi düşünmüştüm ben.
 
Kendim yapmaya çalışarak total peojeyi 6 ayda yetiştiremem hocam. Çinli kaynakları araştıracağım. Ayrıca 2209 kapsamında hibe veriliyor ama para doğrudan verilmiyor, faturalandırmak gerekiyor. Bir de maalesef çoğu üniversite bu konuda destek vermiyor diye biliyorum, kulüp vs. olması gerekli.
 
Gerçek zamanlı kaydeden bir cihazı mutlaka kullanmak zorunda olsan bile, gene de başlangıçta daha önceden kayıt edilmiş verilerle kesin çalışman gerekecek. Bundan kaçış yok.

Yoksa şöyle bir senaryo ordaya çıktı (ve kesin çıkacak). Ne yapacaksın? Hardware'den gerçek zamanlı kayıt alıyorsun ve algoritma çalışıyor. Bir süre sonra algoritmanın sapıttığını görüyorsun ve debug etmek istiyorsun. Ama veriler gerçek zamanlı kaydedildiği için geçmişe dönük sınırlı veri olacağı için bug'a sebep olan veri seti yok. Debug edemiyorsun.

Ama elinde örneğin 1 saatlik kaydedilmiş veya suni oluşturulmuş veri var. Algoritmayı çalıştırıyorsun, bir süre sonra sapıttı. Veri setinde geriye doğru gidip tam olarak hangi veri kombinasyonunun probleme sebep olduğunu tespit edecek, algoritmayı düzelteceksin. Algoritma, kaydedilmiş verilerle ve suni oluşturulmuş verilerle mükemmel çalışmaya başladıktan sonra da gerçek zamanlı verilerle test edersin. Büyük ihtimalle gerçek verilerle de sorunsuz çalışacak. Çalışmasa bile, bugların çoğunu ayıklamış olacaksın, daha az bug kalacak geriye.
 
Peki bunun için öneriniz nedir hocam? Tamamen sistem kontrolü üzerine çalıştığım için sizin dediğinizi yapmam mümkün olur mu? Ya da sistemden bağımsız olarak belli bir süre verileri depolayıp bu veriler üzerinde algoritmanın sağlıklı işleyip işlemediğini mi kontrol etmeliyim? Ama yine bunun için motorların gelen verilere göre devreye girip sistemi stabilize etmesi gerekli, yani yine gerçek zamanlı olmuyor mu?
 
Projenin ayrıntılarını bilmiyorum. Veri sıklığı ve miktarı nedir, verinin niteliği nedir bunları sen biliyorsun. Eğer 100 tane motorun devir sayısı geliyorsa, bunlar çok az veridir, gerçek zaman niteliği yok. Benim gerçek zamandan anladığım şöyle bir sistem:

Mesela telefonlarda kullanılan DTMF tonları vardır. Tuşlara basınca diit düüt diye çıkan tonlar. Bunları algılayan algoritmalar geliştirmiştim zamanında. Bu senaryoda düşün şimdi. Aldın ton üretecini veya mekanik telefonu, basıyorsun tuşlara ve senin algoritma algılıyor mu diye bakıyorsun. Algılamadı. Ne yapacaksın? TAM OLARAK aynı tonu tekrar gönderebilecek misin debug etmek için?

O yüzden ben MATLAB'de DTMF tonlarını suni olarak üretiyordum, algoritmaya uyguluyordum. Çalışıyorsa biraz gürültü ekliyordum. Algılamadı mı? Algoritmayı adım adım çalıştırarak tam olarak sorunu belirleyip düzeltiyordum. Sonra insan sesi karıştırıp algoritmaya uyguluyordum. Çalışmıyorsa gene adım adım debug ediyordum. Bütün bu testlerden geçtikten sonra gerçek telefon hattında deniyordum.

Buradaki senaryoda saniyede 8000 tane 8 bit örnek okunuyor. Ses tanıma yazılımı geliştiriyorsan, saniyede 44100 tane 16 bit örnek okunuyor. Algoritma da karmaşık. Eğer senin senaryo buna benziyorsa, bu taktik işe yarar.
 
Lojik analizörü araştırdım fakat ya ben anlamadım ya da sistemin gereksinimine uymuyor. Çünkü lojik analizörün çıkışı gelen veriye göre voltaj üretmiyormuş. Aslında sistemde DAQ'ın çıkışı ESC'lere bağlı. Mesela DAQ sensörden veriyi alacak, veri bilgisayarda işlenecek. Daha sonra DAQ işlenmiş sinyalin bitine göre esc'ye sinyal gönderip motoru sürecek.
Ayrıca şunu farkettim, bu sistemi herhangi bir board ile de yapmam biraz sıkıntılı çünkü gelen veriye göre çıkışların değişken voltaj yapılması gerekiyor ya da benim devre bilgim burada patlıyor :)
Siz büyük ihtimalle analog çıkış değil PWM çıkış istiyorsunuz. Öncelikle bu kısmı netleştirin. Boşuna analog çıkış ile zaman kaybedilmesin.
 
Projenin ayrıntılarını bilmiyorum. Veri sıklığı ve miktarı nedir, verinin niteliği nedir bunları sen biliyorsun. Eğer 100 tane motorun devir sayısı geliyorsa, bunlar çok az veridir, gerçek zaman niteliği yok. Benim gerçek zamandan anladığım şöyle bir sistem:

Mesela telefonlarda kullanılan DTMF tonları vardır. Tuşlara basınca diit düüt diye çıkan tonlar. Bunları algılayan algoritmalar geliştirmiştim zamanında. Bu senaryoda düşün şimdi. Aldın ton üretecini veya mekanik telefonu, basıyorsun tuşlara ve senin algoritma algılıyor mu diye bakıyorsun. Algılamadı. Ne yapacaksın? TAM OLARAK aynı tonu tekrar gönderebilecek misin debug etmek için?

O yüzden ben MATLAB'de DTMF tonlarını suni olarak üretiyordum, algoritmaya uyguluyordum. Çalışıyorsa biraz gürültü ekliyordum. Algılamadı mı? Algoritmayı adım adım çalıştırarak tam olarak sorunu belirleyip düzeltiyordum. Sonra insan sesi karıştırıp algoritmaya uyguluyordum. Çalışmıyorsa gene adım adım debug ediyordum. Bütün bu testlerden geçtikten sonra gerçek telefon hattında deniyordum.

Buradaki senaryoda saniyede 8000 tane 8 bit örnek okunuyor. Ses tanıma yazılımı geliştiriyorsan, saniyede 44100 tane 16 bit örnek okunuyor. Algoritma da karmaşık. Eğer senin senaryo buna benziyorsa, bu taktik işe yarar.
Demek istediğinizi şimdi anladım. Elimdeki yere sabit 3 DOF Hover sistem. Enkoderlardan veri geldiği anda eğer açı 0 değilse veya istediğim referans noktasında değilse doğrudan referans noktasına gelmeli. Yani motorlara suni bir şekilde süremem çünkü tamamen sistemin konumuna göre hareket ediyorum.
Siz büyük ihtimalle analog çıkış değil PWM çıkış istiyorsunuz. Öncelikle bu kısmı netleştirin. Boşuna analog çıkış ile zaman kaybedilmesin.
Evet orada yanlış söylemişim, ESC'ler için çıkış PWM olmalı.
 
Saleae urunlerini oneririm.


Ben 16 Kanal olanini kullaniyorum ve dehset memnunum.

16 Kanalin tamamini lojik sinyaller icin kullanabiliyor ya da 8 tanesini analog sinyallere ayirabiliyorum.

Yeni modeller belki de daha da gelistirilmistir.
 
Ben şuan olayı tamamen yanlış anladığımı ve bildiğimi farkettim. Çıkışın PWM olması beni aydınlattı. Gelen veriler bir board ile depolanıp esc nin girişi ile scale edilebilir. Yani aslında lojik analizör oluyor. Biraz mala bağlamışım :)
Saleae urunlerini oneririm.


Ben 16 Kanal olanini kullaniyorum ve dehset memnunum.

16 Kanalin tamamini lojik sinyaller icin kullanabiliyor ya da 8 tanesini analog sinyallere ayirabiliyorum.

Yeni modeller belki de daha da gelistirilmistir.
Hocam teşekkür ederim şimdi baktım fakat o fiyatlar beni çok aşar.
 
@taydin ın anlattığı sistem sana şöyle uyarlanır.

Önce sistemin modelini elde etmen lazım, sensör datası geldi, senden output çıktı ideal sistem buna nasıl tepki verir. Modelin hatalı olacak tabiki etkisi düşük olan şeyleri eklemeyeceksin ya da düşük diye düşündüklerin önemli çıkacak. Bu ideal modelde çalıştın diyelim sonra sensor datasını kirleteceksin, çünkü gerçekte enkoderin sabit dururken bile mesrla sana +-0.01 derece oynak data verecek. Sonra çıkışları ideallikten uzaklaştıracaksın, sistemin aslında distrubance rejectionunu test edeceksin. Actuation sinyalin bozulduğunda ne oluyor gibi.

Gerçek test için ise bence kendin bir şeyler yapabilirsin, 6 ay yeterli bir süre. Bunu labview gibi bir ortamla yapman sana çok şey katar, ama NI ın ürünlerini alamıyorsan illa o olacak diye şart yok.
 

Forum istatistikleri

Konular
8,356
Mesajlar
137,150
Üyeler
3,314
Son üye
tarık bektaş

Son kaynaklar

Son profil mesajları

mechanic ayhanarican mechanic wrote on ayhanarican's profile.
https://www.allmystery.de almanca biliyorsan burada araştır. Yapay zekada çeviriyor gerçi.
Almanların matematik bilgisi daha iyi oluyor.
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Back
Top