1.什么是极值搜索控制?
首先明确一下,对于y=f(x),f(a)是函数f(x)的极大值或极小值,则a为函数f(x)的极值点,极大值点与极小值点统称为极值点。
极值搜索,顾名思义,就是找到极小值点或者极大值点,过程就是不断地调整控制系统参数,使得性能指标达到最优,找到极值点。
Matlab官方有个15分钟左右的视频,一步步地解释了极值搜索控制的原理,并且做了仿真实验,我觉得讲得挺清晰的,非常适合入门
👉 What is Extremum Seeking Control | Learning-Based Control
The Extremum Seeking Control block tunes controller parameters to maximize an objective function. Extremum seeking controllers are model-free adaptive controllers that are useful for adapting to unknown system dynamics and unknown mappings from control parameters to an objective function. When seeking multiple parameters, the Extremum Seeking Control block uses a separate tuning loop for each parameter.
The Extremum Seeking Control block searches for optimal control parameters by modulating (perturbing) the parameters with sinusoidal signals and demodulating the resulting perturbed objective function.
通俗解释:
通俗地讲,极值搜索控制的输入其实是控制性能指标,也就是原来系统的输出,我们求解的就是系统输出达到极值时对应的极值点。对于寻找极大值的系统,如果输入和输出同时增加,表明系统正朝着极值的方向前进,则继续加大输入,反之则减小输入;对于寻找极小值的系统,如果输入和输出同时增加,表明系统正朝着极值的反方向前进,则减小输入,反之则增大输入。简而言之,寻找极大值和极小值的系统略有不同,而输入和输出的同时变化,可以用相乘然后取积分衡量。
极值搜索的优缺点
极值搜索是一种基于非模型(无模型/数据驱动)的实时优化方法,适用于解决动态问题,特别是当人们对一个系统的认识相当有限的时候。例如在实际控制系统中,由于控制系统参数的不确定性和实时变化的特点,使得参考量与输出量之间的函数关系很难被知晓。但只要特性曲线具有先增后减或者先减后增特点(即存在峰值),极值搜索控制算法就可以根据系统特性曲线的上述形状特性来到达峰值点,并使其自适应影响系统的因素变化,提高控制策略的鲁棒性。
极值搜索不仅可以应用在单变量寻优,还能应用在多变量上面。
缺点:局部最优;需要调节的参数比较多。
极值搜索结构:
整体结构不算复杂,θ是系统输入,y是系统输出,输出后面依次接的是解调环节、参数更新环节和调制环节,解调环节是和一个正弦扰动量相乘,参数更新环节主要是比例-积分,调制环节是和一个正弦扰动量相加。
图源:Matlab 的 Extremum Seeking Control 文档
The extremum seeking algorithm uses the following stages to tune a parameter value.
- Modulation — Perturb the value of the parameter being optimized using a low-amplitude sinusoidal signal.
- System Response — The system being optimized reacts to the parameter perturbations. This reaction causes a corresponding change in the objective function value.
- Demodulation — Multiply the objective function signal by a sinusoid with the same frequency as the modulation signal. This stage includes an optional high-pass filter to remove bias from the objective function signal.
- Parameter Update — Update the parameter value by integrating the demodulated signal. The parameter value corresponds to the state of the integrator. This stage includes an optional low-pass filter to remove high-frequency noise from the demodulated signal.
图源:加州大学圣地亚哥分校的Miroslav Krstic的报告《Extremum Seeking Feedback Tools for Real-TimeOptimization》
2.Simulink中的极值搜索控制
示例1:函数极大值搜索
函数表达式:
y
=
−
5
u
2
+
50
u
+
25
y = -5u^2+50u+25
y=−5u2+50u+25
Simulink模型:
运行效果:
示例2:函数极小值搜索
函数表达式:
y
=
u
2
+
2
∗
u
+
1
y = u^2+2*u+1
y=u2+2∗u+1
Simulink模型:
运行效果:
上面两个示例都是用了非常简单的元素,没有加低通高通滤波,收敛效果还是比较好的。
可以看到,在寻找极大值时,比例系数为正数,寻找极小值时,比例系数为负数。比例系数的绝对值越大,收敛越快。
模块
Matlab 2021b后有现成的模块 Extremum Seeking Control
文档:Extremum Seeking Control
配置好参数后,效果和自己用元件搭建之后的是一样的!
参数说明:
- Forcing frequency: Specify the frequency of the modulation and demodulation signals in radians per second. For a given parameter tuning loop, specify a forcing frequency that is lower than the frequencies of important system dynamics and higher than the high-pass and low-pass filter cutoff frequencies.
- theta — Perturbed parameters: Apply these perturbed parameters (θ) to your control system. The block uses the resulting perturbation of the objective function J to compute parameter updates.
- theta_hat — Estimated parameters: Use this output port to obtain the estimated parameter values (ˆθ) before they are perturbed by the modulation signal.
- Demodulation amplitude and Modulation amplitude: For most applications, specify Modulation amplitude ≪ Demodulation amplitude.
3.参考:
[数据驱动控制]通过三个案例搞懂极值搜索控制