• 締切済み

角加速度

こんばんは。 実は今、エンコーダーを使って人が脚を動かしたときの角加速度を計測するという実験をしています。 それで、visual C++で現在の角度をθt、1タスク前の角度をθ(t-1)、サンプリングタイムをTとして、計算式を加速度の公式に基づいて "(θt-θ(t-1))/T2" としたのですが、結果は最大1000rad/s2というとんでもない値になってしまいました。色々修正を行ってやり直してみたのですが、同じ結果にしかなりません。もし、良い計算式がありましたら教えていただきたいです。もし、if文を使用することになる場合は、その部分だけでもいいのでソースも教えていただけたらうれしいです。 ちなみに、サンプリングタイムは1タスク0.0005sです。

みんなの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

角速度の微分が角加速度になるので次のような式になるのではと思われます。 d^2θ/dt^2={(θ(t+1)-θ(t))/dt -(θ(t)-θ(t-1))/dt}/dt =(θ(t+1)+θ(t-1)-2θ(t))/(dt)^2 角加速度の積算値が角速度になるかを確認してください。 エンコーダーの分解能はどの位ですか。 サンプリングタイムあるいは計算時間間隔を1ms,2ms等と落としたらどうなりますか。 負荷が軽ければ0.1sの間に3回転/s、200rad/s2程度は考えられるので、タイミンクによっては瞬間的に1000rad/s2近くになるのかも知れません。

takshimizu
質問者

補足

なるほど、早速この式を試してみます。 エンコーダは分解能1024、速比91、逓倍4としています。

関連するQ&A

専門家に質問してみよう