【python-control】PID制御のシミュレーション

当記事では、python-controlでPID制御のシミュレーションをする方法について紹介します。

PID制御とは

PID制御とは、出力値と目標値との「偏差」「積分」「微分」の3要素によってフィードバック制御を行う方法です。
python-controlの「control.feedback」メソッドを用いると、Matlabのfeedback関数のようにPID制御シミュレーションができます。
※python-controlはMatlab風ライブラリなので、Matlabの資料が役に立ちます

参考文献
1 【制御理論】PID制御

2 python-controlドキュメント:tfメソッドの使い方
3 Matlabドキュメント:feedback関数の使い方

ソースコード

PID制御シミュレーションのサンプルプログラムです。

from control.matlab import *
from matplotlib import pyplot as plt
    
def main():
  # PID制御器のパラメータ
  Kp = 0.6  # 比例
  Ki = 0.03 # 積分
  Kd = 0.03 # 微分
  num = [Kd, Kp, Ki]
  den = [1, 0]
  K = tf(num, den)

  # 制御対象
  Kt = 1
  J = 0.01
  C = 0.1
  num = [Kt]
  den = [J, C, 0]
  G = tf(num, den)

  # フィードバックループ
  sys = feedback(K*G, 1)
  t = np.linspace(0, 3, 1000)
  y, T = step(sys, t)
  plt.plot(T, y)
  plt.grid()
  plt.axhline(1, color="b", linestyle="--")
  plt.xlim(0, 3)
  
if __name__ == "__main__":
  main()

実行結果

目標値1に収束させています。

関連記事