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

无人船 | 图解基于LQR控制的路径跟踪算法(以欠驱动无人艇Otter为例)

目录

  • 1 离散时间线性二次型问题
  • 2 基于欠驱动无人船动力学的LQR
  • 3 路径跟踪效果分析

1 离散时间线性二次型问题

设状态变量x(k):N→Rn\boldsymbol{x}(k):\mathbb{N}\rightarrow\mathbb{R}^{n}x(k):NRn,控制变量u(k):N→Rm\boldsymbol{u}(k):\mathbb{N}\rightarrow\mathbb{R}^{m}u(k):NRm,状态方程为

xk+1=Akxk+Bkuk,k=0,1,⋯,N−1\boldsymbol{x}_{k+1}=\boldsymbol{A}_{k}\boldsymbol{x}_{k}+\boldsymbol{B}_{k}\boldsymbol{u}_{k}, k=0,1,\cdots, N-1xk+1=Akxk+Bkuk,k=0,1,,N1

最小化性能指标

J(u)=12xNTQfxN+12∑k=0N−1(xkTQkxk+ukTRkuk)J(\boldsymbol{u})=\frac{1}{2}\boldsymbol{x}_{N}^{\mathrm{T}}\boldsymbol{Q}_{f}\boldsymbol{x}_{N}+\frac{1}{2}\sum_{k=0}^{N-1}\left(\boldsymbol{x}_{k}^{\mathrm{T}}\boldsymbol{Q}_{k}\boldsymbol{x}_{k}+\boldsymbol{u}_{k}^{\mathrm{T}}\boldsymbol{R}_{k}\boldsymbol{u}_{k}\right)J(u)=21xNTQfxN+21k=0N1(xkTQkxk+ukTRkuk)

其中 Qf\boldsymbol{Q}_{f}QfQ\boldsymbol{Q}Q 实对称半正定,R\boldsymbol{R}R 实对称正定。Q\boldsymbol{Q}Q 衡量了系统状态向期望轨迹的收敛速度,R\boldsymbol{R}R 衡量了系统能量消耗的相对大小,二者互相制约——希望系统快速收敛往往需要加强控制力度,导致能量耗散。Q\boldsymbol{Q}QR\boldsymbol{R}R 需要结合具体场景进行调节。假设终端时刻固定且终端状态自由。

设值函数满足终端边界条件

V(xN,N)=12xNTPNxN,PN=QfV\left(\boldsymbol{x}_{N}, N\right)=\frac{1}{2}\boldsymbol{x}_{N}^{\mathrm{T}}\boldsymbol{P}_{N}\boldsymbol{x}_{N}, \boldsymbol{P}_{N}=\boldsymbol{Q}_{f}V(xN,N)=21xNTPNxN,PN=Qf

根据贝尔曼方程

V(xN−1,N−1)=min⁡uN−1{12(xN−1TQN−1xN−1+uN−1TRN−1uN−1)+V(xN,N)}V\left(\boldsymbol{x}_{N-1}, N-1\right)=\min _{\boldsymbol{u}_{N-1}}\left\{\frac{1}{2}\left(\boldsymbol{x}_{N-1}^{\mathrm{T}}\boldsymbol{Q}_{N-1}\boldsymbol{x}_{N-1}+\boldsymbol{u}_{N-1}^{\mathrm{T}}\boldsymbol{R}_{N-1}\boldsymbol{u}_{N-1}\right)+V\left(\boldsymbol{x}_{N}, N\right)\right\}V(xN1,N1)=uN1min{21(xN1TQN1xN1+uN1TRN1uN1)+V(xN,N)}

其中

V(xN,N)=12(AN−1xN−1+BN−1uN−1)TPN(AN−1xN−1+BN−1uN−1)V\left(\boldsymbol{x}_{N}, N\right)=\frac{1}{2}\left(\boldsymbol{A}_{N-1}\boldsymbol{x}_{N-1}+\boldsymbol{B}_{N-1}\boldsymbol{u}_{N-1}\right)^{\mathrm{T}}\boldsymbol{P}_{N}\left(\boldsymbol{A}_{N-1}\boldsymbol{x}_{N-1}+\boldsymbol{B}_{N-1}\boldsymbol{u}_{N-1}\right)V(xN,N)=21(AN1xN1+BN1uN1)TPN(AN1xN1+BN1uN1)

