ロボットを制御するために、伝達関数(Transfer Function)を用いて、ロボットのシステムを数式で表すという方法があります。
伝達関数を用いることで、システムの入力に対する出力を求めることが出来ます。
今回は、抵抗R、コイルL、コンデンサCが含まれた電気回路を例に、ラプラス変換(Laplace Transform)を用いてシステムを伝達関数で表す方法を紹介します。
抵抗R、コイルL、コンデンサCからなる電気回路

図のような抵抗RとコイルL、コンデンサCからなる電気回路について、入力v_iが与えられた時の出力v_oを求めていきます。
回路内の各パラメータは、
R_1 = R_2 = 1 [\Omega]
L = 1 [H]
C = 1 [F]
として計算します。
このシステムに対し、入力v_iに対する出力v_oを求めるために、システムをラプラス変換を用いて時間領域tから周波数領域sに変換し、伝達関数を求めていきます。
ラプラス変換を用いて各パラメータを変換する
各パラメータについてラプラス変換を用いて時間領域tから周波数領域sに変換します。
時間領域tにおける入力v_i(t)と出力v_o(t)は、周波数領域sではそれぞれV_i(s)と出力V_o(s)で表されます。
抵抗Rに電流i(t)が流れた際の両端の電圧v_R(t)は、
v_R(t) = R i(t)
で求めることが出来ます。
これをラプラス変換を用いて周波数領域sに変換すると、
V_R(s) = R I(s)
と表すことが出来ます。
同様に、コイルLに電流i(t)が流れた際の両端の電圧v_L(t)は、
v_L(t) = L \frac{d i(t)}{dt}
で求めることが出来ます。
これをラプラス変換を用いて周波数領域sに変換すると、
V_L(s) = s L I(s)
と表すことが出来ます。
コンデンサCに電流i(t)が流れた際の両端の電圧v_C(t)は、
v_C(t) = \frac{1}{C} \int i(t) dt
で求めることが出来ます。
これをラプラス変換を用いて周波数領域sに変換すると、
V_C(s) = \frac{1}{s C} I(s)
と表すことが出来ます。
キルヒホッフの法則を用いて閉回路内での関係式を求める
キルヒホッフの法則(Kirchhoff’s Law)を用いて、各閉回路での関係式を算出します。
キルヒホッフの第二法則を用いて、閉回路内での関係式を求めていきます。
今回は、
- 入力v_iから抵抗R_1を通り抵抗R_2に行き、入力v_iに戻る閉回路1と
- コイルLからコンデンサC(出力v_o)に行き、抵抗R_2を通り、コイルLに戻る閉回路2
を取り扱います。
各閉回路に流れる電流をそれぞれi_1、i_2として、各閉回路についてキルヒホッフの第二法則を用いて関係式を求めていきます。
この二つの閉回路について、それぞれキルヒホッフの第二法則を用いると、
V_i(s) = R_1 I_1(s) + R_2 (I_1(s)-I_2(s))
0 = R_2 (I_2(s)-I_1(s)) + L s I_2(s) + \frac{1}{C} \frac{I_2(s)}{s}
と表すことが出来ます。
ここで、今回の出力v_o(t)は、
V_o(s) = \frac{1}{C} \frac{I_2(s)}{s}
です。
この出力についての式と、閉回路2についての関係式から、
I_2(s) = s C V_o(s)
I_1(s) = \frac{R_2 I_2(s) + L s I_2(s) + V_o(s)}{R_2} = \frac{s R_2 C V_o(s) + s^2 L C V_o(s) + V_o(s)}{R_2}
と各電流に対する関係式を求めることが出来ます。
今回のシステムについて、各パラメータは
R_1 = R_2 = 1 [\Omega]
L= 1 [H]
C= 1 [F]
と定義しています。
このパラメータの値を閉回路1についての関係式と、各電流についての関係式について代入すると、
V_i(s) = 2 I_1(s) – I_2(s)
I_1(s) = s^2 V_o(s) + s V_o(s) + V_o(s)
I_2(s) = s V_o(s)
となります。
これより、各電流についての式を1つ目の閉回路についての関係式に代入すると、
V_i(s) = 2 \left(s^2 V_o(s) + s V_o(s) + V_o(s)\right) – s V_o(s)
V_i(s) = 2 s^2 V_o(s) + s V_o(s) + 2 V_o(s)
V_i(s) = \left(2 s^2 + s + 2 \right) V_o(s)
となります。
これより、入力V_i(s)と出力V_o(s)の関係\frac{V_o(s)}{V_i(s)}を示す伝達関数G(s)は、
\frac{V_o(s)}{V_i(s)} = \frac{1}{2 s^2 + s + 2}
と算出することが出来ました。
まとめ
今回は、実際にRLC回路の例を用いて、ロボットの制御に必要な伝達関数の求め方を紹介しました。
合わせて読みたい
RL回路を取り扱った例はこちら

もう少し複雑なRLC回路の例はこちら
