使用MATLAB传递函数离散化为Z函数并验证

%%-------传递函数离散化------
num=[2];
den=[1 2.6 2];
sys=tf(num,den);

ts=0.02;
dsys=c2d(sys,ts,'method');
[num1,den1]=tfdata(dsys,'v');

%%-------离散化分子分母转换为C语言程序使用------
%%-------+Y/U=(0.000389z-0.000389)/(z^2-1.9448z+0.9455)--
%%-------分子分母除以z^2=>(0.000389z^-1-0.000389z^-2)/(1-1.9448z^-1+0.9455z^-2)--
%%-------y(2)=1.9448y(1)+0.9455y(0)+0.000389x(1)-0.000389x(0);
global output_forml1;
global output_forml;
output_forml1=0;
output_forml=0;

%%-----阶跃响应验证
y(1)=0;y(2)=0;
x=linspace(1, 1, 400);
for i=3:1:400
    y(i-2)=output_forml1;
    y(i-1)=output_forml;
    y(i)=-den1(2)*y(i-1)-den1(3)*y(i-2)+num1(2)*x(i-1)+num1(3)*x(i-2);
    output_forml=y(i);
    output_forml1=y(i-1);
    
end
plot(y)

plot(y)如下:

传递函数下的曲线:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值