MATLAB 创建传递函数模型

您所在的位置:网站首页 matlabzpk函数 MATLAB 创建传递函数模型

MATLAB 创建传递函数模型

#MATLAB 创建传递函数模型| 来源: 网络整理| 查看: 265

MATLAB 创建多项式的方式有两种:

系数多项式 符号多项式

1. 系数多项式

p = [an . . . a1 a0]

p_value = polyval(p, k)  % 计算自变量值为k时,多项式的值

r = roots(p)        % 计算多项式的根

2. 符号多项式

syms t           % 创建符号变量 t

p = t^2+2*t+1        % 创建符号多项式

p_value = subs(p, k)    % 计算自变量值为k时,多项式的值

3. 两种形式之间相互转换

sym2poly(p)       % 符号多项式→系数多项式 (包含为零的所有系数)

coeffs(p)          % 符号多项式→系数多项式 (除去为零的所有系数)

poly2sym(p)       % 系数多项式→符号多项式

 

分式有理函数的裂项形式如下:

pi为系统的极点,ci为常数,ks为增益系数。

分式有理函数与裂项形式之间的相互转换:

[c, p, k] = residue(num, den)    % num, den 分别为有理函数的分子和分母

[num, den] = residue(c, p, k)    % 裂项形式→分式函数形式

 

传递函数是线性定常系统,在零初始条件下,以复数为变量的有理函数。

描述的是系统输入与输出之间的关系,如下所示:

 

创建传递函数命令一:

sys = tf(num, den)

创建一个时间连续传递函数。

创建传递函数命令二:

sys = zpk(z, p, k)      % z, p 均为阵列,包含系统所有的零、极点,k 为增益系数。

              % 当系统传递函数没有零点时,仅输入 z = [ ]

创建一个“零-极点”形式的传递函数,如下所示:

能直观地看出系统的零点、极点。

创建传递函数命令三:

s = tf('s')        % 创建多项式形式传递函数的变量 s

s = zpk('s')       % 创建系数形式传递函数的变量 s

同样地,上述两种形式传递函数之间可以互相转换:

s = tf('s')        % 将原本系数形式的传递函数的变量 s 转换为多项式形式

s = zpk('s')       % 将原本多项式形式的传递函数的变量 s 转换为系数形式

此种方法类似于创建符号多项式,先用“syms t”声明一个符号变量 t,再创建多项式。

主要用于子系统传递函数,而系统总传递函数未知的场景中。

互相转换方法:

分式形式(多项式形式)⇌ “零点-极点-增益”形式(系数形式)

1. 分式形式→“零点-极点-增益”形式

sys = tf(num, den)      % 分式形式传递函数

sys_zpk = zpk(sys)    % 分式形式的传递函数→“零点-极点-增益”形式的传递函数

或者

[z, p, k] = tf2zp(num, den) % tf2zp(num, den) 输入“分子-分母”,返回传递函数的“z, p, k”

sys = zpk(z, p, k)      % 即上面的“创建传递函数命令二”

2. “零点-极点-增益”形式→分式形式

sys = zpk(z, p, k)

sys_tf = tf(sys)       % “零点-极点-增益”形式的传递函数→分式形式的传递函数

或者

[num, den] = zp2tf(z, p, k)   % zp2tf(z, p, k) 输入“z, p, k”,返回传递函数的“分子-分母”

sys = tf(num, den)    % 即上面的“创建传递函数命令一”

 

练习题 1:

用tf(num, den)命令创建如下所示传递函数,并将其转换为“零点-极点-增益”形式。

解答:

num = [1 1];den = [1 3 1];sys = tf(num, den)sys_zpk = zpk(sys)

 

练习题 2:

用zpk(z, p, k)命令创建如下所示传递函数,并将其转换为分式形式。

解答:

z = [-2];p = [-1 -1 -3];k = 1;sys = zpk(z, p, k)sys_tf = tf(sys)

 

练习题 3:

用创建传递函数的变量方式,创建不同形式的传递函数。

解答:

s = tf('s');sys = (s+1)/(s^2+2*s+1)

s = zpk('s');sys = (s+1)/(s^2+2*s+1)

 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3