主要内容

Extended State Observer

R2026b

估计系统的状态和扰动

自 R2024a 起

  • Extended State Observer block icon

库:
Simulink Control Design / Disturbance Observer

描述

使用 Extended State Observer 模块,您可以设计扩张状态观测器 (ESO) 算法,估计和补偿线性时不变系统或线性时变系统中的扰动。这些扰动代表了总扰动,包括未知动态特性以及内部扰动和外部扰动。使用此模块,可基于系统输入和输出来估计给定离散时间或连续时间系统的状态和扰动。

该模块要求您用以下形式指定系统动态特性。

x˙/x+=Ax+Buu+Bddym=Cmx

其中:

  • x 是被控对象状态。

  • x˙ 是连续时间下的状态导数,x+ 是离散时间下的状态更新 x[k+1]。

  • A、Bu 和 Cm 是被控对象动态特性。

  • ym 是可测量被控对象输出。

  • Bd 是扰动输入矩阵。

  • d 模型中的总扰动,包括未知动态特性以及内部扰动和外部扰动。

该模块并不要求您提供被控对象的实际模型。您可以指定从被控对象的物理表示或近似模型中获得的动态特性。因此,估计的准确度将取决于您提供的被控对象近似模型的准确度。

有关详细信息,请参阅使用扩张状态观测器进行控制设计和扰动补偿。

示例

端口

输入

全部展开

将模型的已知输入指定为 Nu×1 的信号,其中 Nu 是模型中的输入数。

将模型的测量输出指定为 Ny×1 的信号,其中 Ny 是模型中的输出数。

将状态矩阵指定为 Nx×Nx 的信号,其中 Nx 是模型中的状态数。

依赖关系

要启用此端口,请选择使用外部源提供模型矩阵(A、Bu、Cm)输入和使用外部源提供 L 输入参数。

将输入矩阵指定为 Nx×Nu 的信号,其中 Nx 是模型中的状态数,Nu 是模型中的输入数。

依赖关系

要启用此端口,请选择使用外部源提供模型矩阵(A、Bu、Cm)输入和使用外部源提供 L 输入参数。

将输出矩阵指定为 Ny×Nx 的信号,其中 Nx 是模型中的状态数,Ny 是模型中的输出数。

依赖关系

要启用此端口,请选择使用外部源提供模型矩阵(A、Bu、Cm)输入和使用外部源提供 L 输入参数。

将扰动矩阵指定为 Nx×Nd 的信号,其中 Nx 是模型中的状态数,Nd 是模型中的扰动数。

依赖关系

要启用此端口,请选择使用外部源提供矩阵 Bd 输入和使用外部源提供 L 输入参数。

将扩张状态的初始条件指定为标量或长度为 Nx + Nd 的向量,其中 Nx 是模型中的状态数,Nd 是模型中的扰动数。

依赖关系

要启用此端口,请选择使用外部源提供初始条件 S0 (x0、d0)输入。

将观测器矩阵指定为 (Nx+Nd)×Ny 的信号。

依赖关系

要启用此端口,请选择使用外部源提供矩阵 L 输入。

输出

全部展开

模型中估计的扰动,以 Nd×1 信号形式返回,其中 Nd 是模型中的扰动数。

模型的估计状态,以 Nx×1 信号形式返回,其中 Nx 是模型中的状态数。

依赖关系

要启用此端口,请选择输出估计的模型状态 xhat。

参数

全部展开

要以交互方式编辑模块参数,请使用属性检查器。在 Simulink® 工具条中,在仿真选项卡的准备库中,选择属性检查器。

“参数”选项卡

指定控制器时域。

当您选择离散时间时,请使用采样时间参数指定采样时间。

将已知被控对象动态特性指定为状态空间模型对象。您可从被控对象的物理表示或近似模型获得此模型。

选择此选项可分别使用模块输入端口 A、Bu 和 Cm 来指定模型矩阵 A、Bu 和 Cm。

依赖关系

要启用此端口,还必须选择使用外部源提供 L 输入参数。

当您将模型矩阵指定为模块输入时,请使用此参数来指定模型中的状态数。

依赖关系

要启用此参数,请选择使用外部源提供模型矩阵(A、Bu、Cm)输入和使用外部源提供 L 输入参数。

当您将模型矩阵指定为模块输入时,请使用此参数来指定模型中的输入数。

依赖关系

要启用此参数,请选择使用外部源提供模型矩阵(A、Bu、Cm)输入和使用外部源提供 L 输入参数。

当您将模型矩阵指定为模块输入时,请使用此参数来指定模型中的输出数。

依赖关系

要启用此参数,请选择使用外部源提供模型矩阵(A、Bu、Cm)输入和使用外部源提供 L 输入参数。

指定用于计算扰动矩阵 Bd 的增益值 k,使得 Bd = k×Bu。

选择此选项可使用模块输入端口 Bd 指定扰动矩阵 Bd。

依赖关系

要启用此端口,还必须选择使用外部源提供 L 输入参数。

当您将扰动矩阵指定为模块输入时,请使用此参数来指定模型中的输入数。

依赖关系

要启用此参数,请选择使用外部源提供矩阵 Bd 输入和使用外部源提供 L 输入参数。

将扩张状态的初始条件指定为标量或长度为 Nx + Nd 的向量,其中 Nx 是模型中的状态数,Nd 是模型中的扰动数。

选择此选项可使用模块输入端口 S0 指定初始条件。

“调节”选项卡

将观测器带宽 ωo 指定为正标量。

指定闭环极点的间距。对于给定的观测器带宽 ωo 和极点间距 δ,模块将闭环极点置于 [ωoωo+δωo+δ×2…ωo+δ×n],其中 n 是闭环极点数。

选择此选项可使用模块输入端口 L 指定观测器矩阵。

“模块”选项卡

根据仿真环境或硬件要求指定浮点精度。

对于连续时间模型,模块仅支持 double 数据类型。

将模型中的时滞指定为标量或长度为 Nu 的向量,其中 Nu 是模型中的输入数。

对于离散时间模型,将时滞指定为采样时间的整数 (k) 倍。离散时间下的时滞由 Td = k×Ts 表示。

依赖关系

要启用此参数,请选择指定输入延迟参数。

选择此选项可在模块输出 xhat 处输出估计的模型状态。

扩展功能

全部展开

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

版本历史记录

在 R2024a 中推出