倒立振子について

こんにちは。今回も去年に引き続き倒立振子のロボットの制作を行いました。機体の形状は変わっておらず、I2Cを使用したジャイロセンサーを使っています。

機体について

去年と同じもの使っています。

骨組み:タミヤの工作キットを使っています。

マイコン:Arduinoの記事を参照してください。

モータードライバー:変身ベルトの名前ではありません。モーターを制御したり、モーターからの過電流を防ぎます。東芝のTA7291Pというものを使っています。

ジャイロセンサー:3軸加速度、角速度を検知して、マイコンにデータを送ってくれます。

去年の反省

去年は、倒立振子の制御を行うプログラムに状態方程式やらなんやらを使って制御をするという方法をとっていました。しかしこの方法を使うと、設定しなければならない定数が4個も存在することになってしまいます。それだけでなくその定数は少しづつ決めていくしかないのです。早い話がめんどい

そこで…

今年は設定する必要のある定数が3個のみでその数値を計算で出せる、PID制御を使います。PID制御とは、P(比例制御)I(積分制御)D(微分制御)の三つの制御方法を同時に行うことで、誤差や大きなずれ、急激な変化に対応できる制御のことです。詳しくはこのサイトを参照してください。https://qiita.com/RyosukeH/items/9e5ce2ebdadd90e3db00

以下、プログラム(試作)