ivmeölçer kullanarak eğim hesaplamak?


16

Bir devre kartı üzerinde analog cihazlar ADXL203 ivmeölçer var ve bunu bazı ekipmanların makul bir yüksek frekansta (20-30 Hz) eğimini ölçmek için kullanmak istiyordu. algılama yapmak için bir campbells cr3000 logger kadar çengel. Herhangi birinin sensör çıkışlarını nasıl yorumlayacağına dair yönergeleri var mı? Teşekkürler


yorumlar için herkese teşekkürler. TROY
troy jensen

En yüksek seviyeye sahip olduğumu biliyorum, ama benimkini sevmiyorsanız, en azından birinin kabul eder.
Kortuk

Yanıtlar:


12

Burada söyleyeceklerim var ve bazıları pingwept ve bazıları penjuin ile anlaşmayı içeriyor.

cr3000

16 bit ve 100 Hz'deki cr3000 örneklemesi, verilerinizden gürültüyü kolayca kaldırmanız için biraz yavaş örnekleyecektir, ancak önemli ölçüde daha yüksek bir hassasiyetle kullanılabilir. Bazı iyi filtreleme algoritmaları olmadan 13 veya 14 bit hassasiyet elde edebileceğinizden şüpheliyim. İvmeölçerler bana titreşimin şeytan, püsküren fononlar olduğunu öğrettiler.

Çıkış Kondansatörü

Veri sayfasının söylediği ve sinyal teorisinin belirttiği gibi yaptığınızdan emin olmanız gerekir. Veri sayfasını alıntılamak için:

ADXL103 / ADXL203'ün çıkışı 2,5 kHz'lik tipik bir bant genişliğine sahiptir. Kullanıcı, bu noktada takma hatalarını sınırlamak için sinyali filtrelemelidir. Aliasing'i en aza indirmek için analog bant genişliği, analogdan dijitale örnekleme frekansının yarısından fazla olmamalıdır. Analog bant genişliği gürültüyü azaltmak ve çözünürlüğü artırmak için daha da azaltılabilir.

Bu, hızınızı 50Hz'in altında tutmak için bir kapasitör seçmeniz gerektiği anlamına gelir. Eğer bunun üzerine koyarsanız, takma ad elde edebilirsiniz ve takma ad, titreşim gürültüsünü bir anlaşma imzaladığınız bir şeytan yapar. Cihazdan gürültü seviyelerinin nasıl hesaplanacağını belirtirler ve 50Hz bant genişliğinde.

Verileri Yorumlama

Bu muhtemelen en çok ilgilendiğiniz şeydir ve yapılması nispeten kolaydır. Cihazın nötr olduğu bir zamanı etiketlemeniz gerekir, bu düzken ve nispeten hareketsiz olduğunuz zamanlardır. Bu noktada bir veya iki saniye verin ve daha sonra G-olmayan voltajını belirlemek için bu verilerin medyanını alabilirsiniz. Ardından, cihazı karşılaştırdığınız bir nokta olarak kullanabilirsiniz. Şimdi, bu noktadan sonra, doğrudan veri sayfasını alıntılayabilirim:

İvmeölçer yerçekimine dik olduğunda, çıkışı eğim derecesi başına yaklaşık 17.5 mg değişir .

Bu nedenle, çok fazla eğmeyecekseniz bu yaklaşımı kullanabilirsiniz, ancak her iki yönde ve çok küçük olmayan açılarda eğmeyi planlıyorsanız geometri kullanmanız gerekecektir.

Daha büyük olacaksanız, denklemleri bile şöyle yazmış olurlar:

PITCH = ASİN (AX / 1 g)
RULO = ASIN (AY / 1 g)

Bildiğim kadarıyla, cihazınız üzerine yerleştirilen 1G hızlanma başına 1V değişiklik verir. Kalibrasyon aşamasını yaptıysanız, ölçümler alabilmeniz, ofseti çıkartabilmeniz ve deneyimlediğiniz Gs sayısına sahip olmanız gerekir.

Sorunlarla karşılaşmazsanız veya yaklaşımı iyileştirmek için daha fazla bilgi istemiyorsanız, burada okumayı bırakın.

Örnekleri yaparak cihazı programlayacağınız hızlı değişen sistemlere veya sistemlere yaklaşımınızı geliştirmek için diğer yaklaşımlar ve yöntemler hakkında biraz daha konuştum.

Örnekleme frekansı

Yönünü saniyede 20-30 kez ölçmeniz gerektiğinden, cihazınızın hızlandığı yönleri değiştirdiği hızdan önemli ölçüde daha hızlı örnekleme yapmanız gerekir. Bir ivmeölçerle çalışırken oldukça büyük bulduğum diğer etkilerden dolayı titreşim gürültüsünü ve ivmesini filtrelemek için yeterince hızlı bir şekilde ölçebilmeniz gerekir.

3 eksenli ivmeölçer

