连续时间系统和离散时间系统之间的转换
可用于连续/离散转换的命令
命令 c2d、d2c 和 d2d 分别执行连续到离散、离散到连续和离散到离散(重采样)的转换。
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 离散阶跃响应匹配。