为了求得上面等式右侧的最小值,令其对uN−1\boldsymbol{u}_{N-1}uN1的导数为零可得

uN−1=−(RN−1+BN−1TPNBN−1)−1BN−1TPNAN−1xN−1\boldsymbol{u}_{N-1}=-\left(\boldsymbol{R}_{N-1}+\boldsymbol{B}_{N-1}^{\mathrm{T}}\boldsymbol{P}_{N}\boldsymbol{B}_{N-1}\right)^{-1}\boldsymbol{B}_{N-1}^{\mathrm{T}}\boldsymbol{P}_{N}\boldsymbol{A}_{N-1}\boldsymbol{x}_{N-1}uN1=(RN1+BN1TPNBN1)1BN1TPNAN1xN1

KN−1=−(RN−1+BN−1TPNBN−1)−1BN−1TPNAN−1\boldsymbol{K}_{N-1}=-\left(\boldsymbol{R}_{N-1}+\boldsymbol{B}_{N-1}^{\mathrm{T}}\boldsymbol{P}_{N}\boldsymbol{B}_{N-1}\right)^{-1}\boldsymbol{B}_{N-1}^{\mathrm{T}}\boldsymbol{P}_{N}\boldsymbol{A}_{N-1}KN1=(RN1+BN1TPNBN1)1BN1TPNAN1

则此时值函数为

V(xN−1,N−1)=12xN−1TPN−1xN−1V\left(\boldsymbol{x}_{N-1}, N-1\right)=\frac{1}{2}\boldsymbol{x}_{N-1}^{\mathrm{T}}\boldsymbol{P}_{N-1}\boldsymbol{x}_{N-1}V(xN1,N1)=21xN1TPN1xN1

其中PN−1=QN−1+KN−1TRN−1KN−1+(AN−1+BN−1KN−1)TPN(AN−1+BN−1KN−1)P_{N-1} = Q_{N-1} + K_{N-1}^T R_{N-1} K_{N-1} + (A_{N-1} + B_{N-1} K_{N-1})^T P_N (A_{N-1} + B_{N-1} K_{N-1})PN1=QN1+KN1TRN1KN1+(AN1+BN1KN1)TPN(AN1+BN1KN1),容易验证当 PNP_NPN实对称半正定时, PN−1P_{N-1}PN1 依然实对称半正定。根据数学归纳法,离散时间线性二次型最优控制问题的值函数总可以表示为半正定二次型

V(xk,k)=12xkTPkxkV(x_k, k) = \frac{1}{2} x_k^T P_k x_kV(xk,k)=21xkTPkxk

其中半正定矩阵PkP_kPk满足迭代公式

Pk=Qk+KkTRkKk+(Ak−BkKk)Pk+1(Ak−BkKk)=Qk+AkTPk+1Ak−AkTPk+1Bk(Rk+BkTPk+1Bk)−1BkTPk+1Ak\begin{aligned} P_k &= Q_k + K_k^T R_k K_k + (A_k - B_k K_k) P_{k+1} (A_k - B_k K_k) \\ &= Q_k + A_k^T P_{k+1} A_k - A_k^T P_{k+1} B_k \left( R_k + B_k^T P_{k+1} B_k \right)^{-1} B_k^T P_{k+1} A_k \end{aligned}Pk=Qk+KkTRkKk+(AkBkKk)Pk+1(AkBkKk)=Qk+AkTPk+1AkAkTPk+1Bk(Rk+BkTPk+1Bk)1BkTPk+1Ak

称为黎卡提差分方程。线性增益反馈矩阵为

Kk=−(Rk+BkTPk+1Bk)−1BkTPk+1AkK_{k}=-(R_{k}+B_{k}^{T}P_{k+1}B_{k})^{-1}B_{k}^{T}P_{k+1}A_{k}Kk=(Rk+BkTPk+1Bk)1BkTPk+1Ak

最优闭环反馈控制律为:

uk⋆=Kkxku_{k}^{\star}=K_{k}x_{k}uk=Kkxk

称为线性二次调节器(Linear Quadratic Regulator, LQR)

2 基于欠驱动无人船动力学的LQR

