0
点赞
收藏
分享

微信扫一扫

【无人水面艇路径跟随控制7】(Matlab)USV代码阅读:euler2根据当前状态 x 和导数 xdot,以及采样时间 ts,计算并返回下一个状态 xnext



【无人水面艇路径跟随控制7】(Matlab)USV代码阅读:根据当前状态 x 和导数 xdot,以及采样时间 ts,计算并返回下一个状态 xnext

  • 写在最前面
  • euler2.m
  • 逐行解释
  • 全部代码


【无人水面艇路径跟随控制7】(Matlab)USV代码阅读:euler2根据当前状态 x 和导数 xdot,以及采样时间 ts,计算并返回下一个状态 xnext_github


🌈你好呀!我是 是Yu欸

🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

写在最前面

USV-path-following
USV路径跟踪LOS控制算法仿真

阅读代码:https://github.com/quyinsong/USV-path-following
运行效果:

【无人水面艇路径跟随控制7】(Matlab)USV代码阅读:euler2根据当前状态 x 和导数 xdot,以及采样时间 ts,计算并返回下一个状态 xnext_无人机_02

【无人水面艇路径跟随控制7】(Matlab)USV代码阅读:euler2根据当前状态 x 和导数 xdot,以及采样时间 ts,计算并返回下一个状态 xnext_目标跟踪_03

euler2.m

这个函数的主要作用是根据当前状态 x 和导数 xdot,以及采样时间 ts,计算并返回下一个状态 xnext

逐行解释

以下是该代码的逐行解释:

代码行/段

解释

function xnext = euler2( xdot,x,ts )

定义一个名为 euler2 的函数,接受三个输入参数 xdotxts,并返回 xnext

% EULER xnext = euler2(xdot,x,ts)

注释,说明该函数使用欧拉二阶方法来积分常微分方程系统。

% x(k+1)=x(k)+ts*(f(x(k),u(k)))

注释,给出了欧拉二阶方法的公式。

% INPUT:

注释,标记输入参数部分的开始。

% xdot: f(x(k),u(k))

注释,解释 xdot 表示系统在状态 x(k) 和输入 u(k) 下的导数。

% x: x(k)

注释,解释 x 是系统的当前状态,记作 x(k)

% ts: sample time

注释,解释 ts 是采样时间。

% OUTPUT:

注释,标记输出参数部分的开始。

% xnext: x(k+1)

注释,解释 xnext 是系统的下一个状态,记作 x(k+1)

xnext=x+ts*xdot;

使用公式 x(k+1) = x(k) + ts * f(x(k), u(k)) 计算下一个状态 xnext

end

结束函数定义。

全部代码

function xnext = euler2( xdot,x,ts )
% EULER  xnext = euler2(xdot,x,ts) Integrate a system of ordinary differential equations using 
%	  Euler's 2nd-order method.
% x(k+1)=x(k)+ts*(f(x(k),u(k)))
% INPUT:
% xdot: f(x(k),u(k))
% x: x(k)
% ts: sample time
% OUTPUT:
% xnext: x(k+1)
% Author:   Quyisnong
% Date:     14th Jan 2022

xnext=x+ts*xdot;

end


举报

相关推荐

0 条评论