【MFAC】基于全格式动态线性化的无模型自适应控制

简介: 【MFAC】基于全格式动态线性化的无模型自适应控制

来源:侯忠生教授的《无模型自适应控制:理论与应用》(2013年科学出版社)。

👉对应书本 3.4 单输入单输出系统(SISO)全格式动态线性化(FFDL) 和 4.4 单输入单输出系统(SISO)全格式动态线性化(FFDL)的无模型自适应控制(MFAC)

PFDL仅考虑了在下一时刻的系统输出变化量与当前时刻的一个固定长度滑动时间窗口内的输入变化量之间的动态时变关系,而FFDL还考虑了当前时刻的具有某个长度的滑动时间窗口内的所有控制输入变化量和系统输出变化量对下一时刻的系统输出变化量的影响。

FFDL

全格式动态线性化

(full form dynamic linearization)

数据模型:

Δ y ( k + 1 ) = ϕ f , L y , L u T ( k ) Δ H L y , L u ( k ) \Delta y\left( {k + 1} \right) = \phi_{f,L_{y},L_{u}}^{T}(k)\Delta H_{L_{y},L_{u}}(k)Δy(k+1)=ϕf,Ly,LuT(k)ΔHLy,Lu(k)

伪偏导(PPD) ϕ f , L y , L u ( k ) \phi_{f,L_{y},L_{u}}(k)ϕf,Ly,Lu(k) 的下标 f 表示full

L y L_yLy 和 L u L_uLu 为伪阶数,0 ≤ L y ≤ n y 0≤L_y≤n_y0≤Ly≤ny,1 ≤ L u ≤ n u 1≤L_u≤n_u1≤Lu≤nu.

当 L y = 0 L_y=0Ly=0 和 L u = L L_u=LLu=L 时,FFDL数据模型可变为PFDL数据模型;

当 L y = 0 L_y=0Ly=0 和 L u = 1 L_u=1Lu=1 时,FFDL数据模型可变为CFDL数据模型。

ϕ f , L y , L u ( k ) = [ ϕ 1 ( k ) , ϕ 2 ( k ) , … , ϕ L y ( k ) , ϕ L y + 1 ( k ) , … , ϕ L y + L u ( k ) ] T \phi_{f,L_{y},L_{u}}(k) = \left\lbrack {\phi_{1}(k),\phi_{2}(k),\ldots{,\phi}_{L_{y}}(k),\phi_{L_{y} + 1}(k),\ldots,\phi_{L_{y} + L_{u}}(k)} \right\rbrack^{T}ϕf,Ly,Lu(k)=[ϕ1(k),ϕ2(k),…,ϕLy(k),ϕLy+1(k),…,ϕLy+Lu(k)]T

Δ H L y , L u ( k ) = [ Δ y ( k ) , … , Δ y ( k − L y + 1 ) , Δ u ( k ) , … , Δ u ( k − L u + 1 ) ] T \Delta H_{L_{y},L_{u}}(k) = \left\lbrack {\Delta y(k),\ldots,\Delta y\left( {k - L_{y} + 1} \right),\Delta u(k),\ldots,\Delta u\left( {k - L_{u} + 1} \right)} \right\rbrack^{T}ΔHLy,Lu(k)=[Δy(k),…,Δy(k−Ly+1),Δu(k),…,Δu(k−Lu+1)]T

SISO-FFDL-MFAC

学习控制律