İkincisi, üç eksenli bir ivmeölçeriniz varsa, o zaman bir eksen yerçekimi nedeniyle ivmenin bir kısmını kaybettiğinde kolayca fark edebilirsiniz (yani. Z ekseni 2m / s ^ 2 büyüklüğüne sahip olduğunda, diğer eksende gördüğünüz kazanç yer çekimidir). Bu yine de dağınık olacak, ancak genel olarak, yönünüzü değiştirmek için gereken hızı ve daha sonra yönlendirme değişikliğinden dolayı hızlanmada bir değişiklik veren ve genellikle yönelimi tanımanıza izin veren bir ivme eklenecektir.

2 eksenli sorunlar

Bu, penjuinin dediği gibi, 2 eksenli bir ivmeölçerle neredeyse imkansız olacak ve saniyede 20-30 farklı yönlendirme yapabilen bir sisteminiz varsa veya tam olarak bir yönlendirme ölçüsüne ihtiyacınız varsa en iyi şekilde kabataslak olacaktır. Tüm zamanlar. Eminim bir yüksek lisans öğrencisi bu konuda oldukça güzel bir tez yazabilir veya bir doktora bu algoritmayı geliştirmek için bir tez yazabilir.

Titreşim Gürültüsü

Daha fazla eklemek için, cihazınızı statik olarak cihazınızın hareketine kilitleyecek bir şeyin üzerine koyabilir, ancak titreşimi azaltırsanız, çok daha iyi numaralar elde edersiniz ve yazılım filtrelemesine gerek yoktur. İvmeölçer ile cihazınız arasında basit bir köpük tipi dolgu yerleştirilebilir ve eğer dijitalse bu elektriksel gürültüyü artırmamalı ve bazı titreşim gürültüsünü emmeye yardımcı olmamalıdır. Bu yalnızca titreşim gürültüsü ile ilgili sorunlar görürseniz yapılmalıdır.

Dijital İvmeölçer

Bağlanmak için SPI kullanabileceğiniz bir dijital ivmeölçer öneririm. Veriler çok yüksek bir hızda zamanlanabilir ve SPI'nız bir sonraki değer kümesini yüklemek için sürekli bir iş yaptığından arka zeminde çalışabilirsiniz. Dijital olarak yapılacaksa güzel bir mikro denetleyiciye sahip olmanız gerekir. Bana ne yapmak istediğinize dair daha iyi ayrıntılar verebilirseniz daha iyi geri bildirim verebilirim. Eğim algılamaya dayalı bir uyarı istiyorsanız, tüm analoglarla yapmak çok kolay olmalıdır, ancak çalışma sırasında ekipmanın konumunu ve açısını ölçmek istiyorsanız, biraz çalışmaya hazır olun.

Bu cevabı aradığınız şey için daha açık veya uygulanabilir hale getirmek için ekleyebileceğim bir şey varsa lütfen bize bildirin.


1
Sadece kayıt için, bu cevap destansı.
Haziran'da

1
Kortuk, ivmeölçerlerde doktora! :-)
Jay Atkinson

Bu cevabı yazdım çünkü bir şeyi unuttuğumu düşünmeye devam ettim, sonra biraz uzun olduğunu fark ettim ve cevabın nasıl yapılacağını çok çabuk ekledim, ama insanlar uzun cevabı tercih ediyor gibi görünüyor.
Kortuk

Titreşim gürültüsünde, Fırçasız DC (BLDC) Motorun varlığı nedeniyle çalışma sırasında daha büyük bir miktarım olabilir, ancak açılmadan önce hala önemli titreşim rakamları vardı.
Kortuk

3

Bu cevabı birçok çılgın matematiksel fikirle birkaç kez yazdım ve yeniden yazdım, ancak dürüstçe bunun herhangi bir doğrulukla yapılabileceğini düşünmüyorum. Bazı vektör matematiği yapabilirsiniz, ancak ya:

  • Nesne hareket etmeyi durduruyor
  • Nesnenin sabit bir hızı vardır
  • Nesne bir yumruya çarpıyor / çarpıyorsunuz
  • Eğimi yukarı doğru hareket ettirerek üretilen kuvvet Z ekseninin çözünürlüğünün altındadır

Bu tür bir şey yapmak için çılgın bir çözüm olduğundan emin olsam da, buna değeceğinden emin değilim; ivmeölçerler basitçe bu görev için tasarlanmamıştır (en azından bilgime göre). Ulaşmaya çalıştığınız şey için, bunlardan herhangi birini kullanarak jiroskopik bir yaklaşım öneririm , bunların hepsi yukarıdaki sorunların tümüne oldukça dirençli olacaktır.


İvmeölçerler aslında bunun için tasarlanmıştır, nasıl yapılacağı ile ilgili tüm bir bölüm vardır. İvmeölçerler birçok durumda çok düşük maliyetlidir ve bazen maliyet mükemmel işlevsellikten daha büyük bir konudur.
Kortuk

3
Bunu her zaman öğrencilere açıklamaya çalışıyorum ve buraya ekleyeceğim çünkü bence önemli bir kavram. Mühendislik her zaman en iyi şekilde yapmakla ilgili değildir, kullanıcının fiyat etiketi dışında hiçbir şeydeki farkı anlayamayacağı şekilde yapmakla ilgilidir.
Kortuk

