ロボットを制御するために、伝達関数(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回路の例はこちら