本ページでは、Python用制御工学モジュール「python-control」で伝達関数を状態方程式に変換する方法とサンプルコードついて解説します。
伝達関数→状態方程式
python-controlのtt2ss()メソッドで伝達関数を状態方程式に変換できます。
書式
sys = ss2tf(sys_tf)
sys_tfにtf()メソッドで定義した伝達関数を入力します・
戻り値sysには状態方程式のパラメータ行列A, B, C, Dが格納されています。
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*-
from control.matlab import *
from matplotlib import pyplot as plt
def main():
# 伝達関数の定義
num = [0.8333, 0.25, 2.083]
den = [1, 0.4667, 3.833, 0.7917, 1.25]
sys_tf = tf(num, den)
# 伝達関数→状態方程式
sys = tf2ss(sys_tf)
print("tf=", sys_tf)
print("sys=", sys)
if __name__ == "__main__":
main()
実行結果
サンプルプログラムの実行結果です。
tf=
0.8333 s^2 + 0.25 s + 2.083
----------------------------------------------
s^4 + 0.4667 s^3 + 3.833 s^2 + 0.7917 s + 1.25
sys= A = [[ -6.66133815e-16 1.19233626e-16 -1.38493851e-16 1.25000000e+00]
[ -1.00000000e+00 1.68409016e-15 -5.38513285e-16 -7.91700000e-01]
[ 0.00000000e+00 -1.00000000e+00 3.49615792e-16 3.83300000e+00]
[ 0.00000000e+00 0.00000000e+00 -1.00000000e+00 -4.66700000e-01]]
B = [[ 2.083 ]
[-0.25 ]
[ 0.8333]
[ 0. ]]
C = [[ 0. 0. 0. -1.]]
D = [[ 0.]]
## 関連ページ

【Python】制御工学シミュレーション入門
プログラミング言語「Python」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。

404 NOT FOUND | Python超入門速報

コメント