2
Öncelikle yapmak için söylenecek bir şey var ve bunu son adamdan daha iyi yapmak için söylenecek çok şey var.
Kortuk

Katılıyorum, ama bu sizin güdülerinize bağlı (hangi troy belirtmedi); iyi çalışmasını mı istiyorsun yoksa öğrenmek mi istiyorsun? Mutlaka birbirinden ayrı olmaları gerekmez, ancak özellikle derleyici tasarımı hakkında bilgi edinmek istemedikçe, bir LED'i yanıp sönmek için kendi derleyicinizi yazmazsınız.
jeremy

Evet, cevabınızı tartışmak için ekliyorum, genel olarak saniyede 30 kez farklı bir yönelim söylemesi gerekiyorsa, üzerinde devasa ivmeler olacak, bu da 100'den fazla örneğe ihtiyacınız olduğu anlamına geliyor. ikinci.
Kortuk

3

Veri sayfasını doğru anlarsam, eksen etrafında eğildikçe her eksen için çıkış 1,5 V ile 3,5 V arasında değişecektir. Cihaz düz olduğunda (± 1 derece paket hizalama hatasını yoksayarak), her iki çıkış da 2,5 V okumalıdır.

Eğimi sadece bir yönde ölçmeniz gerekiyorsa, radyan cinsinden açıyı elde etmek için sapmanın arkını 2.5 V'den alabilir, sonra dereceye dönüştürebilirsiniz. Cihaz herhangi bir yöne eğilebilirse, iki açıyı hesaplayabilir ve daha sonra bunlardan bileşik açıyı hesaplayabilirsiniz.

Açık olmak gerekirse: bir eksen etrafındaki açı = (180 / π) * arcsin (Vout - 2.5)

İyi frekans tepkisi elde etmek için Cx ve Cy gibi küçük çıkış kapasitörlerine ihtiyacınız olacaktır. 6 nolu dipnottan. Veri sayfasının 3'ü, 0.02 uF size 250 Hz'lik bir bant genişliği verecek gibi görünüyor, bu da muhtemelen örnekleme oranınız için doğru. Bant genişliğini 50 Hz ile sınırlandırarak 0.1 uF'a kadar çıkabilirsiniz, ancak sinyalleriniz zayıflamaya başlayacaktır.


Kapağın noktası olan daha yüksek frekanslara başvurmadığınız sürece sinyalleri zayıflatacağını düşünmüyorum. Veri örnekleme cihazına uyması için 50Hz veya altına gitmesi gerekiyor.
Kortuk

1
Ah, bunu örtüşme perspektifinden düşünmemiştim. Hala büyük büyük harflerin yüksek frekanslı sinyalleri zayıflatacağını düşünüyorum, ancak bu aslında bu iyi bir şey. Evet, bant genişliğini 50 Hz civarında ayarlamak iyidir.
Haziran'da

3

İkinci bir cevap ekliyorum, çünkü diğeri büyük ve sadece basit olabilir.

Sizi takma adınızın (50Hz) altında tutmak için filtre kapağınızın 0,10 uF veya daha büyük olması gerekir. Tüm Yerçekimi ivmesi Z yönündeyken cihazınızın oturma seviyesiyle birkaç saniyelik bir kalibrasyon aşaması vermeniz gerekir, bu sıfır G noktanızı belirlemektir.

Sıfır G noktanız için ölçtüğünüz voltaj, muhtemelen X ve Y yönü için farklı olacaktır, hiçbir şeyi temsil etmez. Sadece aldığınız voltajı alın ve bunu çıkarın. Ofset çıkarılmış olan bu voltaj, bu yönde elde ettiğiniz G sayısıdır.

Arksin al ve açını o yönde alacaksın.

Bu, gürültüyü ve diğer ivmeyi yok sayar. eğer tamamen eğilmiş ve herhangi bir gürültü varsa NaN için bir sonuç hazır olun.


0

Herhangi bir açı elde etmek için, hem X hem de Y yönlerinde yerçekiminin ivmesini ölçmeniz gerekir. sıfırın "hızlanma olmaması" için orta gerilimi (2.5V) çıkarın.

Şimdi açı, yaysin (y / x) ile bulabilirsiniz. Ancak bu, bölünme nedeniyle kullanmak için can sıkıcıdır ve işaret belirsiz olduğundan, C işlevinin gerçekten istediği şey atan2 (y, x). atan2 () işareti 360 derece için doğru alır.


Konu dışı, bir mikro kullanmadığınızdan: Bir mikro denetleyicide kullanmak için atan2 () arıyorsanız, web sitemde bir atan2 () jeneratörü var: http://vivara.net/cgi-bin/ cordic.cgi


0G için garantili 2,5 V değildir. muhtemelen matematiği yapmak için bir bilgisayar kullanacağından, matematiği yapmak için kullandığı yöntemin materyalden şüpheliyim.
Kortuk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.