针对Otter非线性动力学模型,首先将非线性问题线性化,得到系统线性误差状态方程。具体而言,选择状态量x=[lxyψuvr]T\boldsymbol{x}=\left[ \begin{matrix}{l} x& y& \psi& u& v& r\\\end{matrix} \right] ^Tx=[lxyψuvr]T和控制量u=[τlτmτr]T\boldsymbol{u}=\left[ \begin{matrix} \tau _l& \tau _m& \tau _r\\ \end{matrix} \right] ^Tu=[τlτmτr]T,系统状态方程为x˙=f(x,u)\boldsymbol{\dot{x}}=\boldsymbol{f}\left( \boldsymbol{x},\boldsymbol{u} \right)x˙=f(x,u),则令f\boldsymbol{f}f在参考点xr\boldsymbol{x}_rxrur\boldsymbol{u}_rur泰勒级数展开,忽略非线性项可得

x˙=f(xr,ur)+∂f(x,u)∂x∣xr,ur(x−xr)+∂f(x,u)∂u∣xr,ur(u−ur)\boldsymbol{\dot{x}}=\boldsymbol{f}\left( \boldsymbol{x}_r, \boldsymbol{u}_r \right) +\frac{\partial \boldsymbol{f}\left( \boldsymbol{x}, \boldsymbol{u} \right)}{\partial \boldsymbol{x}}\mid_{\boldsymbol{x}_r,\boldsymbol{u}_r}^{}\left( \boldsymbol{x}-\boldsymbol{x}_r \right) +\frac{\partial \boldsymbol{f}\left( \boldsymbol{x}, \boldsymbol{u} \right)}{\partial \boldsymbol{u}}\mid_{\boldsymbol{x}_r,\boldsymbol{u}_r}^{}\left( \boldsymbol{u}-\boldsymbol{u}_r \right)x˙=f(xr,ur)+xf(x,u)xr,ur(xxr)+uf(x,u)xr,ur(uur)

其中雅克比矩阵

