@@ -59,15 +59,13 @@ def step(sys, T=None, X0=0., input=0, output=None, return_x=False):
5959 '''
6060 from ..timeresp import step_response
6161
62- T , yout , xout = step_response (sys , T , X0 , input , output ,
63- transpose = True , return_x = True )
62+ # Switch output argument order and transpose outputs
63+ out = step_response (sys , T , X0 , input , output ,
64+ transpose = True , return_x = return_x )
65+ return (out [1 ], out [0 ], out [2 ]) if return_x else (out [1 ], out [0 ])
6466
65- if return_x :
66- return yout , T , xout
67-
68- return yout , T
69-
70- def stepinfo (sys , T = None , SettlingTimeThreshold = 0.02 , RiseTimeLimits = (0.1 , 0.9 )):
67+ def stepinfo (sys , T = None , SettlingTimeThreshold = 0.02 ,
68+ RiseTimeLimits = (0.1 , 0.9 )):
7169 '''
7270 Step response characteristics (Rise time, Settling Time, Peak and others).
7371
@@ -110,6 +108,7 @@ def stepinfo(sys, T=None, SettlingTimeThreshold=0.02, RiseTimeLimits=(0.1, 0.9))
110108 '''
111109 from ..timeresp import step_info
112110
111+ # Call step_info with MATLAB defaults
113112 S = step_info (sys , T , None , SettlingTimeThreshold , RiseTimeLimits )
114113
115114 return S
@@ -164,13 +163,11 @@ def impulse(sys, T=None, X0=0., input=0, output=None, return_x=False):
164163 >>> yout, T = impulse(sys, T)
165164 '''
166165 from ..timeresp import impulse_response
167- T , yout , xout = impulse_response (sys , T , X0 , input , output ,
168- transpose = True , return_x = True )
169-
170- if return_x :
171- return yout , T , xout
172166
173- return yout , T
167+ # Switch output argument order and transpose outputs
168+ out = impulse_response (sys , T , X0 , input , output ,
169+ transpose = True , return_x = return_x )
170+ return (out [1 ], out [0 ], out [2 ]) if return_x else (out [1 ], out [0 ])
174171
175172def initial (sys , T = None , X0 = 0. , input = None , output = None , return_x = False ):
176173 '''
@@ -222,13 +219,12 @@ def initial(sys, T=None, X0=0., input=None, output=None, return_x=False):
222219
223220 '''
224221 from ..timeresp import initial_response
222+
223+ # Switch output argument order and transpose outputs
225224 T , yout , xout = initial_response (sys , T , X0 , output = output ,
226225 transpose = True , return_x = True )
226+ return (yout , T , xout ) if return_x else (yout , T )
227227
228- if return_x :
229- return yout , T , xout
230-
231- return yout , T
232228
233229def lsim (sys , U = 0. , T = None , X0 = 0. ):
234230 '''
@@ -273,5 +269,7 @@ def lsim(sys, U=0., T=None, X0=0.):
273269 >>> yout, T, xout = lsim(sys, U, T, X0)
274270 '''
275271 from ..timeresp import forced_response
276- T , yout , xout = forced_response (sys , T , U , X0 , transpose = True )
277- return yout , T , xout
272+
273+ # Switch output argument order and transpose outputs (and always return x)
274+ out = forced_response (sys , T , U , X0 , return_x = True , transpose = True )
275+ return out [1 ], out [0 ], out [2 ]
0 commit comments