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

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

はじめに

※ MATLAB、Python、Scilab比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

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

使用Library

Python Control Systems Libraryを使用。
https://python-control.readthedocs.io/en/0.8.3/

404 Not Found | Read the Docs

一次遅れ系

>>> 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(パイキュー)」公式ページ

ポイント

  • 環境構築不要
    • ブラウザだけで学習を始められる。
  • 申し込みから4ステップで登録を完了
    • 申し込み完了待ちとかない。すぐ始められる。
  • 1,000問以上の実践的な課題がある。

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

コメント

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