Intel Creates Dynamic Simulation Environment for Testing GNC Algorithms for Multirotor UAVs
Develop and test advanced control algorithms for existing and next-generation multirotor UAVs
Use MATLAB and Simulink to model multirotor UAV dynamics, verify control algorithms via simulation, and evaluate control design ideas
- Complex calculations verified before flight testing
- Design ideas evaluated in days, not weeks
- Design iterations and testing time reduced
“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.”Jan Vervoorst, Intel
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.”
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.
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.
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.
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.
- 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.”