当前位置: 首页 > news >正文

自适应反步控制:理论与设计

自适应反步控制

文章目录

  • 自适应反步控制
    • 1. 基本思想
      • A. 第一步
      • B. 第二步

1. 基本思想

基于传统反步法,考虑了系统方程中以线性形式出现的未知参数。核心思想包括参数估计率和控制率。

考虑二阶系统:
{x˙1=x2+φ1T(x1)θx˙2=u+φ2T(x1,x2)θ(1)\begin{cases} \dot{x}_1 = x_2 + \varphi_1^{T}(x_1)\theta \\ \dot{x}_2 = u + \varphi_2^{T}(x_1, x_2)\theta \end{cases} \tag{1} {x˙1=x2+φ1T(x1)θx˙2=u+φ2T(x1,x2)θ(1)

其中 θ\thetaθ 是未知的常数参数(列向量),φ1(x1)\varphi_1(x_1)φ1(x1)φ2(x1,x2)\varphi_2(x_1,x_2)φ2(x1,x2) 为已知的非线性函数。uuu 是控制输入,xrx_rxrx1x_1x1 期望跟踪到的轨迹。


设计目标有二确保闭环系统的所有状态保持有界;让 x1x_1x1 渐进跟踪到 xrx_rxr

假设:参考轨迹 xrx_rxr 及其导数有界并可预测;φ1(x1)\varphi_1(x_1)φ1(x1)φ2(x1,x2)\varphi_2(x_1,x_2)φ2(x1,x2) 是已知且连续可微的;参数不确定性是线性形式出现的。这些假设的目的是保证在设计自适应律时,Lyapunov 导函数可以被有效约束,并且更新率是可实现的。

如果参数 θ\thetaθ 已知,可以使用静态积分分反步法设计虚拟控制率 α1\alpha_1α1,但此处的参数 θ\thetaθ 并非已知,所以需要设计合适的 θ\thetaθ 更新规则以保证闭环稳定。


A. 第一步

定义跟踪误差
z1=x1−xr(2)z_1 = x_1 - x_r \tag{2} z1=x1xr(2)
z2=x2−α1−x˙r(3)z_2 = x_2 - \alpha_1 - \dot{x}_r \tag{3} z2=x2α1x˙r(3)

z2z_2z2 表示“实际 x2x_2x2 与理想目标值 α1+x˙r\alpha_1 + \dot{x}_rα1+x˙r 之间的偏差”。

对(2)求导数,并将(1)、(3)带入:
z˙1=x˙1−x˙r=x2+φ1T(x1)θ−x2+z2+α1=z2+α1+φ1Tθ(4)\dot{z}_1 = \dot{x}_1 - \dot{x}_r = x_2 + \varphi_1^{T}(x_1)\theta - x_2 + z_2 + \alpha_1 = z_2 + \alpha_1 + \varphi_1^{T}\theta \tag{4} z˙1=x˙1x˙r=x2+φ1T(x1)θx2+z2+α1=z2+α1+φ1Tθ(4)

其中 θ\thetaθ 是未知的,不能直接使用已知参数的反步法。设计 θ^1\hat{\theta}_1θ^1 用以近似 θ\thetaθ;同时设计一个参数更新率来在线调整 θ^1\hat{\theta}_1θ^1

设计 Lyapunov 候选函数:
V1=12z12+12θ~1TΓ−1θ~1(5)V_1 = \frac{1}{2} z_1^2 + \frac{1}{2} \tilde{\theta}_1^{T} \Gamma^{-1} \tilde{\theta}_1 \tag{5} V1=21z12+21θ~1TΓ1θ~1(5)
其中 Γ>0\Gamma > 0Γ>0 是参数更新率的自适应增益矩阵,θ~1=θ−θ^1\tilde{\theta}_1 = \theta - \hat{\theta}_1θ~1=θθ^1 表示参数估计误差。

对其求导:
V˙1=z1z˙1+θ~1TΓ−1θ~˙1(6)\dot{V}_1 = z_1 \dot{z}_1 + \tilde{\theta}_1^{T} \Gamma^{-1} \dot{\tilde{\theta}}_1 \tag{6} V˙1=z1z˙1+θ~1TΓ1θ~˙1(6)

将(4)带入:
V˙1=z1(z2+α1+φ1Tθ)+θ~1TΓ−1θ~˙1(7)\dot{V}_1 = z_1(z_2 + \alpha_1 + \varphi_1^{T}\theta) + \tilde{\theta}_1^{T} \Gamma^{-1} \dot{\tilde{\theta}}_1 \tag{7} V˙1=z1(z2+α1+φ1Tθ)+θ~1TΓ1θ~˙1(7)

展开:
V˙1=z1z2+z1α1+z1φ1Tθ^1+z1φ1Tθ~1−θ~1TΓ−1θ^˙1(8)\dot{V}_1 = z_1 z_2 + z_1 \alpha_1 + z_1 \varphi_1^{T} \hat{\theta}_1 + z_1 \varphi_1^{T} \tilde{\theta}_1 - \tilde{\theta}_1^{T} \Gamma^{-1} \dot{\hat{\theta}}_1 \tag{8} V˙1=z1z2+z1α1+z1φ1Tθ^1+z1φ1Tθ~1θ~1TΓ1θ^˙1(8)

由于 φ1Tθ~=θ~1Tφ1\varphi_1^{T}\tilde{\theta} = \tilde{\theta}_1^{T}\varphi_1φ1Tθ~=θ~1Tφ1,可得:
V˙1=z1z2+z1α1+z1φ1Tθ^1+θ~1T(φ1z1−Γ−1θ^˙1)(9)\dot{V}_1 = z_1 z_2 + z_1 \alpha_1 + z_1 \varphi_1^{T} \hat{\theta}_1 + \tilde{\theta}_1^{T}(\varphi_1 z_1 - \Gamma^{-1} \dot{\hat{\theta}}_1) \tag{9} V˙1=z1z2+z1α1+z1φ1Tθ^1+θ~1T(φ1z1Γ1θ^˙1)(9)

定义虚拟控制 α1\alpha_1α1 和参数更新率:
α1=−c1z1−φ1Tθ^1\alpha_1 = -c_1 z_1 - \varphi_1^{T} \hat{\theta}_1 α1=c1z1φ1Tθ^1
θ^˙1=Γφ1z1(10)\dot{\hat{\theta}}_1 = \Gamma \varphi_1 z_1 \tag{10} θ^˙1=Γφ1z1(10)

带入可得:
V˙1=−c1z12+z1z2(11)\dot{V}_1 = -c_1 z_1^2 + z_1 z_2 \tag{11} V˙1=c1z12+z1z2(11)


B. 第二步

设计实际控制输入 uuu,使 z2→0z_2 \to 0z20

由(3)可得:
z˙2=x˙2−α˙1−x¨r(12)\dot{z}_2 = \dot{x}_2 - \dot{\alpha}_1 - \ddot{x}_r \tag{12} z˙2=x˙2α˙1x¨r(12)

注意 α1\alpha_1α1 实际上是 x1x_1x1θ^1\hat{\theta}_1θ^1xrx_rxr 的函数,故采用复合函数求导方式。


选取新的 Lyapunov 函数:
V2=V1+12z22(14)V_2 = V_1 + \frac{1}{2} z_2^2 \tag{14} V2=V1+21z22(14)

求导:
V˙2=−c1z12+z2(z1+z˙2)(15)\dot{V}_2 = -c_1 z_1^2 + z_2(z_1 + \dot{z}_2) \tag{15} V˙2=c1z12+z2(z1+z˙2)(15)

为消除未知参数项 θ\thetaθ,设计:
u=−z1−c2z2+∂α1∂x1x2−(φ2−∂α1∂x1φ1)Tθ^2+∂α1∂θ^1Γφ1z1+∂α1∂xrx˙r+x¨r(18)u = -z_1 - c_2 z_2 + \frac{\partial \alpha_1}{\partial x_1} x_2 - \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right)^T \hat{\theta}_2+ \frac{\partial \alpha_1}{\partial \hat{\theta}_1} \Gamma \varphi_1 z_1 + \frac{\partial \alpha_1}{\partial x_r} \dot{x}_r + \ddot{x}_r \tag{18} u=z1c2z2+x1α1x2(φ2x1α1φ1)Tθ^2+θ^1α1Γφ1z1+xrα1x˙r+x¨r(18)

此时(13)变为:
z˙2=−z1−c2z2+(φ2−∂α1∂x1φ1)T(θ−θ^2)(19)\dot{z}_2 = -z_1 - c_2 z_2 + \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right)^T (\theta - \hat{\theta}_2) \tag{19} z˙2=z1c2z2+(φ2x1α1φ1)T(θθ^2)(19)

