これの続き。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()
コメント