MATLAB 创建传递函数模型 |
您所在的位置:网站首页 › matlabzpk函数 › MATLAB 创建传递函数模型 |
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 |