Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Transfer Fcn

通过传递函数为线性系统建模

  • 库:
  • Simulink / Continuous

  • Transfer Fcn block

说明

Transfer Fcn 模块通过拉普拉斯域变量 s 的传递函数为线性系统建模。此模块可为单输入单输出 (SISO) 和单输入多输出 (SIMO) 系统建模。

使用此模块的条件

Transfer Fcn 模块假定满足以下条件:

  • 传递函数的格式为

    H(s)=y(s)u(s)=num(s)den(s)=num(1)snn1+num(2)snn2++num(nn)den(1)snd1+den(2)snd2++den(nd),

    其中 u 和 y 分别代表系统输入和输出,nn 和 nd 分别是分子和分母系数。num(s) 和 den(s) 包含分子和分母的 s 降幂系数。

  • 分母的阶必须大于或等于分子的阶。

  • 对于多输出系统,所有传递函数具有相同的分母,而所有分子具有相同的阶次。

为单输出系统建模

对于单输出系统,模块的输入和输出是标量时域信号。要为此系统建模,请执行以下操作:

  1. Numerator coefficients 字段中输入传递函数的分子系数向量。

  2. Denominator coefficients 字段中输入传递函数的分母系数向量。

为多输出系统建模

对于多输出系统,模块输入为标量,输出为向量,其中每个元素都是系统的一个输出。要为此系统建模,请执行以下操作:

  1. Numerator coefficients 字段中输入矩阵。

    此矩阵的每一包含确定一个模块输出的传递函数的分子系数。

  2. Denominator coefficients 字段中输入系统所有传递函数的公分母系数向量。

指定初始条件

传递函数描述了输入和输出在拉普拉斯(频率)域中的关系。具体而言,它被定义为零初始条件的系统对脉冲输入的响应(输出)的拉普拉斯变换。

传递函数的乘法和除法等运算依赖于零初始状态。例如,您可以将一个复杂的传递函数分解为一系列简单的传递函数。按顺序应用它们可获得与原始传递函数相同的响应。如果其中一个传递函数采用非零初始状态,结果将不正确。而且,一个传递函数有无限多个时域实现,大多数状态并没有任何物理意义。

由于这些原因,Simulink®Transfer Fcn 模块的初始条件预设为零。要指定给定传递函数的初始条件,请使用 tf2ss 将传递函数转换为可控制的典型状态空间实现。然后,使用 State-Space 模块。tf2ss 实用工具为系统提供了 ABCD 矩阵。

有关详细信息,请键入 help tf2ss,或者参阅 Control System Toolbox™ 文档。

传递函数在模块上的显示

Transfer Fcn 模块根据指定的分子和分母参数来显示传递函数。

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

    例如,如果将 Numerator coefficients 指定为 [3,2,1] 并将 Denominator coefficients 指定为 (den),其中 den[7,5,3,1],则模块的显示如下:

  • 如果将这两个参数指定为变量,模块将显示后跟 (s) 的变量名称。

    例如,如果将 Numerator coefficients 指定为 num 并将 Denominator coefficients 指定为 den,则模块的显示如下:

端口

输入

全部展开

输入信号,指定为数据类型为 double 的标量。

数据类型: double

输出

全部展开

输出信号,是数据类型为 double 的标量或向量。

  • 对于单输出系统,模块的输入和输出是标量时域信号。

  • 对于多输出系统,输入为标量,输出为向量,其中每个元素都是系统的一个输出。

数据类型: double

参数

全部展开

定义传递函数的分子系数。

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

  • 对于多输出系统,输入矩阵。此矩阵的每一行包含确定一个模块输出的传递函数的分子系数。

编程用法

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

定义分母系数的行向量。

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

  • 对于多输出系统,输入包含对系统所有传递函数公分母系数的向量。

编程用法

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

使用 Simulink Compiler™ 的加速仿真模式和部署仿真的分子和分母系数的可调性级别。将此参数设置为 “Auto” 将允许 Simulink 选择适当的参数可调性级别。

将此参数设置为 “Optimized” 可在为加速和部署仿真而生成的代码中生成为实现更好的仿真性能而优化的分子和分母系数表示。

将此参数设置为 “Unconstrained” 可在为加速和部署仿真而生成的代码中生成分子和分母系数的完全可调(仿真之间)表示。要让 Simulink 确定适当的可调性级别,请选择 “Auto”。

编程用法

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

用于计算模块状态的绝对容差,指定为正值、实数值、标量或向量。要从 Configuration Parameters 继承绝对容差,请指定 auto-1

  • 如果输入实数标量,则在计算所有模块状态时,该值会覆盖 Configuration Parameters 对话框中的绝对容差。

  • 如果输入实数向量,则该向量的维度必须匹配模块中连续状态的维度。这些值将覆盖 Configuration Parameters 对话框中的绝对容差。

  • 如果输入 auto 或 -1,则 Simulink 会使用 Configuration Parameters 对话框中的绝对容差值(请参阅Solver 窗格)来计算模块状态。

编程用法

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

为每个状态分配唯一名称。如果此字段为空 (' '),则不会分配任何名称。

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

  • 要为多个状态分配名称,请输入以逗号分隔的列表并用花括号括起来,例如 {'a', 'b', 'c'}。每个名称都必须是唯一的。

  • 要在 MATLAB® 工作区中分配带变量的状态名称,请输入不带引号的变量。变量可以是字符向量、字符串、元胞数组或结构体。

限制

  • 状态名称只会应用于所选模块。

  • 状态数量必须能够被状态名称的数量均分。

  • 指定的名称数量可以少于状态数量,但不能多于状态数量。

    例如,可以在具有四个状态的系统中指定两个名称。第一个名称应用于前两个状态,第二个名称应用于后两个状态。

编程用法

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

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

在 R2006a 之前推出