u ( k ) = u ( k − 1 ) + ρ L y + 1 ϕ L y + 1 ( k ) [ y ∗ ( k + 1 ) − y ( k ) ] ∣ ϕ L y + 1 ( k ) ∣ 2 + λ − ϕ L y + 1 ( k ) ∑ i = 1 L y ρ i ϕ i ( k ) Δ u ( k − i + 1 ) ∣ ϕ L y + 1 ( k ) ∣ 2 + λ − ϕ L y + 1 ( k ) ∑ i = L y + 2 L u + L y ρ i ϕ i ( k ) Δ u ( k − L y − i + 1 ) ∣ ϕ L y + 1 ( k ) ∣ 2 + λ u(k) = u\left( {k - 1} \right) + \frac{\rho_{L_{y} + 1}\phi_{L_{y} + 1}(k)\left\lbrack {y^{*}\left( {k + 1} \right) - y(k)} \right\rbrack}{\left| \phi_{L_{y} + 1}(k) \right|^{2} + \lambda} - \frac{\phi_{L_{y} + 1}(k){\sum\limits_{i = 1}^{L_{y}}\rho_{i}}\phi_{i}(k)\Delta u(k - i + 1)}{\left| \phi_{L_{y} + 1}(k) \right|^{2} + \lambda} - \frac{\phi_{L_{y} + 1}(k){\sum\limits_{i = L_{y} + 2}^{L_{u} + L_{y}}\rho_{i}}\phi_{i}(k)\Delta u\left( k - L_{y} - i + 1 \right)}{\left| \phi_{L_{y} + 1}(k) \right|^{2} + \lambda}u(k)=u(k−1)+∣ϕLy+1(k)∣2+λρLy+1ϕLy+1(k)[y∗(k+1)−y(k)]−∣ϕLy+1(k)∣2+λϕLy+1(k)i=1∑Lyρiϕi(k)Δu(k−i+1)−∣ϕLy+1(k)∣2+λϕLy+1(k)i=Ly+2∑Lu+Lyρiϕi(k)Δu(k−Ly−i+1)

步长因子 ρ ∈ ( 0 , 1 ] ( i = 1 , 2 , . … , L y + L u ) ρ∈(0,1] (i= 1,2, .… , L_y+L_u)ρ∈(0,1](i=1,2,.…,Ly+Lu)

PPD参数估计算法

