Spyder (Python 3.7) - Ошибка типа: у объекта типа 'StateSpaceContinuous' нет len () 'Как мне решить эту проблему? - PullRequest
0 голосов
/ 27 января 2020

Я новичок здесь. Простите, если форматирование не так или что-то в этом роде. У меня большой опыт работы с MATLAB, и с тех пор я изучаю Python. У меня есть непрерывная модель пространства состояний времени, которую я хочу преобразовать в дискретную модель пространства состояний времени с шагом 0,1.

Вот соответствующий фрагмент кода с ошибкой, которую я получаю. Я довольно смущен тем, что здесь происходит, и я не могу понять, где я иду не так. Спасибо за любую помощь !!

A = np.array([[-0.03, 0, 0.05, 0, 0, 0, 0, -9.8, 0],
               [0, -0.11, 0, 0.065, 0, -119.1, 9.8, 0, 0],
               [-0.18, 0, -1.4, 0, 120, 0, 0, 0, 0],
               [0, -0.0074, 0, -1.85, 0, 0.25, 0, 0, 0],
               [0.0021, 0, -0.27, 0, -6.14, 0, 0, 0, 0],
               [0, 0.030, 0, -0.061, 0, -0.21, 0, 0, 0],
               [0, 0, 0, 1, 0, 0, 0, 0, 0],
               [0, 0, 0, 0, 1, 0, 0, 0, 0],
               [0, 0, 0, 0, 0, 1, 0, 0, 0]])

B = np.array([[0, 0, 0, 0.11],
               [0, 0, 3.69, 0],
               [0, -12.8, 0, 0.023],
               [2.31, 0, 0.26, 0],
               [0, -6.48, 0, 0],
              [-0.081, 0, -1.36, 0],
              [0, 0, 0, 0],
              [0, 0, 0, 0],
              [0, 0, 0, 0]])

C = np.eye((9))
D = np.zeros((9, 4))

size_A = np.shape(A)
size_B = np.shape(B)
size_C = np.shape(C)
size_D = np.shape(D)

full_state = sp.signal.StateSpace(A, B, C, D)

print(full_state)

discrete_full = sp.signal.cont2discrete(full_state, 0.1, method='zoh',
                                        alpha=None)

Ошибка появляется ниже


  File "C:\Users\15024\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Users\15024\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/15024/Documents/Python Scripts/AEM 417/Project_1.py", line 48, in <module>
    alpha=None)

  File "C:\Users\15024\Anaconda3\lib\site-packages\scipy\signal\lti_conversion.py", line 405, in cont2discrete
    if len(system) == 1:

TypeError: object of type 'StateSpaceContinuous' has no len()

Пожалуйста, дайте мне знать, если требуется дополнительная информация. Спасибо !!

...