File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed
Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -159,7 +159,7 @@ def damp(self):
159159 poles = self .pole ()
160160
161161 if isdtime (self , strict = True ):
162- splane_poles = np .log (poles )/ self .dt
162+ splane_poles = np .log (poles . astype ( complex ) )/ self .dt
163163 else :
164164 splane_poles = poles
165165 wn = absolute (splane_poles )
Original file line number Diff line number Diff line change @@ -70,6 +70,14 @@ def test_damp(self):
7070 np .testing .assert_almost_equal (sys_dt .damp (), expected_dt )
7171 np .testing .assert_almost_equal (damp (sys_dt ), expected_dt )
7272
73+ #also check that for a discrete system with a negative real pole the damp function can extract wn and zeta.
74+ p2_zplane = - 0.2
75+ sys_dt2 = tf (1 , [1 , - p2_zplane ], dt )
76+ wn2 , zeta2 , p2 = sys_dt2 .damp ()
77+ p2_splane = - wn2 * zeta2 + 1j * wn2 * np .sqrt (1 - zeta2 ** 2 )
78+ p2_zplane = np .exp (p2_splane * dt )
79+ np .testing .assert_almost_equal (p2 , p2_zplane )
80+
7381 def test_dcgain (self ):
7482 sys = tf (84 , [1 , 2 ])
7583 np .testing .assert_allclose (sys .dcgain (), 42 )
You can’t perform that action at this time.
0 commit comments