{A=∂f(x,u)∂x∣xr,ur=[00−ursin⁡ψr−vrcos⁡ψrcos⁡ψr−sin⁡ψr000urcos⁡ψr−vrsin⁡ψrsin⁡ψrcos⁡ψr0000001000Xum+Xu˙0m−Yv˙m+Xu˙0000Yvm+Yv˙−(m−Xu˙)m+Yv˙000Yv˙−Xu˙Iz+Nr˙vrYv˙−Xu˙Iz+Nr˙urNrIz+Nr˙]B=∂f(x,u)∂u∣xr,ur=[0000000001m+Xu˙01m+Xu˙000−DIz+Nr˙0DIz+Nr˙]\begin{cases} \boldsymbol{A}=\frac{\partial \boldsymbol{f}\left( \boldsymbol{x}, \boldsymbol{u} \right)}{\partial \boldsymbol{x}}\mid_{\boldsymbol{x}_r,\boldsymbol{u}_r}^{}=\left[ \begin{matrix} 0& 0& -u_r\sin \psi _r-v_r\cos \psi _r& \cos \psi _r& -\sin \psi _r& 0\\ 0& 0& u_r\cos \psi _r-v_r\sin \psi _r& \sin \psi _r& \cos \psi _r& 0\\ 0& 0& 0& 0& 0& 1\\ 0& 0& 0& \frac{X_u}{m+X_{\dot{u}}}& 0& \frac{m-Y_{\dot{v}}}{m+X_{\dot{u}}}\\ 0& 0& 0& 0& \frac{Y_v}{m+Y_{\dot{v}}}& \frac{-\left( m-X_{\dot{u}} \right)}{m+Y_{\dot{v}}}\\ 0& 0& 0& \frac{Y_{\dot{v}}-X_{\dot{u}}}{I_z+N_{\dot{r}}}v_r& \frac{Y_{\dot{v}}-X_{\dot{u}}}{I_z+N_{\dot{r}}}u_r& \frac{N_r}{I_z+N_{\dot{r}}}\\\end{matrix} \right]\\ \boldsymbol{B}=\frac{\partial \boldsymbol{f}\left( \boldsymbol{x}, \boldsymbol{u} \right)}{\partial \boldsymbol{u}}\mid_{\boldsymbol{x}_r,\boldsymbol{u}_r}^{}=\left[ \begin{matrix} 0& 0& 0\\ 0& 0& 0\\ 0& 0& 0\\ \frac{1}{m+X_{\dot{u}}}& 0& \frac{1}{m+X_{\dot{u}}}\\ 0& 0& 0\\ -\frac{D}{I_z+N_{\dot{r}}}& 0& \frac{D}{I_z+N_{\dot{r}}}\\\end{matrix} \right]\\\end{cases}A=xf(x,u)xr,ur=000000000000ursinψrvrcosψrurcosψrvrsinψr0000cosψrsinψr0m+Xu˙Xu0Iz+Nr˙Yv˙Xu˙vrsinψrcosψr00m+Yv˙YvIz+Nr˙Yv˙Xu˙ur001m+Xu˙mYv˙m+Yv˙(mXu˙)Iz+Nr˙NrB=uf(x,u)xr,ur=000m+Xu˙10Iz+Nr˙D000000000m+Xu˙10Iz+Nr˙D

必须指出,由于目标函数为最小化xxxuuu,因此应用时xxxuuu一般分别取为状态误差和控制误差,即跟踪期望输入的同时消除状态误差,也称LQR由误差驱动。如图所示对应了LQR算法的流程:从终端时刻NNN开始反向迭代计算每个时间步kkk的反馈矩阵KkK_{k}Kk,称为反向过程;接着从初始时刻开始,结合系统方程计算每个时间步kkk的最优控制得到最优状态轨迹,称为前向过程。对于给定的时域长度NNN,LQR可以计算唯一的最优轨迹。例如,轨迹优化问题中输入一条初始轨迹{x0,x1,⋯,xN}\{x_{0},x_{1},\cdots,x_{N}\}{x0,x1,,xN},LQR将优化出唯一的 x0⋆,x1⋆,⋯,xN⋆x_{0}^{\star},x_{1}^{\star},\cdots,x_{N}^{\star}x0,x1,,xN

在这里插入图片描述

3 路径跟踪效果分析

定性测试结果:

在这里插入图片描述

在考虑水动力、风力等真实干扰的情况下,跟踪轨迹如下所示,定量测试结果为:

  • 平均跟踪误差:0.212722 m
  • 最大跟踪误差:0.852798 m
  • 最小跟踪误差:0.003284 m

在这里插入图片描述

http://www.lryc.cn/news/605731.html

相关文章:

  • 学习笔记《区块链技术与应用》第4天 比特币脚本语言
  • Docker部署Seata
  • Linux核心转储(Core Dump)原理、配置与调试实践
  • 前端-移动Web-day2
  • 野生动物巡查系统(H题)--2025 年全国大学生电子设计竞赛试题
  • ENSP防火墙部署
  • 快速理解RTOS中的pendsv中断和systick中断
  • Java Stream进阶:map是“一对一”,flatMap是“一对多”
  • H.266 vs H.265/AV1/H.264:从工程落地看下一代视频系统的技术演进
  • 前端核心技术Node.js(五)——Mongodb、Mongoose和接口
  • Web3:在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境
  • 硬核技术协同:x86 生态、机密计算与云原生等技术如何为产业数字化转型筑底赋能
  • 云原生环境 DDoS 防护:容器化架构下的流量管控与弹性应对
  • 对git 熟悉时,常用操作
  • Java学习第九十一部分——OkHttp
  • MongoDB用户认证authSource
  • 微服务架构技巧篇——接口类设计技巧
  • 智能交通顶刊TITS论文分享|跨区域自适应车辆轨迹预测:TRACER框架攻克域偏移难题!
  • PageOffice实现文档并发控制
  • 2025年人形机器人动捕技术研讨会将在本周四召开
  • JVM面试通关指南:内存区域、类加载器、双亲委派与GC算法全解析
  • 暑期算法训练.11
  • wpf之ControlTemplate
  • RabbitMQ 消费者确认 (Ack/Nack) (With Spring Boot)
  • HUD抬头显示器-杂散光测试设备 太阳光模拟器
  • FastGPT + Kymo AI生态创新平台,搭建企业智能化知识管理
  • TTS语音合成|GPT-SoVITS语音合成服务器部署,实现http访问
  • 自动驾驶控制算法——PID算法
  • Linux进程创建,终止与等待
  • 运作管理学习笔记1-运作管理基础