Я использую библиотеку Control в python, чтобы вычислить матрицу Грамана, а затем вычислить ее обратную трассу.
В ударе есть часть моего кода реализации:
from control import *
import slycot
import numpy as np
A = np.matrix([[-1,0,0,0,0],
[1,-1,0,0,0],
[0,1,-1,0,0],
[0,0,1,-1,0],
[0,0,0,1,-1],
])
B = np.matrix([[1],
[0],
[0],
[0],
[0]
])
C = np.matrix([[0,0,0,0,0]])
D = np.matrix([[0]])
sys = StateSpace(A,B,C,D)
w = gram(sys,'c')
try:
win = inv(w)
t = np.trace(win)
return (t)
except np.linalg.LinAlgError:
print ("Not invertible")
Но моя реализация не возвращает правильный ответ. Я думаю, что проблема заключается во времени. На самом деле в определении матрицы Грамма есть время, но в моей реализации нет времени. Как я могу установить время в библиотеке управления python для расчета граммы?