Skip to content

Commit 14261cc

Browse files
committed
quick fix for default time vector for discrete time initial condition and impulse response
1 parent 11b7797 commit 14261cc

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

control/timeresp.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,12 @@ def initial_response(sys, T=None, X0=0., input=0, output=None,
623623
# Create time and input vectors; checking is done in forced_response(...)
624624
# The initial vector X0 is created in forced_response(...) if necessary
625625
if T is None:
626-
T = _default_response_times(sys.A, 100)
626+
if isctime(sys):
627+
T = _default_response_times(sys.A, 1000)
628+
else:
629+
# For discrete time, use integers
630+
tvec = _default_response_times(sys.A, 1000)
631+
T = range(int(np.ceil(max(tvec))))
627632
U = np.zeros_like(T)
628633

629634
T, yout, _xout = forced_response(sys, T, U, X0, transpose=transpose)
@@ -707,7 +712,13 @@ def impulse_response(sys, T=None, X0=0., input=0, output=None,
707712

708713
# Compute T and U, no checks necessary, they will be checked in lsim
709714
if T is None:
710-
T = _default_response_times(sys.A, 100)
715+
if isctime(sys):
716+
T = _default_response_times(sys.A, 100)
717+
else:
718+
# For discrete time, use integers
719+
tvec = _default_response_times(sys.A, 100)
720+
T = range(int(np.ceil(max(tvec))))
721+
711722
U = np.zeros_like(T)
712723

713724
# Compute new X0 that contains the impulse

0 commit comments

Comments
 (0)