- Notifications
You must be signed in to change notification settings - Fork441
Open
Labels
Description
Currently (see [1]) if a state space system has eigenvalues at 0, it will return a scalar NaN for DC gain:
exceptLinAlgError:# zero eigenvalue: singular matrixreturnnp.nan
The shape of the return is addressed in#126.
It may be possible to do better here: one relatively expensive way would be tominreal
each input output pair and evaluate the DC gain. This would allow finite and non-finite entries in the returned matrix, rather than all NaNs. I'm not sure how to decide on +inf or -inf instead of NaN: inC*inv(-A)*B
, if we find some sort of inverse of A that has infs (this is not hard using, e.g., singular value decomposition), one could still potentially add or subtract infs when multiplying by C and B, so getting NaNs.
[1]
python-control/control/statesp.py
Lines 617 to 619 in32f13bc
exceptLinAlgError: | |
# zero eigenvalue: singular matrix | |
returnnp.nan |