The First Prototype
Project Everloft began with a simple question: Is it possible, using solar cells and batteries, to build a plane capable of indefinite flight? And if so, could we build one as students? After preliminary calculations, simulations, and planning, we concluded the answer is yes.
We started investigating the design options for this solar-powered UAV. The most important design objective, we found, is to increase the efficiency of every part of the system. With a vehicle as energy-constrained as a solar plane, every decrease in power consumption means that fewer batteries and solar panels are needed, reducing mass, which further lowers power consumption. This virtuous cycle makes relentless optimization necessary.
One way we found to increase aerodynamic efficiency and reduce mass is removing the tail that typically includes a horizontal and vertical stabilizer, turning the plane into a flying wing. However, this means that the plane is no longer passively stable around the pitch and yaw axes. Traditional flying wings overcome this problem by using less efficient airfoils or a less efficient wing geometry to make the plane passively stable again.
But there is another option: Actively stabilizing the plane. Unstable flight has been demonstrated on UAVs for maneuverability and efficiency reasons but not been used for solar-powered UAVs, where energy efficiency is most critical. This was therefore our most fundamental design decision and meant that we could focus the aerodynamic design of following prototypes almost exclusively on efficiency, while letting the flight controller handle stabilization.
PROTOTYPE DESIGN
To prove that we could build an unstable UAV, we set out to design a cost-effective testbed that could be rapidly designed, built, and tested. The primary focus was testing stabilization around the pitch axis, as this is the most difficult due to the fast response necessary. Therefore, this prototype still included a vertical stabilizer to provide yaw stability and was not specifically optimized for aerodynamic efficiency or weight.
The main design decisions we made were as follows:
- Selected the NACA 23012 Airfoil for its low pitching moment. This meant that the airplane could be made stable or unstable depending on the deflection of the control surfaces.
- Used an aluminum profile fuselage to increase moment of inertia around the pitch axis. This made it easier for the flight controller to stabilize the plane by giving it more time to react to disturbances.
- Used the PID controller integrated into ArduPilot for stabilization. ArduPilot includes a robust, pre-validated controller architecture and good autotuning capabilities, which is sufficient for our applications.
- Designed a sliding battery and wing mount to adjust the Center of Gravity and Center of Lift. This allowed a gradual change from stable to unstable flight for incremental retuning of controller gains.
The plane was built within a few days of work. The wing was cut from XPS foam using a custom-built CNC hot-wire cutter, a piece of wood served as the main structural member, and the surface received three coats of high-visibility orange, later jokingly referred to as “structural paint.”
SIMULATION
Parallel to building the plane, we worked on a 3-degree-of-freedom Simulink model. This allowed us to simulate the longitudinal dynamics of the plane (pitch, surge, heave) and compare it with flight test data. The model was fed with aerodynamic data from XFLR5, as well as inertia and mass data from the finished prototype. The main ArduPilot control laws were also included to simulate controller behavior. This will also allow for pretuning of controller gains for future prototypes.
FLIGHT TESTS
Our objective for the first flight was to demonstrate flight in a manually flown, stable configuration without active stabilization. After a successful takeoff, the aircraft showed poor handling qualities due to low yaw control authority. Despite this, it managed to land without damage after the six-minute flight. To alleviate these problems, we increased the area of the vertical stabilizer and added a bottom vertical stabilizer (ventral fin).
For the next test flight, we integrated a flight controller running ArduPilot. This allowed us to test active stabilization while still in a stable configuration. The controller gains were tuned during a series of manual maneuvers using the ArduPilot autotune functionality. We also included a pitot tube to gather accurate air speed data for the control loops and autonomous flight.
In the following flight tests, we further tuned the controller gains and calibrated the Total Energy Control System (TECS) required for autonomous flight and landing operations. We verified the performance of these systems by having the UAV autonomously execute a flight plan including quick altitude changes, allowing us to easily analyze the flight test data, as well as comparing it with our Simulink model. During this phase, we also performed multiple autonomous landing attempts. However, this proved to be unreliable, as the altitude estimation only relied on (drifting and airflow-dependent) barometer and (imprecise) GPS data. We therefore decided to use a downward-facing LIDAR sensor for altitude determination on future prototypes.
After tuning all necessary systems, we performed a series of flight tests in which we reduced the static margin from 10 to -2.5% by gradually changing the battery and wing positioning, as well as the control surface deflection. The control gains were recalibrated at each step. We therefore proved that unstable flight was possible with our approach. A following test at -5% static margin failed, possibly due to an incorrect CG position as well as high backlash in the servo and control surface linkage system.
We repaired the plane and performed multiple subsequent unstable test flights, until it crashed because of an incorrectly configured cruise speed setting. At this point, it had sufficiently demonstrated unstable flight and given us enough data to move on to the next prototype, so we decided against repairing it.
