First of all, thanks to Peter Hollands, who produced the above picture of a helical flight trajectory from one of his HILSIM test flights of the latest version of fixed wing flight controls for the open source MatrixPilot project, also known as the UAVDevBoard. For the last year or so, Peter has been helping me develop a "helical turn control" for MatrixPilot, starting last summer when I decided to start over on the MatrixPilot fixed wing flight controls, using basic principles. One goal of the new controls was to be able to fly an arbitrary helical trajectory. Peter had some fun producing the above trajectory using XPlane-10 and HILSIM, running the new controls.
The theory of helical turn controls is described in the following three attached documents:
The first document, HelicalTurnPart1Conditions.pdf, describes the conditions that need to be satisfied to achieve a coordinated helical turn.
The second document, HelicalTurnPart2Controls.pdf, describes a simple controller, relying mainly on feedforward and proportional feedback, for satisfying the turn conditions, using matrix-vector computations.
The third document, HelicalTurnPart3AoA.pdf, describes a method for accounting for angle of attack and variation of elevator trim with wing loading and airspeed. Required model parameters are computed automatically from flight data using a program that Peter Hollands wrote.
Helical turn controls has been thoroughly flight tested for over a year, and has been found to perform quite well, including the following advantages, for example:
Here are a few pictures from recent actual flight testing with my EasyStar. First, a few circuits around a rectangle in waypoint mode are shown. Please note that some of the flight segments and turns were flown inverted:
Next, a close up of the tracks through waypoint 4. Note that there are many tracks and they are all within a few feet of the waypoint, in all three directions:
Finally, a view of a 180 degree roll over from normal to inverted. Note that the controls automatically account for the reversal in sign of the wing loading and adjust the angle of attack and elevator trim to maintain level flight. You can see that the plane quickly pitches up a bit once it becomes inverted:
By the way, one problem I ran into during inverted flight was that the EM506 GPS that I was using stopped working when it was pointed toward the ground. A friend of mine at our flying field, Robert Pixley, suggested a solution that I did not think would work, but it did: mount the GPS vertically instead of horizontally:
What I found was that with a horizontally mounted GPS, there were typically 10 or 11 satellites in view during normal flight, and at most 4 in view during inverted flight. With the vertical mount, there were 8 or 9 satellites in view all of the time.
Finally, a thanks to all of the MatrixPilot developers and users who helped me with this, and a few links to those of you who might be interested in the MatrixPilot project:
MatrixPilot project home page.
UAVDevboard available from SparkFun.