主要内容

将离散时间系统转换为连续时间

此示例说明如何使用 d2c 将离散时间系统转换为连续时间,并使用两种不同的插值方法比较结果。

使用零阶保持 (ZOH) 方法将以下二阶离散时间系统转换为连续时间:

G(z)=z+0.5(z+2)(z-5).

G = zpk(-0.5,[-2,5],1,0.1);
Gcz = d2c(G)
Warning: The model order was increased to handle real negative poles.
Gcz =
 
   2.6663 (s^2 + 14.28s + 780.9)
  -------------------------------
  (s-16.09) (s^2 - 13.86s + 1035)
 
Continuous-time zero/pole/gain model.
Model Properties

如果您调用 d2c 而不指定方法,函数会默认使用 ZOH 方法。对于具有负实极点的系统,ZOH 插值方法会增加模型阶数。这种阶数增加是因为插值算法将 z 域中的负实极点映射到 s 域中的复共轭极点对组。

使用突斯汀方法将 G 转换为连续时间。

Gct = d2c(G,'tustin')
Gct =
 
  0.083333 (s+60) (s-20)
  ----------------------
     (s-60) (s-13.33)
 
Continuous-time zero/pole/gain model.
Model Properties

在本例中,阶数没有增加。

比较插值后系统与 G 的频率响应。

bode(G,Gcz,Gct)
legend('G','Gcz','Gct')

MATLAB figure

在本例中,突斯汀方法在离散系统与插值之间提供了更好的频域匹配。然而,突斯汀插值方法对在 z = -1 处有极点(积分器)的系统无定义,且对在 z = 1 附近有极点的系统表现出病态。

另请参阅

函数

实时编辑器任务

主题