无人船/无人艇路径跟踪控制 Matlab/ Simulink效果 基于Foseen船舶模型,LOS制导子系统+反步控制器制作 LOS+backstepping; 注:采用ESO实现漂角/侧滑角估计 另可定制LOS,控制律,观测器等,例如ALOS,ILOS,滑膜,PID,RBF等。

在无人船/无人艇的研究领域,路径跟踪控制是关键技术之一。今天咱们就来聊聊基于 Foseen 船舶模型,利用 LOS 制导子系统和反步控制器实现的路径跟踪控制,这里还会用到 ESO 来实现漂角/侧滑角估计哦,并且还能定制各种不同的策略,比如 ALOS、ILOS、滑膜、PID、RBF 等。

LOS 制导子系统

LOS(Line - of - Sight)制导子系统,简单理解就是让无人船/艇朝着目标点的视线方向前进。它的核心思想可以用下面这段伪代码来简单示意:

% 假设当前位置为(x,y),目标位置为(x_d,y_d)
delta_x = x_d - x;
delta_y = y_d - y;
theta_d = atan2(delta_y, delta_x); % 计算目标方向角

这段代码就是计算从当前位置到目标位置的方向角 theta_d,无人船/艇就应该朝着这个方向行驶,这样才能逐渐靠近目标点。

反步控制器

反步控制是一种很巧妙的非线性控制策略,它通过逐步构建虚拟控制量,最终得到实际的控制输入。以无人船/艇的航向控制为例,假设船舶模型的状态方程可以简化为:

$\dot{\psi} = r$

其中 $\psi$ 是航向角,$r$ 是角速度。

我们希望航向角跟踪上 LOS 制导子系统给出的目标航向角 $\thetad$,定义跟踪误差 $e1 = \psi - \theta_d$。

设计第一个虚拟控制量 $\alpha_1$ 来稳定这个误差,比如:

$\alpha1 = k1 e_1$

无人船/无人艇路径跟踪控制 Matlab/ Simulink效果 基于Foseen船舶模型,LOS制导子系统+反步控制器制作 LOS+backstepping; 注:采用ESO实现漂角/侧滑角估计 另可定制LOS,控制律,观测器等,例如ALOS,ILOS,滑膜,PID,RBF等。

这里 $k_1$ 是一个正的增益系数,它决定了对误差的调节强度。

实际的控制输入 $u$ 可以基于 $\alpha_1$ 进一步设计,例如:

$u = k2 (r - \alpha1)$

其中 $k_2$ 也是一个正的增益系数。

ESO 实现漂角/侧滑角估计

ESO(Extended State Observer)扩展状态观测器,它能够对系统中一些难以直接测量的状态进行估计,比如漂角/侧滑角。ESO 的设计相对复杂一些,这里简单介绍下其原理性的代码框架:

% 假设系统状态为[x1,x2],输出为y
% 初始化观测器参数
beta01 = 100;
beta02 = 1000;
h = 0.01; % 采样时间

% 初始观测值
z1 = y(1);
z2 = 0;

for k = 2:length(y)
    e = y(k) - z1;
    z1 = z1 + h * (z2 - beta01 * e);
    z2 = z2 + h * (-beta02 * e);
    % z2 这里就可以近似看作对漂角/侧滑角相关状态的估计
end

这段代码通过不断迭代,根据系统的输出 y 来更新观测值 z1z2z2 就可以作为对漂角/侧滑角相关状态的估计值,为后续的控制提供重要信息。

Matlab/Simulink 效果展示

在 Simulink 中搭建基于上述理论的模型,将 Foseen 船舶模型、LOS 制导子系统、反步控制器以及 ESO 合理连接起来。通过设置不同的目标路径和初始条件,运行仿真,可以直观地看到无人船/艇的路径跟踪效果。

比如设置一个简单的直线目标路径,运行仿真后,我们可以看到无人船/艇从初始位置逐渐调整航向,沿着 LOS 方向逼近目标路径,在反步控制器和 ESO 的共同作用下,能够较为准确地跟踪目标路径,减少跟踪误差。

如果对 LOS 进行定制,比如改为 ALOS(Adaptive Line - of - Sight)自适应视线制导,就可以根据船舶的当前状态实时调整视线距离,使得跟踪更加灵活和高效。同样,改变控制律为滑膜控制或者 PID 控制等,也会带来不同的控制效果。

通过在 Matlab/Simulink 中不断尝试不同的组合和参数调整,能够深入理解各种策略对无人船/艇路径跟踪控制的影响,为实际应用提供有力的技术支持。希望大家也能动手试试,探索无人船/艇路径跟踪控制的更多可能性。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