离散到连续时间传递函数

时间:2018-05-23 11:01:00

标签: python continuous control-theory system-identification

我实现了一个类来识别Python中的ARX模型。下一步是基于LQR计算最佳PID参数。显然需要连续时间模型,我有以下可能性:

  • 将离散时间模型转换为连续时间模型,
  • 确定连续时间模型,
  • 调整LQR方法以确定离散时域的最佳PID参数。

在Matlab中,前两种方法很容易完成,但我需要用Python。有没有人知道Matlab如何实现d2c并有参考?

1 个答案:

答案 0 :(得分:1)

有一些选项可以使用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 ]]))

当前支持zohfohtustinforward eulerbackward euler,包括非分散性。该文档位于http://harold.readthedocs.io/en/latest/index.html