想象一个“无人机”和一个二维平面上的目标点。假设目标是静止的,则有八个参数:

P = my position
Q = target's position
V = my velocity
I = my moment of inertia
w = my angular velocity
s = my angular position
T = max thrust
U = max torque


无人机的工作是尽可能快地到达目标,并遵守最大扭矩和最大推力。只有两种方式施加扭矩,因为这仅在2d平面中。推力仅限于相对于飞行器方向的一个方向,并且不旋转无人机就无法瞄准。忽略任何阻力,您可以假装它在2D外部空间中漂浮。假设无人机在时间间隔t(可能每隔0.01秒)检查一个方程,插入参数,并相应地调整其扭矩和推力。


方程应该是什么

我们尝试了什么?

我们知道无人机沿x方向到达目标所花费的时间必须是在y方向上相同。随着时间的推移,每个维度上都必须有一些积分,以便根据总推力来考虑不断变化的推力,并且在给定角度位置变化的情况下,每个方向上的总推力也要考虑在内。我不知道如何以实用的方式将扭矩和推力联系在一起,除非有其他方法,否则可以调用一个函数来给出应在t间隔内施加的推力和扭矩。

评论

我们在这里不能说太多。显然,没有太多事情要做,所以答案将不会很有帮助。

缺少一个参数:质量。除非您的推力只是直接基于加速度。在这种情况下,扭矩可能直接取决于角加速度,因此您不需要惯性矩。

无人机可以悬停吗?答案将取决于车辆是完整系统还是非完整系统。

#1 楼

您需要做一点微积分。

首先要注意输入参数:

实际上加速度取决于力和质量。您未指定最大单位。推力很大,所以让我们假设你的最大推力就是你的加速度。我们可以为您的max做同样的事情。然后假设它也是您的加速度(角度),而忽略惯性矩。实际上,您可以将转矩除以惯性矩以获得角加速度,

,因此可以通过为无人机提供两个静态属性来简化它们:

 thrust as max acceleration
 and torque as max angular acceleration


而不是赋予它四个属性

Force and mass
and Torque and MoI.


现在计算数字:

现在您拥有了无人机的位置:Px,Py, S-它是一阶导数,速度:Vx,Vy,W-它是二阶导数,加速度:Ax,Ay,U

实际上,Ax,Ay将根据S(角位置)和T(加速度)由:

Ax = T ×  cos(S)
Ay = T × -sin(S)


这应该为您提供一种生成公式的好方法。现在,您要从P投影一条与Q相交的线的时间最少。当然,它将是一条曲线,而不是一条直线,因此您必须使用微积分。

您可以尝试在math.stackexchange.com上问相同的问题以获取特定的公式。

#2 楼

该解决方案实际上不是很线性。至少有两种情况:
1)最快的解决方案不需要一直都在最大转弯。
2)最快的解决方案不需要一直都在最大转弯。

对于1)的示例,认为目标位于无人机的正前方。
对于2)的示例,认为目标非常接近,但在无人机的正后方;最快的解决方案是类似圆形的路径。

最后,除非您在到达时还添加所需的速度/自旋,否则问题在某种程度上没有得到明确说明。

因此,如上所述,该问题(即使增加了质量)也要求在一个未指定的问题系统中求解不连续的微分方程。可能存在一个封闭形式的解决方案,但是当我不得不这样做时(在模拟系统中,而不是在现实世界中的系统中),我最终使用了简单的计划程序和PID类型的行为,而不是找到“最佳” “解决方案。例如,一个简单的计划器可能是首先以闭合形式施加扭矩,使其在自旋零时转向所需的目标点(这是一个简单的二次方程式),然后打开最大推力您将以非常高的速度到达该点。
如果要以速度0到达该点,则必须在轨迹的中间反向推力。