@@ -243,6 +243,23 @@ def siso_tf_kneg(self):
243
243
'SteadyStateValue' : - 1.0 }
244
244
return T
245
245
246
+ @pytest .fixture
247
+ def siso_tf_asymptotic_from_neg1 (self ):
248
+ # Peak_value = Undershoot = y_final(y(t=inf))
249
+ T = TSys (TransferFunction ([- 1 , 1 ], [1 , 1 ]))
250
+ T .step_info = {
251
+ 'RiseTime' : 2.197 ,
252
+ 'SettlingTime' : 4.605 ,
253
+ 'SettlingMin' : 0.9 ,
254
+ 'SettlingMax' : 1.0 ,
255
+ 'Overshoot' : 0 ,
256
+ 'Undershoot' : 100.0 ,
257
+ 'Peak' : 1.0 ,
258
+ 'PeakTime' : 0.0 ,
259
+ 'SteadyStateValue' : 1.0 }
260
+ T .kwargs = {'T' : np .arange (0 , 5 , 1e-3 )}
261
+ return T
262
+
246
263
@pytest .fixture
247
264
def siso_tf_step_matlab (self ):
248
265
# example from matlab online help
@@ -348,7 +365,8 @@ def tsystem(self,
348
365
pole_cancellation , no_pole_cancellation , siso_tf_type1 ,
349
366
siso_tf_kpos , siso_tf_kneg ,
350
367
siso_tf_step_matlab , siso_ss_step_matlab ,
351
- mimo_ss_step_matlab , mimo_tf_step_info ):
368
+ mimo_ss_step_matlab , mimo_tf_step_info ,
369
+ siso_tf_asymptotic_from_neg1 ):
352
370
systems = {"siso_ss1" : siso_ss1 ,
353
371
"siso_ss2" : siso_ss2 ,
354
372
"siso_tf1" : siso_tf1 ,
@@ -373,6 +391,7 @@ def tsystem(self,
373
391
"siso_ss_step_matlab" : siso_ss_step_matlab ,
374
392
"mimo_ss_step_matlab" : mimo_ss_step_matlab ,
375
393
"mimo_tf_step" : mimo_tf_step_info ,
394
+ "siso_tf_asymptotic_from_neg1" : siso_tf_asymptotic_from_neg1 ,
376
395
}
377
396
return systems [request .param ]
378
397
@@ -466,7 +485,8 @@ def assert_step_info_match(self, sys, info, info_ref):
466
485
"siso_ss_step_matlab" ,
467
486
"siso_tf_kpos" ,
468
487
"siso_tf_kneg" ,
469
- "siso_tf_type1" ],
488
+ "siso_tf_type1" ,
489
+ "siso_tf_asymptotic_from_neg1" ],
470
490
indirect = ["tsystem" ])
471
491
def test_step_info (self , tsystem , systype , time_2d , yfinal ):
472
492
"""Test step info for SISO systems."""
0 commit comments