PythonでPID制御をシミュレーションする

python

Pythonでフィードバック結合のシミュレーションをする。

\begin{align}
P(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}
\end{align}

PID制御則

\begin{align}
C(s)=K_{P} + \frac{K_{I}}{s}+K_{D} s
\end{align}

を行った場合の伝達関数

\begin{align}
G(s)=\frac{P (s)C(s) }{1+P(s) C(s) }
\end{align}

をシミュレーションする。

コードは以下

from control.matlab import *
import matplotlib.pyplot as plt

s = tf('s')

Kp = 2.5
Ki = 0.75
Kd = 0.75

zeta = 0.5
omega = 1
C = Kp + Ki / s + Kd * s

P = omega ** 2 / (s ** 2 + 2 * zeta * omega * s + omega ** 2)

G = feedback(C * P, 1)

t, y = step(G)

plt.plot(y, t, 'k-')
plt.grid(color='k', linestyle='dotted', linewidth=1)
plt.show()

コメント

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