Hiroyama Blog

学びをアウトプット!

Python Control 伝達関数モデル作成

はじめに

パソコンで制御工学の演算やシミュレーションを行うツールとして知名度が高いのはMatlabではないかと思います。

しかし、個人で少し利用するにもライセンス購入が必要なためハードルがあります。そこで本記事では無料で使える Python Control について記事を書いていきます。

Python Control は Python 環境で Matlab のように演算することができます。 もし Matlab を使ったことがある方ならば似ている部分があると思います。

環境

参考として私の利用環境は下記となります。
エディタはVisual Studio Codeを利用しています。

伝達関数とは

制御工学では電気回路などのモデルを微分方程式ではなく、伝達関数や状態空間に変換して扱います。 伝達関数微分方程式ラプラス変換し、時間関数を s の関数に置き換えたもので、システムの入力と出力の関係を表すものです。 例えば、システムの入力を U(s) 、出力を Y(s) とするならば伝達関数 G(s) は下式となります。

 \displaystyle
G(s) = \frac{Y(s)}{U(s)}

伝達関数モデル作成

数式

 \displaystyle
G_a = \frac{1}{s+2}

 

 \displaystyle
G_b = \frac{1}{s^{2}+2s+3}

 

 \displaystyle
G_c = \frac{s+2}{s^{3}-2s^{2}+3s-4}

 
Python ソースコード

# ライブラリインポート
from control import matlab

# 伝達関数モデル作成
Ga = matlab.tf([1], [1, 2])
Gb = matlab.tf([1], [1, 2, 3])
Gc = matlab.tf([1,2], [1, -2, 3, -4])

print(Ga)
print(Gb)
print(Gc)

Python 実行結果

  1
-----
s + 2


      1
-------------
s^2 + 2 s + 3


        s + 2
---------------------
s^3 - 2 s^2 + 3 s - 4