《从传递函数到差分方程的转换》由会员分享,可在线阅读,更多相关《从传递函数到差分方程的转换(5页珍藏版)》请在金锄头文库上搜索。
1、从传递函数到差分方程的转换从传递函数到差分方程的转换从传递函数到差分方程的转换悬赏分:0 - 解决时间:2008-3-20 21:02我以前提问过“如何把传递函数转换成差分方程”的形式,后来不少人 QQ 问我,我觉得有必要把这些写出来,其实很简单的。 1、传递函数的形式 假设传递函数为:G(s)=exp(-0.004s)*400/(s2+50s); 其中后表示指数,如:23=8;42=16; 在 matlab 里面建立这个传递函数的命令就是:sys=tf(400,1,50,0,inputdelay,0.004); 2、脉冲传递函数 把传递函数离散化就得到脉冲传递函数,这个我就不多说了。 。 。
2、 。 G(z) =z(-4) *( 0.0001967 z + 0.0001935)/( z2 - 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、差分方程形式 由(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
4、-6) 即差分方程形式 num,den=tfdata(dsys,v)这个命令其实就是取式(2)的分子分母怎么用 matlab 把传递函数转成差分方程就是这个问题,目前还没有人回答,本人悬赏的 200,地址如下: http:/ 如果在这个页面回答也可以,想要分的留言 我把问题复制过来,如下: -怎么用 matlab 把传递函数转成差分方程- 悬赏分:120 - 离问题结束还有 16 天 0 小时 以下是 PID 控制的部分代码(matlab 的 m 文件): ts=0.001;采样时间=0.001s sys=tf(400,1,50,0);建立被控对象传递函数 dsys=c2d(sys,ts,z);把传递函数离散化(问题 1) num,den=tfdata(dsys,v);离散化后提取分子、分母 rin=1.0;输入为阶跃信号 u_1=0.0; u_2=0.0; 什么东西的初始状态(问题 2) y_1=0.0; y_2=0.0; 是不是输出的初始状态 error_1=0;初始误差 x=0 0 0;PID 的 3 个参数 Kp Ki Kd 组成的数组 p=100;仿真时间 100ms for k=1:1:p r(k)=rin; u(k)=kpidi(1)*x(1)+kpidi(2)*x(2)+kpidi(3)*x(3) if u(k)=10 u(k)=10; end if u(k)