これの続き。Pythonで同じ解析をした。
from control.matlab import *
import numpy as np
from matplotlib import pyplot as plt
N = 1000
t = np.linspace(0, 10, N)
s = tf('s')
r = np.zeros(N)
r[0:100] = 1
M=1
C=1
k=1
A1 = np.array([[0,1], [-k / M ,- C / M]])
B1 = np.array([[0],[1 / M]])
C1 = np.array([1,0])
D1 = 0
G1 = ss(A1, B1, C1, D1);
y1, t1, x1 = lsim(G1, r, t)
G2 = 1 / (M * s ** 2 + C * s + k)
y2, t2, x2 = lsim(G2, r, t)
step(G1)
step(G2)
plt.figure(1)
plt.plot(t1, y1, 'k-')
plt.grid(color='k', linestyle='dotted', linewidth=1)
plt.figure(2)
plt.plot(t2, y2, 'k-')
plt.grid(color='k', linestyle='dotted', linewidth=1)
plt.show()
コメント