@@ -348,6 +348,25 @@ def testLsim_mimo(self, mimo):
348348 yout , _t , _xout = lsim (mimo .ss1 , u , t , x0 )
349349 np .testing .assert_array_almost_equal (yout , youttrue , decimal = 4 )
350350
351+ def test_lsim_mimo_dtime (self ):
352+ # https://github.com/python-control/python-control/issues/764
353+ time = np .linspace (0.0 , 511.0e-6 , 512 )
354+ DAC = np .sin (time )
355+ ADC = np .cos (time )
356+
357+ input_Kalman = np .transpose (
358+ np .concatenate (([[DAC ]], [[ADC ]]), axis = 1 )[0 ])
359+ Af = [[0.45768416 , - 0.42025511 ], [- 0.43354791 , 0.51961178 ]]
360+ Bf = [[2.84368641 , 52.05922305 ], [- 1.47286557 , - 19.94861943 ]]
361+ Cf = [[1.0 , 0.0 ], [0.0 , 1.0 ]]
362+ Df = [[0.0 , 0.0 ], [0.0 , 0.0 ]]
363+
364+ ss_Kalman = ss (Af , Bf , Cf , Df , 1.0e-6 )
365+ y_est , t , x_est = lsim (ss_Kalman , input_Kalman , time )
366+ assert y_est .shape == (time .size , ss_Kalman .ninputs )
367+ assert t .shape == (time .size , )
368+ assert x_est .shape == (time .size , ss_Kalman .nstates )
369+
351370 def testMargin (self , siso ):
352371 """Test margin()"""
353372 #! TODO: check results to make sure they are OK
0 commit comments