如何绘制离散时间传递系统?
技术分享
发布于 2025-08-06 16:33:03
查看 1过去300天
问题现象
Q1:如何直接利用Z变换得到的系数进行绘制?
Q2:是否有Z域下转为S域的函数?
Q3:是否有时域到拉普拉斯的函数?
解决方法
Q1:
1.在Z域下的利用tf函数,可以给定采样时问后创建对应的离散系统:例如指定0.1s的采样时问,代码如下:
using TyControlSystems
num2=[2,e]
den2=[4,0,3,-1]
Ts=0.1
sys =tf(num2,den2,Ts)
运行代码后,生成对应的离散系统:

2.利用bode函数绘制上述离散时间传递系统的伯德图:
代码:
bode(sys)
绘制结果如下:

Q2:
离散域转连续域可以使用d2c函数:
利用tf函数生成离散系统,代码如下:
using TyControlsystems
H=tf([1,-1],[1,1,0.3],0.1)
运行后结果如下,已经生成Z域下的离散系统:

利用d2c函数转换到连续域,代码如下:
Hc =d2c(H)
运行代码,结果如下,生成了连续域的系统:

Q3:
如果是用状态空间模型表示的,可以直接用tf函数进行时域到拉普拉斯的变换;关于tf函数的相关信息可以查帮助文档:

例如生成以下状态空间模型所对应的连续时间传递函数模型:

代码如下:
using TyControlSystems
A=[-2 -1;1 -2]
B=[1 1;2 -1]
C=[1 0]
D=[0 1]
Ltisys=ss(A,B,C,D);
sys= tf(LtiSys)
运行上述代码,结果如下,实现了从时域到拉普拉斯的变换:

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境