見出し画像

実際に使える制御工学:応用編(6)「ロボット関節のモデリング。機械振動を再現するには。」

<この記事で伝えたい事> 

  • ロボットの主要部品で、最も剛性が低いのは減速機です
    一部の例外はあるかもしれませんが、大抵はそうです。
    その理由は、減速機の持つ歯車にあります。
    歯車の1つ1つの歯はどうしてもサイズが小さく、他の部分に比べて剛性が低くなります。

  • 高速高精度動作の実現には、減速機特性の把握が重要です
    特に、減速機の剛性(=バネ)による振動は、しばしば精度面での問題になります。




1. はじめに

自己紹介はこちらです。

この記事は、主に若手~中堅エンジニアに向けた技術紹介・解説記事シリーズの第6弾です。

今回は、ロボット関節の代表的な数理モデルである二慣性系と、減速機にまつわる諸々の特性を紹介・解説します。


2. 二慣性系(減速機剛性)

物体というものは、力をかけると変形します。

力をかけても変形しない「理想的な剛体」は実在しないとされます。
(剛体の実在は相対性理論と矛盾するので、あり得ないそうです)
 
冒頭で述べたように、ロボットの主要構成部品の中で最も変形が大きい(=剛性が低い)ものは減速機です。
よって、ロボットの高精度な数理モデルを得るには、減速機剛性を考慮する必要があります。
 
下図は、ロボット関節のイメージです。

ロボット関節イメージ
ロボット関節イメージ

ほとんどの産業用ロボットは、減速機を介してモータとリンクフレームを接続する構造を採用します。

減速機を使う理由は、モータだけではロボットを動かすのに十分なトルクが得られないためです。

減速機を使えば、モータの発生トルクを減速比倍だけ増幅して、ロボットを動かすのに十分なトルクが得られます。
(それ単体で大きなトルクを出力できるダイレクトドライブモータというのもありますが、重量の問題であまり使われません)


モータとリンクフレームの2つの慣性を減速機(バネ)を介して連結した機械システムを二慣性系と呼びます。
2026年現在において、ロボット関節モデルには、この二慣性系が広く使われています。
 
下式が、二慣性系の運動方程式です。

