【入門】Pythonの伝達関数使用方法【数値計算】

Python
スポンサーリンク

はじめに

※ MATLAB、Python、Scilab比較ページはこちら

Pythonに於ける、伝達関数使用方法を備忘録として残す。
というよりも、Pythonでこれができることをこの記事書いているときに知った。
controlというパッケージを使用することで実現可能。
Pythonだけで自分の業務のほとんどができる可能性が出てきた。

スポンサーリンク

一次遅れ系

>>> import sympy
>>> from control import matlab
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> Np = [0,1]				# 伝達関数分子係数
>>> Dp = [0,1,1]			# 伝達関数分母係数
>>> G = matlab.tf(Np, Dp)	# 伝達関数生成
>>> G

  1
-----
s + 1

>>> t = np.linspace(0, 10, 1000)	# 時間(横)軸
>>> u = np.zeros(1000);				# 入力信号生成
>>> u[500:1000]=1					# 5秒後に0から1へ
>>> y, T,x = matlab.lsim(G, u, t)	# step応答
>>> plt.plot(T,y)
>>> plt.axhline(1,linestyle = "--", color = "blue")
>>> plt.axvline(5,linestyle = "--", color = "blue")
>>> plt.show()

step入力そのものを実現するstep関数もある。
しかし、lsimの方が自由度があるため、こちらを使用。

スポンサーリンク

まとめ

controlパッケージを用いることでMATLABのcontrol sysytem toolboxに近いことが出来る。

  • 伝達関数
  • 周波数応答
  • 安定判別
  • 時間応答
  • PID制御

Pythonをガッツリ学習したい場合はオンライン学習サービスなどもあります。
オンラインPython学習サービス「PyQ(パイキュー)」公式ページ

※ MATLAB、Python、Scilab比較ページはこちら

コメント

タイトルとURLをコピーしました