@@ -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