本ページでは、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」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。
401 Unauthorized
コメント