二輪型倒立振子の伝達関数を求める

制御工学

みなさん,こんにちは
おかしょです.

このブログでは電子工作で必要な知識や私が実際に作ったロボットなどの紹介をしています.

私がこのブログを始めるときに最初に作ろうと思ったロボットは倒立振子です.

倒立振子は制御工学の参考書でも取り上げられることが多く,制御工学の学習には最適なロボットだと思います.

そんな倒立振子を倒立させるには適切な制御器を設計しなければなりません.
適切な制御器を設計するには伝達関数を知っている必要があります.

そこで,この記事では倒立振子の伝達関数の導出過程を説明します.

この記事を読むと以下のようなことがわかる・できるようになります.

  • 伝達関数を求める理由
  • 伝達関数の求め方
  • 二輪型倒立振子の伝達関数

 

この記事を読む前に

以前,二輪型倒立振子の運動方程式を線形化して状態方程式を求めたので,伝達関数の導出にはその状態方程式を利用します..

二輪型倒立振子の状態方程式の導出方法を知りたい方やこの記事の内容をしっかり理解したい方は以下の記事を先に読んでおくことをおすすめします.

 

伝達関数を求める理由

古典制御工学ではシステムを周波数領域で解析するために伝達関数で表現します.

この伝達関数を利用して設計する制御器は数多く存在していて,最も有名な制御器はPID制御だと思います.

PID制御は構造が非常に単純で制御工学について詳しくない方でも簡単に取り扱うことができます.

そのため,ゲインの調整は試行錯誤で繰り返し調整していけばシステムを安定化させられるゲインを見つけることができます.

しかし,このような試行錯誤的な調整の仕方ではなかなか最適なゲインを見つけられないこともあります.

このようなときは伝達関数を利用してゲインの調整をする方が効率的です.

例えばモデルマッチング制御と呼ばれるものは目標とする応答をする伝達関数を用意しておき,その伝達関数とシステムの伝達関数を係数比較して制御器のゲインを決定します.

このように伝達関数を利用することで制御器のゲインを簡単に見つけることが可能となります.

また,システムの伝達関数を求めればシステムがどのような特性を持っているのか解析もできるので,システムの伝達関数を求めることは重要な意味を持ちます.

 

二輪型倒立振子の伝達関数の導出

倒立振子の伝達関数を導出していくのですが,システム行列の要素などを正確に書くと文字がごちゃごちゃして見にくくなってしまうので,状態方程式を以下のように置きます.

\begin{eqnarray}
\frac{d}{dt}
\begin{bmatrix}
\phi\\
\dot{\phi}\\
\theta\\
\dot{\theta}\\
\end{bmatrix}
=
\begin{bmatrix}
a_{11}&a_{12} & a_{13} & a_{14}\\
a_{21} & a_{22} & a_{23} & a_{24}\\
a_{31} & a_{32} & a_{33} & a_{34}\\
a_{41} & a_{42} & a_{43} & a_{44}\\
\end{bmatrix}
\begin{bmatrix}
\phi\\
\dot{\phi}\\
\theta\\
\dot{\theta}\\
\end{bmatrix}
+
\begin{bmatrix}
b_1\\
b_2\\
b_3\\
b_4\\
\end{bmatrix}
\tau
\end{eqnarray}

この状態方程式から伝達関数を求めます.

状態方程式では複数の状態量を扱うためにシステムを行列で表現していますが,伝達関数では一つの状態量しか扱うことができません.

今回取り扱う倒立振子の場合は,倒立状態の維持が制御目標なので注目する状態量は\(\theta\)のみです.

そのため,出力は\(\theta\)で入力は\(\tau\)とした伝達関数を求めていきます.

まずは状態方程式の4行目に注目します.

$$ \ddot{\theta} = a_{41} \phi+a_{42} \dot{\phi}+a_{43} \theta+a_{44} \dot{\theta}+b_4 \tau $$

この式をラプラス変換します.

