X-Space Solar Panels

I’ve started adding solar panels support to X-Space. This feature allows defining solar panels by specifying their position, attitude (orientation), shape/folding type (which defines animations too), and size/dimensions.

The solar panel will be automatically generated based on that data.

Here’s an early example (I’ve made a simple texture for solar panels):

Solar panels can be controlled by a different plugin or their behavior can be automatic (they will automatically orient towards the Sun).

Each solar panel gives information on the power generation (total solar power absorbed, estimate of total electric power generated, voltage over the panel). I might actually integrate the default solar panel behavior with X-Plane somehow.

Nuclear Reactor Hydraulic System

As a side project involving IVSS (Internal Vessels Systems Simulator) I’ve made a small simple model of the nuclear reactors hydraulic system. I will re-use the existing code for hydraulic system simulation later too.

The hydraulic system itself looks like this:

The hydraulic system works in realtime. I’ve recorded some transients and general behavior of the system (these are pressures on different reactor elements, and total coolant flow):

There’s also a simple control system, which sets any specific flow rate:

There’s much more interesting stuff related to this, but I will post it later on.

VSFL Updates

I’ve added additional gravity sources to the VSFL/X-Space simulation. It now includes Moon, Sun and Jupiter gravity – it’s even possible to fly to Moon now (though there’s still no surface, so it’s not possible to land on it).

It uses the DE405 ephemeris, the positions of planets should be more or less valid until 2050.

Additionally the VSFL server now runs in realtime – it’s synchronized to the real world clock. Even if the server is rebooted the state will be propagated up to the present moment. This means that even if server restarts the state will be correctly tied up with real world time.

RV-50x Rocket

This is a rocket I’m working on. It’s an alternative of the Energia rocket system – it also uses Zenit boosters as additional boosters during takeoff.

The main major difference is that the engine systems are re-usable – they contain an additional dedicated heat shield, and reenter the atmosphere, landing on the other side of the planet. The fuel tank structures themselves burn up in atmosphere.

Flight profile is approximately the same as that of the Energia rocket. I’m planning to use this rocket along with the SV-20x shuttle (but it should be possible to carry other cargo too, including cargo to the moon).

VSFL Network Server

The VSFL network is now semi-operational. It will run 24/7 from now on, constantly simulating the motion of objects (two objects launched in the XS3A mission). Realtime tracking is available at http://vsfl.wireos.com/realtime-tracking.

The realtime tracker displays orbital elements and some most interesting parameters. It uses the familiar map:

Both objects are expected to stay in orbit for about two-three months. I will post more information on the change of orbital parameters later.

XSAG Guidance Computer System

I’m working on the design of new XGDC computer system. The current design splits the system into three processors:

  1. Main processor, which handles the flight logic
  2. Video processor, which draws the MFD displays and handles input which does not change flight state
  3. Sensor processor – it reads data from spacecraft sensors, filters it out, and then sends this data to the other two processors

The actual architecture and data flows are shown here:

Everything will work asynchronously. From realization point of view the new XGDC computer system will use IVSS (internal vessels systems simulation) as a base, so it will come as a plugin for X-Plane and as a standalone application (that can tie in with X-Plane).

XGDC3 Multitasking

The XGDC3 OS now has a new multitasking system – it allows for cooperative tasks, and tasks which share the remaining time slice for each frame. The time slice is distributed between tasks like this:

Each task will use timeslice either until it yields execution, until the task ends, or until the task manager detects that task has used up all timeslice allocated for it (specified by the user).

Typically most critical tasks will run all the time and they have priority over other non-critical tasks. Any task will be forced to yield if the current execution frame has ended.

Wavelets Signal Filtering

One more post on filtering signals with wavelets. The wavelets are fairly efficient at filtering out signals which are very limited in their bandwidth (assuming there is no noise at frequencies close to the original signal):



The graphs show difference between recovered and the target signal, and also comparison between signal magnitudes (the noise and the useful signal). The difference is a ratio (0.01 means 1% error).