Matlab怎样将传递函数转换成差分方程

如题所述

第1个回答  2016-06-12
1、c2d:假设在输入端有一个零阶保持器,把连续时间的状态空间模型转到离散时间状态空间模型。
[SYSD,G]=C2D(SYSC,Ts,METHOD)里面的method包括:
zoh 零阶保持, 假设控制输入在采样周期内为常值,为默认值。
foh 一阶保持器,假设控制输入在采样周期内为线性。 tustin 采用双线性逼近。
matched 采用SISO系统的零极点匹配法
2、只有U_1是2处的初始状态值,而U_2是用来传递U(k)的,所以U_2是U_1在下一个ts时间内的值
3、从差分方程获取传递函数:
y(k)+a1(k-1)+……+an(k-n)=b0x(k)+b1x(k-1)+……+bmx(k-m)在零初始条件下对,对方程两边进行Z变换,得到该系统的脉冲传递函数G(Z)=Y(Z)/X(X)=[b0z^m+b1z^(m-1)+……+bm]/[z^n+a1z^(n-1)+……an] 其中m《n
或等效形式G(Z)=Y(Z)/X(X)=[b0+b1z^(-1)+……+bmz^(-m)]/[1+a1z^(-1)+……anz^(-n)] 其中m《n

从脉冲传递函数到差分方程
G(Z)=Y(Z)/X(X)=[b0+b1z^(-1)+……+bmz^(-m)]/[1+a1z^(-1)+……anz^(-n)] 其中m《n 交叉相乘得Y(Z)[1+a1z^(-1)+……anz^(-n)]=X(X)[b0+b1z^(-1)+……+bmz^(-m)]对X(z)和Y(z)进行z逆变换的到差分方程y(k)+a1y(k-1)+……+any(k-n)=b0x(k)+b1x(k-1)+……+bmx(k-m)

4、纯延迟系统G(s)=20e^(-0.02s)/(1.6s^2+4.4s+1)
num=[20];
den=[1.6 4.4 1];
sys=tf(num,den,'inputdelay',0.02)本回答被网友采纳

由连续传递函数模型怎么得到差分方程
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、用命令 c2d:假设在输入端有一个零阶保持器,把连续时间的状态空间模型...

如何将传递函数转化成差分方程
找找MATLAB的命令,先给定个采样率,把它变成Z传递函数,然后差分方程也就有了,如果要手算估计找本计算机控制系统的书上面有表格和公式的 也是变成Z 传递函数,然后再写成差分方程形式

从matlab系统辨识工具箱导出传递函数模型
假设单输入单输出传递函数是G=1\/(s+1)按采样周期Ts=0.01s离散得到离散传递函数G'=Y\/U=0.00995z^-1\/(1-0.99z^-1)转化为差分方程为y(k)=0.99*y(k-1)+0.00995*u(k-1)也就是说想要得到k时刻的输出y,需要通过k-1时刻的输出y与k-1时刻的输入u,编写程序时对之前时刻的数据加以记...

急急急不可耐!!!有人知道怎么在MATLAB上使用差分方程
dsys1=c2d(sys1,ts,\\'zoh\\');转化成dz函数 [num1,den1]=tfdata(dsys1,\\'v\\');获得z传函的分子和分母 Ideal closed loop 期望鼻环传递函数 sys2=tf([1],[0.15,1],\\'inputdelay\\',0.76);系统传递函数 dsys2=c2d(sys2,ts,\\'zoh\\');转化成d(z)函数 Design Dalin controller ...

matlab利用递归求解差分方程
首先,这个不是matlab利用递归求解差分方程,而是递推;差分方程其实就是递推关系式。然后这个循环:for i=N+1:N+length(n),y(i)= -a1*y(i-N:i-1)'+ b1*x(i-N:i-N+M)';end 其实是因为:y[n]+ a1*y[n-1]+ a2*y[n-2]...+ an*y[n-N]= b0*x[n]+ b1*x[n-1]+...

matlab能不能在给出初始条件的情况下求解一阶常系数差分方程?
能 dslove命令 先用syms声明符号变量,然后用dslove命令

什么是差分方程,如何用matlab解差分方程?
syms z n u=(1\/5)^n; %设置u为输入信号 U=ztrans(u); %z变换 y=diff_eq([1 -5 6],[0],[1 0],U); %解析解。y=simplify(y)其运行结果,y(n)=3*2^n - 2*3^n 例2:试用matlab求解差分方程,y(t+2)+y(t+1)-6y(t)=5*2^t,y(0)=1,其中y(0)=1,y(1)=0...

关于传递函数参数在线辨识的几个问题
可以啊,MATLAB里面的ident工具箱就是专门用来做辨识的,你只需要把输入输出的数据给它,然后设置好参数(采样时间,传递函数阶数,有无零点,有无延迟,极点类型等),然后就会计算出传递函数的参数,不需要编程,我记得这个工具箱本身用的就是最小二乘的算法。当然,MATLAB本身是以矩阵为基础的,所以你...

请问怎么用MATLAB更具差分方程求得频率响应曲线?
哥们是自动化系的吧?学的是控制原理?先把差分方程转成传递函数,用传递函数来做做频率响应曲线呗 用这个函数 freqz(G(s))不知道语法的话 help freqz就行了

在MATLAB中利用filter函数在给定输入和差分方程时求差分方程的解。给...
在MATLAB中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。实现差分方程 先从简单的说起:filter([1,2],1,[1,2,3,4,5])实现 y[k]=x[k]+2*x[k-1]y[1]=x[1]+2*0=1%(x[1]之前状态都用0)y[...

相似回答