PEG-4 targeting

In the last tutorial, we've encountered the problem that once the situation is no longer idealized (for instance because we have finite burn duration to deal with), it is hard to come up with the correct burn parameters - analytical expressions work up to a point, but far from perfect.

Numerical targeting schemes solve the problem by fitting the trajectory to a target - a trial burn is done, the result is evaluated and compared with the desired result, and based on the errors, the inital parameters are changed and the trajectory is re-run till a match is achieved. Naturally this takes much longer than simulating a simple PEG-7 burn, because the trajectory needs to be computed dozens of times - but it can be optimized that way. Now - how does this work?

The PEG-4 target parameters

PEG-4 burns target the trajectory to a specific point in space and place constraints on the vertical speed at that point. PEG-4 targeting always operates in the same orbital plane, so it involves only prograde and radial burns.

A PEG-4 target consists of a set of five parameters. The first two are easy to understand - they are the ignition time TIG and the targeted altitude H --- if we want to insert into a 1500 km orbit, that's the target altitude. The next two, c1 and c2 determine the vertical speed at the target point via the relation v_V = c2 * v_H + c1 where v_H is the horizontal and v_V the vertical velocity. We'll go into details a bit later, but for an insertion problem we can require c1 = c2 = 0 and hence the target point will be an apsis at the altitude given by H.

The last parameter is the transfer angle thetaT - it is the angular distance along the orbit from the ignition point to the target point. In the ideal Hohmann example, for the first burn the target point would be the apoapsis at 1500 km, the periapsis is at the ignition point, and so the transfer angle is 180 degrees (the distance between apses). In the non-ideal case, that may be slightly different.

Now, what can the PEG-4 fit do? Say we replace the burns in the impulse approximation by finite duration burns, then apoapsis might end up too low- so in the next iteration, we can add some prograde velocity. The apoapsis might also end up at a somewhat wrong transfer angle, so the fit can add some radial upward velocity which makes us reach the apsis earlier. In this way, by balancing radial and prograde changes, eventually a matching solution can be found.

Or not - some targets plainly may not be doable. For instance, requiring an altitude change of 1000 km within a transfer angle of 10 degrees is not something that can be done with the acceleration of a Space Shuttle OMS engine. And in fact, even solutions where the radial component is as large as the prograde are usually meaningless, because these are extremely wasteful burns.

The upshot is that it is entirely possible to specify PEG-4 targets for which the fit won't converge, and the solution to that is to re-think the target and try a better one. So, let's do an example.

PEG-4 insertion

Continue where we left off, with the finite duration bunr sequence for an insertion to 1500 km altitude. Replace the second burn by the following definition:

burn_peg4
Name Hohmann2
time 3390
H 1500000
c1 0.0
c2 0.0
thetaT 160.0

Let's take a look at what the parameters do - the ignition time is roughly at the apsis. The target altitude is 1500 km, c1 and c2 are zero and thetaT is 160 degrees - so in essence we're asking for the fit to produce a solution that is at the same altitude as the apsis 160 degrees behind the apsis - which is realized by a circular orbit.

Why don't we ask for 10 degrees? In principle we could, but that's going to have side effects in non-spherical gravity which we'll take a look at later.

Run the config file and plot altitude vs. time. It might take a while. The result is shown in the black curve below.

Hohmann insertion with PEG-4 targeting.

This isn't bad, but it's not perfect either - what is wrong? Well, if you look carefully, you'll observe that the fit did what it was asked to - some 160 degrees behind the ignition time there is an apsis at 1500 km. The problem is just that the apsis at ignition time never reached to 1500 km in the first place.

And the reason for that is that a burn right at the periapsis increases apoapsis altitude only. But the burns we used have long duration, more than 600 seconds, so a sizable part of the burn is not right at the apsis, which makes it increase both apoapsis and periapsis - but that means we don't reach quite as high. Fix this by changing the prograde velocity target of the first burn to 316.3 and re-run the fit - that brings the apsis up to the desired altitude and the PEG-4 burn produces the red line- nice circular insertion.

If you study the on-screen log, you can also read off the PEG-7 parameters the fit determined need to be used to fulfill the target - there's a sizable radial velocity component coming in.

You can also follow the fit iterations by specifying

fit verbose

in the config block of the config file.

Actually, the insertion to 1500 km is a tough problem for the acceleration available, the ignition time and transfer angles need to be within a narrow range to make the fit converge, so this is not the best playground for a LEO tool. Let's go back to low orbit and study insertion problems for the Space Shuttle.

Continue with Shuttle insertion.


Back to main index     Back to science     Back to LEO targeting

Created by Thorsten Renk 2017 - see the disclaimer, privacy statement and contact information.