AnyMath 文档

zp2tf

将带零、极点和增益的滤波器参数转换为传递函数的形式。

库::`工程师`

语法

函数调用

* [参数:b],[参数:a]=zp2tf(<参数:z>>,<参数:p>>,<参数:k>>) -变换传递函数的因式分解表示

+

+ 在传递函数的多项式表示中具有一个输入和多个输出(单输入/多输出,SIMO)的系统

+

争论

输入参数

# *z* — 零

+ 向量资料 | 矩阵

Details

系统的零指定为列向量或矩阵。 论点 z 它具有与输出信号一样多的列。 零必须是实数或表示复共轭对。 使用值 资讯 作为占位符 z 如果某些列的零比其他列少。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *p* — 电线杆

+ 向量资料

Details

系统的极点,定义为列向量。 极点必须是实数或表示复共轭对。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *k* — 增益因素

+ 向量资料

Details

系统的增益系数,设置为列向量。

数据类型

漂浮物32, 漂浮64</无翻译>

输出参数

# *b* — 传递函数分子的系数

+ 向量资料 | 矩阵

Details

传递函数的分子的系数,作为行向量或矩阵返回。 如果 b -一个矩阵,其中的行数等于矩阵的列数 [参数:z].

# *一个* — 传递函数分母的系数

+ 向量资料

Details

传递函数的分母的系数,作为字符串向量返回。

例子:

质量弹簧系统的传递函数

Details

让我们计算满足微分方程的阻尼质量弹簧系统的传递函数

测量值为加速度 ,而 -驱动力。 在拉普拉斯空间中,系统表示如下:

该系统具有一个单一的增益因子,双零在 和两个复共轭极点。

k = 1
z = [0, 0]
p = roots([1, 0.01, 1])
2×1 Matrix{ComplexF64}:
 -0.0050000000000000044 + 0.999987499921874im
  -0.004999999999999977 - 0.999987499921874im

使用函数 *zp2tf* 求传递函数。

import EngeeDSP.Functions: zp2tf

b, a = zp2tf(z, p, k)
([1.0 0.0 0.0], [1.0 0.009999999999999981 0.9999999999999999])

算法

系统转化为使用函数的传递函数的形式 *保利*p 和矩阵的列 z.