文章目录
方法案例1 一阶系统的差分方程推导案例2 MATLAB推导栗1step1:建模step2:求:Z域传递函数栗2方法
一阶前向差分
s=z−1Ts = \frac{{z - 1}}{T}s=Tz−1
一阶后向差分
s=1−z−1Ts = \frac{{1 - {z^{ - 1}}}}{T}s=T1−z−1
双线性变换
s=2Tz−1z+1s = \frac{2}{T}\frac{{z - 1}}{{z + 1}}s=T2z+1z−1
将其代入传递函数,整理式子,根据性质写成差分方程的形式。
案例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');%离散化后提取分子、分母