\begin{eqnarray}
s^2 \theta &=& a_{41} \phi+a_{42} s \phi+a_{43} \theta+a_{44} s \theta+b_4 \tau \\
(s^2 -a_{44} s -a_{43}) \theta &=& (a_{42} s +a_{41} ) \phi+b_4 \tau \\
\end{eqnarray}

このままでは\(\phi\)が邪魔で伝達関数が求められないので,\(\phi\)を消します.
そのために状態方程式の2行目に注目します.

$$ \ddot{\phi} = a_{21} \phi+a_{22} \dot{\phi}+a_{23} \theta+a_{24} \dot{\theta}+b_2 \tau $$

先程と同じようにラプラス変換して\(\phi\)について解きます.

\begin{eqnarray}
s^2 \phi&=& a_{21} \phi+a_{22} s \phi+a_{23} \theta+a_{24} s \theta+b_2 \tau \\
(s^2 -a_{22} s -a_{21}) \phi &=& (a_{24} s +a_{23} ) \theta +b_2 \tau \\
\phi &=& \frac{a_{24} s +a_{23}}{s^2 -a_{22} s -a_{21}} \theta + \frac{b_2}{s^2 -a_{22} s -a_{21}} \tau \\
\end{eqnarray}

これを先程求めた式に代入します.

\begin{eqnarray}
(s^2 -a_{44} s -a_{43}) \theta &=& (a_{42} s +a_{41} ) \left( \frac{a_{24} s +a_{23}}{s^2 -a_{22} s -a_{21}} \theta + \frac{b_2}{s^2 -a_{22} s -a_{21}} \tau\right)+b_4 \tau \\
(s^2 -a_{44} s -a_{43}) \theta &=& \frac{(a_{42} s +a_{41} )(a_{24} s +a_{23})}{s^2 -a_{22} s -a_{21}} \theta + \frac{(a_{42} s +a_{41} )b_2}{s^2 -a_{22} s -a_{21}} \tau+b_4 \tau \\
(s^2 -a_{44} s -a_{43})(s^2 -a_{22} s -a_{21}) \theta &=& (a_{42} s +a_{41} )(a_{24} s +a_{23}) \theta + (a_{42} s +a_{41} )b_2 \tau+(s^2 -a_{22} s -a_{21}) b_4 \tau \\
\{ (s^2 -a_{44} s -a_{43})(s^2 -a_{22} s -a_{21})-(a_{42} s +a_{41} )(a_{24} s +a_{23}) \} \theta &=& \{ (a_{42} s +a_{41} )b_2 +(s^2 -a_{22} s -a_{21})b_4 \} \tau \\
\frac{\theta}{\tau} &=& \frac{(a_{42} s +a_{41} )b_2 +(s^2 -a_{22} s -a_{21})b_4}{(s^2 -a_{44} s -a_{43})(s^2 -a_{22} s -a_{21})-(a_{42} s +a_{41} )(a_{24} s +a_{23})} \\
\end{eqnarray}

伝達関数はこのようになります.

最後にこの伝達関数は行列の要素を文字で置いていたので,質量\(m_p\)などの値を元に戻します.

\begin{eqnarray}
\frac{\theta}{\tau} &=& \frac{(-\frac{\mu_{\phi} A_1}{A_2 B_1 -A_1 B_2} s+0 )b_2 +(s^2 +\frac{\mu_{\phi} A_2}{A_1 B_2 -A_2 B_1} s -0)b_4}{(s^2 +\frac{\mu_{\theta} B_1}{A_2 B_1 -A_1 B_2} s +\frac{m_{p} g L B_1}{A_2 B_1 -A_1 B_2})(s^2 +\frac{\mu_{\phi} A_2}{A_1 B_2 -A_2 B_1} s -0)-(-\frac{\mu_{\phi} A_1}{A_2 B_1 -A_1 B_2} s+0 )(-\frac{\mu_{\theta} B_2}{A_1 B_2 -A_2 B_1} s -\frac{m_{p} g L B_2}{A_1 B_2 -A_2 B_1})} \\
\end{eqnarray}

