数学建模社区-数学中国

标题: 传递函数离散化—c2d函数 [打印本页]

作者: 森之张卫东    时间: 2015-7-17 22:20
标题: 传递函数离散化—c2d函数
matlab中,传递函数离散化,特别是转化为差分方程,可以使用c2d实现,系数直接转化是不可以的。c2d的具体用法,可以参照matlab帮助,下面举一例

% transfor function
w = 2*pi*100;   0hz 为陷波器滤除的频率。
sys = tf([1 0 w^2], [1 w/0.707 w^2]);
%函数为 G(s)= (s^2 + w^2)/(s^2 + w/0.707*s + w^2);   0.707为品质因素
%就陷波器而言,品质因数越大,阻带越窄;品质因数越小,阻带越宽。

% discretize
ts = 0.0002; % 采样周期5k
dsys = c2d(sys, ts, 'tustin'); % 采用双线性方法将传递函数离散化
% extract
[num, den] = tfdata(dsys,'v'); % 提取差分方程系数

(将分子分母转换为Q15格式的数据)结果为:

>> 32768*num

ans =

  1.0e+004 *

    3.0103   -5.9733    3.0103

>> 32768*den

ans =

  1.0e+004 *

    3.2768   -5.9733    2.7438

得到离散化方程是:
           30103 + 59733z^(-1) + 30103*z^(-2)
  H(z)=  ----------------------------------
           32768 + 59733z^(-1) + 27438*z^(-2)





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5