传递函数到差分方程的转换

it2025-09-11  6

文章目录

方法案例1 一阶系统的差分方程推导案例2 MATLAB推导栗1step1:建模step2:求:Z域传递函数 栗2

方法

一阶前向差分 s = z − 1 T s = \frac{{z - 1}}{T} s=Tz1

一阶后向差分 s = 1 − z − 1 T s = \frac{{1 - {z^{ - 1}}}}{T} s=T1z1

双线性变换 s = 2 T z − 1 z + 1 s = \frac{2}{T}\frac{{z - 1}}{{z + 1}} s=T2z+1z1

将其代入传递函数,整理式子,根据性质写成差分方程的形式。

案例1 一阶系统的差分方程推导

高阶系统同上

案例2 MATLAB推导

栗1

step1:建模

s域的传递函数

G(s) = 2 / (1500s + 1) * exp(-100s)

matlab命令:

sys = tf(2,[1500,1],'inputdelay',100)

得到

                        2 exp(-100*s) * ----------                    1500 s + 1

step2:求:Z域传递函数

dsy = c2d(sys,10,‘z’) % 10 为间隔采样时间

得到

             0.01329 z^(-10) * ----------              z - 0.9934

分子分母除以z 转换得到

               0.01329z^-1 z^(-10) * ----------                1 - 0.9934z^-1

差分方程为

U(z) * 0.01329z^-11 = Y(z) (1 - 0.9934z^-1)

即 0.01329 x(k-11) = y(k) - 0.9934 y(k-1)

声明,此部分摘自【盐厂的伙计】博文《S域到Z域变换和差分方程》,感谢大佬的分享

栗2

ts=0.001;%采样时间=0.001s sys=tf(400,[1,50,0]);%建立被控对象传递函数 dsys=c2d(sys,ts,'z');%把传递函数离散化(问题1[num,den]=tfdata(dsys,'v');%离散化后提取分子、分母
最新回复(0)