Intel Creates Dynamic Simulation Environment for Testing GNC Algorithms for Multirotor UAVs

“Modeling and simulation with Simulink is the only way that we can get the results we need with the speed and quality that’s expected in our industry today. If we had to do everything by hand and rely solely on flight testing, we would require more bug fixing iterations and need more testing time per iteration. The problem would grow intractable. There’s no other way.”

Challenge

Develop and test advanced control algorithms for existing and next-generation multirotor UAVs

Solution

Use MATLAB and Simulink to model multirotor UAV dynamics, verify control algorithms via simulation, and evaluate control design ideas

Results

  • Complex calculations verified before flight testing
  • Design ideas evaluated in days, not weeks
  • Design iterations and testing time reduced
The eight-rotor Intel Falcon™ 8+.

The eight-rotor Intel® Falcon™ 8+.

Following its acquisition by Intel, Ascending Technologies has continued to develop and manufacture a diverse line of UAV products and technologies. These range from the 330 g Intel® Shooting Star™ quadcopter, used in aerial light shows, to the 2.8 kg, eight-rotor Intel® Falcon™ 8+, used to conduct aerial inspections and surveys.

To accelerate the development and testing of algorithms for UAV guidance, navigation, and control (GNC), Intel used MATLAB® and Simulink® to develop a simulation environment that accurately models environmental effects as well as the flight dynamics of UAVs with vastly different physical properties.

“When developing complex, nonlinear controllers, counting on getting the math perfectly correct on calculations that span multiple sheets of paper is just not feasible,” says Jan Vervoorst, software development engineer for the GNC team at Intel. “With the models we developed in MATLAB and Simulink, we can quickly evaluate new algorithm ideas and test them via simulation to verify that they consistently produce the desired flight behavior so that we have high confidence in our test flights right from the start.”

Challenge

The next-generation GNC algorithms developed by Intel engineers typically incorporate multiple feedback loops. The complexity of these algorithms makes a design-and-fly approach to testing impractical. Before beginning flight tests, the team wanted to run simulations to verify existing control software and evaluate new algorithm ideas under real-world conditions that included sensor noise, wind, and other environmental factors.

However, in building a mathematical simulation model, Intel engineers found that the models in many research publications proved to be unworkable because they were often designed around significant simplifying assumptions. For example, many sources made assumptions about the geometric symmetry of the airframe or the direction of generated thrust, neither of which is the case for the V-shaped Intel® Falcon™ 8+ system. The team wanted a dynamic simulation environment that was modular and that they could customize for each existing UAV as well as for future UAVs that had entirely different geometries and structural designs.

Solution

Vervoorst and his team at Intel used MATLAB and Simulink to develop a simulation environment for testing multirotor UAV control algorithms and evaluating new control design ideas.

The engineers developed a generic six-degrees-of-freedom (6DOF) Simulink model that calculates the state variables for a UAV given all forces and moments acting upon it. They developed a second Simulink model that computes those forces and moments based on RPM commands to the motors, 6DOF dynamics, and a set of customizable system parameters.

High-level Simulink model of the UAV’s guidance, navigation, and control.

High-level Simulink model of the UAV’s guidance, navigation, and control.

The team wrote a MATLAB script to initialize the force and moments model by setting parameter values such as the UAV’s mass, center of gravity, and aerodynamic drag. They also used the script to define more complex characteristics such as the thrust-to-RPM curve for the specific motor-propeller combination used in the UAV.

They combined the 6DOF model with the customized force-moment model to create a dynamic system model of each UAV, adding a state estimation block to incorporate simulated sensor data and noise.

The engineers used this dynamic system model to test control algorithms that they had already implemented in C and to simulate new control algorithms. For the existing C algorithms, the team used a C MEX S-function in Simulink to incorporate the algorithms into a controller model and then ran closed-loop simulations with the dynamic system model.

Lookup table for thrust data for the propeller used in the multirotor simulation.

Lookup table for thrust data for the propeller used in the multirotor simulation. Scheduling variables are propeller RPM, advance ratio, and angle of attack of the airflow.

During flight tests, the team logged data, including sensor signals and control software variable values, for postprocessing. They analyzed the log files in MATLAB and used the results to debug the control algorithms and refine their UAV models. For example, the team fed recorded sensor data into the state estimator Kalman filter and adjusted filter parameters to improve performance.

Vervoorst’s team is currently using Simulink and their UAV simulation environment to develop and test guidance, navigation, and control algorithms for new multirotor drones. 

Plots showing tracking control performance for roll and pitch angles using different thrust models.

Plots showing tracking control performance for roll and pitch angles using different thrust models. Performance deteriorates when realistic aerodynamic effects are neglected during controller tuning.

Results

  • Complex calculations verified before flight testing. “The quaternion math implemented in our flight controllers is complex, and if we get it wrong, the UAV exhibits weird and highly undesirable behaviors like the unwinding phenomenon, in which the system is unnecessarily rotated through a full rotation,” says Vervoorst. “Using Simulink, we can identify and resolve such problems via simulation and reduce the number of flight tests needed.”
  • Design ideas evaluated in days, not weeks. “For a new algorithm design, if I start coding in C, five weeks later I might have to return to square one because I neglected to address some key problems,” says Vervoorst. “With Simulink, I can make significant changes much more easily, and within a day or two have a new design that works beautifully.”
  • Design iterations and testing time reduced. “Simulink makes it easy to design control algorithms and design them error-free,” Vervoorst says. “That means fewer design iterations and less testing time, because the algorithm is verified early on and we don’t have to find every bug in manual flight tests.”