Main Content

Zero-Pole

使用零极点增益传递函数进行系统建模

  • Zero-Pole block

库:
Simulink / Continuous

描述

Zero-Pole 模块可以通过指定零点、极点和拉普拉斯域传递函数增益定义的系统进行建模。您可以使用此模块对单输入单输出 (SISO) 和单输入多输出 (SIMO) 系统进行建模。

Zero-Pole 模块有以下要求:

  • 传递函数的形式必须为

    H(s)=KZ(s)P(s)=K(sZ(1))(sZ(2))(sZ(m))(sP(1))(sP(2))(sP(n)),

    其中 Z 表示零点,P 表示极点,K 表示传递函数的增益。

  • 极点数必须大于或等于零点数。

  • 复极点和复零点必须为复共轭对组。

  • 对于多输出系统,所有传递函数必须具有相同的极点。零点的值可以不同,但每个传递函数的零点数必须相同。

提示

要对一个多输出系统建模(其中传递函数具有不同的零点数或者每个传递函数只有一个零点),请使用多个 Zero-Pole 模块。

对单输出系统建模

一个单输出系统具有标量时域输入和输出信号。要对这种类型的系统建模,请执行以下操作:

  1. 零点字段中输入传递函数的零点向量。

  2. 极点字段中输入传递函数的极点向量。

  3. 增益字段中输入传递函数的增益标量。

对多输出系统建模

一个多输出系统具有一个标量时域输入信号和一个向量时域输出信号。向量输出中的每个元素均为该系统的一个输出。要对这种类型的系统建模,请执行以下操作:

  1. 零点字段中输入零点矩阵。

    矩阵的每一列包含一个传递函数(将系统输入信号与输出信号中的一个元素相关联)的零点。

  2. 极点字段中输入对系统的所有传递函数都通用的极点向量。

  3. 增益字段中输入增益向量。

    每个元素代表对应的传递函数在零点矩阵中的增益。

端口

输入

全部展开

系统的标量时域输入信号。

数据类型: double

输出

全部展开

系统的输出建模为一个零极点增益传递函数,以标量或向量信号形式提供。

  • 对单输出系统建模时,模块生成标量时域信号。

  • 当对多输出系统建模时,模块生成向量,其中向量的每个元素均为系统的输出。

数据类型: double

参数

全部展开

定义零点矩阵。

  • 对于单输出系统,输入传递函数的零点向量。

  • 对于多输出系统,输入矩阵。此矩阵的每列包含一个传递函数的零点,该传递函数将系统输入与输出向量的一个元素相关联。

  • 要对不带零点的系统建模,请输入 []

编程用法

模块参数: Zeros
类型:字符串 | 字符向量
值:向量 | 矩阵
默认值:'[1]'

定义极点向量。

  • 对于单输出系统,输入传递函数的极点向量。

  • 对于多输出系统,输入对系统的所有传递函数通用的极点向量。

编程用法

模块参数: Poles
类型:字符串 | 字符向量
值:向量
默认值:'[0 -1]'

定义增益向量。

  • 对于单输出系统,输入传递函数的 1×1 增益向量。

  • 对于多输出系统,输入增益向量。每个元素代表对应的传递函数在零点矩阵中的增益。

编程用法

模块参数: Gain
类型:字符串 | 字符向量
值:向量
默认值:'[1]'

指定零点、极点和增益在加速和快速加速仿真以及使用 Simulink® Compiler™ 部署的仿真中是否可调。

  • 自动 - 软件确定参数可调性的级别。

  • 优化 - 软件为加速仿真、快速加速仿真和部署的仿真生成零点、极点和增益的优化表示。优化表示中的零点、极点和增益值不可调。

  • 无约束 - 零点极点增益参数的值在加速仿真、快速加速仿真和部署的仿真之间可调。

编程用法

模块参数:ParameterTunability
类型:字符串 | 字符向量
'Auto' | 'Optimized' | 'Unconstrained'
默认值:'Auto'

变步长求解器在选择步长时使用绝对和相对容差来确定状态计算中的误差是否可接受。

要从绝对容差配置参数继承绝对容差,请将此参数值指定为 auto-1

要为此模块指定一个绝对容差来覆盖为绝对容差配置参数指定的值,请执行以下操作:

  • 输入用于计算所有模块状态的正实数标量值。

  • 输入实数向量,其维度与模块的连续状态的维度匹配。

编程用法

模块参数: AbsoluteTolerance
类型:字符串 | 字符向量
值:'auto' | '-1' | 正实数标量 | 正实数标量的向量
默认值:'auto'

使用此参数可选择为此模块的状态指定名称。您指定的名称仅应用于此模块的状态。

  • 要使用默认状态名称,请将此字段留空 ('')。

  • 要为单个状态分配单个名称,请输入名称并用引号引起来。例如,要命名单一状态 position,请输入 "position"

  • 要为多个状态指定名称,请将此参数值指定为字符向量元胞数组。元胞数组中的每个名称必须唯一。例如,要指定名称 abc,请输入 {'a','b','c'}

  • 要使用 MATLAB 变量指定名称,请输入不带引号的变量名称。例如,要使用变量 names 来指定状态名称,请输入 names

您指定的名称数量可以少于模块中的状态数量。在这种情况下,状态名称用于多个状态,状态的数量必须能够被状态名称的数量均分。例如,当您为具有四个状态的模块指定两个名称时,第一个名称用于前两个状态,第二个名称用于后两个状态。

编程用法

模块参数:ContinuousStateAttributes
类型:字符串 | 字符向量
值:' ' | 用户定义
默认值:' '

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

提示

Zero-Pole 模块图标中传递函数的外观取决于您如何指定零点、极点和增益参数。

  • 如果这两个参数指定为表达式或向量,模块将显示具有指定的零点、极点和增益的传递函数。如果在括号中指定变量,模块将计算变量。

    例如,下图显示当您将零点参数指定为 [3 2 1]、将极点参数指定为 (poles)(其中 poles 是值为 [7 5 3 1] 的变量)、将增益参数指定为 gain 时模块的外观。

    The Zero-Pole block shows the transfer function with the zero and pole values populated from the block parameter values.

  • 如果您将每个参数指定为变量,该模块将显示定义增益参数值的变量名称,后跟一个通用传递函数。

    例如,下图显示当您将零点参数指定为变量 zeros、将极点参数指定为变量 poles、将增益参数指定为变量 gain 时模块的外观。

    The Zero-Pole block shows the Gain parameter value with a generic transfer function representation.

  • 当模块不够大而无法使用参数值显示传递函数时,传递函数显示的分子为 zeros(s),分母为 poles(s)

    The Zero Pole block shows the transfer function with a generic numerator and denominator.

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