A DIY Cruise Missile
Last Updated: 17 September 2003

Phase 2: The Flight Control System
Hardware and software

The flight control system under development on the workbench

Providing Stability
In order for a fast-moving autonomous aircraft to stay in the air it must be stable. That is to say, it should be able to recover from any changes in heading or attitude caused by turbulence or other external forces.

There are two ways to produce this stability:

  1. Inherent aerodynamic stability
  2. Automated onboard stabilization systems

In the first case, the airframe is designed such that the aerodynamic forces operating on the craft will automatically restore straight and level flight if turbulence or other effects are encountered in flight.

Achieving this inherent stability is surprisingly easy and explains why many model airplanes can fly all by themselves without any need for external control inputs. These "free flight" models can stay aloft for extended periods and handle quite rough air.

The downside of building inherent aerodynamic stability into a craft designed to act as as a missile and fly at very high speed is that it creates extra drag and, flying fairly close to the ground at 400mph, it might still take too long to recover from an unexpected change in attitude.

This leaves us with the second option -- that of having an onboard system that automatically applies corrective inputs to the crafts control surfaces so as to maintain a relatively constant heading and attitude.

Until just a year or two ago, such an automated stabilization system would have been complex and expensive, requiring the use of delicate gyros, solid state gyros and/or accelerometers. All of these would have to be linked to a powerful computer capable of performing a myriad of complex calculations at high speed so as to work out the right amount of correction to apply to the craft's flight-path.

However, an extremely interesting new infra-red (IR) flight stabilization system was introduced to the model airplane/helicopter market recently.

It works by sensing the difference in temperature between the sky above and the ground below and, according to the manufacturer (FMA), this is the same patented technology that is used to stabilize spacecraft.

This system is capable of keeping an aircraft stable to within 2 degrees of pitch or roll -- and that's plenty good enough for a backyard cruise missile.

Other advantages of the IR stabilization system are that it is very small and lightweight, can be bought "off the shelf" (or online) for under US$120, and is extremely simple to interface to the onboard computer and control servos.

Staying On Course
Now, while the IR stabilization system will take care of any externally induced changes to pitch or roll, it won't correct changes in heading or altitude, nor will it know if it's actually heading for the target. For this we need to interface to a GPS unit.

The GPS receiver tells us two critical and two useful pieces of information:

  • Critical: position in latitude and longditude
  • Critical: altitude above sealevel

  • Useful: speed in mph/kph or knots
  • Useful: heading (in compass degrees from true North)
Speed and heading are not critical because they can be calculated from previous position data -- however, it makes the software simpler if we simply rely on the GPS-supplied info rather than tie up CPU resources working it out for ourselves.

The problem we face however, is that the output from the GPS is not in a format we can feed directly into the control servos -- and that's where the flight control computer comes in.

The Flight Control Computer
Once we hook our IR flight stabilization system, our GPS receiver, our flight computer and our servos together, we have a flight control system.

Well not quite...

Without some carefully designed and tested software to drive things, all we have is a collection of individual components and wires.

The software that runs on the flight computer has a lot of work to do. In order to keep the cruise missile flying straight and level, and on course it has to:

  • Continuously read the position, heading, altitude and speed data from the GPS
  • Repeatedly compare the GPS-reported position to the desired position
  • Caclulate how far the missile is off-course
  • Calculate the amount of correction (if any) that needs to be applied to bring the missile back on course and down/up to the required altitude.
  • Recognize when the missile is approaching the target and initiate/control the descent or payload release.
While this might sound pretty simple, there are lots of details that could add significantly to the complexity of the software.

One major problem is working out how much corrective input needs to be applied to the control surfaces of the craft in order to bring it back on course.

Apply too much correction and the missile could head off in the opposite direction -- thus requiring an even bigger correction back the other way -- and before you know it this growing level of over-correction would lead to a spiral into the ground.

On the other hand, apply too little correction and the missile will take too long to (or may never) return to the desired course. This would result in a very wide, wandering flight-path, thus wasting valuable fuel and significantly reducing accuracy.

Expensive, sophisticated cruise missiles (like the military use) rely on very sophisticated computer systems combined with accelerometers and a built-in knowledge of how the missile will respond to control inputs.

This ensures that the onboard system can optimize the flight path and always provide exactly the required amount of correction or control input to effect a programmed course change.

Such sophistication is beyond the scope of a backyard cruise missile so the flight control software has been designed to "learn" exactly how much correction to apply in order to restore the missile to its course.

This adaptive learning aspect to the flight control software is one of the smartest parts of the whole project and has simplified the design and coding of the flight control system considerably. In fact, I have been able to squeeze all this functionality into a highly integrated low-power microcontroller.


UPDATE (17 Sept 2003): -- well I thought I could squeeze it in, it turns out that I don't have enough room to put all the code into the available flash rom and the available processor power is only just adequate once the adaptive control code is running.

I could spend a *lot* of time optimizing this code but, since such optimization tends to be a law of diminishing returns, I've decided to take the easy way out.

Instead, I will be shifting the more math-intensive routines onto a conventional processor and leaving the microcontroller to handle the job of data collection and generating the pulse-trains that drive the servos.


Since it's critical to the craft's airworthiness, the flight control system it will be tested on a much slower and smaller model airplane before use in the missile itself.

Note: for obvious reasons, I will not be releasing full details of the flight control software to anyone except government or military departments from "friendly" countries.

Moving The Control Surfaces
All of this electronics and software is useless without a method of converting the flight computer's clever calculations into movement of the missile's control surfaces.

Like any flying craft, the missile has control surfaces that allow it to be pitched up or down and rolled left or right. The component that turns the output of our flight computer into movement of these control surfaces is a regular model airplane servo.

Well, when I say regular, I mean a *large* model airplane servo. The units used for this project (top) have over 10Kg/cm of torque whereas a regular model (bottom) airplane servo has less than 3 Kg/cm of torque.

This extra power is essential because not only is the cruise missile somewhat larger than a regular model airplane, it also flies a lot faster. In fact, two of these heavy-duty servos are used on each control surface for a total torque of 20 Kg/cm.

Fortunately, once the craft has achieved straight and level flight, the magnitude of control inputs required to stabilize and maintain/change course will be minimal -- thus allowing the use of relatively small control throws so as to provide maximum mechanical advantage in the control linkages.

Electrical Power
The entire onboard electronics system will be powered by two 6V sealed lead-acid batteries. Since the flight time is only around 15 minutes and neither the servomotors nor the guidance electronics have very high power consumption, relatively small batteries of just 4-6 ampere-hours can be used without any problems.

If slightly longer range or a few ounces of extra payload were required, the lead-acid batteries could be replaced with nickle metal hydride units.


| Missile Home | About Me | Objectives | Project Diary

Copyright © 2003, All Rights Reserved