matlab中离散信号模型

前言:我们在maylab中最常用的是一个对象的传递函数,当我们在离散系统里时,我们需要将这个传递函数离散化,也就是将拉普拉斯变化为z,所以这一篇博客介绍如何获得一个对象的离散模型。

方法1:如果已经知道了,我们只需要在simulink库中选取discrete transfer function并修改参数就行。
如图:
在这里插入图片描述

方法2:如果我们只知道这个对象的传递函数,那么我们可以在命令行中用命令来获取它的离散化模型:

ts = 0.001  //设置采样周期
sys=tf(523500,[1,87.35,10470]) //书写传递函数
dsys=c2d(sys,ts,'z')  //将传递函数sys变为离散化dsys,注意里面传入的参数,通常都用z
[num,den]=tfdata(dsys,'v')  //获取离散化dsys模型的分子分母系数,num为分子系数,den为分母系数

//注意:当分子阶数小于分母时,num的第一个数的值为0

提示当我们书写完上面第二第三这两个命令后,命令框就会显示出传递函数sys和离散化dsys的形式:

在这里插入图片描述

既然已经知道了这个形式了,我们可以直接在discrete transfer function模块中修改参数了,将分子分母系数填进去,也可以将num和den这两个变量填进去也可以。上面之所以要用到[num,den]=tfdata(dsys,'v')来获取离散化dsys模型的分子分母系数,是为了当不在simulink中仿真时,而是写m程序仿真时,我们可以自己手动写出对象的差分方程,比如:y(k)=-den(2)y(k-1)+num(2)u(k-5),通过差分方程来计算对象输出,当然在simulink用不到,因为对象输出不用你去手动计算了。

另外补充一个:简单的传递函数可以用sys=tf(523500,[1,87.35,10470])这种来表示,当传递函数形式为这种带有延迟项的时候,比如: G(s) = e^(-80s)/60s+1,这种形式,
方法是将其看作一个普通的1/60s+1 * e^(-80s) ,此时书写格式为: sys=tf([1],[60,1],'inputdelay',80)**

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值