主要内容

不确定系统参考模型跟踪的极值寻优控制

这个例子展示了一个系统的反馈和前馈增益的设计,这是一种常见的控制器设计技术。在这里,您使用极值寻优控制器跟踪给定的参考对象模型,通过自适应反馈和前馈增益的不确定动态系统。

不确定线性系统的自适应增益调谐

对于这个例子,考虑下面的一阶线性系统。

x ˙ t 一个 0 x t + b 0 u t

在这里, x t u t 分别为系统的状态输入和控制输入。常数 一个 0 b 0 是未知的。

本示例的目标是跟踪以下参考电厂模型的性能,该模型定义了所需的瞬态和稳态行为。

x ˙ r e f t 一个 x r e f t + b r t

在这里, x 裁判 t 参考植物的状态和 r t 为参考信号。

控制信号的目的 u t 是做州吗 x t 不确定系统跟踪参考状态 x 裁判 t

u t K x t - K r t

设计的控制器包含一个反馈项, Kx t ,和前馈项, - 基米-雷克南 t

将这个控制信号代入未知的线性系统动力学。

x ˙ t 一个 0 x t + b 0 K x t - K r t

你可以将这个表达式改写为如下公式所示。

x ˙ t 一个 0 + b 0 K x t - b 0 K r t

理想情况下,如果系数 一个 0 b 0 的标称系统动力学,然后你可以确定控制器增益 K 利用极点配置技术。这样做将产生以下匹配条件。

一个 0 + b 0 K 一个 b 0 K b

当您使用单个增益值作为前馈和反馈增益时,此匹配条件可能不能满足的所有可能值 一个 0 b 0 .对于更一般的解决方案,您可以优化两个不同的增益值(多参数优化)。

对于本例,使用下面的未知系统和参考动力学。

x ˙ t - 1 x t + u t

x ˙ r e f t - 3. x r e f t + 2 r t

在这种情况下,理想的控制增益为 K - 2

极值寻优控制自适应增益调谐

为了实现对上述问题的极值寻优控制(ESC)方法,您定义一个目标函数,然后由ESC控制器使其最大化以找到控制器增益 K

对于本例,使用以下目标函数。

J - 1 0 x t - x r e f t 2 d t

下图显示了极值搜索控制的设置。

  • 成本函数由参考系统和实际系统的输出计算得到。

  • 极值寻优控制器更新增益参数。

  • 使用新的增益值更新控制动作。

  • 这个控制动作被应用到实际系统中。

firstOrderRefTracking_Esc金宝appSimulink模型实现了这个问题配置。

mdl =“firstOrderRefTracking_Esc”;open_system (mdl)

在这个模型中,您使用极值寻求控制块来优化增益值。

系统动力学和目标子系统包括参考模型、对象(包括实际系统和控制动作)和目标函数计算。这些元素都是用MATLAB函数块实现的。

open_system ([mdl“/系统动力和目标”])

指定增益值的初始猜测值。

IC = 0;

极值搜索控制块使用调制信号来扰动参数值。然后,在计算参数更新之前,对目标函数信号中产生的变化进行解调。为这个块配置寻极值控制参数。

首先指定要调优的参数数量(N)及学习速率(lr).

N = 1;lr = 0.55;

通过指定解调和调制信号的频率(ω)、阶段(phi_1phi_2),其振幅(一个b).

ω= 5;%迫使频率= 1;%解调振幅b = 0.1;%调制振幅phi_1 = 0;%解调相位phi_2 = 0;%调制阶段

对于本例,极值查找控制块被配置为从解调信号中去除高频噪声。设置相应的低通滤波器的截止频率。

omega_lpf = 1;

模拟模型。

sim (mdl);

要检查参考跟踪性能,请查看仿真的状态轨迹。实际的轨迹会在五秒内收敛到参考轨迹。

open_system ([mdl“/系统动力学和目标/状态”])

要检查ESC控制器的行为,首先查看目标函数,它很快达到最大值。

open_system ([mdl“/系统动力和目标/成本”])

通过最大化目标函数,ESC控制器将控制增益值优化到其理想值-2附近。增益值的波动是由极值寻优控制块的调制信号引起的。

open_system ([mdl/系统动力学和目标/增益K])

bdclose (mdl)

另请参阅

相关的话题