主要内容

连续时间系统和离散时间系统之间的转换

可用于连续/离散转换的命令

命令 c2dd2cd2d 分别执行连续到离散、离散到连续和离散到离散(重采样)的转换。

sysd = c2d(sysc,Ts)  % Discretization w/ sample period Ts
sysc = d2c(sysd)     % Equivalent continuous-time model
sysd1= d2d(sysd,Ts)  % Resampling at the period Ts

可用于连续/离散转换的方法

有各种离散化/插值方法可供使用,包括零阶保持(默认值)、一阶保持、带或不带预修正的(突斯汀)逼近以及匹配的零极点。例如,

sysd = c2d(sysc,Ts,'foh')   % Uses first-order hold
sysc = d2c(sysd,'tustin')   % Uses Tustin approximation

数字化离散 DC 电机模型

您可以使用 c2d 函数并选择适当的采样时间来数字化 DC 电机被控对象。选择正确的采样时间涉及许多因素,包括您要实现的性能、系统中最快的时间常数以及您期望控制器运行的速度。对于此示例,选择 0.01 秒的时间常数。有关 SS 对象 sys_dc 的构造,请参阅 SISO 示例:DC 电机

Ts=0.01;
sysd=c2d(sys_dc,Ts)
 
a = 
                        x1           x2
           x1      0.96079  -0.00027976
           x2     0.006994      0.90484
 
 
b = 
                        u1
           x1     0.019605
           x2  7.1595e-005
 
 

c = 
                        x1           x2
           y1            0            1
 
 
d = 
                        u1
           y1            0
 
Sample time: 0.01
Discrete-time model.

要查看数字 DC 电机的离散时间零极点增益,请使用 zpk 转换模型。

fd=zpk(sysd)
 
Zero/pole/gain:
7.1595e-005 (z+0.9544)
------------------------
 (z-0.9608) (z-0.9049)
 
Sample time: 0.01

您可以通过键入以下命令来比较 sys_dc 和 sysd 的阶跃响应:

step(sys_dc,sysd)
下图显示了命令结果。

注意阶跃响应匹配。对于没有内部延迟的模型,连续阶跃响应和 FOH 离散阶跃响应匹配。