Pythonで指定した極、零点、ゲインを実現する伝達関数を求める

python

これの続き。zpk2tfを使うと指定した極、零点、ゲインを持つ伝達関数を簡単に設計できるようになる。極、零点、ゲインは次のように指定する。

zero = np.array([])
pole = np.array([-3 + 1j, -3 - 1j, -4 - 8j, 4 + 8j])
G = tf(*zpk2tf(zero, pole, 4))

結果

ソース全体

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

N = 1000
t = np.linspace(0, 10, N)

r = np.zeros(N)
r[0:100] = 1

zero = np.array([])
pole = np.array([-3 + 1j, -3 - 1j, -4 - 8j, 4 + 8j])
G = tf(*zpk2tf(zero, pole, 4))
print(G)

y1, t1, x1 = lsim(G, r, t)

plt.figure(1)
plt.plot(t1, y1, 'k-')
plt.grid(color='k', linestyle='dotted', linewidth=1)

plt.show()

コメント

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