定义新的 Lyapunov 函数:
V2=V1+12z22+12θ~2TΓ−1θ~2(20)V_2 = V_1 + \frac{1}{2} z_2^2 + \frac{1}{2} \tilde{\theta}_2^{T} \Gamma^{-1} \tilde{\theta}_2 \tag{20} V2=V1+21z22+21θ~2TΓ1θ~2(20)

求导:
V˙2=−c1z12−c2z22−θ~2TΓ−1θ^˙2+θ~2T(φ2−∂α1∂x1φ1)z2(21)\dot{V}_2 = -c_1 z_1^2 - c_2 z_2^2 - \tilde{\theta}_2^{T} \Gamma^{-1} \dot{\hat{\theta}}_2 + \tilde{\theta}_2^{T} \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right) z_2 \tag{21} V˙2=c1z12c2z22θ~2TΓ1θ^˙2+θ~2T(φ2x1α1φ1)z2(21)

令:
θ^˙2=Γ(φ2−∂α1∂x1φ1)z2(22)\dot{\hat{\theta}}_2 = \Gamma \left( \varphi_2 - \frac{\partial \alpha_1}{\partial x_1} \varphi_1 \right) z_2 \tag{22} θ^˙2=Γ(φ2x1α1φ1)z2(22)

最终得到:
V˙2=−c1z12−c2z22(23)\dot{V}_2 = -c_1 z_1^2 - c_2 z_2^2 \tag{23} V˙2=c1z12c2z22(23)

