MATLAB 中的传递函数

2025年3月1日 | 阅读 7 分钟

引言

MATLAB 是科学计算中最强大的软件环境之一,特别是在信号处理、系统动力学和控制系统方面。传递函数是这些领域中使用的基本工具之一。本文探讨了传递函数的概念,包括其定义和 MATLAB 操作。

什么是传递函数?

在信号处理和控制系统中,传递函数是频率域中系统输入和输出之间关系的数学表示。线性时不变 (LTI) 系统的稳定性与动态响应通常通过传递函数来检验。

控制系统中的传递函数

传递函数在电子控制系统中用于描述相关系统的零点和极点。多项式分子的根是零点,而数值多项式的根是极点。这些特性显著影响整个架构的变化率和可靠性。

极点和零点

  • 导致不稳定点(零分母)的 ?s 值称为传递函数的极点。
  • 零点:传递函数的零点是使分子值为零的 ?s 值。

系统行为受零点和极点在复平面上的位置影响。例如,在复平面中,左侧的极点通常表示稳定性,而右侧的极点表示不稳定性。

为什么要使用传递函数?

在控制工程和信号处理领域,传递函数提供了一种简洁的表达和修改系统动力学的方法。它们通过让工程师处理代数方程而不是微分方程,从而更轻松地分析和构建 LTI 系统。

这有助于以下方面:

  • 检查系统的行为、反应和稳定性。
  • 创建反馈系统控制器,例如 PID 控制器。
  • 模拟机械系统、电路和其他物理过程。

MATLAB 中的传递函数

MATLAB 提供了许多用于组织、操作和解释传递函数的技术。处理传递函数的大多数关键函数是 tf,它可用于构建传输信息模型函数。

在 Matlab 中创建传递函数

要在 MATLAB 中生成传递函数,需要给出分子和分母多项式的相应系数。

% 定义分子和分母多项式
num = [b_m, b_(m-1), ..., b_1, b_0]; % 分子系数
den = [a_n, a_(n-1), ..., a_1, a_0]; % 分母系数
% 创建传递函数模型
H = tf(num, den);

传递函数的关键属性

创建传递函数后,您可以访问不同的属性,例如:

  • 分母和分子的根分别是极点和零点。
  • 增益是输出幅度与输入幅度的稳态比。
  • 极点的位置决定了稳定性;它们必须位于 s 平面的左半部分。

MATLAB 中用于这些属性的函数

  • Pole (H) 返回极点。
  • Zero (H) 返回零点值。
  • damp(H) 给出极点的阻尼比、自然频率和时间常数。
% 查找极点、零点和阻尼
poles = pole(H);
zeros = zero(H);
damping_info = damp(H);

传递函数运算

您可以使用 MATLAB 对传递函数进行加法、乘法和除法等运算。

a. 加法: 两个传递函数输出的和等于它们的加法。

H1 = tf([2 5], [1 3 4]);
H2 = tf([1], [1 2]);
H_sum = H1 + H2;

b. 乘法: 当两个传递函数相乘时,两个系统可以级联。

H_prod = H1 * H2;

c. 除法: 将一个传递函数除以另一个传递函数等同于将一个系统的输出馈送到另一个系统的输入。

H_div = H1 / H2;

时域分析

研究系统的时间响应对于控制系统设计至关重要。MATLAB 提供了多种表达和评估时域物理活动的方法。

  • 阶跃响应: 阶跃响应对应于系统对中间输入的行为,该输入在 t=0 时从 0 快速变为 1。
step(H);
  • 脉冲响应: 强脉冲输入包括一个意想不到的强输入,它会在系统内引起可识别的响应。
impulse(H);
  • 带初始条件的时间响应:MATLAB 中的 lsim 函数能够对系统对特定输入和初始条件的时间响应进行建模。
% 定义时间向量和输入信号
t = 0:0.01:10;
u = sin(t);
% 模拟系统响应
lsim(H, u, t);

稳定性分析

在控制系统中,稳定性是一个主要问题。MATLAB 提供了几种用于研究传递函数稳定性的工具。

  • 极零点图: 平面中极点和零点的位置可以提供有关稳定性的关键细节。右半平面中的极点表示不稳定系统。
pzmap(H);
  • 根轨迹图:此图说明了系统极点如何响应系统参数(通常是增益)的变化而移动。
rlocus(H);

