Python用制御工学モジュール「python-control」でシステムのゲイン余裕・位相余裕を求める方法ついて紹介します。
ゲイン余裕・位相余裕とは
ゲイン余裕とは、ボード線図を描いたときに、位相が-180度のときゲインが0dBから何dBあるかを示したものです。
位相余裕とは、ボード線図を描いたときに、ゲインが0dBのとき,位相が-180度から何度あるかを示したものです。
python-controlの「control.margin(sys)」メソッドを用いると、Matlabのmargin関数のようにシステムのゲイン余裕と位相余裕を計算できます。
※python-controlはMatlab風ライブラリなので、Matlabの資料が役に立ちます
-|参考文献
1|【制御理論】ゲイン余裕と位相余裕
2|python-controlドキュメント:marginメソッドの使い方
3|Matlabドキュメント:margin関数の使い方
ソースコード
以下の伝達関数のナイキスト線図を描くサンプルプログラムです。
(1)
from control.matlab import * from matplotlib import pyplot as plt def main(): # 伝達関数のパラメータ num = [2, 5, 1] # 分子の係数 den = [1, 2, 3] # 分母の係数 sys = tf(num, den) # 伝達関数モデルの作成 print(margin(sys)) # ゲイン余裕・位相余裕の計算 if __name__ == "__main__": main()
実行結果
(None, 240.0, 0.57735026918962584, None)
※240.0[度]が位相余裕、0.57735026918962584[dB]がゲイン余裕です。
関連ページ
【Python】制御工学シミュレーション入門
プログラミング言語「Python」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。
401 Unauthorized
コメント