可保证系统全局渐近稳定。

http://www.dtcms.com/a/321580.html

相关文章:

  • 网络基础浅谈
  • NVME M.2 SSD固态硬盘掉盘:也可能是主板出问题
  • 【Layui】调整 Layui 整体样式大小的方法
  • 【Lua】XLua一键构建工具
  • 关于 Rust 异步底层实现中 waker 的猜测
  • Xiphos 配备 GTH 计算机模块的 Q8J 低 SWaP
  • 基于LLM的Chat应用测试方法探索:系统化评估与持续优化
  • python之注册机制总结
  • 等保测评-Nginx中间件
  • 强光干扰下误报率↓82%!陌讯多模态融合算法在高空抛物检测的实战优化
  • 微软发布Project Ire项目:可自主检测恶意软件的人工智能系统
  • docker下载安装和使用(Hyper-V方式)
  • 信息系统项目范围管理高频题库精讲
  • windows拉取镜像失败
  • 双驱智造革命:物理方程+工业数据训练,突破增材制造温度场预测瓶颈
  • CETOL 6σ 帮助提升活检器械精度并降低制造成本
  • Horse3D引擎研发记录(二):基于QtOpenGL使用仿Three.js的BufferAttribute结构重构三角形绘制
  • 复数的复平面加减乘除运算与在极坐标中的运算对应关系
  • 算法训练之栈
  • provide 和 inject 最佳实践
  • 多任务实时进度监控系统:基于ABP vNext与SignalR的架构实践
  • [激光原理与应用-175]:测量仪器 - 频谱型 - 拉曼光谱仪的工作原理、内部组成、核心芯片、核心算法
  • 项目一系列-第3章 若依框架入门
  • Java中的方法引用操作符(::)详解与实战应用
  • “A flash of inspiration“, protect us from prompt injection?
  • 实习的收获
  • 【Jmeter】设置线程组运行顺序的方法
  • 安装部署K8S集群环境(实测有效版本)
  • 复杂姿态漏检率↓79%!陌讯多模态算法在安全带穿戴识别的落地实践
  • Node.js Turbo 包入门教程