{ ϕ ^ f , L y , L u ( k ) = ϕ ^ f , L y , L u ( k − 1 ) + η Δ H L y , L u ( k − 1 ) μ + ∣ | Δ H L y , L u ( k − 1 ) | ∣ 2 [ Δ y ( k ) − ϕ ^ f , L y , L u T ( k − 1 ) Δ H L y , L u ( k − 1 ) ] \{\hat{\phi}_{f,L_{y},L_{u}}(k) = {\hat{\phi}}_{f,L_{y},L_{u}}\left( {k - 1} \right) + \frac{\eta\Delta H_{L_{y},L_{u}}\left( {k - 1} \right)}{\mu + \left| \middle| \Delta H_{L_{y},L_{u}}\left( {k - 1} \right) \middle| \right|^{2}}\left\lbrack \Delta y(k) - {\hat{\phi}}_{f,L_{y},L_{u}}^{T}(k - 1)\Delta H_{L_{y},L_{u}}\left( {k - 1} \right) \right\rbrack{ϕ^f,Ly,Lu(k)=ϕ^f,Ly,Lu(k−1)+μ+∣∣ΔHLy,Lu(k−1)∣∣2ηΔHLy,Lu(k−1)[Δy(k)−ϕ^f,Ly,LuT(k−1)ΔHLy,Lu(k−1)]

其中,μ>0为权重因子,为了让控制算法更具一般性,引入步长因子 η∈(0,2] .

PPD参数重置算法

如果

∥ ϕ f , L y , L u ^ ( k ) ∥ ≤ ε \left \| {\hat{\phi_{f,L_{y},L_{u}}}(k)} \right \| \leq \varepsilonϕf,Ly,Lu^(k)≤ε

或

∥ Δ H L y , L u ∥ ≤ ε \left \| {\Delta H_{L_{y},L_{u}}} \right \| \leq \varepsilonΔHLy,Lu≤ε

或

s i g n ( ϕ f , L y , L u ^ ( k ) ) ≠ s i g n ( ϕ f , L y , L u ^ ( 1 ) ) sign\left( {\hat{\phi_{f,L_{y},L_{u}}}(k)} \right) \neq sign\left( {\hat{\phi_{f,L_{y},L_{u}}}(1)} \right)sign(ϕf,Ly,Lu^(k))=sign(ϕf,Ly,Lu^(1))

则

ϕ f , L y , L u ^ ( k ) = ϕ f , L y , L u ^ ( 1 ) \hat{\phi_{f,L_{y},L_{u}}}(k) = \hat{\phi_{f,L_{y},L_{u}}}(1)ϕf,Ly,Lu^(k)=ϕf,Ly,Lu^(1)

算法重置机制的引入是为了使PPD估计算法具有更强的对时变参数的跟踪能力。

仿真实验

【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)

相关文章
|
Ubuntu Java Linux
在Spring Boot中使用iTextPDF创建动态PDF文档
iTextPDF 是一个用于创建和操作 PDF(Portable Document Format)文档的流行的 Java 库。它提供了一套全面的功能,用于处理 PDF 文件,包括创建新文档、修改现有文档以及提取信息。
1362 1
|
存储 Java Maven
IDEA常用插件之类Jar包搜索Maven Search
IDEA常用插件之类Jar包搜索Maven Search
2190 0
|
SQL 开发框架 算法
【MFAC】基于偏格式动态线性化的无模型自适应控制
【MFAC】基于偏格式动态线性化的无模型自适应控制
|
8月前
|
安全 API 决策智能
AutoGen 架构演进全梳理:从 v0.4 到 Microsoft Agent Framework
Microsoft AutoGen(2023–2025)是开创性多智能体开源框架,以“群聊式协作”替代单Prompt链,支持智能体对话、工具调用、代码执行与人工介入。v0.4达技术巅峰,后并入Microsoft Agent Framework(MAF)。其核心范式——LLM专家团队协同——已成行业标准。
2348 3
AutoGen 架构演进全梳理:从 v0.4 到 Microsoft Agent Framework
|
3月前
|
人工智能 API 开发工具
保姆级实操|Codex 桌面版安装 + CC Switch 接入DeepSeek、千问等第三方 API 完整教程
对于长期使用Codex作为AI编程助手的开发者而言,原生模式下只能使用官方模型服务,成本、模型选择都存在局限,而CC Switch作为专门适配Codex、Claude Code等开发工具的AI网关代理,可以实现Codex桌面客户端底层流量转发,无缝接入任意兼容OpenAI协议的第三方大模型API,包含DeepSeek系列、千问、GLM等主流推理模型,既能保留Codex原生IDE联动、代码对话、仓库解析、插件生态等全部桌面端能力,又能自主选择模型、管控调用成本,是研发群体非常实用的改造方案。很多新手在落地这套方案时,常常混淆两种接入模式(配置写入模式与Local Routing本地路由模式)、不
2543 0
|
8月前
|
XML 编译器 C语言
在 MATLAB 中手动安装 MinGW-w64 编译器的详细教程
本教程详解MATLAB中手动安装MinGW-w64编译器的完整流程,涵盖版本兼容性检查、MSYS2或预编译包安装、PATH配置、mex-setup设置及编译验证。特别提醒:R2020b起官方已不支持MinGW-w64,推荐优先使用内置编译器(如Visual C++)。
4192 1
|
JavaScript 开发工具 C++
灵码智能体体验之路
本文记录了使用智能开发工具的入门体验。从VS Code更新、安装MCP插件到解决依赖问题(如Node.js),再到配置智能体生成代码,整个过程详细描述了遇到的问题与解决方案。例如,插件报错需安装Node.js、模型选择不当影响执行等。尽管存在一些不便,比如手动安装依赖和配置入口难找,但智能体的强大功能令人印象深刻,能够通过交互生成代码、调试并运行,甚至支持截图提问解决问题,极大地提升了开发效率,整体体验令人满意!
4365 18
|
人工智能
AI推理方法演进:Chain-of-Thought、Tree-of-Thought与Graph-of-Thought技术对比分析
大语言模型推理能力不断提升,从早期的规模扩展转向方法创新。2022年Google提出Chain-of-Thought(CoT),通过展示推理过程显著提升模型表现。随后,Tree-of-Thought(ToT)和Graph-of-Thought(GoT)相继出现,推理结构由线性链条演进为树状分支,最终发展为支持多节点连接的图网络。CoT成本低但易错传,ToT支持多路径探索与回溯,GoT则实现非线性、多维推理,适合复杂任务。三者在计算成本与推理能力上形成递进关系,推动AI推理向更接近人类思维的方向发展。
986 4
|
机器学习/深度学习 算法 PyTorch
PINN物理信息神经网络多变量时序预测研究(Matlab代码实现)
PINN物理信息神经网络多变量时序预测研究(Matlab代码实现)
1641 0
|
机器学习/深度学习 算法 物联网
【MPC】模型预测控制(MPC)之多变量和状态空间研究(Matlab代码实现)
【MPC】模型预测控制(MPC)之多变量和状态空间研究(Matlab代码实现)
1022 0