Posted on
August 7, 2009.
I’ve been working on XNAV system – on-board computer display software for X-30, capable of doing a lot of interesting things. Right now it can calculate and predict orbit, it shows all required orbital elements, updating live from the simulator.

There are some issues right now, the orbit prediction is slightly imprecise because of the way I am calculating velocity vector (I am calculating spacecraft position in global coordinate system, tied to Earth. Velocity vector is normalized difference between current and previous position multiplied by velocity magnitude, speed received from simulator). I will rewrite this to use coordinates and velocities from local OpenGL coordinate system of X-Plane, rotated so it becomes global coordinate system.
There is also slight change of some variables over time – most likely because constants I used slightly differ from the ones X-Plane uses.
I rewrote X30NAV system from scratch, now it’s called XSAG monitoring and on-board computer system. It will allow several people to link in to data transmission feed, and see it live on their screens. It also now performs orbital trajectory calculations.




This system will also provide helper indication for orbit synchronization with another object by given parameters, ability to lock current orbit parameters and force craft autopilot to keep this orbit, have indication screens for all systems and failures of systems in entire spacecraft, will allow remote copies to be launched (and they will receive same data as this one, but they cant influece spacecraft), will have helpers for re-entry.
I’m also currently working with SASL plugin to add life support systems, extended electric system (I’ll be sure to add a whole load of electric units in contour, which can break, and ability to allow you to fiddle with wires, hello apollo 13!), very VERY simple reentry heating, and some misc systems for X-30 (the chassis coolant system using fuel).
With some luck I’ll get SASL to work for 2D cockpit (there’s some problem with button) and add instruments backed up by electric system logic I mentoined before, and with some really extreme luck I could try to create plugin that would put that on-board computer/monitoring thing into cockpit – but don’t really count on this.

There is live feed from on-board system (it draws orbital view most of the time, sometimes engine states too), and image feed from main simulator (and second computer if it’s active). The page updates every three seconds, and right now it’s disabled (when it’s not disabled, you can reach it here).
On-board system (X30NAV) sends updates image on server, and there is little daemon running on every of simulation computers that takes screenshot every three seconds. Everything is simple, and it works good so far.
By the way, I’ve set up page with mission schedules, I’ll update it as the missions are done. You can find it here: http://phoenix.wireos.com/x30sched.html
I’ve setup a small web page which shows live update of X-30′s on-board system, and screenshots from two viewpoints, which update at realtime. Here is how it looks right now:

It requires three computers to run – one computer runs on-board system, another computer is the primary simulator, and there’s also a small laptop which runs another copy of simulator, which just shows the X-30 from another view. If everything goes well, these views should update once in 4 seconds, and you can watch them live-ish.
Edit: it seems that I can’t use other laptop cause it was taken away, so I’m afraid there will be only one camera view.
Here comes third X-30 mission from me – XS3. Primary mission objective – field test of new on-board computer system, and some minor device tests. It was successful. Mission parameters were same as in XS2, I used same orbit. This time I did reentry at 4500 miles away from Edwards, and still somehow ended up 1000 miles early. It seems I can do really fast atmospheric reentry! Which is really good, because this time entry was even softer.
All mission parameters almost match XS2, so I won’t repeat them here. Instead, I’ll focus on the primary objective – the new on-board computer I’m working on. From technical point of view it’s a computer program which runs on a second computer, and links to simulator to gather data from sensors (from the simulator itself).
It has 4 screens (right now, but only two work):
- Computer debug screen: allows debugging on-board computer, displays raw data from all available sensors
- Orbital view: tracks orbit status and parameters, displays some helpful data
- Launch status: helps to reach orbit, right now doesn’t do anything
- Reentry status: helps to do reentry, and possibly in future will automatically do it itself
This is how the setup looks like (the second computer is fed with data from the primary one using X-Planes data output):

Here’s screenshot from the game, close to reentry point, you can see England in distance:

Here’s screenshot of on-board computer (it runs in low resolution, and it looks really neat that way):

And as a bonus, it actually sends the image of on-board display to my local web server each second, so whenever I’m flying a realtime view of orbit, aircraft state, etc, is present (the link is http://phoenix.wireos.com/x30feed.jpg, but it obviously works only when system is active). I’m gonna post a planned schedule of next XS4 mission, which will target testing how X-Plane handles altitude over 1,000,000 feet.
I did full launch and reentry! And 1.5 hours of orbitting around earth (slightly less than a circle around our planet).
I name this mission XS2, it’s the second “serious” mission. It was a complete success – the craft was preserved completly. I finnaly computed and tested the best launch and reentry profiles, and by the end of mission I still had 20% of jet fuel left, and 50% of rocket fuel left (although this was malfunction, see below).
X-30 is hybrid scramjet/rocket engine aircraft, which is designed to reach orbit first by running on scramjets, and gaining about 20 Mach of speed, and then engaging rocket engines, reaching the target height:


More technical details (random ones, which I found interesting):
- Base of operations: Edwards AFB, choosen for it’s big runway, ideal location (desert gives good weather), and generally I like this airport.
- Orbit height: 433000ft .. 435000ft (free orbit, no velocity correction to keep specific height)
- Orbital velocity: 15232 knots
- Total mission time: 2.5 hours
- Base heading (at Edwards AFB): 210 (mag)
- Launch average g-load: 1.2 G axial, 0.6G normal
- Reentry average g-load: 3.0G normal
- Wing lift to drag ratio during reentry avg: 4 to 6
- Altitude when jets were switched to rockets: 173500ft
Technical problems encountered:
- Rocket engines failed to reignite (once reached orbit the engines stopped working, without computer indicating any failures. It seems that fuel pumps just stopped and would not come back online. This might be X-Plane bug. Had to use the orbital manuevering system to start descend)
- Data output HUD failed (a bug in X-Plane caused textures to be corrupted, so the raw data output HUD stopped working about 2.2 hours after mission start. This did not affect anything, as data raw output is only useful during reentry, for receiving angle data). All regular instruments worked fine.
- Autopilot does not work – this seems to be problem in X-Plane. X-30′s default autopilot allows for locking pitch and wing level, which is not really neccessary, but its nice feature when it works
- Autostability system problems – the system is too violent, should be tuned down. It had to be disabled during most of the flight, except for part of reentry.
- Reentry was performed at 5550nm away from Edwards AFB, which was off by 1000nm (luckily X-30 can fly without problem, so this distance was not a problem)
Raw data output from on-board systems: data_x30_xs2.txt
Recent comments