Closed
Description
The modal_form()
function appears to assume that all eigenvalues are distinct. The following example gives strange results:
import control as ct
sys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], [[0]])
sys_modal, T = ct.modal_form(sys_repeat)
print(sys_modal)
which yields
A = [[-1.00000000e+00 0.00000000e+00]
[ 2.22044605e-16 -1.00000000e+00]]
B = [[4.50359963e+15]
[4.50359963e+15]]
C = [[-1. 1.]]
D = [[0.]]
The problem is that the transformation T
as computed in modal_form
is singular:
[[-1.00000000e+00 1.00000000e+00]
[ 2.22044605e-16 0.00000000e+00]]