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

news/2024/11/23 0:16:20/

来源:侯忠生教授的《无模型自适应控制:理论与应用》(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_y Ly L u L_u Lu 为伪阶数, 0 ≤ L y ≤ n y 0≤L_y≤n_y 0Lyny 1 ≤ L u ≤ n u 1≤L_u≤n_u 1Lunu.
L y = 0 L_y=0 Ly=0 L u = L L_u=L Lu=L 时,FFDL数据模型可变为PFDL数据模型;
L y = 0 L_y=0 Ly=0 L u = 1 L_u=1 Lu=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(kLy+1),Δu(k),,Δu(kLu+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(k1)+ϕLy+1(k)2+λρLy+1ϕLy+1(k)[y(k+1)y(k)]ϕLy+1(k)2+λϕLy+1(k)i=1Lyρiϕi(k)Δu(ki+1)ϕLy+1(k)2+λϕLy+1(k)i=Ly+2Lu+Lyρiϕi(k)Δu(kLyi+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(k1)+μ+ΔHLy,Lu(k1)2ηΔHLy,Lu(k1)[Δy(k)ϕ^f,Ly,LuT(k1)ΔHLy,Lu(k1)]

其中,μ>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代码)


http://www.ppmy.cn/news/57137.html

相关文章

命令行 控制 易微联 wifi通断器

有个设备需要远程控制开关,最简单的方式就是通过一直在线运行的 Pi,进行命令行控制智能开关。 1、材料准备 找个最便宜的智能开关,话说易微联的做的真是便宜,销售量也很大。 这种 网上叫 Wifi通断器,或者智能开关&a…

音视频八股文(8)-- h264 AnnexB三层结构

NALU(Network Abstract Layer Unit) ⾳视频编码在流媒体和⽹络领域占有重要地位;流媒体编解码流程⼤致如下图所示: H264简介 H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准⾥称为H.264&#xff0c…

Vue(简单了解Cookie、生命周期)

一、了解Cookie 类似于对象响应携带数据 输入用户名密码跳转到指定页面 点击指定页面中其中一个按钮跳转到另一个指定页面(再不需用输入用户名密码) 例如现在很多浏览器实现七天免密登录 简单理解:就是在网站登录页面之后,服务…

Shiro相关知识

1、Shiro功能概述 Apache Shiro是一个功能强大且易于使用的 Java 安全框架,可执行身份验证、授权、加密和会话管理。 主要功能: Authentication:身份认证。登录时验证身份信息。 Authorization:授权操作。访问控制的过程&…

AWSFireLens轻松实现容器日志处理

applog应用程序和fluent-bit共享磁盘,日志内容是json格式数据,输出到S3也是JSON格式 applog应用部分在applog目录: Dockerfile文件内容 FROM alpine RUN mkdir -p /data/logs/ COPY testlog.sh /bin/ RUN chmod 777 /bin/testlog.sh ENTRYP…

( 数组和矩阵) 485. 最大连续 1 的个数 ——【Leetcode每日一题】

❓485. 最大连续 1 的个数 难度:简单 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大…

SimpleCG库安装使用

SimpleCG库是一个简单的Windows图形库,对GDI及窗口和消息机制进行了简单封装,从而达到类似Turbo C图形库的调用方法,目的是为了初学C语言的同学能快速上手图形界面编程。使用对象包括所有初学C语言的同学,尤其是中学生&#xff0c…

MySQL数据库,JDBC连接数据库操作流程详细介绍

前言: 在学完 MySQL 和 Java 后,我们通常会尝试使用 Java编译器 连接 MySQL数据库,从而达到使用编译器来操作数据库的效果。连接的这个过程会用 JDBC 相关知识,因此我把 JDBC 包的下载及导入流程,以及 JDBC 的使用流程…