【制御工学】倒立振子の伝達関数と状態方程式の立式問題

問題

下記の図に示すように、質量Mの台車の上に質量m、長さ2lの棒が乗っている倒立振子を考える。この系がθ=0の近傍で動作しているとき、下記の問(1)(2)を答えよ。ただし、棒については中心点を重心とする。また、sinθθ,cos1を用いて良い。

(1)入力f(t)に対する出力θの伝達関数G(s)を求めよ。
(2)入力f(t),状態変数θ,θ,x,xに対する下記の状態方程式を求めよ。

(1)x=Ax+bu

倒立振子とは

重心が支点の上にある運動系を指しています。上記の図のように、長さ2lの振子は、台車との接点を始点としています。重心は支点の上に存在するため、少しの外乱で横に傾いた時、重力に引っ張られて何もしないと倒れてしまいます。

このような事象を防止するため、台車が左右に動くことでバランスを取ろうとします。制御工学の安定性を検討する際、よく使用するモデルです。九大の院試でも出題されたことがあります。

伝達関数、状態方程式の求め方

以前の記事で類題を説明したように、下記の手順で解くことができます。

  • 伝達関数の求め方
    • 系の運動方程式を立式し、ラプラス変換する。
    • ラプラス変換した式のうち、未知数を削除し、入力と出力の関係式を立てる。
    • 入力と出力の比を取り、伝達関数を求める。
  • 状態方程式の求め方
    • 系の運動方程式を立式する。(ラプラス変換はしなくて良い)
    • 状態変数の微分項に対する定常項の関係を立式し、行列表示する。

結局、運動方程式を適切に変形していくことに尽きます。こればかりは、多くの問題を解いて慣れていくしかありません。(電気回路における状態方程式の立て方も過去の記事で解説しています。合わせて確認してみると良いです。)

倒立振子の場合は下記のようになりますので、是非練習してみましょう。

解答例

(1)倒立振子の伝達関数

物体にかかる力を図示すると、以下のようになる。

これより、支点に加わる水平方向の力をf1、垂直方向の力をf2

(2){f1=md2dt2(x+lsinθ)f2=mg+md2dt2(lcosθ)

これを用いて、運動方程式は下記のようになる。

(3){Md2xdt2=f(t)f1Id2θdt2=f2lsinθf1lcosθ

sinθθ,cos1と近似できるので

(4){f1=md2dt2(x+lθ)f2=mgMd2xdt2=f(t)f1Id2θdt2=f2lθf1l

上記からf1,f2,xを削除する。第3式と第1式より

(5)x=1M(f(t)f1)=1M(f(t)mxmlθ)=1M+m(f(t)mlθ)

これを(4)の第4式に代入し、ラプラス変換すると

(6)Iθ=mglθ(mx+mlθ)=mglθmlθmM+m(fmlθ)

(7)Is2=mglΘmls2ΘmM+mF+m2ls2M+mΘ

(8)(Is2+mls2m2ls2M+mmgl)Θ=mM+mF

(9)G(s)=ΘF=mM+m(Is2+mls2m2ls2M+mmgl)

(2)状態方程式

(1)ではラプラス変換しましたが、(2)については微分方程式のまま関係式を導きます。

(4)式を変形し、状態変数の関係を導く

まず、θの関係式を導く。第3式より

(10)Mx=fmxmlθ

(11)x=1M+mfmlM+mθ

これを第1式に代入し

(12)f1=m(1M+mf(t)mlM+mθ)+mlθ

これを第4式に代入し

(13)Iθ=mglθmlf(t)M+mm2l2M+mθ+ml2θ

(14)(I+m2l2M+mml2)θ=mglθmlM+mf(t)

(15)θ=mglθmlM+mf(t)(I+m2l2M+mml2)

次に、xについて考える。第3式により

(16)Mx=f(t)mxmlθ

(17)θ=f(t)mlM+mmlx

これを第4式に代入し

(18)I(f(t)mlM+mmlx)=mglθ+l(Mxf(t))

(19)I(M+mmlxMlx)=mglθImlf(t)lf(t)

(20)x=mglθImlf(t)lf(t)I(M+mml+Ml)

(15)式、(20)式より、求める状態方程式の行列A

(21)A=(0100mgl(I+m2l2M+mml2)0010000mglI(M+mml+Ml)000)

次にベクトルb

(22)b=(0mlM+m(I+m2l2M+mml2)0Iml+lI(M+mml+Ml))

θ,xについては関係式が無いため、行列成分には1を入れるだけで良いです。

最後に

式変形があまりにもしんどかったため、計算ミス、記載ミスなどあれば申し訳ございません。そして、こっそり教えて下さると幸いです。

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