Coelliptic Gemini/Apollo rendezvous

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
Thanks for the great quality feedback that you included with the scenario files. That is a developers dream!

Try the attached patch. There were a couple of uninitialised members of the Timer class that I think are causing the problem.
 

Attachments

  • SextantMFD_V0.8.1_P1_20090820.zip
    101.1 KB · Views: 22

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
That did the trick -- thanks!

Based on what I've seen so far in the sims, I've got a couple of ideas to refine the procedure. I'm getting ready to do a test flight and try out one of those ideas, and will also check Sextant MFD's numbers along the way. If I see any problems, I'll let you know.

SAM
 

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
OK, here's where I'm at. As always, anyone who wants to jump in and offer comments, suggestions, etc. is welcome to do so.

I ran a test flight to look at several things: (1) Sextant MFD (zip of beta test stuff is attached); (2) try the method in lunar orbit to make sure I wasn't accidentally incorporating some Earth-specific factor into the general method; and (3) to try to get a handle on some problems with the out-of-plane corrections.

As of now, it looks to me like the in-plane correction method is basically correct, although it might benefit from some tweaking. There seems to be a tendency to overcorrect at times, but I might be able to introduce factors into the equations to correct for this. That would be transparent to the user; instead of computing <parameter> = C1 * tgt_radius + C2 * delta-H + B1, he or she would compute <parameter> = C3 * tgt_radius + C4 * delta-H + B2. The tables would just have different numbers, in other words.

There are three axes of motion in play for the active craft; motion in-plane, motion out-of-plane; and the third dimension which would correspond to a delta-vee directly at or away from the target craft. Of course, those don't line up with the prograde, normal, and radial vectors of the active craft's orbital motion. I was hoping that might work to my advantage, and that in correcting for the target craft's in-plane apparent motion the active craft would also regulate its own prograde motion (or at least a workable combination of prograde and radial motion), and that in doing so the third dimension would more or less take care of itself. Unfortunately, that doesn't seem to be happening. With very tightly defined pilot error terms (basically simulating what might be expected if it were Neil Armstrong flying the rendezvous), the method fails about 3% of the time, which indicates the error rate would be larger if any of us mere mortals were to try it. The most common failure is that the rendezvous runs out of time, and the most common reason seems to be that the prograde velocity is eaten away by the MCCs. In that situation, the active craft ends up on a target-relative straight-line trajectory in toward the target, but at say 4 km range and closing at 1 m/s (in LEO, normal time for the entire rendezvous trajectory is ~1900 seconds) ... or worse, on a target-relative straight-line trajectory backing away from the target at a few m/s. So I'm gonna have to put something in to check and maintain the active craft's target-relative forward motion. One of the things I tried in the test flight was adding in to the MCC this procedure: if range rate toward the target is less than the predicted value, do a burn toward the target to make up the difference. That seemed to work, at least in the few tries I did it.

The off-plane corrections present a special problem. For an example of that, eyeball the attached image "oop_prob." Ignore the plus signs and consider this situation. The active craft is in the green orbit, directly over the equator, and the target craft is somewhat above it in the yellow orbit. They're at the blue dots toward the left of the image. Both are moving from west to east, and relative inclination is exaggerated to make the example more clear. From the active craft's perspective (pitched up to target from wings level with horizon), the target will appear to be moving to the right. This would happen even if the craft were at the same radii, but the fact that the active craft is lower and so has a higher velocity exaggerates this apparent motion even further. However, the rendezvous should occur 130 degrees later, at the red dot over Panama, and the proper trajectory for the active craft to get there is the blue arc, which requires a leftward delta-vee.

I think the basic method of doing off-plane corrections the same way as in-plane corrections still works in the braking phase, when the pilot is merely trying to maintain zero apparent motion. However, that simply means burning toward the target's motion if it moves, and no special attention to in-plane vs out-of-plane motion is necessary at that point. For any MCCs to span a longer distance, though, I think a different method is necessary.

I tried a method Aldrin described in his dissertation (pages 94-99), and that worked quite well using only numbers from Orbit MFD and Sextant MFD. Because of significant figure limitations it doesn't work perfectly, but it's good enough even with that data that two or three MCCs (each successively fine-tuning) do the trick. The computations would be too involved for an Orbinaut to do in real time while doing the rendezvous, but I'm hoping that can be simplified somewhat. The general rationale in what I'm trying to put together isn't to make the approach to the braking phase perfect, it's merely to make that approach good enough so that the error to be cleaned up in the final braking phase is reasonable. Between that and the fact that the coelliptic configuration makes certain things very predictable, I'm hoping this scheme can be simplified by strategically placing the out-of-plane MCCs so that the computations might simplify to a reasonable workload, or maybe even looking up some numbers in tables or plots of delta-h vs target, etc. At the same time I'll try to do away with checking Orbit MFD's numbers and work it all back around to the pilot's assumed target radius, delta-h, etc.

