電流流しすぎオタクvs安全管理オタクの仁義なき戦い(モーターの発熱のお話)

## 挨拶
皆さんこんばんは、今日もモーターに大電流流してますか？
ぎゅい～ん、ぷしゅ～、あ～燃えちゃった！！！(ｸｿﾃﾞｶﾎﾞｲｽ)
どうも、最近3枚のMDを破壊したロボット大好き大学院生woodロボです。
この記事は、[ゆる募 Advent Calendar 2024](https://adventar.org/calendars/11153)のに投稿しているものになります。ゆる募とあるので、できるだけｶｽみたいな記事を書けるように頑張ります。

## 「電流流しすぎオタクvs安全管理オタクの仁義なき戦い」とは何か？
### 一般ロボコニストがしてそうな会話
電流流しすぎオタク「電流は流せば流すほど、Vゴールタイムが早くなるんだ」
安全管理オタク「定格超えて流しすぎたら危ないよ！！！」
電流流しすぎオタク「うるせ～！電流ﾏｼﾏｼや！！！」
モーター「もう耐えられないよ～」(ﾎﾞﾝｯ)
電流流しすぎオタク「モーター壊れちゃった」

そうこの世には2種類の人間がいる。モーターを燃やす者、燃やさない者だ。
モーターの定格を超えることを生きがいとしている電流流しすぎオタク、そのような人からモーターを守る安全管理オタクの2つの勢力によって世界の均衡が保たれているのだ。

この記事では、そのような人々の生きざまを解説していきたい。

## モーターの発熱とは(基礎知識)
モーターの発熱にはいろんな原因がありますが、定番は銅損になります。モーターの抵抗値を$R$、流す電流を$i$とすると、$i^2 R$で発熱します。温度センサをモーターにつければ温度を監視できるので安全に思えますが、実はモーターのコア温度とケース温度は伝熱工学的あれこれで違ったりするので、特に高電流な領域ではラグの影響が大きいです。

モーターのモデルを見てみましょう。モーターのモデルは一般に抵抗とインダクタンス、逆起電力で表します。注目するべきはモーターの回転速度によって電圧が発生するということです。モーターがストールしたときにモーターが燃えたことはないでしょうか？これは、逆起電力がなくなることで、電流が大きくなることが数式からも分かると思います。
$$ V = Ri + L\frac{di}{dt} + K_e \omega $$

モーター制御について軽く説明すると、おおまかに分けて電圧制御と電流制御に分かれます。電圧制御はモーターにかける電圧を制御するもので、これでは電流を明示的に指定できないため、どのくらい発熱するかは分かりません。電流制御では、電流が一定になるように一般にフィードフォワード＋高速なPI制御により電圧を決定します。十分に周波数が低い上位レイヤーから見れば電流を自在に指令できているように見えるわけです。(カスケード制御)

### 電流制御は安全なのか？
電流流しすぎオタクからモーターを守るための方法として、電流制御が考えられます。電流制御では**うっかり**電流を流してしまうことは無くなります。ただ、**意図的**に電流を流すオタクからは守ることはできません。

電圧制御の場合
制御屋「ストールしたら燃えちゃった！電流制御を実装していないモータードライバーが悪い！」

電流制御の場合
制御屋「大電流を指示し続けたら燃えちゃった！自分が悪いけど、まぁいいや」

## モーターの発熱の限界に挑んだ人々(論文紹介)
電流流しすぎオタクの要望を満たしつつ、安全管理オタクの要望を満たすにはどうすればいいでしょうか？これにはモーターを†完全に理解†し、モーターの限界で駆動することがあげられます。ここでは、そんな限界に挑んだ人々を論文紹介を通して紹介したいと思います。(詳細は論文を読んでください)

### 水冷することで発熱の限界をあげる
モーターが発熱すると、伝熱工学的あれこれにより大気中に熱が放出されます。この放出されやすさ具合を回路方程式のアナロジーから、熱抵抗と表します。特に何もしない自然空冷、ファンで冷却する強制空冷、液体に熱を逃がした後にこの液体を強制空冷で冷却する水冷があげられます。放熱能力は、水冷>強制空冷>自然空冷となり、水冷は最強の放熱方法ですが、水冷用のポンプが必要なことや水漏れなど大変な事も多いです。
モーターやモータードライバーを冷却することで電流流しすぎオタク大歓喜、モーターの温度モデルをたてることで安全管理オタク大歓喜だよっていう論文[^1]があります。この論文では、**連続**電流80Aの水冷モータードライバーや、水冷されたMAXONの200Wブラシレスモーター(もはや200Wではない)がのっています。水冷することでモーターの電流(t=100s)を30A程度から60A程度まで増やせるそうです。
また、同じ人の論文で高速高トルクヒューマノイドロボットの論文[^2]もあります。この論文では水冷に加え、ｸｿﾃﾞｶｷｬﾊﾟｼﾀ(**質量8.9kg**)をのせたりしていて、とにかくおもろいので電流流しすぎオタクは読んでください。

[^1]:J. Urata, T. Hirose, Y. Namiki, Y. Nakanishi, I. Mizuuchi and M. Inaba, "Thermal control of electrical motors for high-power humanoid robots," 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2008, pp. 2047-2052.

[^2]:J. Urata, Y. Nakanishi, K. Okada and M. Inaba, "Design of high torque and high speed leg module for high power humanoid," 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010, pp. 4497-4502.

### モーターの温度まわりのパラメータをオンライン学習する
ワイヤ駆動ロボットでは、1つのロボットにたくさんのモーターを搭載されることが多いです。そのため、実験中にどこかのモーターに電流を流しすぎてうっかりモーターを燃やしてしまうことがあります。ワイヤ駆動ロボットにおいて、モーターの温度モデルのパラメータをオンライン学習したり、そのモデルを用いてワイヤの張力(モーターの電流に比例)を制限することでモーターを燃やさないように制御する論文[^3]があります。これは、安全管理オタクもにっこりですね。この論文は、arxivにも投稿されているので以下のリンクから気軽に読むことができます。

https://arxiv.org/abs/2407.08055v1

[^3]:K. Kawaharazuka et al., "Estimation and Control of Motor Core Temperature With Online Learning of Thermal Model Parameters: Application to Musculoskeletal Humanoids," in IEEE Robotics and Automation Letters, vol. 5, no. 3, pp. 4273-4280, July 2020

## 「電流流しすぎオタクvs安全管理オタクの仁義なき戦い」は続く
というわけで、この記事で紹介した手法を使えば、電流流しすぎオタクからモーターを守ることができますね。安全管理オタクの皆さんは実装してあげましょう。

安全管理オタク「モーターを燃やさないように、モーターのコア温度を推定して電流の制限をかけよう」
電流流しすぎオタク「なんかこの制限のせいで電流流せないんだけど、邪魔だから消しちゃおう」
モーター「もう耐えられないよ～」(ﾎﾞﾝｯ)
電流流しすぎオタク「モーター壊れちゃった」

そう、「電流流しすぎオタクvs安全管理オタクの仁義なき戦い」は終わらないのです・・・。

## あとがき
ｶｽな記事を書くつもりがけっこう真面目な内容を扱ってしまいました。モーターについて、少しは解像度があがったでしょうか？ちょっとでも役にたったら幸いです。

実は、この記事で紹介している論文は全て弊研究室のものです。興味のある方はぜひ見てみてね。

研究室のホームページ(ちょっと古いが、papersとかは最新)

http://www.jsk.t.u-tokyo.ac.jp/index-j.html

研究室の中のワイヤ駆動グループのyoutubeチャンネル(先生のチャンネル)

https://www.youtube.com/channel/UC3iq44Y7vsriPyFiU02Bcyw

では、自分は今日もモータードライバーを燃やしていきます。あばよ！！！