1. 项目背景与核心挑战
在无人系统控制领域,欠驱动无人船(USV)的路径跟踪问题一直是研究热点。这类系统通常只有两个独立控制输入(推进力和转向力矩),却需要实现三维空间中的位姿控制,这种欠驱动特性使得传统控制方法往往难以奏效。去年发表在控制领域顶刊IEEE Transactions on Control Systems Technology(11-trans)上的这篇论文,提出了一种基于Lyapunov方法的创新控制策略,在保证稳定性的同时实现了高精度的路径跟踪。
我最近完整复现了该论文的Simulink仿真环境,过程中发现几个关键点值得分享:首先,原论文对Lyapunov函数的构造过程描述较为简略;其次,实际仿真时参数整定需要特别注意量纲转换;最后,横向控制与纵向控制的耦合处理直接影响跟踪效果。下面将结合代码实现细节,拆解这套控制器的设计精髓。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统建模与问题描述
2.1 USV动力学模型
欠驱动USV通常采用3自由度模型描述平面运动:
code复制ẋ = u cosψ - v sinψ
ẏ = u sinψ + v cosψ
ψ̇ = r
其中(u,v)为体坐标系下的线速度,r为角速度。控制输入通常只有推进力τ_u和转向力矩τ_r,这使得系统在横荡方向(v方向)缺乏直接控制能力。
论文中采用的归一化模型通过引入无量纲参数,将系统动态简化为:
code复制η̇ = J(ψ)ν
Mν̇ + C(ν)ν + Dν = τ
这个形式更便于Lyapunov稳定性分析。我在Simulink中实现时,特别注意了模型参数的单位统一问题——实际船舶参数需要转换为无量纲形式才能直接套用论文中的控制律。
2.2 路径跟踪与轨迹跟踪的区别
许多初学者容易混淆这两个概念:
- 路径跟踪:只关心船体与参考路径的位置误差,不约束时间特性
- 轨迹跟踪:需要严格按时到达路径上的指定点,同时控制速度曲线
论文提出的方法实际上同时解决了两种需求。在代码实现时,轨迹跟踪需要额外增加速度规划模块,这在原论文的Simulink图中并未明确展示,但通过分析附录的微分方程可以推导出来。
3. Lyapunov控制器设计详解
3.1 能量函数的构造技巧
论文的核心创新在于构造了如下Lyapunov函数候选:
``
