Hi,
This is my first contribution on GitHub ;)
Problem
The method damp() seems to return a wrong result for discrete systems with negative poles
import control as ctl
H = ctl.tf([1],[1,0.2],1)
H.damp()
Result : RuntimeWarning: invalid value encountered in log
Investigation
The problem seems to come from the type of the poles variable in the dampmethod of the LTI object
if isdtime(self, strict=True):
splane_poles = np.log(poles)/self.dt
else:
splane_poles = poles
wn = absolute(splane_poles)
Z = -real(splane_poles)/wn
return wn, Z, poles
Solution
The poles variable must be cast to a numpy complex type as follows
if isdtime(self, strict=True)
splane_poles = np.log(poles.astype(complex))/self.dt
...
Hi,
This is my first contribution on GitHub ;)
Problem
The method
damp()seems to return a wrong result for discrete systems with negative polesResult : RuntimeWarning: invalid value encountered in log
Investigation
The problem seems to come from the type of the
polesvariable in thedampmethod of the LTI objectSolution
The
polesvariable must be cast to a numpy complex type as follows