- #1
- 10
- 0
I have this problem.
Imagine, in 3D space, a rocket that has to go to a certain point in the minimum possible time, so that when it gets to its destination its speed is 0. How much thrust to apply and in what direction?
My problem is purely ideal: there is no mass loss due to fuel consumption; the thruster has maximum force it can apply and can maintain it indefinitely; the rocket can be considered a point in space, and there's no gravity involved. The orientation and power of the thrust can change at will between 0 and the maximum, and the changes are assumed to happen instantaneously. Since the mass is constant, we can disregard force and just deal with acceleration. So, there is a maximum acceleration. I suspect that there's no need to reduce it below the maximum at any point until reaching the destination, but I can't prove it.
The complication comes from the fact that the rocket can have an arbitrary initial velocity pointing anywhere. Otherwise, the obvious answer would be to accelerate at maximum thrust towards the destination until the distance matches the space needed to "brake", then decelerate (i.e. accelerate in the opposite direction) until it stops, which should happen exactly when it's in the destination. If I didn't mess the calculation up, the distance needed to "brake" is v^2/(2a) where a is the maximum acceleration and v the velocity at a given instant. This is also the solution for the 1D case, which only has the extra complication that the rocket can overshoot once, depending on the initial velocity.
Since we have, in a sense, three points involved (source, destination, and the "tip" of the velocity vector when translated to the rocket), the problem can always be translated to 2D by using the plane that crosses these three points. Therefore, it's enough to solve the problem for the 2D case.
Ideally for me, the solution would be in the form of a function that accepts a velocity vector and a destination point, and gives the acceleration to apply at that instant. It can always be rotated so that the destination is to the right of the rocket on the X axis, in which case a distance to the destination would suffice instead of two coordinates. This diagram will hopefully illustrate it:
Does anyone have a clue on how to find such a function?
Imagine, in 3D space, a rocket that has to go to a certain point in the minimum possible time, so that when it gets to its destination its speed is 0. How much thrust to apply and in what direction?
My problem is purely ideal: there is no mass loss due to fuel consumption; the thruster has maximum force it can apply and can maintain it indefinitely; the rocket can be considered a point in space, and there's no gravity involved. The orientation and power of the thrust can change at will between 0 and the maximum, and the changes are assumed to happen instantaneously. Since the mass is constant, we can disregard force and just deal with acceleration. So, there is a maximum acceleration. I suspect that there's no need to reduce it below the maximum at any point until reaching the destination, but I can't prove it.
The complication comes from the fact that the rocket can have an arbitrary initial velocity pointing anywhere. Otherwise, the obvious answer would be to accelerate at maximum thrust towards the destination until the distance matches the space needed to "brake", then decelerate (i.e. accelerate in the opposite direction) until it stops, which should happen exactly when it's in the destination. If I didn't mess the calculation up, the distance needed to "brake" is v^2/(2a) where a is the maximum acceleration and v the velocity at a given instant. This is also the solution for the 1D case, which only has the extra complication that the rocket can overshoot once, depending on the initial velocity.
Since we have, in a sense, three points involved (source, destination, and the "tip" of the velocity vector when translated to the rocket), the problem can always be translated to 2D by using the plane that crosses these three points. Therefore, it's enough to solve the problem for the 2D case.
Ideally for me, the solution would be in the form of a function that accepts a velocity vector and a destination point, and gives the acceleration to apply at that instant. It can always be rotated so that the destination is to the right of the rocket on the X axis, in which case a distance to the destination would suffice instead of two coordinates. This diagram will hopefully illustrate it:
Does anyone have a clue on how to find such a function?