北の大学生

北の大学生

遊べ、学べ、大志を抱け

【制御工学基礎】ブロック線図などについて

ここでは制御工学の基礎を説明します。

 

ブロック線図・伝達関数・状態方程式とは?

ブロック線図と伝達関数

f:id:hokudai_nikki:20170610141601p:plain

ブロック線図というのは、そのシステムの構造をわかりやすく図に示したものです。そして、この上の図は最もシンプルなブロック線図です。まずはこれを例にして、出力と入力の関係を表してみましょう。するとこの関係は数式で

 \(y=Ax\)

と書けます。
これは入力xとして入ってきた信号が、Aという操作を受けてyとして出力されたことを意味します。そしてこの入出力の比を取ると

  \displaystyle \frac{y}{x}=A

となり、このAのことを伝達関数といいます。

 

 

ではフィードバック制御のようなもう少し複雑な形になった場合はどうなるでしょうか。下の図を見てください。

f:id:hokudai_nikki:20170610212533p:plain

一気に制御工学っぽくなりましたね笑
これが問題なんかにもよく出てくるフィードバック制御なのですが、初めて見るとどこから解いていいかわからないという事があると思います。ですので、まずは手順を確認しながら、一緒に解いていきましょう。

まず終わりの出力y、関数Gのあたりに注目します。ここではdという入力が関数Gを通って出力yになったということになりますので、先ほどと同じように

 \(y=Gd\)

と出来ます。
次にそのひとつ前を見てみると今度は出力dに対して、関数Fと入力cがあるので、これも同じように計算すると

 \(d=Fc\)

となります。
つぎに出力cについて考えます。cは「xからの+の入力」と「yからの-の入力」の信号から出来ているので

 \(c=x-y\)

と書くことができます。

 

今までの式をまとめると

 \(y=Gd\)
 \(d=Fc\)
 \(c=x-y\)
となります。
この式をそれぞれ代入してあげると

 \(y=GF(x-y)\)

⇒\((1+GF)y=GFx \)

 \displaystyle y=\frac{GF}{1+GF}x

となり、yをxで表すことが出来た。この時の伝達関数は

  \displaystyle \frac{y}{x}=\frac{GF}{1+GF}

です。

ブロック線図と伝達関数について少しでも分かって頂けたら嬉しいです。

 

 

運動方程式から伝達関数・状態方程式を導く

f:id:hokudai_nikki:20170610223156j:plain

先程はブロック線図から伝達関数を求めました。今度は運動方程式から伝達関数をまず求めてみましょう。上の図を見てください。
この運動系に外力\(f(t)\)を働かせた時の運動方程式は

 \(m\ddot{x}(t)+c\dot{x}(t)+kx(t)=f(t)\)

となります。ここで両辺ラプラス変換を行うと

 \int_0^∞ \{m\ddot{x}(t)+c\dot{x}(t)+kx(t)\} e^{-st}dt= \int_0^∞ f(t)e^{-st} dt

(ms^{2}+cs+k)X(s)=F(s)

と出来る。これを伝達関数がわかる形にしてあげると

  \displaystyle \frac{X(s)}{F(s)}=\frac{1}{ms^{2}+cs+k}

となり、伝達関数を求めることが出来た。

 

 

次に状態方程式を求めたいと思います。ですが、全く見ず知らずのモノを求めるというのは無理なので、求める前に軽く説明をします。
先程まで求めていた伝達関数、これは入力と出力のみの関係性を求めたものです(古典制御)。そして今から求める状態方程式というのは、入力と出力だけではなく全体の状態を示した式のことを指します(現代制御)。

 \dot{x}(t)=Ax(t)+Bu(t)

基本的にはこのような形で示され、\(x(t)\)を状態ベクトルといいます。またこの時の\(u(t)\)は入力を表しています。この状態ベクトルと入力の関係を表したものが状態方程式となります。
言葉で言われてもピンとこないと思うので、とりあえず実際にやってみましょう。

 

先ほどの問題を用いると運動方程式は同じく

 \(m\ddot{x}(t)+c\dot{x}(t)+kx(t)=f(t)\)

 です。これを変形して、

 \(\displaystyle \ddot{x}(t)=-\frac{c}{m}\dot{x}(t)-\frac{k}{m}x+\frac{f(t)}{m}\)

という形にしてあげます。

ここで

  \begin{cases} x_1=x \\ x_2=\dot{x} \end{cases}

とおいてあげると、それぞれ\(x_1,x_2\)は次のような方程式で書くことができます。

 \begin{cases} \dot{x_1}=x_2 \\ \dot{x_2}=-\frac{c}{m}x_2-\frac{k}{m}x_1+\frac{f(t)}{m} \end{cases}

これを行列化すると

 \[\left( \begin{array}{c} \dot{x_1} \\ \dot{x_2} \\ \end{array} \right) = \left( \begin{array}{cc} 0 &1 \\ -\frac{k}{m} & -\frac{c}{m}\end{array} \right)\left( \begin{array}{c} x_1 \\ x_2\\ \end{array} \right)+\left( \begin{array}{c} 0 \\ \frac{1}{m}\\ \end{array} \right)f \]

と表すことができた。これが状態方程式です。
また出力との関係を示す出力関係式は
\(y=Cx\)
の形で表すことができます。

 

基礎としては以上になります。運動方程式からしっかりと伝達関数・状態方程式を表すことが出来るようにしておきましょう。