从传递函数到差分方程的转换
悬赏分:0 - 解决时间:2008-3-20 21:02
我以前提问过“如何把传递函数转换成差分方程”的形式,后来不少人QQ问我,我觉得有必要把这些写出来,其实很简单的。
1、传递函数的形式
假设传递函数为: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、脉冲传递函数
把传递函数离散化就得到脉冲传递函数,这个我就不多说了。。。。
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)的分子分母
悬赏分:0 - 解决时间:2008-3-20 21:02
我以前提问过“如何把传递函数转换成差分方程”的形式,后来不少人QQ问我,我觉得有必要把这些写出来,其实很简单的。
1、传递函数的形式
假设传递函数为: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、脉冲传递函数
把传递函数离散化就得到脉冲传递函数,这个我就不多说了。。。。
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)的分子分母