飽和した加速度計からのデータの回復


10

ADXL345加速度計を持っているので、それをハイブリッドロケットに取り付けて打ち上げます。残念ながら、デフォルトの+/- 2gから+/- 8gの範囲を設定するのを忘れていました(リフトオフ時に6gと予想していました)。

+/- 2g範囲の場合、データシートには10​​ビットの出力解像度がリストされ、+ /-8gの場合、12ビットの解像度がリストされます。

上記のリンクのデータシートのDATA_FORMATレジスター(0x31)でこれに気付きました:

DATA_FORMATレジスタは、レジスタ0x32からレジスタ0x37へのデータの表示を制御します。+/- 16gの範囲を除くすべてのデータは、ロールオーバーを回避するためにクリップする必要があります。(重点鉱山

このステートメントと機能ブロック図(3軸センサーが「センスエレクトロニクス」に接続され、次にADCに接続される)に基づいて、正しいデータを解決する方法があることを期待しています。倍率はデータシートの3ページに記載されています。

このデータを少なくとも1桁または2桁の有効数字に解決する方法はありますか?(たとえば、私は1.9414gを検出しました-これは約6であるはずです)。私はセンサーが飽和しているとは考えていません。データレジスタの数だけです-スケール係数といくつかの創造的なビットシフト(解像度を変更したときに10ビットから12ビットにどのように変化するかは完全には明らかではありません)が与えられていると思います。データから何か有用なものを回復します。


ロールオーバーのある2g表示を想定してデータをプロットし、長い単語の下2gを表示すると、結果はどのように表示されますか。昇順gについては、一連の鋸歯を見ることをお勧めします。0-2 = 0-2。2-4 = 0-2。4-6 = 0-2。
ラッセルマクマホン

ロケットを回収したら、その一撃を与えます。私が持っているデータは...我々は雲の後ろにそれを失ったため、不足している
ダンKhoa

回答:


7

「レジスタ0x31-DATA_FORMAT」に実際に保存した値は何ですか?

そのレジスターには何も格納していなかったので、リセット値は00のままです。つまり、データを収集していたとき(ADXL345データシートの表16および17ページから):

  • レジスタ0x31—DATA_FORMAT == 00。
  • FULL_RES ==0。したがって、デバイスは10ビットモードであり、範囲ビットは最大g範囲とスケール係数を決定します。
  • Justify Bit ==0。符号拡張付きの右揃えモード。
  • 範囲ビット==00。つまり+-2gの範囲。

最初に行うのは、加速度計から読み取った元の16ビット値を復元することです。(つまり、私が元のデータを不注意に捨てて、残っているのは、オフセットを差し引いて誤ったスケール係数を掛けて計算された「g」を単位とする数値だけである場合、収集したデータをスプレッドシートを使用して、同じ(正しくない)スケール係数で除算し、そのオフセットを追加して、元の値に近いものを回復しようとします。

次に、データをグラフ化し、それが「飽和」、「線形」、または「ロールオーバー」(以下で説明)のように見えるかどうかを確認します。

データシートは、センサーが2 gを超える加速度を経験したときに何が起こるかについて、途方もなくあいまいです。

接線の暴言

テクニカルライターが受身の声で執筆することを強く要求したとき、どれほど私を苛立たせますか?作家があなたが引用した文章で受動態を使用すると、

「±16 gの範囲を除くすべてのデータは、ロールオーバーを回避するためにクリップする必要があります。」(17ページ)

誰がこのクリッピングを行うことになっているのか正確にはわかりません。

多くの人がアクティブボイスの使用を推奨しています。私がそれらの推奨に従うと、私のテキストは通常​​誰が何をするかについてより明確になります。人々が「より専門的」または「より学術的」にサウンドを考えるようにだまされたスタイルを使用するよりも、より理解しやすいものを書くほうがいいのではないですか。

自動クリッピング

私の推測では、加速度計はこのクリッピングを自動的に実行します。

飽和:考えられる値を介して加速ランプが上昇する場合、不思議なことに高原で立ち往生し、+ 2gまたはその近くで飽和し、加速度計がデータを「助けて」クリップします。クリッピング後、「トップ」の値は「+ 2gに非常に近い加速度」を示すのではなく、「少なくとも2gの加速度、そしておそらくはるかに多くの加速度を示します-知る方法はありません」。

10ビット右揃えモードだったため、これらの16ビット値を通常の16ビット符号付き整数として解釈すると、

  • 0x01FF = +511、1.992 gを超えることを示します。おそらく、はるかに。
  • 0x01FE = + 510、510 / 256 g〜= 1.992 gを示します
  • 0x01FD = + 509、510 / 256 g〜= 1.988 gを示します
  • ...
  • 0x0001 = + 1、1 / 256 g = 0.0039 gを示します
  • 0x0000 = 0、0 gを示します
  • 0xFFFF = -1は、-1 / 256 g = 0.0039を示します
  • ...
  • 0xFE02 = -510、-510 / 256 = -1.992 gを示します
  • 0xFE01 = -511、-511 / 256 = -1.996 gを示します
  • 0xFE00 = -512、より負の値-1.996 gを示します。おそらくはるかに、はるかに否定的です。

(はい、このセンサーでは小数点以下4桁の精度は保証されません)。(一部のデバイスが-511や-510などの他のポイントで飽和するのを見てきました。通常、データを見て実際の飽和ポイントを把握できます)。

このクリップされたデータセットからいくつかの有用なデータを回復できます。これを使用して、たとえば、加速度が1.5 g以上であったミリ秒を測定できます。悲しいかな、この種のデータセットにプラトーが見られる場合、最大加速度または総インパルスを測定することは不可能です。できる最善のことは、「まあ、私たちは最大加速度が少なくとも 2g、おそらくそれ以上であることを知っています」と計算します。「まあ、総インパルスが少なくとも(何か)ニュートン*秒であることを計算します」。

代替案

加速度計がクリッピングを行うかどうかをデータから把握できるはずです。(「彩度」、「線形」、および「ロールオーバー」については、ランプアップの観点から説明しました。データセットによっては、代わりにランプダウンを確認する方が明確な場合があります)。

線形:ありそうな値を介して加速ランプが上昇し、その後、より高い値(512を超える、または-512より負の値)までランプアップを続ける場合、運が良かった-加速度計は実際にはクリッピングを行わなかった。全範囲にわたって有効なデータがあります。

ロールオーバー:考えられる値を介して加速が増加し、+ 2 gに達する直前に、それが瞬時に-2 g近くの物理的に現実的でない値にジャンプし、その後増加し続ける-おそらく進行するゼロを通過した後、再び+ 2gに近づき、再び-2 g近くにジャンプします。運が良ければ、値は非常にスムーズに変化するため、各ロールオーバーを検出し、これらの値を「アンラップ」して真のgフォースを回復できます。

ps:Open Circuits:Rocket Computerを自由に編集してください。


すごい!ロケットを回収したらすぐに試してみます。今のところ、それを見つけるのを助けるためにセスナをチャーターしなければなりませんでした。
Dang Khoa

ロケットを回収できないようですので、この議論はちょっと気がかりです(地上局からのデータポイントは2つしかありません)。しかし、ありがとう!
Dang Khoa

@davidcary、オープンサーキット:ロケットコンピュータのリンクが壊れている
Mahendra Gunawardena

@MahendraGunawardena:教えてくれてありがとう。それは今働いていますか?
デビッドカリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.