传递函数tf
函数tf可以用于创建连续性传递函数和离散型传递函数。连续传递函数代码示例:
numerator = 1;denominator = [2,3,4];
sys = tf(numerator,denominator)
打印传递函数,并绘制波特图:
离散传递函数代码示例:
numerator = [2,0];denominator = [4,0,3,-1];ts = 0.1;
sys = tf(numerator,denominator,ts)
打印传递函数,并绘制波特图:
传递函数小技巧
小技巧1: s = tf(‘s’) 创建特殊变量 s,使用该变量来创建连续时间传递函数模型,比指定多项式系数更容易、更直观。
%示例代码(带有延时的传递函数)
s = tf('s'); Ca = exp(-s) * 1/(1+s); bode(Ca);
小技巧2: 同理,z = tf(‘z’,Ts) 创建特殊变量 z,使用该变量来创建离散时间传递函数模型。
%离散传递函数示例代码
z = tf('z',0.1); sys = (z-1)/(z^2-1.85*z+0.9); bode(sys);
小技巧3: 通过配置离散传函的Variable属性,使 z z z表示转变为 z − 1 z^{-1} z−1表示。
Cd1 = tf([1,2],[3,4,5],0.001) % 系统默认离散传函,z表示
Cd1.Variable = 'z^-1' % 修改属性,转为z^-1表示
波特图bode,离散化c2d
bode函数不仅可以用来绘制连续传递函数的波特图,也可以用于绘制离散系统的波特图,如下案例所示。其中,离散化函数c2d用于将连续传递函数变为离散传递函数,更多原理性介绍与离散化方法,请参考常用的传递函数离散化方法。
Ca = tf([1,0],[1 0 (2*pi*250)^2]);
Cd = c2d(Ca,0.001,'tustin');
bode(Ca, Cd);legend('Ca','Cd')