本ページでは、Python用制御工学モジュール「python-control」で2自由度機械システム(マス・ダンパ・バネ系)の伝達関数を求める方法とサンプルコードついて解説します。
状態方程式→伝達関数(2自由度機械システム)
2自由度機械システム(マス・ダンパ・バネ系)の状態方程式をpython-controlのss2tf()メソッドで伝達関数に変換します。
状態方程式
2自由度機械システムの状態方程式です。
(1) ![]()
(2) 
(3) ![]()
書式
sys = ss2tf(A, B, C, D)
A, B, C, Dは状態方程式の行列です。
戻り値sysは伝達関数です。
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*-
from control.matlab import *
from matplotlib import pyplot as plt
def main():
# マス・ダンパ・バネの係数
m1, m2 = 1.0, 1.2
d1, d2 = 0.1, 0.2
k1, k2 = 1.0, 1.5
# 状態方程式の行列
A = [[0., 1, 0, 0],
[-(k1+k2)/m1, -(d1+d2)/m1, -k2/m1 ,-d2/m1],
[0., 0., 0., 1.],
[-k2/m2, d2/m2, -k2/m2, -d2/m2] ]
B = [[0.],
[0.],
[0.],
[1./m2]]
C = [[0., 0., 1., 0.]]
D = [[0.]]
# 状態方程式から伝達関数を求める
sys_tf = ss2tf(A, B, C, D)
print(sys_tf)
if __name__ == "__main__":
main()
実行結果
サンプルプログラムの実行結果です。
0.8333 s^2 + 0.25 s + 2.083 ---------------------------------------------- s^4 + 0.4667 s^3 + 3.833 s^2 + 0.7917 s + 1.25
## 関連ページ

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

404 NOT FOUND | Python超入門速報

コメント