ここで,以下のように置きます.

\begin{eqnarray}
\alpha &=& A_1 B_2 -A_2 B_1 \\
\beta &=& A_2 B_1 -A_1 B_2 \\
\end{eqnarray}

これを用いて,上式の分母と分子に\(\alpha \cdot \beta\)を掛けます.

\begin{eqnarray}
\frac{\theta}{\tau} &=& \frac{-\mu_{\phi} A_1b_2 \alpha s +b_4 \alpha \beta s^2 +\mu_{\phi} A_2 b_4 \beta s }{(\beta s^2 +\mu_{\theta} B_1 s +m_{p} g L B_1)(\alpha s^2 +\mu_{\phi} A_2 s)+\mu_{\phi} A_1 s (-\mu_{\theta} B_2 s -m_{p} g L B_2)} \\
&=& \frac{b_4 \alpha \beta s^2 -\mu_{\phi} (A_1b_2 \alpha -A_2 b_4 \beta) s }{s (\alpha s +\mu_{\phi} A_2)(\beta s^2 +\mu_{\theta} B_1 s +m_{p} g L B_1)-\mu_{\phi} A_1 s (\mu_{\theta} B_2 s +m_{p} g L B_2)} \\
&=& \frac{b_4 \alpha \beta s -\mu_{\phi} (A_1b_2 \alpha -A_2 b_4 \beta) }{\alpha \beta s^3 +(\mu_{\theta} B_1 \alpha+ \mu_{\phi} A_2 \beta) s^2 +(m_{p} g L B_1 \alpha+ \mu_{\phi} \mu_{\theta} A_2 B_1) s+\mu_{\phi} m_{p} g L A_2 B_1-\mu_{\phi} \mu_{\theta} A_1 B_2 s -\mu_{\phi} m_{p} g L A_1 B_2} \\
&=& \frac{b_4 \alpha \beta s -\mu_{\phi} (A_1b_2 \alpha -A_2 b_4 \beta) }{\alpha \beta s^3 +(\mu_{\theta} B_1 \alpha+ \mu_{\phi} A_2 \beta) s^2 +\{ m_{p} g L B_1 \alpha+ \mu_{\phi} \mu_{\theta} (A_2 B_1- A_1 B_2) \} s+\mu_{\phi} m_{p} g L (A_2 B_1 -A_1 B_2)} \\
&=& \frac{b_4 \alpha \beta s -\mu_{\phi} (A_1b_2 \alpha -A_2 b_4 \beta) }{\alpha \beta s^3 +(\mu_{\theta} B_1 \alpha+ \mu_{\phi} A_2 \beta) s^2 +\{m_{p} g L B_1 \alpha+ \mu_{\phi} \mu_{\theta} \beta \} s+\mu_{\phi} m_{p} g L \beta} \\
&=& \frac{b_4 s -\frac{\mu_{\phi} (A_1b_2 \alpha -A_2 b_4 \beta)}{\alpha \beta} }{s^3 +\frac{(\mu_{\theta} B_1 \alpha+ \mu_{\phi} A_2 \beta)}{\alpha \beta} s^2 +\frac{\{m_{p} g L B_1 \alpha+ \mu_{\phi} \mu_{\theta} \beta \}}{\alpha \beta} s+\frac{\mu_{\phi} m_{p} g L \beta}{\alpha \beta}} \\
\end{eqnarray}

式を整理していくと,このような伝達関数が得られます.

 

まとめ

この記事では倒立振子の伝達関数を導出しました.

途中式も詳しく記載したので数式がごちゃついてしまいました.

この伝達関数を利用すれば,制御器のゲインの調節もしやすくなります.

 

続けて読む

以下の記事では倒立振子をP制御で倒立状態の維持をしています.

古典制御に興味のある方や倒立振子の制御に興味のある方は参考にしてください.

Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.

それでは最後まで読んでいただきありがとうございました.

コメント

タイトルとURLをコピーしました