系统互连

在实际控制系统中,多个子系统通常以并行或串联方式连接。MATLAB 提供了处理这些关系的函数。

  • 串联连接等同于两个传递函数级联在一起。
H_series = series(H1H2);
  • 两个传递函数的相加产生并联连接。
H_parallel = parallel(H1H2);
  • 反馈互连: 在控制系统设计中,反馈回路至关重要。您可以使用 MATLAB 设计具有反馈的系统。
H_feedback = feedback(H1H2);

MATLAB 中传递函数的优点

有效的系统操作和表示

  • 简化符号: 可以通过高阶微分方程解释的复杂动态系统可以使用传递函数紧凑直观地表示。使用 MATLAB,这种简明形式很容易处理。
  • 多输入、多输出 (MIMO) 系统处理: MATLAB 使用户能够有效地处理 MIMO 系统。多个输入和输出可以通过传递函数处理,这有助于分析和模拟具有多个信号的系统。
  • 表示之间的转换: MATLAB 促进了系统多种表示之间的转换;包括传递函数模型、状态空间模型和零极增益 (ZPK) 模型。由于这种灵活性,可以根据分析的具体要求轻松地在表示之间移动。

简单的分析和模拟

  • 时域和频域分析: 为了在时域和频域模拟和显示系统响应,MATLAB 提供了内置函数,包括 step、impulse、bode 和 Nyquist。这些函数直接与传递函数对象交互,从而简化了模拟过程。
  • 控制系统工具箱: MATLAB 中的控制系统工具箱提供了广泛的工具,可与传递函数模型一起用于控制分析和设计。其中包括极零点图、频率响应图和根轨迹图,这些对于控制系统的设计和研究至关重要。
  • 传递函数算术: 传递函数代表系统的串联、并联和反馈配置,允许用户在 MATLAB 中执行算术运算。这些函数包括加法、乘法和除法。这使得集成系统和研究复杂关系的任务变得更简单。

模型拟合和系统识别兼容性

  • 系统识别工具箱: 您可以使用可测量数据通过 MATLAB 的系统识别工具箱开发动态系统的数学模型。这些概念的常见表示包括传递函数。一旦找到传递函数,就可以将其用于额外的分析和模拟。
  • 将模型拟合到数据: 工程师可以使用传递函数将观测或实验数据与系统模型进行匹配。为了匹配传递函数模型的参数并从真实世界数据生成准确的系统表示,MATLAB 提供了几种程序。

控制系统的设计和稳定性分析

  • 根轨迹分析: 对于正在微调反馈系统的控制系统设计人员,MATLAB 的 RLocus 工具可以带来巨大的好处。绘制传递函数的根轨迹允许设计人员评估系统作为增益函数的性能和稳定性。
  • 极零点分析: 极点和零点对于确定系统的谐振、稳定性和性能至关重要。传递函数使用户可以轻松地查看它们。MATLAB 的 pump 工具允许您查看系统的极点和零点,从而有助于稳定性分析。
  • 自动控制器创建: 使用传递函数表示和 sisotool 等工具,用户可以直接创建控制器(PID、超前-滞后等)。MATLAB 可以自动完成许多控制设计过程,例如补偿器设计和调优,它还提供实时系统性能反馈。

协助处理连续和离散时间系统

  • 离散时间系统: 离散时间系统和连续时间系统都可以使用 MATLAB 中的传递函数来表示。在传递函数模型中,MATLAB 将 z 变量而不是 s 用于离散时间系统。在处理采样数据或创建数字控制器时,能够快速在这两种形式之间转换非常方便。
  • 使用 MATLAB 的离散时间转换功能可以轻松地在连续和离散传递函数表示之间进行转换。这有助于检查采样或模拟和数字系统架构之间切换的影响。

结论

在时域和频域中,传递函数是建模和研究动态系统的有效工具。MATLAB 的控制系统工具箱提供了广泛的工具,用于创建、操作和分析传递函数。MATLAB 简化了流程,让工程师和研究人员能够专注于从简单的传递函数到复杂的系统互连的系统设计和分析。

MATLAB 中的传递函数不仅可以提高系统分析的效率,还可以提供有关系统性能、稳定性​​和设计更改的信息。无论您是研究离散系统还是连续系统,MATLAB 都为控制系统和信号处理提供了强大的框架。


下一主题小波变换