MSC Thesis Final Report ForPrint
MSC Thesis Final Report ForPrint
Efficient Control
Allocation
Using Active-Set Algorithms
T.M. Blaha
< 400μs
ii
Thesis report
by
T.M. Blaha
to obtain the degree of Master of Science
at the Delft University of Technology
to be defended publicly on February 10, 2023 at 13:00
Thesis committee:
Chair: Dr C. de Visser
Supervisors: Dr E.J.J. Smeur
B.D.W. Remes
External examiner: Dr J. Sodja
Place: Faculty of Aerospace Engineering, Delft
Project Duration: October, 2021 - February, 2023
Student number: 4597176
ii
Contents
1 Introduction 1
1.1 Flight Control and Control Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Research Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Structure of the Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I Preliminary Analysis 3
2 Literature Review 4
Executive Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Aircraft Attitude Control Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Control Allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Numerical Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Comparative Testing and Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.6 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3 Preliminary Work 38
3.1 Interior Point Methods for `2 − `1 Norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
II Scientific Article 41
4 Computationally Efficient Control Allocation Using Active-Set Algorithms 42
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Optimising control allocation formulations and solvers . . . . . . . . . . . . . . . . . . . . . 43
4.3 The Active-Set algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5 Results & Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6 Conclusions & Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7 Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
IV Closure 73
6 Conclusion 74
6.1 Closing Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.2 Research Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3 Additional Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7 Recommendations 76
References 80
iii
Nomenclature
List of Abbreviations n Dimension of the actuator position
vector u
(e)VTOL (electric) Vertical Take-Off and
Landing Vehicles p Dimension of the system output vec-
ctor y
AMS Attainable Moment Set
S Feasible region of the actuator lim-
BLAS Basic Linear Algebra Subroutines its
INDI Incremental Nonlinear Dynamic In- γ Priority scalar for pseudo-control er-
version control scheme ror.
MAVLab Micro Aerial Vehicle Lab (of the TU û Estimated actuator positions
Delft)
L Lagrangian
MC/DC Modified Condition/Decision Cover-
LF a(x) Lie derivative of a(x) over the vector
age
field F(x)
NDI Nonlinear Dynamic Inversion con- ν Pseudo-control demanded from the
trol scheme actuators by the attitude control sys-
tem.
UAV Unmanned Aerial Vehicle
νa Pseudo-control achieved by the ac-
Modifiers
tuators.
Ẋ Time derivative of X
Ω Available Controls Set, subset of Rn
X Upper Bound for X ω Rotational velocity
X Lower Bound for X P(x) Projection operator
+
X Pseudo-inverse of X Φ Attainable Moment Set, subset of
Rd
X +, X − Positive part, negative part of X
+ ρ Pseudo-control scalar in DCA
XW Weighted Generalised Inverse of X
with respect to W W Working set of active-set algorithms
iv
Nomenclature v
Research Objective
Future research shall aim at finding relevant improvements of numerical optimisation algorithms
for control allocation of UAVs and eVTOL, by implementing possible improvements over a
baseline method and evaluating accuracy of the solutions, computational speed and balancing of
the solution over the available actuators.
1
1.3. Structure of the Report 2
Research Question 1
What possible changes to the numerical algorithms for optimising control allocation can be
shown to provide significant improvements over the current state-of-the-art?
*This part has been assessed for the course AE4020 Literature Study.
3
2
Literature Review
Executive Summary
Presented in this review are investigation and analyses of literature related to Control Allocation, to identify
possible improvements to enhance Control Allocation method for recent configurations of unmanned aerial
vehicles (UAVs) and vertical takeoff and landing vehicles (VTOLs).
Preliminaries Control allocation is shown to arise naturally from common aircraft attitude control schemes
(such as PID, (incremental) Nonlinear Dynamics Inversion) and is defined as the distribution of required
forces and rotational torques over the available actuators. An important quantity in the control schemes
is the effectiveness matrix B, which achieves the inverse task, calculating forces and torques from an
actuator distribution.
An investigation of software conventions in commercial aircraft reveals that onboard software compo-
nents that achieve these tasks would be required the highest safety considerations including a worst-case
execution timing analysis and forbids the use of optimising compilers. Software onboard UAVs, especially
consumer UAVs, usually require less strict analysis and rely more on testing.
The research in control allocation was found to best be split into three main aspects:
1. Different problem formulations to map the required control over the actuators.
2. Numerical real-time solvers if the problem formulation requires such a step to be done online.
3. Comparative testing procedures on benchmark problems.
Control Allocation Formulations Ganging, which assigns rigid groups is the simplest form of control
allocation that explicitly maps any pseudo-control to an actuator distribution with a static mapping matrix.
However, it is unsuitable to actuators encountered in UAVs and eVTOLs which cannot be explicitly grouped
into groups that mainly act around a single rotation axis.
Weighted Generalised Inverses of the effectiveness matrix are attractive for their simplicity, as they
provide a straightforward way to derive a static mapping matrix that fulfils a secondary objective to balance
out the total control effort. This method can be expanded to ”Daisychaning”, which uses multiple decoupled
effectiveness matrices to use certain actuators only when the primary actuators would exceed their
limits (”saturate”). This however requires such a decoupling to be possible/appropriate which cannot be
guaranteed for all UAVs.
Another class of methods that can redistribute control effort on saturation are ”optimising” control
allocation schemes. The objective function is commonly the normed difference between the achieved
pseudocontrol and the demanded pseudocontrol, which is to be minimised. Actuator limits are added as
bound constraints and a secondary, de-prioritised, term is added to the objective to reduce the deflection
of the actuators from a ”preferred” state. This is a powerful concept that results in high exploitation of the
available actuators, while still balancing them and even allowing the prioritise some actuators for criteria
such as drag or energy consumption.
The most powerful methods found to be able to control nonlinear and coupled actuators suites found in
UAVs and eVTOLs are dynamic and nonlinear control allocation schemes, which extend linear optimising
4
5
control allocation by working with increments. Exact nonlinear optimisation was found not to be tractable
for online control allocation, but not required even for challenging platforms, if the update frequency is high.
It should be noted that these three most powerful methods all rely on an identical bound-constrained
optimisation routine, which was investigated next.
Optimisation Solvers Different norms can be chosen for the actuator deflection penalty and the pseudo-
control error. The most popular in literature which gives the most naturally distributed solutions is the
quadratic `2 -norm that was also used to derive the Weighted Generalised Inverse solutions in the non-
redistributing case. The most common solver is the active-set strategy which has been thought to be
computationally tractable but has recently found its limits on UAV platforms with more than 15 actuators. A
”Projected Gradient” strategy is used in literature on similar bound-constrained problems but has never
been applied to control allocation.
However, different norms (sum of absolute value `1 , `2 , and the maximum element of the vector
(supremum norm) `∞ ) for either term are possible and have been investigated. On top of that, different
solvers can solve these different combinations. `1 is generally discouraged, although commonly theorised
because it can lead to only very few actuators being used, as opposed to balancing the load, as would
be ideal for vehicles with many redundant actuators. `∞ on the other hand can balance the actuators by
minimising the most deflected actuator is attractive, while it can also be solved with fast linear programming
methods. `2 for the actuator deflection, but `1 for the pseudo-control error has not been mentioned in
literature before, but may be solved by interior-point methods with favourable scaling to many actuators.
Benchmark Testing Several comparative studies for control allocation methods and solvers have been
analysed and it was found that the number of test cases used in these studies is generally low and
closed-loop simulations are not commonly performed. This limits the explanatory power for the distribution
balancing and the effect of sub-optimal solvers.
Future Research Planning The results are used to incite further research in the field by providing
some relevant research questions centred around how to improve and compare different solvers. It
was concluded that incremental nonlinear control allocation is a suitable allocation/control scheme for
UAVs/VTOLs, but improvements on the part of the solvers are needed to enable allocation for platforms
with many actuators.
2.1. Introduction 6
2.1. Introduction
Control allocation is part of aircraft flight control software, with some components running on onboard
digital flight computers. This chapter first introduces some preliminaries related to Automatic Flight Control
and Flight Control Software in general.
Attitude Control
For most types of copters (vehicles that use vertical thrust to counter gravity), their attitude with respect to
ground determines the flight path this enables the lift vector to have a horizontal component and accelerate
the craft. For aeroplanes also the magnitude of the airspeed and the attitude with respect to the oncoming
air determine the aerodynamic forces and flight path. Attitude control is thus necessary building block to
achieving higher levels of autonomy in aircraft.
To achieve this, any aircraft requires a number of ”actuators” to influence the attitude by providing
forces and rotational moments and a scheme to make use of the actuators sufficiently well to eventually
achieve a desired attitude and flight path.
Control Actuators
The ”suite” of physical actuators on aircraft can be diverse. Classical planes, for example, most single-
engine sport planes, make use of elevators, rudders, ailerons, flaps and propeller speed. Modern transport
aeroplanes commonly feature more actuators to facilitate redundancy and enhance performance, extending
the aforementioned basic suite by spoilers, leading edge slats and all-moving horizontal stabilisers. Also,
control surfaces are often sectioned to allow them to be actuated by redundant drive systems. High-
performance aircraft often add actuators to increase the bandwidth and control authority, such as moving
foreplanes and thrust vectoring. More recently, spoiler slot deflectors and moving wingtips have been
studied to effectively control tailless aircraft such as the Lockheed Martin Innovative Control Effector (ICE)
aircraft (eg Matamoros, 2017).
In the realm of multi-rotors, the rotors are used not only as a means of propulsion but also to provide
attitude control. In electric vertical take-off and landing vehicles (eVTOLs), it is common to combine many
rotors and classical control surfaces to facilitate both vertical flight, efficient forward flight and the transition
phase between the two (De Wagter et al., 2020, Nathen et al., 2021). Increasingly, Distributed Electric
Propulsion (DEP) is studied for unmanned and manned flight. With DEP, many smaller engines are used
instead of a few more powerful ones to increase redundancy and improve aerodynamic efficiency by
exploiting jet-wing interaction and using the rotors for attitude control reducing empennage size (Nguyen
Van et al., 2018, Zhang et al., 2021).
The actuator suite of an aircraft can encompass a multitude of types that show different levels of
non-linearity, state dependency and coupling between different actuators. On many aircraft, the total
number of actuators greatly exceeds the degrees of freedom of the control problem, which may be between
3 (rotational motion only) and 6 (rotational motion plus direct translational control).
Penalties The use of actuators is of course necessary but generally comes with a few penalties. Actuators
of any type require power to drive them. Aerodynamics control surfaces have inherent drag and increase
the radar cross-section of the vehicle. Depending on the use case, these penalties should be included in
the control allocation scheme.
Control Allocation
Frequently in aircraft control, pseudo controls are computed by the attitude controller that represent the
forces and moment required from the control actuator suite to move towards the desired attitude. NDI and
2.1. Introduction 7
INDI naturally make use of this idea, see section 2.2.2. As the final step in these controllers, a mapping is
needed that distributes these commands over the available actuators in the suite.
This can be formulated as finding solutions to equation 2.1, where ν is the vector of desired pseudo
controls, u the vector of actuator commands, t denotes a time-dependency and B is a general known (or
approximated) function that maps actuator states to achieved pseudo controls.
This is known as ”Control Allocation”, and a plurality of methods have been developed, tested and
used (Johansen and Fossen, 2013, Härkegård, 2002).
2.2.1. PID
Assuming a simple elevator-aileron-rudder aircraft, equipped with gyro sensors, a PI or PID loop may be
used to regulate the control surface angles based on the error observed between the commanded rates
and the measured rates (Deepa and Sudha, 2016). This lower level controller may be encapsulated in
another feedback loop to regulate attitude based on an estimate of the current attitude.
Careful tuning and scheduling of the P, I and D gains are necessary to provide an adequate system
response for all permissible combinations of configurations, airspeeds, altitudes and masses. An illustrative
approach is documented in Willee, 2021 for the PX4 UAV autopilot system, which schedules feedback
and feedforward gains with the dynamic pressure q and roll rate p to achieve uniform responses. If the
aerodynamic model is accurate enough, stability and handling characteristics with PID control can be
proven for a certain airframe, making certification possible.
In the above example, a separate controller can be used for each axis, since the actuators are decoupled
and, for a large part, only provide a control moment around one axis. When there are more actuators or
axis-coupled actuators, an additional step is needed to use those actuators correctly. In simple cases like
elevons or a v-tail, this can be done by simply adding the elevator command to the aileron command or
the rudder command to the elevator command, respectively. Such a static allocation will later be known
as explicit ganging (2.3.2). However, how should this mixing be performed for multi-rotors where each
motor affects all axes? In these cases, the feedback controllers are often giving a more abstract angular
acceleration command known as the pseudo control vector ν, which is then allocated over the available
actuators.
In some cases, PID controllers can control mildly non-linear systems by gain scheduling, especially
when those non-linearities have large time constants (airspeed/mass/altitude commonly change slowly),
but other methods have more explicit and exact capabilities to resolve non-linearities.
ẋ = f (x) + G(x)u
(2.2)
y = h(x)
If the system has no internal dynamics, the inputs can be related directly to the output derivatives by
simply differentiating y with respect to time. For some elements of y the inputs u may not ”show up” after
one derivation. In these cases, y should be derived at least once more until an algebraic relation between
elements of u and a time derivative of yi is found ∀i ∈ p. From here onward, we shall assume such a
relation is found after just one differentiation for all outputs of the system. Equation 2.3 arises, where we
introduce the Lie derivative LF a(x) ≡ ∇a(x)F (x) of a vector field a(x) over a vector field F (x).
dh(x)
ẏ = = ∇h(x)ẋ
dt
(2.3)
= ∇h(x)(f (x) + G(x)u) = ∇h(x)f (x) + ∇h(x)G(x)u
= Lf h(x) + LG h(x)u
As mentioned before, we shall assume that LG h(x) has non-zero items in all rows. Even stronger, we
shall assume it is square (implying p = n) and invertible for all x. Then we can invert and decouple the
dynamics by assuming ẏ = ν is our new pseudo control input to the system which can be generated with a
linear controller (Sieberling et al., 2010) and/or a reference model (Matamoros, 2017); both are aimed at
prescribing some desired, linear, system dynamics that outer-loop controllers can more easily deal with.
Indeed, under the conditions above, the output derivatives are achieved with the inverted dynamics
given in equation 2.4:
−1
u = [LG h(x)] (ẏ − Lf h(x))
−1
(2.4)
= [LG h(x)] (ν − Lf h(x))
Some remarks on this result: The accuracy of the computed control input depends on the accuracy of
the system model Lf h(x) and the input effectiveness derivatives LG h(x). Sieberling et al., 2010 shows
how, for the case of aircraft rotational rate control, these matrices correspond to the aerodynamic moments
generated by the airframe and the control effectors, respectively. However, these models tend to be costly
to establish accurately and model mismatch can strongly influence the control performance (Snell et al.,
1992).
A second drawback is the requirement to have as many inputs as controlled outputs; the need for
allocation arises naturally when p < n and the matrix LG h(x) ∈ n × p, making the matrix equation 2.4
underdetermined.
∂
ω̇ = ω̇0 + JMc ω ,u (∆u) (2.5)
∂u 0 0
This alleviates the need to identify an aerodynamic model of the full platform; only moments that the
actuators give rise to need to be estimated. However, as mentioned, the current values of ω0 and ω̇0
need to be estimated. Rotational accelerations are difficult to obtain, as rotational gyros would need
to be differentiated. Different solutions have been found to address this issue, such as optimal filtering
(Sieberling et al., 2010), incorporation of sensor processing low-pass filters (Smeur, 2018) into the controller
to synchronise the control and measurement signal, as well as maintaining online estimates of actual
actuator positions and using pseudo control hedging to account for unachieved pseudo control due to
actuator delay (Matamoros, 2017).
Further extensions (Smeur, 2018) using adaptive implementations further reduce the need for accurate
à priori knowledge of the actuator effectiveness, which is especially important when the effectiveness may
change during flight (eg failures, different regimes of the flight envelope).
2.3. Control Allocation 12
Figure 2.1: AMS of a Delta-Canard High Performance aircraft at low speed. Taken from W. Durham et al.,
2017, Figure 5.8
When the platform features non-linear actuators with changing effectiveness over their range or due to
usage of other actuators, the equation νa = Bu is not linear anymore and B must be seen as a non-linear
function as in equation 2.1 (thrust vectoring changing the axis of thrust, see Blaha, 2021; upstream
aerodynamic actuators changing the characteristics of downstream actuators as shown in Matamoros,
2017).
Finally, the time-dependent characteristics of the actuators may be considered in the choice of u,
especially when some of the available actuators have different time constants. This is known as dynamic
control allocation.
Ganging
The simplest form of control allocation would be to use an explicit heuristic map of the form u = Gν
where G is an n × d matrixBodson and Frost, 2011. A classic example would be the control of a classical
elevator-aileron-rudder aircraft with ailerons on both sides, making n = 4. If the actuators are assumed
axis-decoupled and only affecting pitch, roll and yaw, respectively, the following ”ganging matrix” arises:
1 0 0
−1 0 0
u = Gν = ν (2.6)
0 1 0
0 0 1
This scheme is static, linear, non-optimising and generally only used for actuator suites that can be
grouped well to d groups with an explicit mapping. If a component of u exceeds its limit then it is simply
clipped at that limit without redistribution. However, if the actuators are indeed axis-decoupled, then no
form of redistribution on saturation will ever improve the situation. Grouping of non-identical actuators
seems possible, but would likely lose performance, since they may saturate at different values, have
different effectiveness or have different penalties associated with their use (eg drag, power).
furthermore assume that the preferred state of all actuators in u is 0 and formulate the allocation problem
as a constrained optimisation problem 2.7 whose solution reduces the square sum of control actuator
deflections. Different norms in the objective function are possible and have practical significance, as we
uncover later (see section 2.3.3, but the compact solution presented in this section is only possible with
p = 2. Also, this norm will ensure that a solution of equal-weighted distances from the preferred actuator
state is chosen over one with single ”outliers”, as a p = 1-norm would.
1
min ||Wup u||p
u (2.7)
s.t. ν = B(x)u
Here, Wu is a diagonal, positive definite weighting matrix that enables penalising the use of certain
actuators over others. As long as the equality constraint is consistent, the unique solution is given as
+ +
u∗ = BW u
ν, where we use a weighted generalized inverse BW u
≡ Wu−1 B T (BWu−1 B T )−1 , see Eldén,
1982. Uniqueness arises from the fact that the objective is strictly convex (by our choice of a positive
definite weighting matrix), so it is also strictly convex for any vector in the nullspace of the constraint matrix
B(x). For the case that Wu = I, the inverse reduces to the Moore-Penrose Pseudoinverse and is also
referred to as the minimum-norm solution of an underdetermined linear problem.
In some cases the preferred actuator position is not 0 for all actuators, but rather the vector up ; problem
2.8 arises.
1
min ||Wup (u − up )||p
u (2.8)
s.t. ν = B(x)u
However, if we maintain p = 2, this only slightly complicates the calculation and the solution is given by
+
the intuitive relation u∗ = up + BW u
(ν − Bup ).
This is an optimising control allocation scheme, but it is still linear, static and non-redistributing. In
practical applications, the state dependency of the effectiveness matrix B is often neglected (for example
+
for quadcopters), such that the generalized inverse BW u
and the preferred pseudo-control Bup can be
pre-computed. In that case, every allocation takes two additions and one matrix-vector product; n2 + n + d
floating-point operations.
It should be noted, however, that this scheme does not consider actuator limits and does not compensate
for any errors in the actually achieved pseudo-control. In practice, the can lead to problems with vehicles
where control over some axes is more important than others. A prime example is the multicopter for which
the control authority is often limited in yaw, but yaw is also the least important axes to control as lift and
linear accelerations are governed by pitch and roll. When yaw saturates following a large command relative
to the low authority, pitch and roll may be distorted which can cause upsets (Smeur et al., 2017).
max ρ
ρ,~
u1
s.t. B(x)u1 = ρν
(2.9)
u ≤ u1 ≤ u
u1
u=
max(1, ρ)
Geometrically, this proposes that the most desirable feasible pseudo-control is always the intersection
of the boundary of the AMS with a line from the origin to the commanded (infeasible) pseudo-control. It is
not difficult to construct inputs or AMS boundaries that result in achieved pseudo-controls that are very
small in magnitude even though closer (with regards to some norm) points on the boundary exist. The
premise that axis-preservation is desirable is questionable, especially for vehicles where some axes are
more important to stability than others, such as multicopters.
For the 3-moment problem with linear control effectiveness B, an efficient algorithm due to W. C.
Durham, 2001 scales linearly with the number of actuators. However, the algorithm is very complex and
does not guarantee convergence according to Bodson, 2002, who proposes a reformulation as a linear
problem to be solved using the simplex method, which is fast in practice but shows very high theoretical
upper bounds in the number iterations required (Hillier and Lieberman, 2009, sec. 4.9). If the AMS
boundary can be precomputed offline and stored appropriately, finding the relevant AMS boundary facet
and computing the intersection point can be done easily and efficiently (Petersen and Bodson, 1999).
This formulation is static, linear, optimising (for the maximum achievable axis-preserving control, not for
some distance measure). A major benefit over all previously discussed schemes is that this method can
fully exploit the entire AMS, however without prioritisation of axes or actuators and without the availability
of algorithms with proven efficiency (unless the AMS boundaries can be pre-computed). Also, rate limits
cannot be easily incorporated (Bodson, 2002).
Daisy-chaining
Daisy-chaining is similar to Ganging, but instead of scaling redundant actuators equally like in ganging,
actuators can be prioritised. As an example, allocation is first performed using ganging matrix G1 ∈ n1 × d
(where rankG1 = d) and upon saturation of any element of u, the remaining actuators are invoked by
allocating the residual ν according to G2 ∈ n2 × d, Buffington and Enns (1996). Naturally, n = n1 + n2 .
Note that it is also possible to perform the two allocations using a generalised inverse, as suggested by
Bordignon, 1996, p. 15, which is claimed to be superior to a plain generalized inverse allocation, but does
not address the problem that some attainable pseudo-controls cannot be accurately solved.
An example of this could be using the spoilers on traditional transport aircraft only once the ailerons
are fully deflected to achieve a certain roll command. This makes sure that the spoilers (with high lift and
drag penalties) are only used when absolutely necessary. Like for Ganging, this requires that sensible
heuristic choice separating G into G1 and G2 exists, which may not be the case for more intricate actuator
suites that are not axis-decoupled. There is also no guarantee that the solution is optimal with respect to
some criterion. It is a static, linear, non-optimising, but redistributing control scheme.
and νk+1 = νk − Bk ∆u and repeat until all actuators are fixed or the residual νk = 0. This is one of the
oldest schemes to incorporate limits into quadratic control allocation, see for instance Virnig and Bodden,
1994. Later we shall understand that this allocation scheme is better discussed as a possible solver for
optimising control allocation and its analysis is deferred to section 2.4.3.
Heuristic Desaturation
Among consumer multirotor UAVs, generalized inverses (often simply pseudoinverses) are used to distribute
pseudo-control-like commands from PID controllers (see section 2.2.1) over the actuators. Especially in
drone racing, actuator limits are frequently encountered as maximum or minimum thrust is commanded
to achieve maximum acceleration of the vehicle. To avoid losing angular control when all actuators are
near or at their limit speeds, a number of heuristics are applied which are colloquially known as ”airmodes”
(Willee and Grob, 2021). These aim to achieve roll, pitch and/or yaw commands by adjusting the overall
thrust level (reducing when commanded thrust is high, increasing when commanded thrust is very low) up
to some limit, thereby reducing the chance and impact of actuator saturation. This scheme is unlikely to
lead to optimal solutions in any regard and is dependent on tuning the limits for permissible thrust reduction,
which may be irrelevant for vehicles with large thrust-to-weight, but not for larger VTOLs that do not have
that much thrust.
The industry-leading autopilot platform PX4 has very recently made advances to apply more flexible
control allocation methods for fixed-wing and VTOL crafts to handle control surfaces, vectored actuators
and rotors simultaneously 2 . Nevertheless, the allocation method is still only heuristic desaturation for
multi-rotors or even just Pseudoinverse with clipping for other fixed-wing crafts.
1
min ||Wupu (u − up )||pu
u∈K
1
K = arg min||Wνpν (B(x)u − ν)||pν (2.10)
u∈S
S ={u | ui ≤ ui ≤ ui ∀i = 1, 2, . . . , n}
Solutions to the sequential problem Choosing p = 2 again, and assuming that B(x) has full row rank
and that S = Rn , reduces equation 2.10 to 2.8 for which we have established the weighted generalised
+
BW u
inverse as the unique solution. The redistributed generalised inverse method of section 2.4.3 can be
seen as an approximate way to solve the full problem with actuator constraints (Härkegård, 2002).
Furthermore, Enns, 1998 has suggested replacing the rectangular constraint that determines the set
S by a single elliptical approximation that contains the rectangle. When the solution obtained with the
weighted generalised inverse is infeasible, it continues to find the closes point on the ellipse in the 2-norm
sense, which appears to be solved quickly using bisection. This is only an approximation such that the
solution may still exceed the actuator limits. According to (Bodson, 2002), the ellipse approach biases the
2 https://github.com/PX4/PX4-Autopilot/pull/18776 Accessed 2022-01-13
2.3. Control Allocation 17
solution towards the centre of the actuator limit, which is unfavourable for non-symmetric actuators such
as propellers or spoilers.
Accurate direct solutions of 2.10 can be obtained by exhaustive search over all 3n possibilities of actuator
saturation behaviour (Bodson and Pohlchuck, 1998) and by a fixed-point algorithm due to Sabharwal and
Potter, 1998, which is known to converge to the solution. However, both of these methods are slow in
practice (Härkegård, 2002).
Weighted minimisation The problem 2.10 can be approximated well by forming a linear combination of
the two objectives (reducing error and reducing actuator cost) as a single objective function that is to be
minimised. The allocation error is then prioritised using a large scalar multiplier γ, establishing a hierarchy
similar to the ”Big M” for equality constraints in linear programming. For the original unconstrained problem
2.8 with p = 2, Björck, 1996, sec. 5.1.5. warns of ill-conditioning with too large values of γ, which has to
be chosen as a tradeoff between arithmetical errors and approximation errors when this scalar is chosen
too low.
The weighted minimisation formulation is given by equation 2.11 (Härkegård, 2002):
1 1 1
min ||Wupu (u − up )||pu + ||γ pν Wνpν (B(x)u − ν)||pν
u (2.11)
s.t. ui ≤ ui ≤ ui ∀i = 1, 2, . . . , n
Again, different choices of the norms are possible which lead to different solutions and different families
of applicable numerical solvers, which are discussed further in chapter 2.4. According to Härkegård, 2002
and Bodson and Frost, 2011, real-time optimal solution of the weighted minimisation problem have become
feasible with regards to onboard computational capabilities. However, Härkegård has only considered
platforms with 8 actuators or less and Bodson, 2002 cites a runtime of 3.6ms or more for 16 actuators on a
desktop processor, resulting in less than 300Hz update rate at full CPU usage for control allocation.
u(s) + +
= BWul L(s) + BW (1 − L(s)) (2.12)
ν(s) uh
2.3. Control Allocation 18
It is obvious that this scheme does not consider actuator limits at all and thus can be classified as linear,
non-redistributing, dynamic, optimising.
In the objective function of the MPC controller, the weighted square differences between the achieved
pseudo-control ν1 , ν2 , ..., νNhorizon and the current reference value supplied from the higher level controller
νref is used. Also added are the weighted actuator deflections from the preferred state, similar to problem
2.8.
Recursively applying 2.13 for all time steps in the finite horizon of length Nhorizon gives an expression for
all νk depending only on the initial actuator state w0 , the effectiveness matrix B, the actuator dynamics A, C
and the series of control inputs vectors δ0 , δ1 , . . . , δN −1 . A quadratic objective function arises. However, in
addition to problem 2.11, the constraints are not just bounds, but also linear constraints if wk needs to be
constrained which often results in large (N · n) systems which can be solved with quadratic programming
techniques similar to the ones used for problem 2.11.
Locally Affine Effector Model Typical real control actuators show decreased effectiveness near their
limits (Oppenheimer et al., 2006). In cases where the effectiveness does not reverse, the actuator
effectiveness may be approximated by a local multidimensional affine model around the current state
x0 , u0 , see equation 2.14.
∂B
νa = b(x0 , u0 ) + · (u − u0 )
∂u x0 ,u0
∂B
νa − b(x0 , u0 ) + · u0 ≡ ν̃ (2.14)
∂u x0 ,u0
∂B
ν̃a = ·u
∂u x0 ,u0
∂B
Using the new model for the achieved pseudo-control ν̃a and the local slopes , the allocation
∂u x0 ,u0
u can be computed with standard linear methods as discussed in the previous chapters. For typical
saturating actuator characteristics, this method produces more accurate results than a single linear fit of
the actuator effectiveness matrix B(x, u) (Oppenheimer et al., 2006), but that may not generalise to other
actuator types. Sometimes, couplings between actuators are neglected and the local affine approximation
2.3. Control Allocation 20
∂B
is done on each actuator separately (ie is diagonal, decoupling the equations; Oppenheimer
∂u x0 ,u0
et al., 2006, Matamoros, 2017, sec. 2.3.2), but the matrix algebra of equation 2.14 does not require this.
Higher accuracy may be obtained by not starting at just u0 , but at k starting values around u0 and
selecting the optimal u∗0k that shows the lowest error B(x0 , u∗0k ) − ν (Tol et al., 2014).
Piecewise Linear Effector Model The nonlinear functions describing the actuator effectiveness B(x, u)
may also be expressed as multidimensional piecewise linear functions that are derived à priori. Mixed-
integer linear or quadratic programs can be formulated, using an integer or boolean to provide the solution
algorithm with a degree of freedom to ”select” the active region in the piecewise functions. ”Branch-and-
Bound” software to solve such problems is available and has been shown to accurately control nonlinear
vehicles such as a simulated re-entry vehicle in the presence of failures (Bolender and Doman, 2004) and
an underwater vehicle (Grechi and Caiti, 2016). However, in the first case, the timing requirements could
not be met for real-time implementation and in the second case the vehicle had few actuators (7) and an
update rate of only 10Hz, orders of magnitude lower than required for typical flight control.
However, in terms of the quality of the solution, the benefits of piecewise linear modelling have to be
noted and provide large improvements over the affine modelling.
Sequential Affine Model An approach not mentioned in literature, but a natural extension of theapproach
∂B
that led to equation 2.14 is to treat the problem as an iterative procedure. ν̃ and the linearisation
∂u x0 ,u0
is updated after each solution of the equation 2.14, by replacing u0 with the new iterate uk . This is
essentially a sequential quadratic programming approach that may solve the problem exactly, if the global
optimum is the only local optimum, or if the global optimum is at least a sufficiently close local optimum.
∂B
∆ν = · ∆u (2.15)
∂u x0 ,u0
This idea was further developed by Matamoros, 2017 and successfully applied to the full ICE research
aircraft. A similar idea was formulated in an internship report Blaha, 2021, sec. 4.6 taking inspiration from
the ”full INDI” module in the Paparazzi autopilot platform (Smeur, 2017, Höppener, 2016).
Analysis This scheme naturally handles the non-linear and coupled actuators, if an onboard jacobian
model is used that includes these effects. The path dependency problem mentioned in section 2.3.4
has to be overcome by including an absolute desired state in the objective function of the optimisation
(Matamoros, 2017, sec. 4.3) or using a version of dynamic control allocation (Härkegård, 2004) that should
naturally translate to the fully incremental form 2.15. Originally, Matamoros, 2017 uses `2 norms, but other
norms are possible, just as was the case for other optimising control allocation schemes.
Generally, the method does not find an allocation that fulfils the non-linear problem ν = B(x, u), which
is in contrast to some of the non-linear methods mentioned in section 2.3.5. However, if the update
frequency of the control system is high compared to the system and actuator dynamics, and the increment
∆ν is not too large, then the changes in system state ∆x, control distribution ∆u and consequently of the
∂B(x, u)
effectiveness jacobian are likely very small. Therefore, a solution to equation 2.15 is likely to be
∂u
close to a local solution of the non-linear problem.
2.3. Control Allocation 21
∂B(x, u)
Advantages and Drawbacks Blaha, 2021, sec. 4.6.2 claims that does not have to be re-
∂u
computed at every time step if the actuator dynamics are much slower than the update rate of the ∆u
computations; in the case considered 20Hz vs 200Hz. Depending on the choice of solver, this may
significantly improve performance as also possible inverses of this matrix have to be computed less often.
The opposite is also conceivable and the optimisation may be performed more than once per time step
∂B(x, u)
with updated , yielding a solver similar to the sequential affine model, discussed in section 2.3.5.
∂u
With highly coupled actuators, the scheme may struggle to find the global solution. This was encountered
by Matamoros, 2017, sec. 5.2.4 and worked around by scheduling the actuator penalty weights of the
affected actuator with domain knowledge to prefer their use in certain situations.
Applicable control allocation schemes If the actuators are linear and not coupled, optimising control
allocation can be used, provided the solver is accurate and real-time capable. Dynamic Control Allocation
according to Härkegård can be considered if the actuators are linear and non coupled, but have significant
differences in their dynamic behaviour. It relies on the same type of solver as optimising linear control
allocation.
Incremental nonlinear control allocation (INCA) should be considered when actuators are non-linear
and coupled and thus is the most powerful method shown above. Interestingly, it also uses the same
solver type of solver as the optimisation problem at its core is the same. Any hardware that is capable of
running linear optimising control allocation could also run INCA, provided that updating the effectiveness
Jacobian is relatively cheap. However, recall that INCA can be assumed to be less precise than Optimising
Nonlinear Control Allocation, but shown to work well in practice on a number of challenging platforms.
These methods are very flexible and should be able to control a large number of relevant platforms
without the need for excessive platform-specific optimisation (like gain scheduling) if their numerical solvers
are real-time capable for the number of actuators required. A closer look at such solvers is warranted.
2.4. Numerical Optimisation 22
1 1 1
min ||Wupu (u − up )||pu + ||γ pν Wνpν (B(x)u − ν)||pν
u (2.11 revisited)
s.t. ui ≤ ui ≤ ui ∀i = 1, 2, . . . , n
In equation 2.11, we make the restriction that Wu ∈ n × n and Wν ∈ d × d be diagonal and positive
definite, which is appropriate for comparative weighting matrices and will ensure the well-posedness of the
presented algorithms. Also, B shall possess full row-rank and we shall denote the first term ”actuation
penalty” and the second term ”pseudo control error”.
A crucial shortcoming of the current state of the art that has been identified is the lack of fast and
precise solution methods that allow for control of a platform with a large number of actuators (≥ 15) without
the need for artificial grouping, lowering the update rate or using large processing hardware.
Not found in literature. Load-balancing can be achieved with the `∞ norm as seen above, but also
with the `2 norm. Combining the two does not seem beneficial over `2 − `2 , as quadratic solvers
need to be used regardless of the `∞ norm which does not help improve the speed of the algorithm.
The remaining norm combinations are `1 − `1 , `2 − `2 , `2 − `1 and `∞ − `1 . Numerical solvers for these
norms are discussed next which focus on computational speed, accuracy and ease of implementation.
min cT x
x
s.t. Ax = b (2.16)
0≤x≤h
The decision vector x is not identical to the vector of actuator controls u; in both cases, the problem is
larger to accommodate the positive and negative parts of the residuals in equation 2.11. This following
paragraphs detailing this is a summary and discussion of the two important resources Bodson, 2002 and
Bodson and Frost, 2011.
For the discussions below we need the definition of the function s(x), equation 2.17.
(
x if x ≥ 0
s(x) ≡ (2.17)
0 else
Ax = b
(2.18)
−B +B +Id −Id x = Bup − ν
Reformulation of `∞ − `1 Introduce the scalar variable u∗ > 0 to the decision vector as an upper bound
to the `∞ norm of the actuator penalty, such that u∗ = u+ + δu+ and u∗ = u− + δu− with the slack variables
T
(δu+ , δu− ) > 0. We redefine x = u+ u− δu+ δu− u∗ e+ e− and include u∗ in the objective
T
function instead of the actual deflection: c = 0 0 0 0 1 γdiag(Wν ) γdiag(Wν ) . The linear
program solver will now decrease u∗ as much as possible, until this upper bound on `∞ becomes the `∞
norm because it is bounded by any component of δu± hitting the lower limit 0.
2.4. Numerical Optimisation 25
Again, we introduce feasable upper bounds on the new variables, even though it would not be
T
strictly necessary: h = u − up up − u u − up up − u u∗ Bup − ν Bup − ν , where u∗ =
max (|u − up |, |up − u|).
The newly introduced variables are implemented as 2n additional constraints, see equation 2.19
(Bodson and Frost, 2011, eq. 32).
Ax = b
−B +B 0 0 0 +Id −Id Bup − ν
(2.19)
0 0 In 0 −1 In 0 x = 0
0 0 0 In −1 0 In 0
Simplex
A common class of methods to solve problems 2.16 is the simplex method, which traverses the facets of
the feasible region until the facet that contains the constrained optimum is found. It is widely used and
taught in operations research curricula and many software implementations exist (Hillier and Lieberman,
2009, sec. 4.1).
With application to control allocation, two main problems restrict the performance of the simplex
algorithm. First, the method always maintains as many free (”basic”) variables as there are constraints
while all others are bound (Hillier and Lieberman, 2009, sec. 4.2). This implies that at the solution of an
`1 − `1 formulation at most d variables in x are different from either 0 or their upper bounds h, which implies
that at most d actuators are commanded to values other than their minimum, maximum or preferred state.
Since the most advantageous actuator is used first until its saturation, this is somewhat reminiscent of
daisy-chaining (see section 2.3.3) for its application to vehicles with many redundant axis-coupled actuators
was already criticised. When there is only one optimum, the above is an intrinsic of linear programming in
general, as mentioned by Bodson, 2002, but there can be cases where multiple adjacent corner points
of the convex feasible region (”basic feasible solutions”) have equally optimal objective function values.
Without tie-breaking rules (Hillier and Lieberman, 2009, sec 4.5), any could be returned. This leads to
problems in platforms with many similar and redundant actuators (eg. an octorotor) since it will load some
motors more than others, even when no rotational acceleration is commanded.
Second, the simplex algorithm is fast in practice, especially on smaller problem sizes, but the theoretical
upper bound on the iterations until convergence is exponential in the problem size (Hillier and Lieberman,
2009, sec. 4.9). This may provide obstacles when such an algorithm is used for certification, as a
worst-case execution timing analysis is likely required (see section 2.1.2).
Interior-point
Algorithms of the interior-point class challenge the performance of the simplex algorithm, especially for
large problems. Interior-point methods derive a Newton iteration scheme directly from qualified ”Karush-
Kuhn-Tucker” (KKT) conditions of problem 2.16 while limiting the iteration step size such that all iterates
remain in the interior of the convex feasible region (Hillier and Lieberman, 2009, sec. 4.9). KKT conditions
can be derived for quadratic objective functions as well, and the main derivations of the method for this
more general case are outlined in appendix 3.1.
An advantage of the interior-point algorithms is that the iterations required until convergence are largely
independent of problem size (as cited from Hillier and Lieberman, 2009, sec. 4.9, seen in practice eg. in
Petersen and Bodson, 2006, Fig. 9). However, the cost per iteration is much higher than for the simplex
algorithm as each iteration requires inversion of the jacobian 3.7. This implies that there for any type of
problem there should be a problem size that forms a break-even point after which the interior-point method
converges faster than the Simplex class. Owed to the special structure of the jacobian, the inversion
should scale with O(n ∗ d) which, in combination with the independence of iteration count after a certain
n, would yield linear scaling of computational costs with actuator count n. However, an adaptation of the
interior-point method been applied to `1 − `1 control allocation in Petersen and Bodson, 2005 has not
reached the break-even point with n = 11 and n = 16.
2.4. Numerical Optimisation 26
A second advantage is that the method has an implicit way of dealing with the ambiguity mentioned
for the Simplex algorithm. The centring parameter σ naturally chooses step directions that point towards
the inside of the feasible region as much as possible. Preliminary experimentation with MATLAB®’s
linprog has shown that when an entire edge or facet represents the optimal solution to the problem, the
interior-point scheme is likely to converge to a point in the middle of this facet. However, methods of tuning
σ for this purpose do not seem common in literature.
A severe disadvantage of the interior-point method is the stalling of the method (step size becomes very
small) when an iterate is close to the boundary of the feasible region. The centring parameter prevents
this during optimisation, but it implies that ”warm-starting” the method from known close values (perhaps
from a previous time step) is difficult. A possible approach is to maintain a set of active constraints that
influence the path of the iterates the most and derive initial iterates from their combinations (δ-active set
interior-point method, see Shahzad et al., 2010). For simplex algorithms, the choice of basic variables at
the solution can simply be reused to start the iterations for the problem at the next time step.
1 T
min u Hu + β T u
u 2 (2.20)
s.t. ui ≤ ui ≤ ui ∀i = 1, 2, . . . , n
As shown in equation 2.21, we use the definitions H = 12 (Wu + B(x)T γWν B(x)) and β = Wu up +
γB(x)T Wν ν and neglect the constant terms. By construction of H using the positive definite and diagonal
weighting matrices, H remains positive definite and symmetric.
1 1 1 1 1
min ||Wu2 (u − up )||22 + ||γ 2 Wν2 (B(x)u − ν)||22
u 2 2
1 1
= (u − up )T Wu (u − up ) + γ(B(x)u − ν)T Wν (B(x)u − ν)
2 2
1 T 1 1
= u Wu + B(x)T γWν B(x) u − uT Wu up + γB(x)T Wν ν + uTp Wu up + ν T γWν ν
2 2 2
1 T
= u Hu + uT β + c
2
s.t. ui ≤ ui ≤ ui ∀i = 1, 2, . . . , n
(2.21)
Similar problems arise frequently in model predictive control and computational contact mechanics,
both fields in which efficient algorithms are required. As such, many optimised method are described in
literature (active-set Björck, 1996, sec 5.2. active-set with gradient projection Moré and Toraldo, 1989,
conjugate gradient Vollebregt, 2014, interior-point Petersen and Bodson, 2005) and are discussed in the
following.
that two arbitrarily close pseudo control input vectors can lead to largely different allocations and achieved
pseudo controls.
Nevertheless, there is still considerable research interest in the method. It is quite fast, since it takes
a maximum of n − d iterations before an allocation is found and there is some indication that the quality
of the solution can be significantly improved through improved bounding rules Jin, 2005, scaling and
axis-preserving features similar to DCA (Zhang et al., 2018, Stephan and Fichter, 2017) that guarantee
exact solution at least within the feasible domain.
Active-Set
Active-Set denotes a class of algorithms that follow a similar procedure to the Redistributed Generalised
Inverse, but with the ability to free a constrained variable. As the name implies, it maintains a set of
active constraints, turning some of the inequality constraints in 2.11 into equality constraints Cu = d
and neglecting all others that are not currently ”active”. This new and smaller ”Equality-Constrained
Least-Squares Problem” (”LSE” in Björck, 1996, p. 5.1.1.) can be solved efficiently using a variety of
methods. After the exact ”subspace minimisation” (Nocedal and Wright, 2006, p. 16.7), the active-set is
updated by checking the constraints for feasibility and the Lagrange multipliers as a measure of optimality.
This updated strategy is crucial to ensure finite convergence of the algorithm and in most cases, a simple
rule is adopted that bounds the constraint that is violated first in the case of infeasibility, and that free the
variable with the smallest Lagrange multiplier in case of non-optimality.
The active-set algorithm requires a feasible starting point which can be a non-trivial requirement for
general linear inequality constraints, but for the bound-constraints at hand, we can simply use u0 = (u+u)/2.
Härkegård, 2002 notes two decisive advantages with active-set algorithms for control allocation: (1) the
solution u∗ and corresponding active-set of the previous time step can be used as the starting point u0
of the current time step and (2) each iterate is feasible and decreases the cost function which makes it
possible to terminate the algorithm after a fixed number of iterations, expecting suboptimal results that
are guaranteed to be better than the starting point. In the cases presented by Härkegård, 2002, applying
(2) increased the maximum allocation error for infeasible controls, but reduced maximum computation
time. Since this allows only a small number of changes in the working set, it is likely to induce a lag in the
allocated control, the effect of which has not been characterised yet in closed-loop simulation.
It should be noted that while it is known that active-set terminates in finite steps, it is difficult to prove
tight upper bounds on the number of active-set changes sufficient for convergence (Cimini and Bemporad,
2017).
Subspace Minimisation using QR decompositions Several methods are possible to solve the equality
constrained subproblems. Björck, 1996 suggests the nullspace method for bound-constrained problems,
which is outlined below.
1. Establish the equality constraint matrix A as the active set of the inequality constraints Cx ≤ g
Since we only have bound-constraints, this is simply a selection of the rows of (I, −I)T .
2. QR decompose the equality constraint matrix A into Q1 , Q2 and RA . This also has trivial structure
for bound-constraints.
Now any vector that satisfies the equality constraints Au = b can be represented as u = u1 + Q2 y2
where u1 is a particular solution of the equality constraints u1 = C + d = Q1 RA
T
d, by the properties of
QR decomposition. This reduces the dimension of the least-squares system, since y2 is of smaller
dimension n − nk where nk is the number of bound variables
3. Solve for y2 using (CQ2 )y2 = g − Cu1 which can be solved via the QR decomposition of CQ2 .
Most implementations (Härkegård, 2008, Höppener, 2016, Smeur et al., 2017) refactorise CQ2 at
every new iteration of the active set procedure.
Because of the simple structure of Q1 and Q2 which correspond to a selection of columns of C, it is
advantageous to QR decompose C fully at the beginning (taking 1/3n3 operations) and then updating
permutations of C where the first n − nk denote the free variables and the last nk columns correspond
to bound variables. When only a single variable is bound or freed each iteration, this can be done using
efficiently in 2n2 operations using Givens rotations, with code available in LINPACK (Dongarra et al.,
2.4. Numerical Optimisation 28
1979, chapter 10) and is noted as a possibly significant improvement over existing control allocation
implementations.
However, when many variables are already bound, the problem size becomes small and the updating
permutations may not provide benefit over factorising the smaller matrix CQ2 from scratch in 1/3(n − nk )3
operations as opposed to updating in n2 operations. Only representative experimentation will enable
conclusions about this.
Subspace Minimisation using Conjugate Gradients The Conjugate Gradient (CG) method is an
alternative to solving large linear problems Ax = b if A is symmetric and positive definite. Unconstrained
positive definite quadratic optimisation (minu 1/2uT Hu + β T u can always be brought to this form, since
we only require the derivatives to vanish: 0 = Hu + β → Hu = −β (Nocedal and Wright, 2006, sec. 5.1).
The method relies on performing successive minimisation along linear search directions, which does
not require any factorisation: uk+1 = uk − (Hu pT
k +β)pk
pk , where pk is the chosen search direction and xk
k Hpk
are the iterates (Nocedal and Wright, 2006, eq. 5.6). It can be shown that if the first direction is simply
the steepest descend p0 = −Hu0 − β then an efficient, updating scheme can compute n − 1 additional
conjugate directions that lead to the solution in at most n steps (Nocedal and Wright, 2006, Theorem 5.3.),
where n is the dimension of uk .
Interestingly, when the k eigenvalues of H are identical, then the convergence completes in n − k steps
(Nocedal and Wright, 2006, Theorem 5.4). Preliminary experimentation seems to indicate that similar
actuators (same thrust coefficients, symmetry, same distance components to the centre of gravity, same
weights etc.) can be associated with identical eigenvalues in H. Since each iteration of CG takes n2 + 8n
add/multiply and 2 division operations, this could reduce the total operations count for an unconstrained
minimisation compared with a full QR solve (1/3n3 + 2n2 ) for platforms with many similar actuators and
substitute the QR solver for the subspace minimisation of the active set algorithm.
(b) If the optimum ujk is feasible, the Cauchy Point is found. Proceed with a subspace optimisation
over the current working set with j constraints, yielding u∗k . Set uk+1 = u∗k .
If Huk+1 + β == 0 and the Lagrange Multipliers are ≥ 0 for all j active constraints, stop with
solution uk+1 . Else, k + + and continue with 2.
The subspace optimisation can also be skipped, setting uk+1 = ujk and returning directly to item
2., but would require more iterations.
Choice of Subspace Optimisation Method Just like for active-set, the subspace optimisation may be
performed with any method, eg. nullspace method with QR factorisation or Conjugate Gradient. Since
multiple variables are freed or bounded between subspace optimisations, it is possible that updating the
QR factorisation does not improve the performance as much, since j updates with 2n2 computations have
to be performed if j variables are bounded or freed at a given iteration and not only one.
Although no exclusive answer is given in literature, there are several reasons to prefer CG over
the nullspace method. First, since subspace optimisation could be skipped entirely without affecting
convergence guarantees, the problem does not need to be solved exactly. Therefore, it could be beneficial
to only perform a few iterations of CG to improve the Cauchy Point, which is not possible with the direct
solution of the nullspace method.
Second, if the subspace optimum is infeasible, then a new Projected Gradient iteration is necessary.
Since CG generally makes rapid progress towards the subspace optimum in the first few iterations,
infeasibility could be detected well before convergence (Nocedal and Wright, 2006, sec. 16.7). And if the
subspace optimum is feasible, it is likely to be the global optimum or very close to the global optimum
(after verifying the sign of the Lagrange multipliers). The same argument about similar eigenvalues for
actuators suites with many similar actuators holds for this application of CG as well.
Third, the method is easier to implement, requiring no code for QR decomposition, only widely available
and heavily optimised BLAS (Basic Linear Algebra Subroutines) level 1 and 2 functions and basic scalar
arithmetic.
Use in other domains Derivatives of the method have been applied and optimised for computational
contact mechanics (Vollebregt, 2014) in the software package CONTACT and for Model Predictive Control
(Yu et al., 2021), however has never been applied to control allocation.
Interior-point
These algorithms are very close to the algorithms for linear problems presented in section 2.4.2. Petersen
and Bodson, 2006 show a successful application to control allocation by introducing slack variables to the
quadratic KKT system to derive an iteration scheme (see appendix 3.1, for a concise derivation).
The same argumentation for and against the interior-point algorithm can be continued here as well:
The number of iterations increases only slowly with the problem size, such that a break-even point over
active-set methods can be expected. For the `2 objectives, Petersen and Bodson, 2006 considered
problems with very large numbers of actuators and found the break-even to be around n = 15. This
behaviour makes the interior-point algorithm very attractive for general-purpose solvers, such that it is
the default for many numerical software packages, The MathWorks, Inc., 2022 being a prime example. It
should be noted, that n = 15 would be too ”late”, since naive and non-updating active-set already becomes
intractable for n ≥ 15.
The same downsides also hold: in contrast to active-set and gradient projection, the method cannot be
easily restarted, which Petersen and Bodson, 2006 neglects to include in the comparison. How problematic
this is in the context of control allocation is hard to estimate and is likely characterised best by representative
closed-loop experiments.
Finally, each iteration requires inversion of an n × n matrix (called D in Petersen and Bodson, 2006)
which is well-conditioned and positive definite and so can be factored using a Cholesky factorisation in
1/6n3 steps (Björck, 1996). However, D receives a full-rank update in every iteration of the interior-point
as its diagonal terms change and thus needs to be refactored. This factorisation (as the only n3 term)
should quickly become the dominant contributor to the operations per iteration, but the plot of floating
point operations over actuators (Petersen and Bodson, 2006, Fig. 10) seems quadratic in nature. The
2.4. Numerical Optimisation 30
authors also suggest using the Sherman-Morrison-Woodbury to perform an update of D, but this formula is
constructed for rank-one updates or low-rank updates (Nocedal and Wright, 2006, App. A.1) which cannot
represent full-rank diagonal additions. This is to say that the implementation is not entirely clear from the
article and the results should be further researched/reproduced. Petersen contributed code to the QCAT
project which can be examined to solve these doubts.
1 1
min ||Wu2 (u − up )||22 + |γWν (B(x)u − ν)|
u 2
1 (2.22)
= (u − up )T Wu (u − up ) + |γWν (B(x)u − ν)|
2
s.t. ui ≤ ui ≤ ui ∀i = 1, 2, . . . , n
Now, to accommodate the `1 norm for the pseudo control error, we again split the allocation vector u
into positive-only parts u+ and u− that denote the difference to the preferred state up . Also, we introduce
T
the pseudo control error parts e+ and e− and we again use the decision vector x = u+ u− e+ e− .
For a more rigorous discussion on these vectors, refer to section 2.4.2.
Note that with these definitions, the first term in equation 2.22 can be written 12 (u+ − u− )T Wu (u+ − u− )
or equivalently 12 u+T Wu u+ − u+T Wu u− + 12 u−T Wu u− . Now, by construction, u+ = 0 if u− > 0 and vice
versa, such that the product
over a diagonal matrixu+T Wu u− = 0. Defining the augmented weighting
matrix via diag(W̃u ) = diag(Wu ) diag(Wu ) 0 0 to match the definition of x, we can write the final
form of the reformulated problem as equation 2.23:
1 T
min x W̃u x + cT x
x 2
s.t. Ax = b (2.23)
0≤x≤h
The choices of A, b and h remains the same as in section 2.4.2, but the linear objective term for the
T
actuator penalty is removed by setting c = 0 0 γdiag(Wν ) γdiag(Wν ) .
2.4. Numerical Optimisation 31
The interior-point algorithm, as applied to the linear programming problems (section 2.4.2 and appendix
3.1) provides an interesting opportunity that may solve the ambiguity noticed in linear allocation problems
with many similar actuators.
Interior-point
The modifications above seem complex, but result simply in the addition of a quadratic term to the objective
function. As shown in appendix 3.1 this only adds 2n more divisions to the operations count per iteration,
because of the fact that the Hessian W̃u is diagonal.
Despite the larger problem size than for an interior-point algorithm for the `2 − `2 norms (Petersen and
Bodson, 2006), the largest matrix to be inverted is of dimension d and not n, whereas d << n for highly
over-actuated systems. It remains to be seen whether this addition requires the same or more iterations
to converge to the solution, or if the break-even point with other solvers is only reached at a very high
number of actuators as was the case for the quadratic interior-point. Nevertheless, it should be clear that
this approach should outperform all `2 solvers in terms of asymptotical performance since the iterations
complexity is bounded by O(nd2 + d3 ) (presumably lowest for all iterative solvers) and the number of
iterations for convergence is lowest for interior-point methods.
2.5. Comparative Testing and Benchmarks 32
Testing Framework
In almost all studies MATLAB® has been used as the framework to implement the algorithms. However,
MATLAB® was conceived as a framework for interacting with LINPACK and EISPACK routines (Moler,
2018) written in FORTRAN and also provides an interpreter to facilitate program flow control and data
management. As such, the execution speed largely depends on the efficiency and the effective use of
external routines and minimal use of the slow interpreted instructions. Some of these routines may benefit
differently from vector instruction extensions common in desktop-x86 architectures (such as AVX2, Intel,
2014) to optimise the Basic Linear Algebra Subroutines (BLAS, used by MATLAB®, Moler, 2000).
It may therefore be unfair to compare the convergence times of two algorithms in MATLAB® that use
different amounts of interpreted ”glue”-code and vectorised BLAS functions, that would not be present
in a from-scratch interpretation in a system programming language such as C or C++ on microcontrollers
common in UAVs.
An example is using tic/toc to compare the runtime of MATLAB®’s general function quadprog (The
MathWorks, Inc., 2022) for solving quadratic optimisation problems with the purpose-built solver QCAT
(Härkegård, 2008); QCAT ”outperforms” (Sadien et al., 2019) quadprog, but is the advantage with the
algorithm or its implementation using less operations, or simply because of quadprog’s higher overhead?
Furthermore, Sadien et al., 2019 also notes that using tic/toc in the first place is inaccurate, as it
includes processing time used for background activity on the CPU core.
Benchmark Generation
It seems indispensable to generate a number of benchmark problems that are representative of the many
different configurations possible with diverse effector suites of UAVs and evaluate if the strengths or
weaknesses of the algorithm align with relevant use-cases.
The requirements constrain the number of computational operations allowed for the generation of a
control allocation vector.
2.5. Comparative Testing and Benchmarks 33
Requirements for UAVs Requirements for modern UAVs and (e)VTOLs were also established (section
2.3.6); now it is concluded that these requirements restrict the choice of applicable control allocation
schemes from literature considerably. Only the Methods that require manual partitioning of actuators to
certain axes (section 2.3.2, section 2.3.3) do not apply to multi-rotors. Coupled actuators are frequent (eg.
tilting rotors), which rules out linear allocation methods (section 2.3.2). To exploit to Attainable Moment Set
that is frequently used to design these crafts, a redistributing scheme is desired that deals with saturation
(section 2.3.3). Furthermore, full aerodynamic characterisation of the crafts is often impractical, such that
incremental control schemes (section 2.2.2) may be preferred.
It is concluded, that some of the most powerful and flexible control allocation schemes are available
(dynamic control allocation, section 2.3.4; optimising non-linear control allocation, see section 2.3.5), and
can indeed control effector suites of dissimilar, non-linear, coupled actuator suites with different dynamic
responses with remarkably minor vehicle-specific tuning if the effector model is accurate (2.3.5).
It is difficult to quantify the computational load that may be appointed to control allocation and furthermore
difficult to provide upper bounds to the execution time for most exact optimising control allocation schemes.
Previous work has shown that execution time is indeed a practical problem (section 2.1.3) and UAV
manufacturers compromise performance for low computational load (section 2.3.3) which indicates that
this requirement is the most difficult to meet.
UAV autopilot state-of-the-art Curiously, the most popular UAV autopilot frameworks make use of
Ganging (section 2.3.2) or simple pseudo-inverses (section 2.3.2), possibly improved with heuristic ap-
proaches to deal with actuators saturating (section 2.3.3). Optimising control allocation has only been
found in one package and is mostly used for multi-rotor vehicles with few actuators. This points to a large
difference between UAV control allocation and the academic state of the art. The reason may be that many
consumer UAVs have high thrust-to-weight ratios, leaving sufficient overhead to make up for suboptimal
control schemes. However, with the advance of VTOLs for unmanned flight, the current trend goes towards
more sophisticated control allocation to control those dissimilar actuators more robustly (section 2.3.3).
Performance Indicators The performance indicators for the solvers of equation 2.11 are: (1) ability to
balance the control effort over the actuator suite, (2) accuracy of the returned solution, (3) computational
speed for a certain suite size n. It is not obvious from control allocation literature what an acceptable
compromise between these indicators is. Closed-loop simulations and experimentation with real-world
vehicles seem best to test the influence of (1) and (2) (section 2.5.2). The evaluation of computational load
may be best performed by analysing operations per iteration and estimated the necessary iteration count
from representative open-loop problems (section 2.5.2).
Current Performance and Research Trends From the available options presented in chapter 2.4,
quadratic penalty functions with active-set solvers are considered state of the art for fulfilling (1) and (2) at
tractable computational speed for small suites n < 15 (3) (section 2.4.3). Attempts to use interior-point
algorithms have shown benefits over active-set for n > 15 (section 2.4.3), although comparison was
problematic since the warm-start capability of the active-set algorithm was not used.
2.6. Conclusions and Future Work 35
In the past, different choices of the norms in 2.11 have been made to attempt to sacrifice balancing (1)
for speed (3) (section 2.4.2). However, even though steady-state allocation errors seem sufficiently small,
it has not been conclusively shown with flight tests or closed-loop simulations how this affects the control
distribution over time in a dynamic situation with saturation.
In early and recent literature, sacrificing accuracy (2) in exchange for speed (3) was considered. The
iterative algorithms, such as active-set may be truncated after a fixed number of iterations, although this
may result in a lag effect when changes are large which has not been quantified in dynamic closed-loop
situations (section 2.4.3). Although rejected by early literature for their inability to return the exact solution
and erratic control distributing, redistributed pseudo-inverse schemes have been improved in recent works
(section 2.4.3) to make the solutions more stable and usable in control allocation.
Research Gaps
1. Surprisingly, active-set methods used in control allocation have not yet considered the use of updating
factorisation to improve speed (3) and time complexity (section 2.4.3). This method would then be
considered sufficiently optimised to serve as a baseline for comparing other solvers.
2. The combination of `2 − `1 norms in equation 2.11 seems to provide an appropriate compromise
between speed (3) and balancing (1) (section 2.4.1) when solving with an interior-point algorithm
(section 2.4.4), but is not found in literature.
3. The choice and design of solvers generally does not attempt to exploit certain special structures in the
problem matrices to improve speed (3) while minimising inaccuracy (2). With many rotors pointing in
the same direction and symmetry of the actuator suite, the eigenvalue structure of an `2 − `2 problem
Hessian may be similar, of which a conjugate gradient based quadratic optimisation scheme can
benefit (section 2.4.3). Despite the ease of implementation of conjugate gradient methods, this has
never been performed in literature.
4. The method of Gradient Projection (section 2.4.3) has never been applied to control allocation despite
its success in other comparable domains.
5. Comparative studies generally only consider one or very few similar use-cases. Especially for diverse
platforms found in UAVs and eVTOL concepts, a comparative study with more test cases may be
beneficial (chapter 2.5).
Additionally, execution timings in recent control allocation literature can sometimes lack robustness
when a desktop framework such as MATLAB® is used, with little attention to establishing an actual
count of the arithmetic operations, even though that seems a common approach in other fields.
6. Closed-loop simulations or real-world experiments are rarely used to validate the balancing (1)
behaviour or the effect of inaccurate solutions (2) (section 2.5.1).
Research Objective ”Future research shall aim at finding relevant improvements of numerical optimisa-
tion algorithms for control allocation of UAVs and eVTOL, by implementing possible improvements over
a baseline method and evaluating accuracy of the solutions, computational speed and balancing of the
solution over the available actuators.”
Research Questions The different elements of the research objective have to be broken down and
specified, to guide the research planning, the following Research Questions and subquestions have been
formulated and partially answered.
2.6. Conclusions and Future Work 36
1. What possible changes to the numerical algorithms for optimising control allocation can be shown to
provide significant improvements over the baseline?
(a) Can the speed of the active-set method for `2 − `2 norms be improved by iteratively updating its
QR factors between iterations, using Given’s rotations?
(b) Can interior-point methods solve the `2 − `1 norm problem efficiently with accurate and balanced
solutions?
(c) Can the eigenvalue structure of the benchmark problems be exploited with Conjugate Gradient
methods to make the active-set method for `2 − `2 norms more efficient?
(d) Can the gradient projection method for the `2 − `2 norms improve speed?
Research Approach To answer the research questions with confidence, a number of secondary ques-
tions have been set up as pre-requisites to define the methodology. The more detailed project schedule
will be based on these questions as well.
1. What performance parameters are relevant to UAVs and eVTOLs?
As concluded above, the ability to balance control effort (1), the accuracy of the solutions (2),
computational speed of the optimisation (3). However, a fair quantification and relative importance of
these indicators for UAV/eVTOL flight performance are yet unclear.
• How can the balancing action be quantified?
• How can accuracy be quantified?
Different norms of the allocation error B(u∗ , x0 , t) − νa can be considered.
• How can execution speed be quantified?
As mentioned in section 2.5.2, floating-point operations count per iteration and number of
iteration for convergence seem like a more robust option than empirical execution timing in
MATLAB®.
• How large is the budget of floating-point operations for one time step in the representative
platforms (UAVs, eVTOLs)?
2. Which baseline method is appropriate to compare the improvements against?
These improvements mentioned in the research question shall be compared to a baseline solver
that is representative of the current state-of-the-art. Since the `2 − `2 choice of norms is known to
balances the control distribution best, and the active-set method solves the problem accurately, the
WLS solver described in Härkegård, 2002 and Smeur et al., 2017 will be used as the baseline.
3. How should the representative test problems be chosen?
(a) Should the test suite consist of open-loop or closed-loop problems, or both?
A major point of criticism to current methods of evaluating control allocation performance in this
review has been the over-emphasis of speed (3) and (steady-state) accuracy (2). However, the
effect of balancing the control effort (1) throughout dynamic manoeuvres can only be evaluated
with closed-loop simulations and/or experimentation. Since these research items are more time
consuming to execute, only a subset of the possible improvements should be included in this
stage.
(b) In either case, which control allocation formulation shall be used to derive the test problems?
It has been established that INCA (section 2.3.5) is the most flexible control scheme that can be
solved with linear-quadratic optimisation methods. It is flexible in the sense of supporting chal-
lenging platforms and also flexible enough to explore different update rates for the recomputation
of the effectiveness matrix.
Note that the optimisation problem at the heart of INCA, also forms the heart of methods in
linear optimising control allocation and dynamic control allocation, which would all benefit from
the prospective improvements.
2.6. Conclusions and Future Work 37
1 T
min u Hu + cT u
u 2
s.t. Au = b (3.1)
0≤u≤h
Slack variables s are introduced to convert the upper bounds to an equality constraints. The standard
form equation 3.2 arises:
1 T
min u Hu + cT u
u 2
s.t. Au = b
u+s=h (3.2)
0≤u
0≤s
The Karush-Kuhn-Tucker condition for the system can be derived via the Lagragian 3.3, where the
vectors λ and η represent the lagrangian multipliers associated with the equality constraint and the upper
bound constraint, respectively.
1 T
L(u, λ, η) = u Hu + cT u − λT (Au − b) − η T (u + s − h) (3.3)
2
Any feasible and locally optimal solution satisfies the constraints and that the derivative of dL/du = 0.
In addition to that, for every element ui in u, either the associated slack variable si or the Lagrangian
multiplier ηi must be 0. Intuitively, this corresponds to requiring that either a variable is at its positive limit
si = 0 and cannot be increased without violating feasibility or the variable is at its unconstrained optimum
and consequently ηi = 0. This can be formulated using the non-linear complementarity measure µi ≡ si ηi .
38
3.1. Interior Point Methods for `2 − `1 Norms 39
The system of non-linear equations 3.4 (the ”Karush-Kuhn-Tucker” conditions for the problem) is found.
Hu + c − AT λ − η = 0
Au = b
(3.4)
u+s=h
si ηi = 0
Using the definitions S = diag(s) and N = diag(η), the system 3.4 can be written in matrix form, see
equation 3.5.
Fξ − β = 0
T
H −A 0 I u −c
A 0 0 0 λ b (3.5)
− =0
I 0 I 0 s h
1 1
0 0 2N 2S η 0
By taking the jacobian of the matrix F , we can formulate a newton iteration step. For this, the definitions
of the residuals (equation 3.6) simplify notation. We use the complementarity measure µ = sη defined
above and the centring parameter σ ∈ [0, 1) that steers the solution towards the central path to ensure the
iterates only get close to the boundary of the constraints when approaching the solution (Nocedal and
Wright, 2006, p. 396). ~1 is a column vector of ones.
rd ≡ −AT λ + η + c
rp ≡ Au − b
ru ≡ u + s − h
(3.6)
rs ≡ N s + σµ~1
T
r ≡ rd rp ru rs
The newton iteration can now be written as ∆ξ = −JF−1 r. The iteration equation is summarised in
equation 3.7.
JF ∆ξ = −r
T
H −A 0 I ∆u −rd
A 0 0 0 ∆λ −r
p (3.7)
=
−ru
I 0 I 0 ∆s
0 0 N S ∆η −rs
Instead of directly factorising JF , we notice the special structure and instead perform successive block
row operations on equation 3.7 to eliminate variables. Update relations 3.8 are found (compare The
MathWorks, Inc., 2022, sec. Algorithms):
40
Part II
Scientific Article
41
Computationally Efficient Control Allocation Using Active-Set
Algorithms
T.M. Blaha ∗ , E.J.J. Smeur † , B.D.W. Remes ‡
Abstract: An effective distribution of flight control commands over many aircraft actuators (engines,
control surfaces, flaps, etc.) can be achieved with constrained optimisation. Active-Set methods
solve these problems efficiently, but their computational time requirements are still prohibitive for
aircraft with many actuators or slower digital flight control processors. This work shows how these
methods can be improved in these regards, by updating the required matrix factorisations at lower
computational costs, rather than solving a separate optimisation problem at every step of the iterative
algorithm. Additionally, it is shown how the sparsity of the problem matrices can be exploited. Both
open-loop simulations and flight tests have been performed, which show that worst-case timings for
a 6-rotor multicopter UAV can be improved by 65% over a current Active-Set solver. Furthermore,
methods are presented that remedy numerical stability issues occurring in micro-controller floating
point arithmetic but introduce a small but measurable adverse effect on the flight behaviour.
1. Introduction
In the context of aircraft and unmanned aerial vehicles, the flight control system com-
prises a set of controllers that ultimately send commands to a suite of actuators (propellers,
aerodynamic control surfaces, etc.), to achieve a desired flight path and/or attitude. Often-
times, cascaded control systems are used that compare references to estimated position,
velocity, attitude and angular rates and output a set of desired forces and moments ν ∈ Rd
around the vehicle body. The number of degrees of freedom d depends on the location,
orientation and types of actuators. For example, multicopters typically have all rotors axes
aligned and can thus provide control around all three moment axes and one thrust axis
(d = 4), such that tilting of the platform is used for position control. In general 3 ≤ d ≤ 6.
The control allocation problem now poses that the desired "pseudo-controls" ν have to
be allocated over the n available actuators. In other words, an actuator state vector u ∈ Rn
must be found, which gives rise to ν. Incremental attitude control schemes, such as INDI
[1,2], command increments ∆ν instead; they are popular due to their good disturbance
rejection while only requiring knowledge of the characteristics of the actuators. If the
relation between actuator increment ∆u = u − uc (with uc the current actuator state)
and the arising pseudo-controls increment ∆νa is linear, the actuator effectiveness matrix
B ∈ Rd×n can be introduced linking ∆νa to ∆u as
Because any physical actuator has limits u ≤ u ≤ u and rank( B) may be less than n
(especially since on many platforms d < n), this equation is not easily inverted to find an
explicit formulation for ∆u. Many methods have been devised to find suitable inverses to
Equation 1, among which ganging [3], direct control allocation [4,5], frequency-divided
control allocation [6,7], and optimising control allocation [5,8].
Optimising control allocation can satisfy important properties [8,9]. It is (1) able to find
a ∆u such that B∆u∗ = ∆ν, whenever the desired ∆ν is attainable by the actuator suite.
∗
Additionally, if ∆νa in Equation 1 is over-determined, the scheme finds (2) a vector ∆u∗
2 of 25
that is well balanced to make efficient use of the available suite of actuators with respect
to some measure. Whenever ∆ν is not attainable, the optimising control allocation can
return (3) a vector ∆u∗ that gives rise to an achieved ∆νa that is as close as possible to the
demanded ∆ν by some distance measure. Quadratic distance measures are preferred for
accuracy and uniqueness of the solution, but this comes with the drawback of requiring
significant computational resources for online optimisation [8].
This study presents methods to further reduce these computational requirements, with
little to no impact on the flight behaviour, by investigating the popular Active-Set solver
and evaluating improvements in both open-loop simulations and flight tests.
Section 2 of this work shows the motivation for the problem formulation used and
possible solvers, while Section 3 details the chosen Active-Set algorithm and the considered
improvements. Methods for comparing the improvements are described in Section 4, after
which the results and conclusions are presented in Sections 5 and 6, respectively.
which is treated in this study. This penalty function includes both objectives; the first term
we call "pseudo-control error" and the second one "actuator usage penalty". The introduced
weighing matrices Wν and Wu are diagonal and positive definite and can be used to weigh
the relative importance of the components of the error terms. ∆ν is commanded from a
higher level controller and all other ∆’s are relative to the current actuator state uc , such
that ∆□ = □ − uc .
Due to the choice of the quadratic norm and the restriction that Wu is positive definite
(not semi-definite) and therefore full-rank, Equation 2 has one unique solution for each
choice of ∆ν. In the case where ∆ν is achievable within the bounds for ∆u, the first term
vanishes and a norm of ∆u − ∆u p = u − u p is minimised to ensure efficient use of the
actuators. When ∆ν is not feasible, then the actuator usage penalty should be of low priority,
which is achieved by a low factor γ > 0.
To provide good separation between the two objectives, a low enough value γ must
be chosen. This can lead to low condition numbers of H, which can amplify numerical
inaccuracies from floating point calculations on that matrix, such as matrix inversions,
factorisation, or additions.
Ad = Wν B
γWu
1
0 ... 0
A= 0 (3)
γWu2 ... 0
. .. .. ..
..
. . .
0 0 ... γWun
The problem can also be developed into the quadratic minimisation problem
1 1 1 1
arg min || A∆u − b||22 = ( A∆u − b)T ( A∆u − b) = ∆u T A T A∆u − ∆u T A T b + b T b
∆u 2 2 2 2
1 T T
arg min ∆u ( A A)∆u − ∆u T A T b
∆u 2
1 T
arg min ∆u H∆u + ∆u T β where H ≡ A T A, β ≡ − A T b
∆u 2
s.t. ∆ui ≤ ∆ui ≤ ∆ui ∀i ∈ {1, . . . , n} .
(4)
Wν B Wν ν
A← ;b← ; ∆u ← ∆u0 ;
γWu γWu ∆u p
n f ← COUNT (W a [:] = 0); /* number of free actuators */
permutation[1 : n f ] ← all indices i of free actuators (W a [i ] = 0);
permutation[n f + 1 : n] ← all indices i of bound actuators (W a [i ] ! = 0);
2. Subspace setup.
call SUBSPACE.INIT ; /* Do matrix factorisation if required. */
while True do
3. Subspace solver.
/* unconstrained optimum on the subspace of the n − n f bound variables */
z[1 : n] ← call SUBSPACE.SOLVE;
4. Active-Set evaluation.
/* check feasibility/optimality of z and change W a , n f , permutation or break */
if ∆u[i ] ≤ z[i ] ≤ ∆u[i ] then
/* all constraints are satisfied → check optimality */
∆u ← z;
if n f = n then
break; /* optimal, since no constraints were present */
end
5. Compute Lagrange Multipliers
λ[1 : (n − n f )] ← call SUBSPACE.LAGRANGE_MULTIPLIERS;
4. Active-Set evaluation, cont’d
if MIN(λ[:]) ≥ 0 then
break; /* removing constraint would cause infeasibility */
end
/* not optimal yet → remove variable with the biggest potential for
improvement from the working set */
p f ← n f + ARGMIN(λ[:]) ; /* Position in permutation of the
variable with biggest potential for improvement */
W a [ permutation[c f ]] ← 0 ; /* free the variable in working set */
h i
RIGHT_CIRCSH IFT permutation (n f + 1) : p f ;
n f ← n f + 1;
3. Subspace solver. cont’d
call SUBSPACE.FREE; /* update factorisations if required */
else
/* at least one constraint violated → add one actuator to working set */
4. Active-Set evaluation, cont’d
α ← largest scalar α ∈ [0, 1] such that ∆u + α(z − ∆u) remains feasible;
∆u ← ∆u + α(z − ∆u);
ib ← index of a variable that would violate its bound at α + ϵ (with ϵ > 0);
W a [ib ] ← +1 if z[ib ] − u[ib ] > 0, -1 otherwise;
pb ← position of ib in permutation;h i
LEFT_CIRCSH IFT permutation pb : n f ) ;
n f ← n f − 1;
3. Subspace solver. cont’d
call SUBSPACE.BOUND; /* update factorisations if required */
end
end
5 of 25
n f elements n f elements
4 6 1 2 5 7 8 3 4 6 1 2 5 7 8 3
4 1 2 5 6 7 8 3 4 6 1 2 5 3 7 8
nf ← nf − 1 nf ← nf + 1
(a) Bound the actuator in position 2. (b) Free the actuator in position 8.
Figure 1. Example of the changes in the permutation for freeing and bounding an actuator, represented
by a partial circular and incrementing/decrementing n f . Free actuators are on the left of the array,
the bound ones are on the right.
W a [i ] ← −1 when bound at the lower limit ∆ui , and W a [i ] ← 0 when it is free. Freeing and
bounding an actuator i can be realised by a circular shift within permutation such that i is
now at the n f or n f + 1 position, respectively, and then incrementing or decrementing n f ,
as shown in Figure 1.
4. Methodology
Three categories of improvements have been investigated in this study:
1. Subspace solvers
2. Exploiting the sparsity of the matrices
3. Warm-starting the algorithm with a previous solution
For the first two of these items, candidate algorithms and improvements have first
been implemented in a high-level language (MATLAB®) for faster prototyping and to
verify the implementation.
Based on this, a selection of algorithms are then implemented in C with the focus on
minimum execution time. The implementation was verified against the MATLAB results
which also makes it possible to compare the effect of the problems’ condition numbers, 32
bit versus 64-bit floating point numbers, and complement the execution time estimations
from the FLOPs counting.
Finally, three of these algorithms have been evaluated on multicopter test flights, to
validate their suitability to the problem and evaluate possible adverse effects on flying
characteristics. These test flights also make it possible to fairly evaluate the benefits of
1 https://wiki.paparazziuav.org/
6 of 25
1
n
x θ 2
y
F~i ri z
warm-starting, which are highly dependent on how similar the conditions are at successive
time steps.
4.2. Implementation in C
After verification in MATLAB, the relevant functions were re-implemented in C to
make them usable on a real-time system such as a UAV flight controller. Additionally,
modern MATLAB versions exclusively use 64-bit floating point ("double") arithmetics.
2 https://github.com/tminka/lightspeed
7 of 25
Figure 3. Hexacopter test platform with battery, Pixhawk flight controller and reflective infra-red
markers.
However, many UAV flight controllers chips like the STM32 in the Pixhawk 43 flight
controller, which only supports 32-bit floats ("singles") efficiently. Consequentially, it must
be verified that the numerical stability of the algorithms is not affected by the switch from
doubles to singles. The use of Cholesky factorisations has been criticised in this regard in
literature [11,23].
3 https://docs.px4.io/main/en/flight_controller/pixhawk4.html
4 http://www.holybro.com/product/pixhawk-4/
5 https://www.chibios.org/dokuwiki/doku.php
6 https://chibios.sourceforge.net/docs3/rt/group__system.html#ga0fff5863f6cf801f414320b7fade3c85
8 of 25
Table 3. Verification of MATLAB implementations using the error |∆u − ∆uPPRZ |2 . 12-rotor multi-
copter.
are expected in these measurements, because the real-time operating system may interrupt
the computations of Algorithm 1 to process higher-priority tasks.
The position reference was set as a step input, with a simultaneous 30 deg yaw angle
change; for simplicity, repeatability and the ability to drive the actuators into saturation.
The manoeuvre is shown in Figure 10. Nevertheless, the maximum RPMs of the platform
have been artificially limited to ensure safe operation and that saturation occurs more
quickly and for longer.
10 4
3
PPRZ Lagrange Multipliers
PPRZ-OPT
QR Subspace Solver
2.5
Cholesky Active Set
Conj Grad
Subspace Setup
2 Problem Setup
Mean FLOPs
1.5
0.5
0
0 1 2 3 4 5 6 7 8 9 10 11 12
Number of Saturated Actuators
Figure 4. Theoretical algorithm performance, based on FLOPs counting, for a 12-rotor multicopter.
Overall, the expected computational expense decreases near total saturation because
these cases typically require fewer iterations: imagine the unconstrained solution for a
∆ν is a point ∆u∗ ∈ Rn that is very far outside the box given by the constraints. With
every iteration, one actuator will be constrained at one of its limits and the algorithm likely
terminates after n + 1 iterations. However, if the point is much closer to the boundary of Φ,
then some bounding and freeing iterations may be required before the correct active set is
identified.
It can be seen how the improvements for the algorithms on updating factorisations
(QR and Cholesky) become much more noticeable when more actuators saturate (and
more iterations are required). Indeed, the large "subspace setup" component makes the QR
perform slower than the PPRZ reference solvers, which do not have to perform the explicit
recovery of the Q factor. Cholesky is faster than QR with a relatively constant difference
since most improvements are gained in the initial factorisation, see Section A.3. For this
platform, the theoretical improvements over the optimised PPRZ algorithm for the most
expensive problems (9-10 saturating actuators) are around 20% for QR, 50% for Cholesky
and 35% for CG. However, for a smaller multicopter with n = 6, QR, PPRZ and CG are
around equal and Cholesky improves the worst-case runtime by only 25%.
Lastly, Figure 5 shows the scaling of the algorithm FLOPs with platform size for the
feasible part of the test cases, for which a single iteration of the algorithms leads to the
solution. All algorithms have an O(n3 ) component, so it is expected that they all scale
cubically. For the Cholesky algorithm, a polynomial fit is presented.
10 4
3
PPRZ
PPRZ-OPT
2.5 QR
CHOL
CG
2 2 3
CHOL fit a+bx+cx +dx
FLOPs
1.5
0.5
0
4 6 8 10 12 16 20
Number of Multicopter Rotors
Figure 5. FLOPs scaling of the algorithms with multicopter platform size.
0
-10
-20
%
-30
-40
-50 PPRZ
QR
CHOL
-60
4 6 8 10 12 16 20
Number of Multicopter Rotors
Figure 6. Reduction of operations by using sparse multiplication operations for Active-Set algorithms
with different factorisations.
matrix A T A can be s symmetric and reduces from the naive 2n3 + 2n2 (d − 2) down to
n2 (d − 12 ) + n(d + 21 ). Sometimes, a permuted subset of the columns of A is needed, such
that additional kn operations (with low factor k) are necessary to keep track of the locations
of the non-zeros.
Replacing all vector-matrix and matrix-matrix products with optimised versions
results in significant reduction of FLOPs for some algorithms, shown in Figure 6.
Since the QR-based subspace solver does not perform any products with A and only
uses its factors Q and R for computation of the unconstrained subspace solutions, residual
and Lagrange multipliers, there is no potential for optimisation. The initial A T A product
necessary for the Cholesky-based solver provides the largest opportunity for improvement.
5.2. C Package
For the C implementation, the control allocation computations are sectioned into two
functions; setup_wls turns the components of Equation 2 into the components of Equation
4 and solveActiveSet{PPRZ|QR|CHOL|CG} solves the quadratic problem. See Appendix
B for additional pseudo-code that describes the implementations of the subspace solvers.
11 of 25
However, most sparse matrix operations applied are not shown for brevity. The C code is
available at https://www.github.com/tblaha/ActiveSetCtlAlloc.
The package uses a typical column major representation for matrices. The QR fac-
torisations routines are taken from qr_solve7 , which is also used in the already existing
PPRZ implementation. The Cholesky factorisation routine was adapted from8 and the Pa-
parazzi Autopilot code. All update routines for QR factorisations have been implemented
by the authors based largely on Dongarra et al. [25, ch 10]. Cholesky updating has been
implemented according to Stewart [26, sec 3.5/3.6] and Osborne [27, App B].
The following sections provide results of the verification of the C code using different
choices for the separation parameter γ and the accuracy of the floating point arithmetic
used. Furthermore, this section provides the verification results and estimated execution
times on an x86 desktop platform. gcc version 9.4.0 was used throughout.9
5.2.1. Verification
The accuracy problems for Conjugate Gradient (already mentioned in Section 5.1)
were so severe that it was discarded from further analysis.
Similarly, the Cholesky-based subspace solver also indeed exhibits numerical errors
when 32-bit single floating points are used in the computations, but to lower severity. This
was readily revealed by varying the γ parameter of Equation 2 and comparing the result of
the C program to the reference output of MATLAB®.
Figure 7 shows a typical verification performed on the C code, in this case for a
platform with 6 actuators, against quadprog.m at cond( A T A) = 109 . At higher γ (and
consequently lower condition number of H ≡ A T A), all algorithms have the same poor
accuracy, due to solving a slightly different cost function. However, Cholesky with 32-bit
single arithmetic cannot get close to the actual solution at cond( A T A) = 109 .
A notion of computational stability can be introduced as the difference in solutions
when the input ∆ν only changes slightly. At lower γ (and consequently higher condition
numbers), the stability of the single Cholesky is highly compromised (even though the
resulting ∆ν may be close to the other algorithms. This may lead to erratic distributions in
flight.
It would thus be advantageous to be able to trade-off between the two errors; in-
troduced by a larger choices of γ (to achieve better conditioning) vs. numerical errors
resulting in unstable allocations. In response to that, two methods are presented to reduce
the inaccuracies; Condition Number Limiting and Cost Based Termination.
|| u error||2
CHOL -- SINGLEs
CHOL -- DOUBLEs
QR -- SINGLEs
QR -- DOUBLEs
10 3
PPRZ -- SINGLEs
PPRZ -- DOUBLEs
10 4
||
||
4 × 10 2
3 × 10 2
|| u1.01
2 × 10 2
be contained in D and given simply by σmin = γ2 mini Wu2i . The largest eigenvalue is thus
assumed to be contained in P and an upper bound σmax ≤ σmax can be estimated using the
Gershgorin disc with the largest upper bound [28] which can be computed in O(d2 ) time.
In practice, this upper bound is close to the actual largest eigenvalue, with a maximum
overestimate of 5.0% for a hexacopter platform and less for larger platforms.
Now, a minimum acceptable value for γ to maintain a condition number below Cmax
is simply given by
s
σ̄max
γ ≥ γmin = . (5)
mini Wu2i · Cmax
Execution Time [ s]
15
10
0
0 1 2 3 4 5 6
N = 101 10 125 439 192 100 18
Number of saturated Actuators / # of data points
Figure 8. Desktop execution time measurements for 6-rotor multicopter.
40
30
20
10
0
4 6 8 10 12 16 20
Number of Multicopter Rotors
Figure 9. Desktop execution time measurements for feasible pseudo-controls (ie one iteration). The
dashed line represents a scaled version of the fit in Figure 5.
3
2.00
Z [m]
1.25
1.00 2
0.75
0.50
0.25
0.00
2
1
1
Saturation 0
]
Y [m
2 1
1 0
0 2
X [m] 1
2
Figure 10. Flight Manoeuvre. Alternating between two holding points, using pitch, roll and yaw.
CHOL
107
QR
Cost; Condition number
106
105 PPRZ
Pseudo-control error
104 cond(A TA) upper bound
Algorithm Used
103
102
101
200 400 600 800
5
4
Error Code
Error Codes:
3 1: iteration limit
2: cost low
2 3: cost plateau
1 4, 5: NaN ocurred
200 400 600 800
Time [sec]
Figure 11. Test Flight algorithm behaviour. Cholesky has to be artificially terminated at higher
condition numbers.
16 of 25
0.30 PPRZ
QR
0.25
0.20 106
0.15
0.10
105
0.05
0.00
0.2 0.0 0.2 0.4 0.6
Time [s] since maneuver start
The effect on the attitude tracking performance is depicted in Figure 12 using a single-
metric tracking performance indicator, defined as the Euclidean distance in R4 , between
the commanded and estimated attitude quaternion as shown in Huynh [29, function Φ2 ].
The figure shows no correlation between the algorithms, but a small dependence on
the condition number, whereas lower desired condition numbers cause slower attitude
tracking. This is because the corresponding increase in the objective separator γ changes
the penalty function (Equation 2) in such a way that the second term is not negligible when
the first term is non-zero. Consequently, the actuator usage is reduced, despite that the
desired pseudo-controls ∆ν are not achieved, resulting in slower attitude tracking.
5.6. Warm-Starting
Warm-starting an Active-Set algorithm refers to using the active set identified of a
previous problem to solve a similar problem in fewer iterations. So far, all computations
have assumed an empty working set W as a starting point (assuming no saturation is
present). However, it is expected that the active set does not change rapidly between time
17 of 25
PPRZ
400 QR
CHOL
350
300
Figure 13. In-flight measurements. Outliers are likely due to processor interrupts. N refers to the
datapoints present for the Cholesky dataset, but relative magnitude should be similar.
steps, owed to the high sampling frequency ( f s = 500Hz in the hexacopter experiments at
hand) compared to the aircraft’s dynamics.
Figure 14 shows the execution time of the Cholesky algorithm for 4 different manoeu-
vres; warm-starting on/off and high iteration limit of 100 vs. low iteration limit of 2. With
large enough iteration limit, both warm-starting and cold-starting will return the same
unique solution, however, the execution time for warm-starting is much lower on average.
However, it cannot be guaranteed that the worst-case execution time is also lower, since
there the active set may change significantly between time steps.
max_iter: 100,
max_iter: 2,
100 max_iter: 100, warmstart
max_iter: 2, warmstart
90
Execution Time [-]
80
70
60
To provide guarantees on worst-case execution time, a low iteration limit can be placed.
With cold- starting, this would result in significant allocation errors, whenever the active set
requires more iterations. In Figure 14, 4 actuators are saturated which cannot be captured
18 of 25
with just 2 iterations. With warm-starting, this condition would only be present for the first
few time steps following a large active set change, which may have little to no impact on
the dynamics (potentially comparable to a very fast low pass filter). However, this impact
was not quantified in this study.
Explicitly factorising one of the problem matrices (A into its QR factors, or H into
its Cholesky factors) increases computational time whenever the optimisation terminates
after one iteration. However, if these factors are updated with each Active-Set iteration, the
worst-case computational time decreases for platforms with more than n >= 6 actuators.
A recommendation can be made to investigate if the factors can be reused and the next
time step, if the platform actuators’ effectiveness does not change significantly between
time steps.
The initial factorisation is approximately twice as fast with Cholesky than QR, owed
to it intrinsically requiring fewer operations for the problem sizes. This holds true despite
that H ≡ A T A has to be computed first, because this calculation can be optimised with
the sparsity of A. Future research could produce a specialised QR factorisation algorithm
(similar to Matstoms [30]) that takes into account the sparsity and could reduce computation
times for QR and the benchmark [9]. It remains to be seen if such a method could approach
the speed of the Cholesky-based solver.
Flight tests on an n = 6 hexacopter platform using an STM32F7 microprocessor con-
firmed that the runtime of Cholesky is twice as fast as QR for the first iterations and ≈ 25%
faster in the worst-case. However, it is revealed that in the most computationally demand-
ing cases, QR is approximately twice as fast as the benchmark [9] (Cholesky thus ≈ 65%
faster), which was not expected from the theoretical floating point operations analysis and
points to: a poor implementation of its subspace solver, additional runtime checks that
were not considered in the operations counting analysis, or errors in that analysis.
Initialising the solver with the solution of the previous time-step ("warm-starting")
can yield large benefits to the average run-time as the update frequency of flight control
systems are typically much larger than the changes to the flight path and control commands.
Nonetheless, ensuring the reduction of worst-case execution time still requires premature
termination, introducing errors. Further research would have to quantify how placing an
iteration limit affects the flying qualities.
H f , f u f = β f − H f ,b ub , (A1)
where subscript f denotes the rows of the currently free variables and b denotes the rows
of the bound variables. The square matrix H f , f are the rows and columns H pertaining to
free variables, and H f ,b are the rows pertaining to free variables, but columns pertaining to
bound variables.
Since H ≡ A T A is symmetric and positive definite, there exists a unique lower
triangular matrix L, such that H = LL T , which is called a Cholesky factor. When L is
known, solving the linear system can thus be done efficiently in O(n2 ) time with forward-
backward substitution [16]. Update schemes exist to efficiently augment/reduce L in O(n2 )
time, for the case that H f only changes by the addition/removal of one row and one column
[26].
Cholesky factorisations are generally faster than QR factorisations, but the initial
computation of H may be expensive [23].
10 https://wiki.paparazziuav.org/
20 of 25
T
A and has zeros otherwise and D = 0 γWu holds the diagonal part. Noting that the
products P T D = D T P = 0 by the definitions of these two matrices, A T A can be written as
AT A = PT P + PT D + D T P + D T D
= PT P + D T D (A2)
= AdT Ad +γ 2
WuT Wu .
Algorithm 2: PPRZ.INIT
d ← b − Au;
Algorithm 3: QR.INIT
R, H ←DQRDC(A) ; /* Factorise into R and householder reflectors H
*/
Q ←DORGQR(H) ; /* Recover Q factor from the columns of H */
Algorithm 4: CHOL.INIT
H ← A T A;
L ←PPRZ_CHOLESKY_FLOAT( H );
Algorithm 5: CG.INIT
H ← A T A;
Algorithm 6: PPRZ.SOLVE
Result:h z i
p ← A :, permutation[1 : n f ] \ d;
i ← 1;
while i ≤ n f do
z[ permutation[i ]] ← ∆u[ permutation[i ]] + p[i ];
i ← i + 1;
end
Algorithm 8: CHOL.SOLVE
Result:hz iT h i
β ← A :, permutation[1 : n f ] b permutation[1 : n f ] ;
β← h β− i h i
H permutation[1 : n f ], permutation[ n f + 1 : n] ∆u permutation[ n f + 1 : n] ;
h i
Lf ← L 1 : nf , 1 : nf ;
q ← solve L f L Tf q = β /* Efficient, because L f and L Tf are
triangular */
i ← 1;
while i ≤ n f do
z[ permutation[i ]] ← q[i ];
i ← i + 1;
end
while i ≤ n do
z[ permutation[i ]] ← ∆u[ permutation[i ]];
i ← i + 1;
end
Algorithm 9: CG.SOLVE
H f f ← H [ permutation[1 : n f ], permutation[1 : n f ]];
H f b ← H [ permutation[1 : n f ], permutation[ n f + 1 : n]];
h iT h i
β ← A :, permutation[1 : n f ] b permutation[1 : n f ] ;
h i
β ← β − H f b ∆u permutation[ n f + 1 : n] ;
q ← solve H f f q = β ; /* Using [31, Algorithm 5.2] */
i ← 1;
while i ≤ n f do
z[ permutation[i ]] ← q[i ];
i ← i + 1;
end
while i ≤ n do
z[ permutation[i ]] ← ∆u[ permutation[i ]];
i ← i + 1;
end
23 of 25
Expand L using:
L[n f + 1][1 : n f ] ← L21;
L[n f + 1][n f + 1] ← L22;
References
1. Sieberling, S.; Chu, Q.P.; Mulder, J.A. Robust Flight Control Using Incremental Nonlinear Dynamic Inversion and Angular
Acceleration Prediction. Journal of Guidance, Control, and Dynamics 2010, 33, 1732–1742. Publisher: American Institute of
Aeronautics and Astronautics, https://doi.org/10.2514/1.49978.
2. Smeur, E. Incremental Control of Hybrid Micro Air Vehicles. PhD thesis, Delft University of technology, 2018. https:
//doi.org/10.4233/UUID:23C338A1-8B34-40A6-89E9-997ADBDAFD75.
3. Bodson, M.; Frost, S.A. Load Balancing in Control Allocation. Journal of Guidance, Control, and Dynamics 2011, 34, 380–387.
Publisher: American Institute of Aeronautics and Astronautics, https://doi.org/10.2514/1.51952.
4. Durham, W.C. Constrained control allocation. Journal of Guidance, Control, and Dynamics 1993. https://doi.org/10.2514/3.21072.
5. Bodson, M. Evaluation of Optimization Methods for Control Allocation. Journal of Guidance, Control, and Dynamics 2002,
25, 703–711. https://doi.org/10.2514/2.4937.
6. Lallman, F.; Davidson, J.; Bundick, W. Integrated reconfigurable control allocation. In Proceedings of the AIAA Guidance,
Navigation, and Control Conference and Exhibit, 2001. _eprint: https://arc.aiaa.org/doi/pdf/10.2514/6.2001-4083, https:
//doi.org/10.2514/6.2001-4083.
25 of 25
7. Härkegård, O. Dynamic Control Allocation Using Constrained Quadratic Programming. Journal of Guidance, Control, and
Dynamics 2004, 27, 1028–1034. https://doi.org/10.2514/1.11607.
8. Härkegård, O. Efficient active set algorithms for solving constrained least squares problems in aircraft control allocation. In
Proceedings of the Proceedings of the 41st IEEE Conference on Decision and Control, 2002.; IEEE: Las Vegas, NV, USA, 2002;
Vol. 2, pp. 1295–1300. https://doi.org/10.1109/CDC.2002.1184694.
9. Smeur, E.; Höppener, D.; de Wagter, C. Prioritized Control Allocation for Quadrotors Subject to Saturation. In Proceedings of the
International Micro Air Vehicle Conference and Flight Competition 2017; H. D. P. J.-M. Moschetta G. Hattenberger: Toulouse,
France, 2017.
10. Blaha, T. Literature Study: Computationally Efficient Control Allocation. Literature Study, Delft, 2022.
11. Björck, A. Numerical methods for least squares problems; SIAM: Philadelphia, 1996.
12. Hartley, E.N.; Jerez, J.L.; Suardi, A.; Maciejowski, J.M.; Kerrigan, E.C.; Constantinides, G.A. Predictive Control Using an FPGA
With Application to Aircraft Control. IEEE Transactions on Control Systems Technology 2014, 22, 1006–1017. Conference Name:
IEEE Transactions on Control Systems Technology, https://doi.org/10.1109/TCST.2013.2271791.
13. Lau, M.; Yue, S.; Ling, K.; Maciejowski, J. A Comparison of Interior Point and Active Set Methods for FPGA Implementation of
Model Predictive Control. Proc. European Control Conference 2015.
14. Petersen, J.; Bodson, M. Constrained quadratic programming techniques for control allocation. IEEE Transactions on Control
Systems Technology 2006, 14, 91–98. Conference Name: IEEE Transactions on Control Systems Technology, https://doi.org/10.110
9/TCST.2005.860516.
15. Shahzad, A.; Kerrigan, E.C.; Constantinides, G.A. A warm-start interior-point method for predictive control. In Proceedings of
the UKACC International Conference on Control 2010, 2010, pp. 1–6. https://doi.org/10.1049/ic.2010.0409.
16. Madsen, K.; Nielsen, H.; Tingleff, O. Optimization with Constraints, 2 ed.; Technical University of Denmark, 2004.
17. De Wagter, C.; Remes, B.; Smeur, E.; Tienen, F.; Ruijsink, R.; Hecke, K.; Horst, E. The NederDrone: A hybrid lift, hybrid energy
hydrogen UAV. Preprint, 2020.
18. Kesaniemi, M.; Virtanen, K. Direct Least Square Fitting of Hyperellipsoids. IEEE Transactions on Pattern Analysis and Machine
Intelligence 2018, 40, 63–76. https://doi.org/10.1109/TPAMI.2017.2658574.
19. Fitzgibbon, A.; Pilu, M.; Fisher, R. Direct least square fitting of ellipses. IEEE Transactions on Pattern Analysis and Machine
Intelligence 1999, 21, 476–480. https://doi.org/10.1109/34.765658.
20. Gammell, J.D.; Barfoot, T.D. The Probability Density Function of a Transformation-based Hyperellipsoid Sampling Technique
2014. Publisher: arXiv Version Number: 2, https://doi.org/10.48550/ARXIV.1404.1347.
21. STMicroelectronics. Application note – Floating point unit demonstration on STM32 microcontrollers. Technical Report AN4044,
2016.
22. van de Geijn, R.A. Notes on Householder QR Factorization. Technical report, The University of Texas, 2014.
23. Lira, M.; Iyer, R.; Trindade, A.; Howle, V. QR versus cholesky: A probabilistic analysis. International Journal of Numerical Analysis
and Modeling 2016, 13, 114–121.
24. Höppener, D. Actuator Saturation Handling using Weighted Optimal Control Allocation Applied to an INDI Controlled
Quadcopter. Master’s thesis, Delft University of Technology, Delft, 2016.
25. Dongarra, J.J.; Moler, C.B.; Bunch, J.R.; Stewart, G.W. LINPACK Users’ Guide; SIAM, 1979. https://doi.org/10.1137/1.9781611971
811.
26. Stewart, G.W. Matrix algorithms; Vol. Volume I: Basic Decompositions, Society for Industrial and Applied Mathematics:
Philadelphia, 1998.
27. Osborne, M.A. Bayesian Gaussian processes for sequential prediction, optimisation and quadrature. PhD Thesis, Oxford
University, UK, 2010.
28. Gershgorin, S. Über die Abgrenzung der Eigenwerte einer Matrix. Bulletin de l’Académie des Sciences de l’URSS. Classe des sciences
mathématiques et naturelles 1931, pp. 749–754.
29. Huynh, D.Q. Metrics for 3D Rotations: Comparison and Analysis. Journal of Mathematical Imaging and Vision 2009, 35, 155–164.
https://doi.org/10.1007/s10851-009-0161-2.
30. Matstoms, P. Sparse QR factorization in MATLAB. ACM Transactions on Mathematical Software 1994, 20, 136–159. https:
//doi.org/10.1145/174603.174408.
31. Nocedal, J.; Wright, S.J. Numerical Optimization; Springer Series in Operations Research and Financial Engineering, Springer New
York, 2006. https://doi.org/10.1007/978-0-387-40065-5.
32. Quirynen, R.; Knyazev, A.; Di Cairano, S. Projected Preconditioning within a Block-Sparse Active-Set Method for MPC. In
Proceedings of the IFAC-PapersOnLine. International Federation of Automatic Control, 2018, Vol. 51, pp. 28–34. ISSN: 2405-8963
Issue: 20, https://doi.org/10.1016/j.ifacol.2018.10.170.
Part III
Additional Results
67
5
Additional Results
main.m
PPRZ.m, Chol.m, QR.m, ... B, Wv, Wu, γ, MC.m, Ned.m, ...
u bounds, up n, d Generate
Solver init
Geometry
Get Platform Info
Initialise Solver(s)
u bounds,
standard up
formulation
N, B, u bounds get u bounds,
solve u preferred (up)
Loop over Solver(s)
u*(:),
v(:),
FLOPs, Perform Analysis
RunEval.m
...
Generate N Test
Cases
ν1, ..., νN
*.eps *.txt
Evauate
u*,
FLOPs Inputs/
Outputs
Write values to c-
arrays
test_cases.h
Here, FLOPs stands for the floating pointing operations that were used to arrive at the solution of the
68
5.2. Additional Algorithms Partly Implemented 69
setup and solve blocks. This is implemented using a callback to a class instance which implements the
counting and tracking of the FLOPS in the different algorithms and algorithm subparts, see example below,
where fadd represents the counting callback passed to this lower level function.
forward_tri_solve.m
1 f u n c t i o n x = f o r w a r d _ t r i _ s o l v e ( A , b , fadd )
2 % s o l v e s Ax = b f o r x , i f f A i s l o w e r t r i a n g u l a r , square and
3 % f u l l −rank
4 % see h t t p s : / / a l g o w i k i − p r o j e c t . org / en / F o r w a r d _ s u b s t i t u t i o n
5 %i f n a r g i n < 3
6 % fadd = @( x ) d i s p ( ’ ’ ) ;
7 %end
8
9 n = size (A, 1) ;
10 i f n == 0
11 x = zeros ( s i z e ( b ) ) ;
12 return
13 end
14 i f n ~= s i z e ( A , 2 )
15 e r r o r ( ” A i s n o t square ” )
16 end
17 i f rank (A ) < n
18 e r r o r ( ” A must be f u l l −rank ” )
19 end
20 i f ~( norm ( A − t r i l ( A) ) < s q r t ( eps ) )
21 e r r o r ( ” A must be l o w e r t r i a n g u l a r ” )
22 end
23
24 x = zeros ( n , 1 ) ;
25 x ( 1 ) = b ( 1 ) / A( 1 , 1 ) ;
26 fadd ( flops_div_ARM ( ) ) ;
27
28 i = 2;
29 w h i l e i <= n
30 temp_sum = A( i , 1 : i ) * x ( 1 : i ) ;
31 fadd ( f l o p s _ m u l ( A( i , 1 : i ) , x ( 1 : i ) ) )
32
33 num = b ( i ) − temp_sum ;
34 fadd ( 1 ) ;
35 x ( i ) = num / A ( i , i ) ;
36 fadd ( flops_div_ARM ( ) ) ;
37 i = i + 1;
38 end
39
40 end
Aspect Specification
Frame DJI® Flame Wheel F550
Motors 23 × 12mm 920KV
Props 8 × 4.5”
ESC PWM control, 15A
Battery Flown on 5Ah 4S
Flight Controller Holibro Pixhawk 4
Telemetry XBee Pro RF
Receiver FrSky R-XSR
Figure 5.2: Flame Wheel Hexacopter, read-to-fly. Note the infrared markers one one of the arms and on
some propellers. The centered attachment for a vertical safety rope is also visible.
subspace optimisation is still necessary to identify the saturated actuators and finally the optimum. The
possibly reduced iteration count did not outweigh the downsides in terms of computational time.
5500
5400
Frequency [1/s]
5300
5200
5100
Figure 5.3: Fourier Transform of the sound signal during a motor test
(the propeller is spinning much slower than 5kHz) to estimate the time constant of a first order model at
around τ = 0.06sec, which is relatively slow.
The INDI controller was tuned by manually determining values, until the platform is somewhat stable on
a safety rope. After that, logged data was used to improve the guess by matching the estimated actuator
state to the accelerometer and gyro measurements. This resulted in the following effectiveness values:
1 <define name=”G1_ROLL” v a l u e = ” { − 6 . 5 , −13 , −6.5 , 6 . 5 , 13 , 6.5 } ” / >
2 <define name=”G1_PITCH ” v a l u e = ” { + 1 1 . 3 , 0 , −11.3 , −11.3 , 0 , +11.3 } ” / >
3 <define name=”G1_YAW” v a l u e = ” { + 0 . 1 8 , −0.18 , +0.18 , −0.18 , +0.18 , − 0 . 1 8 } ” / >
4 <define name=”G1_THRUST” v a l u e = ” { − . 4 , −. 4 , − .4 , − .4 , − . 4 , −.4}”/ >
5 <define name=”G2” v a l u e = ” { 3 0 , −30 , 30 , −30 , 30 , −30}”/ >
The final fits can be seen in Figure 5.4. Pitch and roll have good agreement, but yaw shows a slight
lead in the predicted rotational jerk effect. Jerk was used to cancel out any constant offset effects, eg. from
constant disturbances.
71
5.3. Test Platform Specifications and Tuning 72
100
0 gyro_dd_filt_p
100 G1_p @ act derivative
200 gyro_dd_filt_p
G1_q @ act derivative
0
20
0
gyro_dd_filt_p
20 G1_r @ act derivative
0
a_d_filt_z
50 G1_az @ act derivative
112.0 112.5 113.0 113.5 114.0 114.5 115.0
Figure 5.4: Rotational jerk comparison (first 3 plots) and linear jerk (last plot). Time on the x-axis in
seconds.
Part IV
Closure
73
6
Conclusion
What possible changes to the numerical algorithms for optimising control allocation can be
shown to provide significant improvements over the current state-of-the-art?
With this thesis it was demonstrated that there are unexplored algorithms and optimisation to algorithms
in the field of constrained control allocation.
The literature study revealed possible approaches to the main research question repeated above, which
at that point had not been investigated for the application in control allocation. These are restated below
for convenience:
Research Question 1a
Can the speed of the active-set method for `2 − `2 norms be improved by iteratively updating its
QR factors between iterations, using Given’s rotations?
Research Question 1b
Can interior-point methods solve the `2 − `1 norm problem efficiently with accurate and balanced
solutions?
Research Question 1c
Can the eigenvalue structure of the benchmark problems be exploited with Conjugate Gradient
methods to make the active-set method for `2 − `2 norms more efficient?
74
6.3. Additional Conclusions 75
Research Question 1d
Can the gradient projection method for the `2 − `2 norms improve speed?
Specifically, yes, it is possible to reduce the worst-case execution time of active-set algorithms using
explicit factorisations that are updated during the iterations of the algorithm. QR factors are indeed updated
efficiently using Given’s rotations, improving runtime by 50% in a representative flight test. The first
iteration of each algorithm is much slower, since the Q factor how to be recovered explicitly, but this has
no significance for platforms with many actuators, as the worst-case execution time is seen when many
actuators saturate and consequently many iterations are necessary.
When the distance measure for the penalty on not achieving the pseudo-control is linear, Interior Point
may be very advantageous as the relevant matrix inverses can be computed very efficiently. However,
this could not be confirmed in the present thesis work, as a stable implementation could not be achieved.
Gradient Projection methods were ruled out as they were not able to identify the active-set quicker and
computing Lagrange Multipliers more often outweighed its computational benefits.
It was shown that Conjugate Gradient methods can indeed approach speeds of Cholesky factorisation
and are easy to implement as they do not require factorisations and their update routines. However, the
method is not numerically stable for the problems at hand, which may be addressed in future research
using pre-conditioners.
Rec 1
Conditioning of the problem using the described approach (reducing the separation of the two objectives in
the combined objective function) to avoid numerical problems with the Cholesky algorithm uncovered a
tradeoff between accuracy and slower attitude tracking. A procedure to finding the correct parameter for
different platforms effectiveness matrices may be developed in follow-up research.
Rec 2
Terminating an active-set algorithm sub-optimally may give much higher benefits than optimising the
solution algorithms. In combination with warm-starting (ie using the previous solution as initial guess), the
errors made by the premature termination may only persist for a few time steps. The effect this has on the
attitude tracking may be small and should be investigated in future research.
Rec 3
The algorithm based on updating QR factorisation benefits from the simple problem structure (only bound
constraints), but still a naive dense factorisation algorithm has been used. Future research could find a
more specialised factorisation routine that avoids multiplying by 0 many times in the factorisation of the
relevant matrix.
Rec 4
Future flight tests may be simplified with a smaller and more modern UAV platform. The hexacopter was
used in this research mostly for availability, but provided challenges because its parameters had to be
identified first and its power control electronics were relatively old and slow to respond.
Rec 5
The approach to generating a test set succeeded in generating pseudo-control vectors that result in different
numbers of actuators to be saturated in both directions. However, the distribution of test vectors over
these categories was not very uniform, such that the algorithms tests were biased either extremes: either
many iterations or just a single iteration were necessary for most test cases.
Fair generation of these open-loop test cases may require different approach than the one described
in the paper, which approximated the reachable control objective set using an ellipsoid, which was then
randomly sampled inside (feasible) and outside (infeasible) its boundary. Future research could use the
ellipsoid to generate a direction vector ν̂ whose magnitude is then scaled to ensure reaching saturation of
0 up to all actuators.
Rec 6
The analytical FLOPs counting approach shown only allows for estimating the relative execution time
between algorithms, to some degree. Absolute predictions were not possible, likely due to the different
levels of background activity on the real-time systems and some uncertainty in the clock-cycles per
instruction factor. Also scaling of the execution time with problem size could not be reliably predicted. Only
measuring the eventual algorithm on the eventual processing platform yielded definite answers with some
variance, but clear ability to compare.
76
References
Björck, A. (1996). Numerical methods for least squares problems. SIAM.
Blaha, T. (2021). Implementing embedded Drone Flight Controls for Offshore Surveillance VTOL Drone
(Internship Report AE5050). TU Delft. Delft.
Bodson, M. (2002). Evaluation of Optimization Methods for Control Allocation. Journal of Guidance, Control,
and Dynamics, 25(4), 703–711. https://doi.org/10.2514/2.4937
Bodson, M., & Frost, S. A. (2011). Load Balancing in Control Allocation. Journal of Guidance, Control, and
Dynamics, 34(2), 380–387. https://doi.org/10.2514/1.51952
Bodson, M., & Pohlchuck, W. A. (1998). Command Limiting in Reconfigurable Flight Control. Journal of
Guidance, Control, and Dynamics, 21(4), 639–646. https://doi.org/10.2514/2.4283
Bolender, M. A., & Doman, D. B. (2004). Nonlinear Control Allocation Using Piecewise Linear Functions.
Journal of Guidance, Control, and Dynamics, 27(6), 1017–1027. https://doi.org/10.2514/1.9546
Bordignon, K. A. (1996). Constrained control allocation for systems with redundant control effectors (Doc-
toral dissertation). Virginia Polytechnic Institute and State University. Blacksburg, VA. Retrieved
December 9, 2021, from https://vtechworks.lib.vt.edu/handle/10919/28570
Brosgol, B., & Comar, C. (2021). DO-178C: A New Standard for Software Safety Certification.
Buffington, J. M., & Enns, D. F. (1996). Lyapunov stability analysis of daisy chain control allocation. Journal
of Guidance, Control, and Dynamics, 19(6), 1226–1230. https://doi.org/10.2514/3.21776
Burken, J. J., Lu, P., Wu, Z., & Bahm, C. (2001). Two Reconfigurable Flight-Control Design Methods:
Robust Servomechanism and Control Allocation. Journal of Guidance, Control, and Dynamics,
24(3), 482–493. https://doi.org/10.2514/2.4769
Cadzow, J. (1971). Algorithm for the minimum-effort problem. IEEE Transactions on Automatic Control,
16(1), 60–63. https://doi.org/10.1109/TAC.1971.1099634
Cameron, D., & Princen, N. (2000). Control allocation challenges and requirements for the Blended Wing
Body. https://doi.org/10.2514/6.2000-4539
Chatrath, K. (2019). Vehicle Dynamics Control Using Control Allocation (Master’s thesis). Delft University
of Technology. Delft. https://doi.org/10.13140/RG.2.2.35878.65608
Cimini, G., & Bemporad, A. (2017). Exact Complexity Certification of Active-Set Methods for Quadratic
Programming. IEEE Transactions on Automatic Control, 62(12), 6094–6109. https://doi.org/10.
1109/TAC.2017.2696742
Cui, L., Zuo, Z., & Yang, Y. (2021). A Control-Theoretic Study on Iterative Solution to Control Allocation for
Over-Actuated Aircraft. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 51(6),
3429–3439. https://doi.org/10.1109/TSMC.2019.2924357
da Costa, R. R., Chu, Q. P., & Mulder, J. A. (2003). Reentry Flight Controller Design Using Nonlinear
Dynamic Inversion. Journal of Spacecraft and Rockets, 40(1), 64–71. https://doi.org/10.2514/2.
3916
De Wagter, C., Remes, B., Smeur, E., Tienen, F., Ruijsink, R., Hecke, K., & Horst, E. (2020). The
NederDrone: A hybrid lift, hybrid energy hydrogen UAV (Preprint). Retrieved January 14, 2022,
from https://www.researchgate.net/publication/345654347_The_NederDrone_A_hybrid_lift_
hybrid_energy_hydrogen_UAV
77
References 78
Deepa, S. N., & Sudha, G. (2016). Longitudinal control of aircraft dynamics based on optimization of
PID parameters. Thermophysics and Aeromechanics, 23(2), 185–194. https://doi.org/10.1134/
S0869864316020049
Doman, D., & Sparks, A. (2002). Concepts for constrained control allocation of mixed quadratic and linear
effectors. Proceedings of the 2002 American Control Conference (IEEE Cat. No.CH37301), 5,
3729–3734 vol.5. https://doi.org/10.1109/ACC.2002.1024507
Dongarra, J. J., Moler, C. B., Bunch, J. R., & Stewart, G. W. (1979). LINPACK Users’ Guide. SIAM.
https://doi.org/10.1137/1.9781611971811
Durham, W., Bordignon, K. A., & Beck, R. (2017). Aircraft control allocation. Wiley.
Durham, W. C. (1993). Constrained control allocation. Journal of Guidance, Control, and Dynamics.
https://doi.org/10.2514/3.21072
Durham, W. C. (2001). Computationally Efficient Control Allocation. Journal of Guidance, Control, and
Dynamics, 24(3), 519–524. https://doi.org/10.2514/2.4741
Eldén, L. (1982). A weighted pseudoinverse, generalized singular values, and constrained least squares
problems. BIT Numerical Mathematics, 22(4), 487–502. https://doi.org/10.1007/BF01934412
Enns, D. (1998). Control Allocation Approaches. AIAA Guidance, Navigation, and Control Conference and
Exhibit. https://doi.org/10.2514/6.1998-4109
Glaze, M. L. (1998). The Design and Implementation of a GUI-based Control Allocation Toolbox in
the MATLAB environment (Master’s thesis). Virginia Polytechnic Institute and State University.
Blacksburg, VA. Retrieved December 10, 2021, from https://vtechworks.lib.vt.edu/handle/10919/
35625
Grechi, S., & Caiti, A. (2016). Comparison between Optimal Control Allocation with Mixed Quadratic &
Linear Programming Techniques. IFAC-PapersOnLine, 49(23), 147–152. https://doi.org/10.1016/j.
ifacol.2016.10.335
Härkegård, O. (2002). Efficient active set algorithms for solving constrained least squares problems in
aircraft control allocation. Proceedings of the 41st IEEE Conference on Decision and Control,
2002., 2, 1295–1300. https://doi.org/10.1109/CDC.2002.1184694
Härkegård, O. (2004). Dynamic Control Allocation Using Constrained Quadratic Programming. Journal of
Guidance, Control, and Dynamics, 27(6), 1028–1034. https://doi.org/10.2514/1.11607
Härkegård, O. (2008). QCAT. Retrieved November 4, 2021, from https : / / www . mathworks . com /
matlabcentral/fileexchange/4609-qcat
Hillier, F., & Lieberman, G. (2009). Introduction to Operations Research. McGraw-Hill Education.
Höppener, D. (2016). Actuator Saturation Handling using Weighted Optimal Control Allocation Applied
to an INDI Controlled Quadcopter (Master’s thesis). Delft University of Technology. Delft. http:
//resolver.tudelft.nl/uuid:3704b044-b9bf-454a-8678-0d140bd1d308
Intel. (2014). Optimizing Performance with Intel® Advanced Vector Extensions. Retrieved January 5, 2022,
from https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/performance-
xeon-e5-v3-advanced-vector-extensions-paper.pdf
Jin, J. (2005). Modified Pseudoinverse Redistribution Methods for Redundant Controls Allocation. Journal
of Guidance, Control, and Dynamics, 28(5), 1076–1079. https://doi.org/10.2514/1.14992
Johansen, T., & Fossen, T. (2013). Control allocation - A survey. Autom. https : / / doi . org / 10 . 1016 / j .
automatica.2013.01.035
Johansen, T., Fossen, T., & Berge, S. (2004). Constrained nonlinear control allocation with singularity
avoidance using sequential quadratic programming. IEEE Transactions on Control Systems
Technology, 12(1), 211–216. https://doi.org/10.1109/TCST.2003.821952
Lallman, F., Davidson, J., & Bundick, W. (2001). Integrated reconfigurable control allocation. AIAA Guidance,
Navigation, and Control Conference and Exhibit. https://doi.org/10.2514/6.2001-4083
References 79
Lau, M., Yue, S., Ling, K., & Maciejowski, J. (2015). A Comparison of Interior Point and Active Set Methods
for FPGA Implementation of Model Predictive Control. Proc. European Control Conference.
Matamoros, I. (2017). Nonlinear Control Allocation for a High-Performance Tailless Aircraft with Innovative
Control Effectors (Master’s thesis). Delft University of Technology. Delft.
Minka, T. (2021). Lightspeed matlab toolbox. Retrieved January 4, 2022, from https://github.com/tminka/
lightspeed
Moler, C. B. (2000). MATLAB Incorporates LAPACK. Retrieved January 3, 2022, from https://nl.mathworks.
com/company/newsletters/articles/matlab-incorporates-lapack.html
Moler, C. B. (2018). A Brief History of MATLAB. Retrieved January 3, 2022, from https://nl.mathworks.
com/company/newsletters/articles/a-brief-history-of-matlab.html
Moré, J. J., & Toraldo, G. (1989). Algorithms for bound constrained quadratic programming problems.
Numerische Mathematik, 55(4), 377–400. https://doi.org/10.1007/BF01396045
Nathen, P., Strohmayer, A., Miller, R., Grimshaw, S., & Taylor, J. (2021). Architectural performance as-
sessment of an electric vertical take-off and landing (e-VTOL) aircraft based on a ducted vectored
thrust concept (Whitepaper). Retrieved January 14, 2022, from https://www.semanticscholar.
org / paper / Architectural - performance - assessment - of - an - electric - Nathen - Strohmayer /
96113870bb6176a0818bf09330cb3125db44ed21
Nguyen Van, E., Troillard, P., Jézégou, J., Alazard, D., Pastor, P., & Döll, C. (2018). Reduction of Vertical
Tail Using Differential Thrust: Influence on Flight Control and Certification. Advanced Aircraft
Efficiency in a Global Air Transport System (AEGATS’18), 1–8. Retrieved January 14, 2022, from
https://hal.archives-ouvertes.fr/hal-02164023
Nocedal, J., & Wright, S. J. (2006). Numerical Optimization. Springer New York. https://doi.org/10.1007/978-
0-387-40065-5
Oppenheimer, M. W., Doman, D. B., & Bolender, M. A. (2006). Control Allocation for Over-actuated
Systems. 2006 14th Mediterranean Conference on Control and Automation, 1–6. https://doi.org/
10.1109/MED.2006.328750
Pachter, M., Chandler, P. R., & Mears, M. (1995). Reconfigurable tracking control with saturation. Journal
of Guidance, Control, and Dynamics, 18(5). https://doi.org/10.2514/3.21499
Petersen, J., & Bodson, M. (2006). Constrained quadratic programming techniques for control allocation.
IEEE Transactions on Control Systems Technology, 14(1), 91–98. https://doi.org/10.1109/TCST.
2005.860516
Petersen, J., & Bodson, M. (1999). Fast control allocation using spherical coordinates. AIAA Guidance,
Navigation, and Control Conference and Exhibit. https://doi.org/10.2514/6.1999-4215
Petersen, J., & Bodson, M. (2005). Interior-Point Algorithms for Control Allocation. Journal of Guidance
Control and Dynamics, 28, 471–480. https://doi.org/10.2514/1.5937
Sabharwal, A., & Potter, L. (1998). Convexly constrained linear inverse problems: Iterative least-squares
and regularization. IEEE Transactions on Signal Processing, 46(9), 2345–2352. https://doi.org/10.
1109/78.709518
Sadien, E., Roos, C., Birouche, A., Carton, M., Grimault, C., Romana, L. E., & Basset, M. (2019). A detailed
comparison of control allocation techniques on a realistic on-ground aircraft benchmark. American
Control Conference 2019. Retrieved November 24, 2021, from https://hal.archives-ouvertes.fr/hal-
02449260
Shahzad, A., Kerrigan, E. C., & Constantinides, G. A. (2010). A warm-start interior-point method for
predictive control. UKACC International Conference on Control 2010, 1–6. https://doi.org/10.1049/
ic.2010.0409
Sieberling, S., Chu, Q. P., & Mulder, J. A. (2010). Robust Flight Control Using Incremental Nonlinear Dy-
namic Inversion and Angular Acceleration Prediction. Journal of Guidance, Control, and Dynamics,
33(6), 1732–1742. https://doi.org/10.2514/1.49978
References 80
Smeur, E. (2018). Incremental Control of Hybrid Micro Air Vehicles (Doctoral dissertation). Delft University
of technology. https://doi.org/10.4233/UUID:23C338A1-8B34-40A6-89E9-997ADBDAFD75
Smeur, E. (2017). Working with INDI - PaparazziUAV. Retrieved January 14, 2022, from https://wiki.
paparazziuav.org/wiki/Working_with_INDI#'Full'_INDI
Smeur, E., Höppener, D., & de Wagter, C. (2017). Prioritized Control Allocation for Quadrotors Subject to
Saturation. International Micro Air Vehicle Conference and Flight Competition 2017. Retrieved
November 4, 2021, from https://repository.tudelft.nl/islandora/object/uuid%3A54c4659a-3a6d-
4d44-873d-aec6ae5e2376
Snell, S. A., Enns, D. F., & Garrard, W. L. (1992). Nonlinear inversion flight control for a supermaneuverable
aircraft. Journal of Guidance, Control, and Dynamics, 15(4), 976–984. https://doi.org/10.2514/3.
20932
Stephan, J., & Fichter, W. (2017). Fast Exact Redistributed Pseudoinverse Method for Linear Actuation
Systems. IEEE Transactions on Control Systems Technology, PP, 1–8. https://doi.org/10.1109/
TCST.2017.2765622
STMicroelectronics. (2016). Application note – Floating point unit demonstration on STM32 microcontrollers
(tech. rep. AN4044). Retrieved January 4, 2022, from https://www.st.com/resource/en/application_
note/an4044-floating-point-unit-demonstration-on-stm32-microcontrollers-stmicroelectronics.pdf
The MathWorks, Inc. (2022). Quadratic programming - MATLAB quadprog. Retrieved January 4, 2022,
from https://nl.mathworks.com/help/optim/ug/quadprog.html?s_tid=doc_ta#d123e135772
Tol, H., De Visser, C., Van Kampen, E.-J., & Chu, Q. (2014). Nonlinear Multivariate Spline Based Control
Allocation for High Performance Aircraft. Journal of Guidance Control and Dynamics. https :
//doi.org/10.2514/1.G000065
Virnig, J., & Bodden, D. (1994). Multivariable control allocation and control law conditioning when control
effectors limit. Guidance, Navigation, and Control Conference. https://doi.org/10.2514/6.1994-3609
Vollebregt, E. A. (2014). The Bound-Constrained Conjugate Gradient Method for Non-negative Matrices.
Journal of Optimization Theory and Applications, 162(3), 931–953. https://doi.org/10.1007/s10957-
013-0499-x
Willee, H. (2021). Controller Diagrams | PX4 User Guide. Retrieved January 13, 2022, from https://docs.
px4.io/master/en/flight_stack/controller_diagrams.html#airspeed-scaling
Willee, H., & Grob, M. (2021). Multicopter PID Tuning Guide (Manual/Advanced) | PX4 User Guide.
Retrieved January 13, 2022, from https://docs.px4.io/master/en/config_mc/pid_tuning_guide_
multicopter.html#airmode-mixer-saturation
Yu, Y., Elango, P., & Açıkmeşe, B. (2021). Proportional-Integral Projected Gradient Method for Model
Predictive Control. IEEE Control Systems Letters, 5(6), 2174–2179. https://doi.org/10.1109/
LCSYS.2020.3044977
Zhang, J., Bhardwaj, P., Raab, S. A., Saboo, S., & Holzapfel, F. (2018). Control Allocation Framework for
a Tilt-rotor Vertical Take-off and Landing Transition Aircraft Configuration. 2018 Applied Aerody-
namics Conference. https://doi.org/10.2514/6.2018-3480
Zhang, J., Söpper, M., & Holzapfel, F. (2021). Attainable Moment Set Optimization to Support Configuration
Design: A Required Moment Set Based Approach. Applied Sciences, 11(8), 3685. https://doi.org/
10.3390/app11083685