给定系统的反馈和前馈增益的设计是一种常见的控制器设计技术。在该示例中,使用极值寻找控制器通过适应不确定动态系统的反馈和前馈增益来跟踪给定参考工厂模型。
对于此示例,请考虑以下一阶线性系统。
在这里, 和 是系统的状态和控制输入。常数 和 是未知的。
此示例的目标是跟踪以下参考工厂模型的性能,该模型定义了所需的瞬态和稳态行为。
在这里, 参考植物的状态和 为参考信号。
控制信号的目的 是做州吗 不确定系统跟踪参考状态 .
所设计的控制器包含一个反馈项 还有一个前馈项 .
将这个控制信号代入未知的线性系统动力学。
你可以将这个表达式改写为如下公式所示。
理想情况下,如果系数 和 的标称系统动力学,然后你可以确定控制器增益 使用杆子放置技术。这样做会产生以下匹配条件。
当您使用单个增益值作为前馈和反馈增益时,此匹配条件可能不能满足的所有可能值 和 .对于更通用的解决方案,您可以调整两个不同的增益值(MultiParameter调整)。
对于本例,使用下面的未知系统和参考动力学。
在这种情况下,理想的控制增益为 .
为了实现对上述问题的极值寻优控制(ESC)方法,您定义一个目标函数,然后由ESC控制器使其最大化以找到控制器增益 .
对于本例,使用以下目标函数。
下图显示了极值寻求控制的设置。
成本函数由参考系统和实际系统的输出计算得到。
极值寻优控制器更新增益参数。
使用新的增益值更新控制操作。
这个控制动作被应用到实际系统中。
该问题配置在firstOrderrefTracking_Esc
万博1manbetxSimulink模型。
mdl =“firstOrderRefTracking_Esc”;Open_System(MDL)
在该模型中,使用极值寻求控制块优化增益值。
系统动力学和目标子系统包括参考模型、对象(包括实际系统和控制动作)和目标函数计算。这些元素都是用MATLAB函数块实现的。
open_system ([mdl'/系统动态和目标'])
指定增益值的初始猜测值。
ic = 0;
极值搜索控制块使用调制信号来扰动参数值。然后,在计算参数更新之前,对目标函数信号中产生的变化进行解调。为这个块配置寻极值控制参数。
首先指定要调整的参数数(N
)及学习速率(LR.
).
n = 1;LR = 0.55;
通过指定解调和调制信号的频率(ω
)、阶段(phi_1
和phi_2
),他们的幅度(一个
和b
).
ω= 5;%迫使频率= 1;%解调振幅b = 0.1;%调制幅度phi_1 = 0;%解调相位phi_2 = 0;%调制阶段
对于该示例,Extremum寻求控制块被配置为从解调信号中移除高频噪声。为相应的低通滤波器设置截止频率。
omega_lpf = 1;
模拟模型。
sim (mdl);
要检查参考跟踪性能,请查看仿真的状态轨迹。实际的轨迹会在五秒内收敛到参考轨迹。
open_system ([mdl“/系统动力学和目标/状态”])
要检查ESC控制器的行为,首先查看目标函数,它很快达到最大值。
open_system ([mdl'/系统动态和客观/成本'])
通过最大化目标函数,ESC控制器在其理想值的-1周围优化控制增益值。增益值的波动是由于来自极值寻找控制块的调制信号。
open_system ([mdl'/系统动态和目标/增益K'])
bdclose (“firstOrderRefTracking_Esc”)