グルグル回る軸の角度変動の平均値を出したい
ロータリーエンコーダのようにグルグル回る軸。
この回転角の平均値(たとえば1秒に1回測定して1分間の平均とか)
を出す処理についてです。
値は角度。 1度単位で0度〜359度。
この範囲内をうろうろしている時は、単純に加算した合計値
を加算した回数で割れば平均値が出てきます。
問題は[359度→0度]、[359度←0度]という「0度」を
またぐ動き。
これを避けようと、359度を「-1度」と処理しても、今度は
[-179度 ←→ +180度]の部分で数値が飛んでしまい、
平均値が得られません。
以前にメモした、
・オーバーフローするかも? そんな数値の処理
と似ているんですが、ちょいと違います。
検索すると、
・角度の平均値計算
あれこれ出てきます。
で、あるプログラムで使われていたのがこんな手順。
・回転角θ(0〜359)のsin値とcos値(-1〜0〜+1)を計算
・このsin値、cos値をそれぞれに加算合計して平均値を算出
・sin、cosそれぞれの平均値から、「atan」を使って
元のθを復元。
※tanθ = sinθ / conθ
いかがでしょうか。
※関連:ぐるぐる回る軸の角度変動の平均値を出す方法
|
2016年9月7日 10時48分
|
記事へ |
コメント(3) |
トラックバック(0) |
|
・電子回路工作 |
トラックバックURL:http://blog.zaq.ne.jp/igarage/trackback/4525/
※ブログ管理者が承認するまで表示されません
こいつなら、数えてわり算するだけ?
でも、正転・反転が混じるとややこしいですね。
359度→0度
と
359度←0度
の変化。
直前との「差」を記録して平均処理てな具合かと
考えてますが、これでうまくいくかどうかの確認は
まだです。
うちの装置を調べてみましたが、残念ながら計算済みのデータを表示してるだけでした。
ネットを徘徊してると、風向はX−Y(N−E)に分解して平均するみたいです。
「風向と風速の計算」でいろいろヒットします。