So at this point it's starting to look like there will be three distinct styles of MCCs; one based on in-plane apparent motion, one based on other measurements to establish the out-of-plane correction, and one along a straight line to the target craft. That will be more complex than the tutorial example, but hopefully I can get it to where it's not overwhelming for a real-time rendezvous. If it's any consolation, that should make the procedure a little more realistic in how it "felt" to do this for real -- not "felt" in an Oprah-ish kind of way, but rather saying that the real procedure did involve looking up values on polar plots, etc.

I've just bought a new 1 TB drive for my PC and have added Solaris x86/x64 to it. The difference between that and 32-bit XP is flabbergasting. For example, the "program C" I mentioned earlier in the thread does 2.89 million cases per minute in Solaris x64 as compared to 1.56 Mcases/min under a DOS shell in XP on the same PC. Since some of these programs take quite a while to run, I'm going to port the code over to Solaris. Shouldn't be much work, since everything's in straight C. Anyway, that's what I'll be working on for the next day or two. I'm also itching to put aside the math for a few moments at some point and get back into the cockpit. :p

SAM
 

Attachments

  • sextant_test.zip
    657.7 KB · Views: 12
  • oop_prob.JPG
    oop_prob.JPG
    20.4 KB · Views: 32
Last edited:

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
Thanks for the feedback Sam. A few little bugs for me to look at there, I'll let you know when I have anything.
 

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
I've fixed some of the bugs:

1) Typo fixed. :p

2) That's a strange one. I can only assume that the STOPWATCH_STATUS was not being read in correctly from the scenario file (it defaults to stopped). Perhaps another addon interfered with the reading in some way.

3) The bug here is that the colours should have been green in the first place, instead of the colours you saw. If you look at SextantMFD.DeltaGlider.cfg that is supplied with the package, all the colours are green. SextantMFD.default.cfg has the green, yellow, red colours you were seeing and the MFD was using those when SextantMFD.DeltaGlider.cfg was not loaded. Feel free to change the colours however you want. Fixed. I'm still working on the incorrect angles.

---------- Post added 28-08-09 at 13:38 ---------- Previous post was 27-08-09 at 21:30 ----------

4) After matching scratching around and pulling my hair out, I realised that the local horizon angle bug you report is not a bug actually. The problem was that you had the reference body for the MFD set to "Earth" but you were orbiting the Moon. I'm guessing that it was like that because you copied the section from a scenario file where you were orbiting Earth. Either change the reference in the scenario file to "Moon" or load the scenario, press the REF button, select the Moon, then quicksave. EDIT: I've changed the code so that if that line is missing from the scenario file, the reference body is set to the major gravitational influence.

All that investigating did reveal another (small) bug though and it was revealed to me by the "start paused" test you did. What was happening there was that the measurement frame for the local horizon angle was actually being used from the previous MFD update step. That means that the local horizon angle you were seeing when it first loaded was based on an uninitialised measurement frame. Any similarity to the expected value is pure coincidence. That bug is now fixed.

The sign of the in-plane angle has still got me baffled. EDIT2: Fixing the reference body seems to have fixed that bug too, which makes sense because it needs the reference body to determine the orientation of the orbital plane in the ecliptic frame. The sign of the off-plane motion also matches the sign of the yaw. Both pitch and yaw are determined based on right handed rotations from the current attitude *to* the target, so, if the target is above and left, both would be positive.

I'll upload a new version soon for your testing.
 

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
I'm keeping busy on this end. It finally dawned on me that a lot of what I'm doing is ridiculously parallelizable; the individual simulated orbits are all independent of each other, so each can be computed separately. So I get to try something I've always wanted to dig into -- at the moment, I'm about halfway done converting my home network to a mini-Beowulf cluster. Kinda kludgey, but it works.

SAM

Edit -- I didn't see your comments about bug #4 at first ... that rhythmic sound you're hearing is me repeatedly slapping myself. :lol:
 

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
So I get to try something I've always wanted to dig into -- at the moment, I'm about halfway done converting my home network to a mini-Beowulf cluster. Kinda kludgey, but it works.
Sounds fun. If did that, my wife would be standing by, shaking her head... :p

Edit -- I didn't see your comments about bug #4 at first ... that rhythmic sound you're hearing is me repeatedly slapping myself. :lol:
Lol.

Version 0.9.0 is now ready for download: http://bitbucket.org/tblaxland/sextant-mfd/downloads/
 

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
I got sidetracked for longer than I thought it would take, and during that time my ability to run XP was somwhat impaired, but everything's back to the way it was last week. The Beowulf is up and running. Each slave PC boots from a CD, which pulls the boot code via the network from the Linux server to mount its filesystems from the server, including its root partition. IOW, the CDs turn the PCs into diskless workstations, so I can leave XP, etc. on the disk. I even tried booting up the slaves with everything disconnected except the power and Ethernet cable (so no keyboard or monitor), and it still works.

