主要内容

Low-Pass Filter (Discrete or Continuous)

离散时间或连续时间低通滤波器

  • Low-Pass Filter (Discrete or Continuous) block

库:
Simscape / Electrical / Control / General Control

描述

Low-Pass Filter (Discrete or Continuous) 模块实现符合 IEEE 421.5-2016[1] 标准的低通滤波器。在该标准中,滤波器称为简单时间常数。

您可以使用采样时间参数在积分器的连续实现和离散实现之间切换。

方程

连续

要配置连续时间滤波器,请将采样时间属性设置为 0。这种表示形式等效于以下连续传递函数:

G(s)=KTs+1,

其中:

  • K 是滤波器增益。

  • T 是滤波器时间常数。

根据前面的传递函数,滤波器定义方程为:

{x˙(t)=1T(Ku(t)x(t))y(t)=x(t)y(0)=x(0)=Ku0,

其中:

  • u 是滤波器输入。

  • x 是滤波器状态。

  • y 是滤波器输出。

  • t 是仿真时间。

  • u0 是模块的初始输入。

离散

要配置离散时间滤波器,请将采样时间属性设置为正的非零值,或设置为 -1 以从上游模块继承采样时间。离散表示形式等效于以下传递函数:

G(z)=K(Ts/T)z11+(Ts/T1)z1,

其中:

  • K 是滤波器增益。

  • T 是滤波器时间常数。

  • Ts 是滤波器采样时间。

根据离散传递函数,滤波器方程使用前向欧拉法定义:

{x(n+1)=(1TsT)x(n)+K(TsT)u(n)y(n)=x(n)y(0)=x(0)=Ku0,

其中:

  • u 是滤波器输入。

  • x 是滤波器状态。

  • y 是滤波器输出。

  • n 是仿真时间步。

  • u0 是模块的初始输入。

初始条件

要指定此模块的初始条件,请将初始化设置为:

  • 从模块输入继承 - 模块将状态和输出初始条件设置为初始输入。

  • 指定为参数 - 模块将状态初始条件设置为初始状态的值。

积分限幅

设置饱和上限饱和下限参数以使用抗积分饱和方法。

抗积分饱和方法将积分器状态限制在饱和下限 A 和饱和上限 B 之间:

A<=x<=B.

由于状态受到限制,因此当积分饱和时,输出可以在输入符号反转时立即做出响应。下面的模块图形象地说明了抗积分饱和方法在滤波器中的实现方式。

此模块不提供积分饱和方法。要使用积分饱和方法,请将饱和上限参数设置为 inf,将饱和下限参数设置为 -inf,并在输出端添加一个 saturation 模块。

旁路滤波器动态特性

将时间常数设置为小于或等于采样时间的值可忽略滤波器的动态特性。旁路动态特性时,模块将经过增益缩放的输入直接馈送到输出:

TTsy=Ku

在连续时间情况下,采样时间和时间常数都必须为零。

示例

端口

输入

全部展开

低通滤波器输入信号。模块使用输入初始值来确定状态初始值。

数据类型: single | double

输出

全部展开

低通滤波器输出。

数据类型: single | double

参数

全部展开

低通滤波器增益。

低通滤波器时间常数。在离散实现中,将此值设置为小于采样时间可旁路滤波器的动态特性。

低通滤波器状态上限。将此参数设置为 inf 则无饱和上限;设置为有限值则可防止滤波器积分器上溢。

低通滤波器状态下限。将此参数设置为 -inf 则无饱和下限;设置为有限值则可防止滤波器积分器下溢。

指定此模块的初始状态条件。有关详细信息,请参阅初始条件

模块初始状态。

依赖关系

要启用此参数,请将初始化设置为指定为参数

连续两次模块执行之间的时间。在执行期间,模块产生输出,并在需要时更新其内部状态。有关详细信息,请参阅什么是采样时间?指定采样时间

对于继承的离散时间运行,将此参数设置为 -1。对于离散时间运行,将此参数设置为一个正整数。对于连续时间运行,将此参数设置为 0

如果该模块位于封装子系统或支持在连续运行和离散运行之间切换的可变子系统中,请提升此参数以确保在模块的连续实现和离散实现之间正确切换。有关详细信息,请参阅Promote Block Parameters on a Mask

参考

[1] IEEE Recommended Practice for Excitation System Models for Power System Stability Studies. IEEE Std 421.5-2016. Piscataway, NJ: IEEE-SA, 2016.

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2017b 中推出