我有一枚确实具有追捕行为的导弹,可以追踪(并试图影响)其(静止)目标。
它工作正常,只要你不扫射,当你发射导弹。如果您在进行攻击,导弹会趋向其目标飞行。
我先通过切向加速到目标,先杀死速度的切向分量,然后对目标进行弯腰来解决此问题。
因此,我在-vT中加速直到vT接近0。然后在vN方向上加速。
在此可行的同时,我正在寻找一种更优雅的解决方案,使导弹能够在不首先杀死切向分量的情况下撞击目标。
我有一枚确实具有追捕行为的导弹,可以追踪(并试图影响)其(静止)目标。
它工作正常,只要你不扫射,当你发射导弹。如果您在进行攻击,导弹会趋向其目标飞行。
我先通过切向加速到目标,先杀死速度的切向分量,然后对目标进行弯腰来解决此问题。
因此,我在-vT中加速直到vT接近0。然后在vN方向上加速。
在此可行的同时,我正在寻找一种更优雅的解决方案,使导弹能够在不首先杀死切向分量的情况下撞击目标。
Answers:
看来问题在于,导弹只是将自身指向目标,而不考虑其当前速度。为您的导弹分配最大角度,以使推力可以偏离运动线。
在每次制导迭代时,您都将计算其垂直于目标的速度。弄清楚必须将其引擎倾翻多少,以便将速度的这一分量清零,然后将其裁剪到可以使引擎倾翻的最大值。
在飞行的第一部分中,它会稍微向图2中直线的右边移动,但是随着飞行,引擎会将这个分量归零,最终将直线驶向目标。
请注意,在这种情况下,将只有一帧,其中引擎的偏差不为零或最大值。如果您跟踪的是移动的目标,则随着目标的移动,每个周期的偏转都较小。
这可能不是您所追求的优雅解决方案,但是我发现,如果我放慢导弹的速度,如果它会错过,它会在接近目标时有效地跟踪和转向,并且可以击中目标。您可以在导弹靠近时增加其转弯速率,而不是降低速度,但这可能会给玩家“哇,我敢肯定这会错过”令人讨厌的惊喜。
这看起来可能不太好,但是它肯定会阻止导弹进入轨道,并阻止敌人从导弹上空盘旋直到燃料耗尽。
这是我完成的演示示例(第三枚或第四枚导弹在1:05演示了这一点):http : //www.youtube.com/watch?v= 9uiGMC_nH2w
当导弹也接近目标时,您还可以提高导弹的准确性(因为它有更近的信号要锁定)。视频也显示了大约一分钟。红色圆圈表示导弹的实际目标。在远距离飞行时,这会使其产生混乱的飞行路径,然后拉近距离。
就像我说的那样,它可能不是您要找的答案,但我希望它能有所帮助。
这是一种方法:让我们旋转图表。
现在火箭是炮弹了!
它具有固定的“向下”加速度,即垂直于从其发射位置到目标的矢量。我在上面画了一条绿色虚线。我们称其为“ 参考地平线”。(请注意,此参考水平是恒定的!火箭是从固定位置发射的,以固定位置为目标。)
我们(从维基百科)知道对于没有空气阻力的炮弹d = v^2 * sin(2 * theta) / g
,
d
是行进的水平距离(射击位置与目标之间的距离)v
是射弹发射的速度theta
是相对于射弹射击的地平线的角度(射击方向矢量相对于参考地平线的角度)重新整理的方程g
给出g = v^2 * sin(2 * theta) / d
。
炮弹方程中的常数g
是重力引起的加速度。我们可以用它来表示由于火箭推进而产生的加速度。这也很好– 在恒定的方向上仍然是恒定的加速度。
g
在发射火箭时运行该方程式。它会告诉您将火箭垂直朝参考地平线加速多少,以击中目标。由于该加速度的方向是恒定的,因此不会形成轨道。
繁荣。