def test_func_realize(radii):
sys = Alpha(0.1)
T = np.asarray([[1., 2.], [0, -1.]])
for Tinv in (None, inv(T)):
realize_result = _realize(sys, radii, T, Tinv)
assert realize_result.sys is sys
assert np.allclose(inv(realize_result.T), realize_result.Tinv)
rsys = realize_result.realization
assert ss_equal(rsys, sys.transform(realize_result.T))
# Check that the state vector are related by T
length = 1000
dt = 0.001
x_old = np.asarray([sub.impulse(length, dt) for sub in sys])
x_new = np.asarray([sub.impulse(length, dt) for sub in rsys])
r = np.atleast_2d(np.asarray(radii).T).T
assert np.allclose(np.dot(T, x_new * r), x_old)
评论列表
文章目录