Передаточная функция с дискретным на непрерывное время - PullRequest
0 голосов
/ 23 мая 2018

Я реализовал класс для идентификации моделей ARX в Python.Следующим шагом является расчет оптимальных параметров PID на основе LQR.Очевидно, требуется модель с непрерывным временем, и у меня есть следующие возможности:

  • преобразовать модель с дискретным временем в модель с непрерывным временем,
  • идентифицировать модель с непрерывным временем,
  • Адаптируйте подход LQR для определения оптимальных параметров PID в дискретной временной области.

В Matlab первые два подхода легко выполняются, но они мне нужны в Python.Кто-нибудь знает, как Matlab реализовал d2c и имеет ссылку?

1 Ответ

0 голосов
/ 12 июля 2018

Есть несколько опций, которые вы можете использовать python-control пакет или scipy.signal модуль или использовать harold (бесстыдный плагин: я автор).

Вот пример

import harold

G = harold.Transfer(1, [1, 2, 1])

H_zoh = harold.discretize(G, dt=0.1, method='zoh')

H_tus = harold.discretize(G, dt=0.1, method='tustin')

H_zoh.polynomials
Out[5]: 
(array([[0.00467884, 0.00437708]]),
 array([[ 1.        , -1.80967484,  0.81873075]]))

H_tus.polynomials
Out[6]: 
(array([[0.00226757, 0.00453515, 0.00226757]]),
 array([[ 1.        , -1.80952381,  0.8185941 ]]))

В настоящее время поддерживаются zoh, foh, tustin, forward euler, backward euler, включая недискретизацию.Документация находится на http://harold.readthedocs.io/en/latest/index.html

...