PVM, the free software suite I'm using, works great! The execution time for some of my longer programs is about 1/4 of what it was before. Considering that I've got two good PCs plus a weak one, and the two good ones are both dual core, that's about as efficient as I could hope for. The apps have to be recoded to use the PVM calls, but that's not terribly difficult -- if you've ever played around with socket programming at all, even if you've only written a small program that you can type "Hello, world" into and output it on a remote client, you're already halfway to being able to write a simple PVM app. It scales easily; at one point I had 90 remote slave processes running, but since they were all running on the same few PCs it didn't improve performance any further. But I know a guy who has a training room at work with about 25 PCs in it -- maybe I can talk him into letting me "borrow" them this weekend.

PVM's not the only tool out there, there's another popular one called MPI which I've downloaded, but haven't looked at yet.

With XP back on the disk, I just installed Sextant MFD and gave it a quick look a few minutes ago. As far as I can tell, everything looks fine. I'll do a more rigorous check in the next day or so and let you know if I see anything. Thanks once again for doing this!

SAM
 

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
[snip lots of good stuff]
You are on a serious mission there mate! Awesome work. :speakcool:

With XP back on the disk, I just installed Sextant MFD and gave it a quick look a few minutes ago. As far as I can tell, everything looks fine. I'll do a more rigorous check in the next day or so and let you know if I see anything. Thanks once again for doing this!
That's good to hear, thanks for your help identifying the bugs.
 

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
You are on a serious mission there mate! Awesome work. :speakcool:


LOL — Well, the parallel processing was something I had wanted to dig into for a long time, but had never gotten around to. With the run times of some of the programs I'm doing, I actually went websurfing to see if I could rent a small amount of time on a supercomputer somewhere. (Every place I found rented out time at reasonable rates, but only if you bought a large initial block of time, signed up for an ongoing relationship with monthly billing, etc. I just wanted a one-shot deal — say, $50 to run some programs and that would be it.)

The 25 PC deal at the school wouldn't be specifically for this project, just something for fun. They've been nice to me in the past, so it would be doing them a favor as well — it seems that college applicants these days are specifically asking for access to supercomputers, or at least to something that will act like a supercomputer. Plus, it would be cool to see a couple of dozen nodes (instead of just my three) light up on the XPVM management console (obviously the snapshot is not of my network!)

I've gotten intrigued enough with all of this that I'm thinking about giving myself one of these as a Christmas gift ... I'm not willing to spend $2500 or even $1256 on it, but that was written a while back. With CPUs like this available now, it's possible to add processing power to a home Beowulf for maybe $50 per additional core. So for a couple of hundred bucks I could double the power of my home network.

I did a more detailed check of Sextant MFD this morning; didn't do everything I did in the last test, but basically did the same lunar orbit flight and spot checked a few numbers in the spreadsheet. Everything seems to work great!

SAM
 

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
Just want to reassure anyone wondering that I am indeed still alive. Parallel processing turned out to be more intriguing than I anticipated, and I ended up going for a CUDA processor. The thing flies, but a bit of a learning curve!

SAM
 

tblaxland

O-F Administrator
Administrator
Addon Developer
Webmaster
Joined
Jan 1, 2008
Messages
7,320
Reaction score
25
Points
113
Location
Sydney, Australia
Just want to reassure anyone wondering that I am indeed still alive.
Thanks for letting us know :)

Parallel processing turned out to be more intriguing than I anticipated, and I ended up going for a CUDA processor. The thing flies, but a bit of a learning curve!
Lol, you reminded me of this quote: "What moves men of genius, or rather what inspires their work, is not new ideas, but their obsession with the idea that what has already been said is still not enough." - Eugène Delacroix.
 

pattersoncr

Tutorial Publisher
Tutorial Publisher
Joined
Oct 17, 2007
Messages
417
Reaction score
3
Points
0
Location
Eastern PA
I came across this chart while looking through some Apollo procedures. It is a graph showing range, range rate, and angular rate vs time from TPI for a coelliptic rendezvous.
http://www.orbiter-forum.com/picture.php?albumid=195&pictureid=1851
picture.php

This gragh was from the Apollo 12 LM Timeline.
The Apollo 14 LM Timeline also had some very interesting plots for normal rendezvous as well as rendezvous following abort at varous times. Look for the "Inertial & Relative Plots."
 

Sam

New member
Joined
Jun 28, 2009
Messages
54
Reaction score
0
Points
0
Location
Here
> Lol, you reminded me of this quote: "What moves men of genius, or rather what inspires their work, is not new ideas, but their obsession with the idea that what has already been said is still not enough."

Yeah, I definitely need to get a refill on my meds. :rofl:It's a lot easier to rationalize doing step N+1 when you've already done steps 1 through N; I keep finding that out.

> I came across this chart while looking through some Apollo procedures.

Thanks! The curve shape and general behavior of variables agrees with what I've found so far, but some of the specific numbers are off enough to raise questions. At this point I've pretty much abandoned the idea of doing it exactly the way they did it, but if I'm lucky those discrepancies might be due to something about their technique that addresses some of the problems I talked about earlier. I'll try to reconstruct that in Orbiter and keep my fingers crossed.

SAM
 
Top