- Notifications
You must be signed in to change notification settings - Fork441
Open
Description
I noticed that if I have complex numbers in my A,B,C,D state space matrices, there's casting complex numbers to real incontrol.StateSpace(A,B,C,D)
which does not appear to be right (?) if there's imaginary part. Is it intentional? Is there a way around it?
Specifically, I think this line is responsible:https://github.com/python-control/python-control/blob/main/control/statesp.py#L2170. Notedtype=float
. I have matrices withdtype=complex128
. Minimally reproducible example (matrices are completely made up here, of course the real state space I'm working with is more realistic but also much bigger):
fromcontrolimportStateSpaceimportnumpyasnpA=np.array([[1+1j,1+1j],[1+1j,1+1j]])B=np.array([[1+1j,1+1j],[1+1j,1+1j]])C=np.array([[1+1j,1+1j],[1+1j,1+1j]])D=np.array([[1+1j,1+1j],[1+1j,1+1j]])ss=StateSpace(A,B,C,D)
results instatesp.py:2170: ComplexWarning: Casting complex values to real discards the imaginary part arr = np.array(data, dtype=float)
Metadata
Metadata
Assignees
Labels
No labels