$$
\left\{
\begin{array}{rl}
J_m\cdot\ddot{\theta}_m&=\tau-\cfrac{K_c}{N}\cdot\theta_s\\
J_L\cdot\ddot{\theta}_L&=K_c\cdot\theta_s\\
\theta_s&=\cfrac{\theta_m}{N}-\theta_L
\end{array}
\right.
$$

$$
\left(
\begin{array}{ll}
J_m&\text{:モータイナーシャ}\\
J_L&\text{:リンクイナーシャ}\\
K_c&\text{:減速機剛性}\\
N&\text{:減速比}\\
\tau&\text{:モータトルク}\\
\theta_m&\text{:モータ角度}\\
\theta_L&\text{:リンク角度}\\
\theta_s&\text{:減速機ねじれ角}\\
\end{array}
\right)
$$

これについては、ブロック線図を見ると動作原理を直感的に理解しやすいと思います。
下図が、二慣性系のブロック線図です。

二慣性系のブロック線図
二慣性系のブロック線図

このシステムでの動力伝達の流れは、以下のようにステップ分けすると分かりやすいです。
(4ステップ)

STEP1
モータのトルクによって、モータが回転する

STEP2
モータが回転して、リンク角とのねじれが生じる

STEP3
ねじれに応じたトルク$${K_c\cdot\theta_s}$$が生じる

STEP4
ねじれトルク$${K_c\cdot\theta_s}$$によって、リンク(ロボット)が駆動すると同時に、その反作用がモータに返ってくる
(リンクは、ねじれを小さくする方向に動く)

さて、勘の良い方は気付いているかもしれませんが、バネを持つシステムは振動します。

加えて、二慣性系では、共振現象とは逆に特定周波数で振動しにくい反共振という現象も見られます。

伝達関数を見れば、共振周波数(振動しやすい周波数)と反共振周波数を特定できます。

二慣性系の伝達関数は下式になります。
($${\omega_a}$$は反共振周波数、$${\omega_r}$$は共振周波数、いずれも単位は$${[rad/s]}$$)

$$
\begin{array}{ll}
\cfrac{\theta_m}{\tau}&=\cfrac{1}{J_m\cdot s^2}\cdot\cfrac{s^2+\frac{K_c}{J_L}}{s^2+K_c\cdot(\frac{1}{J_m\cdot N^2}+\frac{1}{J_L})}\\
&=\cfrac{1}{J_m\cdot s^2}\cdot\cfrac{s^2+{\omega_a}^2}{s^2+{\omega_r}^2}
\end{array}
$$

$$
\left(
\begin{array}{ll}
\omega_a&=\sqrt{\cfrac{K_c}{J_L}}\\
\omega_r&=\sqrt{K_c\cdot\left(\cfrac{1}{J_m\cdot N^2}+\cfrac{1}{J_L}\right)}
\end{array}
\right)
$$

$${J_m}$$はプラスの数値なので、必ず$${1/JL<(1/(J_m\cdot N^2)+1/J_L)}$$です。
($${1/(J_m\cdot N^2)}$$の分だけ右辺が大きくなるので)

よって、必ず$${\omega_a<\omega_r}$$になります。
たまに役立つ豆知識ですね。

二慣性系の周波数特性を下図に示します。
($${{J_m=3\times10^{-4}}_{[kgm^2]}}$$,$${{J_L=12}_{[kgm^2]}}$$, $${{K_c=6\times10^4}_{[Nm/rad]}}$$,$${{N=100}_{[-]}}$$)

二慣性系の周波数特性
二慣性系の周波数特性

反共振周波数$${\omega_a}$$付近で、急激なゲイン低下が見られます。
また、共振周波数$${\omega_r}$$付近で、急激なゲイン上昇が見られます。

この共振・反共振によって引き起こされる振動は、ロボットの高速高精度動作実現における永遠の課題と言えるものです。


なお、減速機剛性は、減速機にかかる負荷トルクによって変化することが知られています。
(減速機メーカの製品カタログ等にも記載されています)

基本的に、かかる負荷トルクが大きいほど、減速機剛性は上昇します。
この性質も、制御設計時に考慮すべき減速機の特徴の1つです。


3. トルク・エネルギー伝達効率

いくつかの要因により、減速機はモータが生み出すトルクやエネルギーを、100%完全にはリンクフレームに伝えられません。
代表的な要因は、以下が挙げられます。

$${\bm{■}}$$減速機内に充填されたグリースやオイルの摩擦
滑らかな動作を実現するため、減速機は内部にグリースまたはオイルを充填した状態で使われます。

特に、グリースやオイルの粘りが強くなる低温状態や、摩擦が大きくなる高速回転状態では、無視できない要因となります。

$${\bm{■}}$$フレクススプライン(弾性歯車)の変形:ハーモニック減速機限定
ハーモニック減速機は、常に楕円状にたわむフレクススプラインと呼ばれる部品を持ちます。
これにより、他の構造では不可能なほどの小型・高減速比を実現できます。

しかし、フレクススプラインが弾性変形する際、エネルギーを使います。
(弾性抵抗エネルギー)

特に、トルクやエネルギーが小さい低負荷条件では、全エネルギーに占める弾性抵抗の割合が大きく、効率低下の主要因になりやすいです。

$${\bm{■}}$$インボリュート曲線でない形状の歯型の採用
インボリュート曲線は、歯車の接触面にかかる力の方向を、トルク伝達には最適にできる形状です。

しかし、工業製品には、耐久性が要求されます。
インボリュート曲線歯車は一度に噛み合う歯数が少なく、1枚あたりの歯に大きな力がかかるので、耐久性の面では不利です。

耐久性を重視する場合、一度に噛み合う歯数が多くなるサイクロイド曲線等が採用されます。
ただ、歯車の接触面の力の方向は、トルク伝達に最適にはなりません。

これらを知らないと、
「モーション・制御アルゴリズムを設計しても狙った効果が得られない」
「シミュレーションをやっても実機に近い動きにならない」
というハメに陥ることになります。


そうならないために、こうしたトルク・エネルギーの伝達効率低下要因があることは、なんとなくでも知っておきましょう。

詳しいことは必要なとき調べれば、それで大抵は間に合います。
丸暗記する必要はないです。
 
ただ、全く知らないと「よし、調べよう」とは中々なりません。
「そういえば、そんなのあったかも?」程度のうろ覚え知識でも、持っておくと良いと思います。


4. 角度伝達誤差

理想的には、モータ角度(=減速機入力軸角度)を減速比で割ると、リンク角度(=減速機出力軸角度)と一致します。

しかし、現実には、両者にはわずかな差が出ます。
(弾性ねじれを抜きにしても)

これを角度伝達誤差と呼びます。

角度伝達誤差イメージ
角度伝達誤差イメージ

角度伝達誤差の出方には以下の特徴があることから、減速機の部品加工精度・組立て精度が誤差の原因と考えられています。

  • 個体差が大きい

  • 同じ出力軸角度で、同じように誤差が出る
    (角度への依存性がある)

通常、角度伝達誤差はロボット動作に大きく影響はしません。
(おそらく、減速機メーカの品質管理によって、誤差の大きい個体を弾くためと思います)


しかし、角度伝達誤差の周波数がロボットの固有振動数と一致すると、ロボットが振動してしまうことがあります。

ロボットの動作速度(モータの回転速度)を変更すれば、角度伝達誤差の周波数も変わります。
この性質を利用して、振動の発生を回避できます。


もし、積極的に角度伝達誤差による振動を抑えたいなら、減速機出力軸にロータリーエンコーダを取り付けるような特別な工夫が必要になります。

ただ、そのためだけにロータリーエンコーダを取り付けるのは、コストに見合うメリットが得られないことがほとんどです。


そこまでやっているのは、高精度を追及した一部のハイエンドモデルくらいですね。

「その性能を達成できれば、これまでになかったロボットの使い方が可能になる」
なら出力側にロータリーエンコーダを取り付けることがあります。
(KUKA社がそういうロボットを販売していたと思います)


ちなみに、ハーモニック減速機では、出力軸1回転につき2周期の角度伝達誤差が発生するそうです。
(ハーモック・ドライブ・システムズ社の特許文献より、出願番号:特願2019-515048)


5. おわりに

この記事では、ロボット関節のモデリングについて紹介・解説しました。
 
2章で述べたように、ロボット関節モデルとして広く使われているのは、減速機剛性を考慮した二慣性系です。
(2026年現在では)

それをベースに、トルク・エネルギー伝達効率や角度伝達誤差をモデルに組み込むこともあります。
ただ、あまりに多くの要素を組み込みすぎると、問題視する現象の原因が何なのか分かりづらくなってしまうのが困るところです。


「どこまで考えてモデリングするのが正解か?」
と聞かれたら、
「そのとき問題視する現象をおおむね再現できる程度まで」
としか返しようがなさそうですね。

決まった正解があるわけではないのが、モデリングの難しいところの1つと思います。
(ロボット関節に限らず)
 
とは言え、最低でも減速機剛性くらいは考慮しないと、制御設計やシミュレーションに使える精度のモデルには十中八九なりません。

ロボット制御において、理論と実物とに食い違いが出る主な原因は、減速機などの動力伝達機構まわりにあるケースが多いです。

そうした訳で、普通なら「制御からみると周辺技術」と位置付けられることを、1記事丸々使って紹介・解説しました。


前回:応用編(5)「多関節ロボットの非干渉化制御」はこちら
次回:応用編(7)「制振フィードフォワード制御」はこちら


付録. 三慣性系

「二慣性系があるなら、三慣性系もあるんじゃないか?」
と思った方もいるのではないでしょうか?
あります。

下図が、三慣性系のブロック線図です。

三慣性系のブロック線図
三慣性系のブロック線図

下式が、三慣性系の運動方程式です。

$$
\left\{
\begin{array}{ll}
J_1\cdot\ddot{\theta}_1&=\tau-\cfrac{K_1}{N}\cdot\theta_{s1}\\
J_2\cdot\ddot{\theta}_2&=K_1\cdot\theta_{s1}-K_2\cdot\theta_{s2}\\
J_3\cdot\ddot{\theta}_3&=K_2\cdot\theta_{s2}\\
\theta_{s1}&=\cfrac{\theta_1}{N}-\theta_2\\
\theta_{s2}&=\theta_2-\theta_3
\end{array}
\right.
$$

これらブロック線図と運動方程式は、バネ要素が減速機よりリンクフレーム側にあることを想定したものです。
(モータシャフト等の減速機よりモータ側にバネ要素がある場合、少しアレンジを効かせる必要があります)


なお、下式が三慣性系の伝達関数です。
($${\omega_{a1}}$$:1次反共振周波数、$${\omega_{a2}}$$:2次反共振周波数、$${\omega_{r1}}$$:1次共振周波数、$${\omega_{r2}}$$:2次共振周波数)

$$
\cfrac{\theta_1}{\tau}=\cfrac{1}{J_1\cdot s^2}\cdot\cfrac{s^2+{\omega_{a1}}^2}{s^2+{\omega_{r1}}^2}\cdot\cfrac{s^2+{\omega_{a2}}^2}{s^2+{\omega_{r2}}^2}
$$

$$
\left(
\begin{array}{lll}
\omega_{a1}=\cfrac{1}{\sqrt{2}}\cdot\sqrt{\Omega_1-\sqrt{{\Omega_1}^2-4\cdot X_1}}&,&\omega_{r1}=\cfrac{1}{\sqrt{2}}\cdot\sqrt{\Omega_2-\sqrt{{\Omega_2}^2-4\cdot X_2}}\\
\omega_{a2}=\cfrac{1}{\sqrt{2}}\cdot\sqrt{\Omega_1+\sqrt{{\Omega_1}^2-4\cdot X_1}}&,&\omega_{r2}=\cfrac{1}{\sqrt{2}}\cdot\sqrt{\Omega_2+\sqrt{{\Omega_2}^2-4\cdot X_2}}\\
\Omega_1=\cfrac{K_1+K_2}{J_2}+\cfrac{K_2}{J_3}&,&\Omega_2=\cfrac{K_1}{J_1\cdot N^2}+\Omega_1\\
X_1=\cfrac{K_1\cdot K_2}{J_2\cdot J_3}&,&X_2=\cfrac{J_1\cdot N^2+J_2+J_3}{J_1}\cdot X_1
\end{array}
\right)
$$


下図に、三慣性系の周波数特性を示します。
($${{J_1=3\times10^{-4}}_{[kgm^2]}}$$,$${{J_2=2}_{[kgm^2]}}$$,$${{J_3=12}_{[kgm^2]}}$$, $${{K_1=6\times10^4}_{[Nm/rad]}}$$,$${{K_2=20\times10^4}_{[Nm/rad]}}$$,$${{N=100}_{[-]}}$$)

三慣性系の周波数特性
三慣性系の周波数特性

伝達関数からも分かりますが、三慣性系は2つの共振・反共振周波数を持ちます。

もし、振動の周波数が1種類だけでなく2種類あるなら、数学モデルを二慣性系から三慣性系に切り替えるのを検討してみて良いかもしれません。


前回:応用編(5)「多関節ロボットの非干渉化制御」はこちら
次回:応用編(7)「制振フィードフォワード制御」はこちら


いいなと思ったら応援しよう!