matlab s函数z变换,Matlab符号计算——s函数转z函数

使用Maltab等工具设计得到的控制器或者滤波器通常是s域传递函数,但是单片机C语言 无法实现s域传递函数。因此需要进行z变换,转换成C语言可实现的离散域传递函数。

1f25128ea3d9fa1e951d0ebe7080b19e.png

定义符号

syms k w2 w1 z Ts双线性变换

s=2/Ts*(z-1)/(z+1);定义s域传递函数

s_tf=k*(s+w2)/(s*(s+w1));转换形式z_tf=collect(s_tf,z) z_tf =

((k*w2*Ts^2 + 2*k*Ts)*z^2 + (2*Ts^2*k*w2)*z + k*w2*Ts^2 - 2*k*Ts)/((2*Ts*w1 + 4)*z^2 - 8*z - 2*Ts*w1 + 4)

替换Ts一般采样频率Ts会在设计好后会固定,因此可以进一步简化, 假定 Ts=0.01;

z_tf_Ts=subs(z_tf,'Ts',0.01') z_tf_Ts =

-((k/50 + (k*w2)/10000)*z^2 + (k*w2*z)/5000 - k/50 + (k*w2)/10000)/((- w1/50 - 4)*z^2 + 8*z + w1/50 - 4)

替换更多参数如果Ts,w1,w2均不需要调整,只有k值需要调整,则可以替换更多, 假定 Ts=0.01,w1=0.01,w2=0.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值