
倒立振子はトルク制御と速度制御のどちらの夢をみるのか?
本記事にはアフィリエイト広告が含まれます。
BLDCをFOCで制御したりQDDモータをいじくるようになり、ふと思ったのです。
11月後半のテーマ
倒立振子のモータ トルク制御 or 速度制御?どちらが自分にマッチするか自身にわからせる
— HomeMadeGarbage (@H0meMadeGarbage) November 14, 2025
トルク制御と速度制御 どっちがいいんだろうか?
当然用途によるんだろうけど
倒立振子で比較してみましょう。
目次
QDDモータ ROBSTRIDE 05
Robstride 05 で車輪タイプの倒立振子を作ってトルク制御/速度制御の比較を実施しました。
トルク制御
ROBSTRIDE 05で倒立振子
トルクモードQDDで倒立振子が最適とは思わないけど思い出として
あとのちに試すROBSTRIDE 05で速度制御をやってみたくテーマとした pic.twitter.com/Ms4aZCpMQz— HomeMadeGarbage (@H0meMadeGarbage) November 15, 2025
見事に倒立
ATOM matrix内蔵のIMUで姿勢検知してCAN通信でモータを動かしてます。
以下のようにトルク(モータ電流)を制御
トルク(電流) = Kp × 姿勢角 + Kd × 姿勢角速度 + Kw × モータ回転速度
速度制御
同様に速度モードでROBSTRIDE 05 を駆動して倒立振子動作
ROBSTRIDE 05で倒立振子
速度モードいい感じだね。速度制御パラメータはなにもいじってないからデフォ値が上質なんだろうな
自分でやる場合はトルクモードですっきりとした制御ループで管理のほうがいいのかなぁ pic.twitter.com/5fzY9YdluS
— HomeMadeGarbage (@H0meMadeGarbage) November 15, 2025
こちらも素晴らしい動作。
倒立振子自体の制御はトルク制御と全く同じ形式
速度 = Kp × 姿勢角 + Kd × 姿勢角速度 + Kw × モータ回転速度
速度モード内部の速度制御器 (回転速度→モータ電流)のパラメータはいじらず初期値を使用しました (PI制御らしい)。
負荷に依存せずに指令通り速度を保ってくれるので、以下のように起き上がり制御も容易にできました。
車輪倒立振子はダイレクトドライブ一択かなと思っていたけど、QDDでも上の動画のように小さくて軽い倒立振子の起き上がりにも追従できるし、パワーがあってむしろ最適でしたね。
つ つえー pic.twitter.com/Vguyv5pa3m
— HomeMadeGarbage (@H0meMadeGarbage) November 17, 2025
空パックだろとご指摘あったので
ぎっしり1070gよ
ただサツラク牛乳のおいしさは計り知れないけどね pic.twitter.com/4du5CzJXFN— HomeMadeGarbage (@H0meMadeGarbage) November 17, 2025
参考
BLDC Roller485 Lite
Roller485のリアクションホイール倒立振子でもトルク制御/速度制御の比較実施
Roller485でもトルク(電流)モードと速度モードの比較して
体に入れる速度モードのほうが仕事が施されているのがよくわかる
←トルクモード
→速度モード pic.twitter.com/RKjOHpbutb— HomeMadeGarbage (@H0meMadeGarbage) November 16, 2025
トルク制御
トルク制御によるRoller485 リアクションホイール倒立振子は以前にも確認済み
なじみのトルクモードでリアクションホイール pic.twitter.com/Lfo0YbiPy9
— HomeMadeGarbage (@H0meMadeGarbage) November 16, 2025
制御はQDD倒立振子と全く同じ
トルク(電流) = Kp × 姿勢角 + Kd × 姿勢角速度 + Kw × モータ回転速度
速度制御
速度モードでも倒立を確認
Roller485
速度PIDがっつりいじって速度モードでもリアクションホイールできた速度モードだと起き上がりができるのよな pic.twitter.com/8bsg38gJLC
— HomeMadeGarbage (@H0meMadeGarbage) November 16, 2025
回転速度管理が容易なので起き上がりもお手のもの
Roller485の速度モードPIDゲインが芳しくなかったので、以下のようにがっつり調整しています。
Roller485のリアクションホイール倒立振子の起き上がり動作はトルク制御でもできていたのですが、この時は起上り時だけ速度検知してPI制御で動かしておりました。
これがSHISEIGYO-1 Rollerかな pic.twitter.com/pYhH02BdDF
— HomeMadeGarbage (@H0meMadeGarbage) November 5, 2024
参考
おわりに
ここではQDDモータとBLDCユニットによる倒立振子でトルク制御と速度制御の比較を行いました。
制御ループがシンプルなトルク制御がよいか制御ループは増えるが回転精度が増す速度モードが良いか悩みどころです。
今のところの結論は
よい速度制御器を組めれば速度モードのほうが良い
としておきます。
SimpleFOCによるBLDCリアクションホイール (2025/11/19 追記)
よいBLDCドライバを入手しましたのでリアクションホイール倒立振子を製作しました。
BLDCモータはこれを使用
5010 360KV
いい機会なので同様にトルク制御と速度制御の比較をしてみます。
トルク制御
リアクションホイール#ReactionWheel #cubli pic.twitter.com/lZdIhutjZr
— HomeMadeGarbage (@H0meMadeGarbage) November 19, 2025
スペーサ長は90mmと足長ですが立派に倒立できております。
倒立振子自体の制御方式はRoller485のものと全く同じです。
モータの駆動はSimpleFOCライブラリを使用してベクトル制御 (FOC)で実施しています。
SimpleFOCのトルク制御の制御ループは以下の通りです。
モータ電流を検知して Iq、IdをPID制御して駆動します。
速度制御
FOC 速度制御モード pic.twitter.com/RdoPha0VTZ
— HomeMadeGarbage (@H0meMadeGarbage) November 19, 2025
速度制御モードでもリアクションホイール倒立を実施
特に差は感じませんでしたが以下のブロック図のように速度のPID制御のゲイン調整も必要になります。
ただ単に倒立させるだけならトルク制御のほうがゲイン調整が容易で最適かもしらんね。
SimpleFOCによるBLDC車輪倒立振子 (2025/11/28 追記)
これまでを踏まえて速度制御で車輪倒立振子を製作
BLDCはドローン用のヤツを使用
無事倒立
機体完成
PS4コントローラでギュンギュンに動かしたい pic.twitter.com/uW8SBkEn9N
— HomeMadeGarbage (@H0meMadeGarbage) November 27, 2025
速度制御でぶんぶん動かす
ぶーん pic.twitter.com/5mm0Dtimot
— HomeMadeGarbage (@H0meMadeGarbage) November 27, 2025
車輪倒立振子はトルク制御の時も車輪回転速度もフィードバックしていたので普通に動かす分にはさほどご利益は感じなかった。
ただやはり起き上がり動作時に速度制御モードのありがたみを感じる。
一旦飲む pic.twitter.com/KF1NDtyv5d
— HomeMadeGarbage (@H0meMadeGarbage) November 27, 2025
速度制御のPIDパラメータの調整方法の感覚がまだフワフワしてるので、たくさん経験を積むなりモノの本を読んで勉強したい。
現状は一旦トルクモードで動かして、同じように動くように速度モードパラメータ調整してる









