S域到Z域到差分方程

1、S域传递函数

假设传递函数为:G(s)=exp^(-0.004s)*400/(s^2+50s);

其中^后表示指数,如:2^3=8;4^2=16;

在matlab里面建立这个传递函数的命令就是:sys=tf(400,[1,50,0],'inputdelay',0.004);

2、Z域传递函数

把传递函数离散化就得到脉冲传递函数

G(z) =z^(-4) *( 0.0001967 z + 0.0001935)/(z^2 - 1.951 z + 0.9512)

= z^(-4) *[0.0001967z ^(-1)+0.0001935z^(-2)]/[ 1 - 1.951 z^(-1) + 0.9512z^(-2)] =Y(z)/U(z)……(2)式

在matlab里面离散化命令是:dsys=c2d(sys,0.001,'z');其中0.001为采样时间;

(2)式可写成:

z^(-4) *[0.0001967 z ^(-1)+0.0001935z^(-2)] U(z) = [ 1 - 1.951 z^(-1) + 0.9512z^(-2)] Y(z) (3)式

3、差分方程形式

由(3)式可得

0.0001967 z ^(-5)+ 0.0001935z^(-6)]U(z) = [1 - 1.951 z^(-1) + 0.9512z^(-2)] Y(z) (4)式

把(4)式得z^(-n)中的(-n)写成(k-n),如z^(-5)U(z)写成u(k-5),可得:

0.0001967 u(k-5)+ 0.0001935u(k-6)= y(k) -1.951 y(k-1) + 0.9512y(k-2) (5)式

由(5)式得

y(k) = 1.951 y(k-1) -0.9512y(k-2)+0.0001967 u(k-5)+ 0.0001935u(k-6)

即差分方程形式

[num,den]=tfdata(dsys,'v')这个命令其实就是取式(2)的分子分母

你可能感兴趣的:(伺服控制学习)