Skip to main content
Sensors (Basel, Switzerland) logoLink to Sensors (Basel, Switzerland)
. 2023 May 3;23(9):4463. doi: 10.3390/s23094463

Computationally Efficient Continuous-Time Model Predictive Control of a 2-DOF Helicopter via B-Spline Parameterization

Boris Rohaľ-Ilkiv 1,*, Martin Gulan 1,*, Peter Minarčík 1,2
Editor: Bijan Shirinzadeh
PMCID: PMC10181521  PMID: 37177667

Abstract

This paper investigates one way to reduce the computational burden of continuous-time model predictive control (MPC) laws by representing the input/output signals and related models using B-spline functions. Such an approximation allows to implement the resulting feedback control law more efficiently, requiring less online computational effort. As a result, the proposed controller formulates the control signals as continuous polynomial spline functions. All constraints assumed over the prediction horizon are then expressed as constraints acting on the B-splines control polygon vertices. The performance of the proposed theoretical framework has been demonstrated with several real-time experiments using the well-known 2-DOF laboratory helicopter setup. The aim of the presented experiments was to track given step-like reference trajectories for pitch and yaw angles under notable parameter uncertainties. In order to suppress the influence of uncertainties, the control algorithm is implemented in an adaptive mode, equipped with the recursive least squares (RLS) estimation of model parameters and with the adaptation of stabilizing terminal set and terminal cost calculations. Thanks to the presented framework, it is possible to significantly reduce the computational burden, measured by the number of decision variables and input constrains, indicating the potential of the proposed concept for real-time applications, even when using embedded control hardware.

Keywords: continuous-time model predictive control, spline functions, 2-DOF helicopter, adaptive control

1. Introduction

The notion of spline has become an important and well-established tool in the modern approximation theory. At present, splines are successfully applied in an increasing number of scientific and technical disciplines, as can be seen, e.g., in [1,2,3]. Splines are, roughly speaking, functions which serve the purpose of approximating or modeling other functions or discrete data. Originally, splines were defined by I.J. Schoenberg in 1946 as univariate piecewise polynomial functions. One of the fundamental contributions to the theory of polynomial splines represents the discovery of compactly supported basis functions, the so-called B-splines, by Curry and Schoenberg in 1966. B-splines are piecewise polynomial functions which form a basis for the space of polynomial splines. Their importance arises from the fact that their properties make them highly suitable for practical computations. Being polynomial, they can be evaluated very quickly; being piecewise polynomial, they are very flexible. The number and profile of the B-spline functions is clearly determined by the distribution of the so-called knot points and it is possible to change their behavior by changing the position of these knots. The ability of splines to achieve a very high quality of approximation in various technical applications inspired the authors to use them when looking for alternative ways to reduce the computational complexity of continuous-time MPC laws.

For studying and the real-time testing of the performance of various control techniques and strategies, 2-DOF laboratory helicopters of different constructions and designs have become increasingly popular platforms, see, e.g., [4,5,6,7]. These physical models represent typically nonlinear mechatronic systems with strong cross-couplings and parameters uncertainties which make control of the systems much more complicated. Moreover, according to the design, these systems can have time-varying dynamics and some parameters have to be estimated online using, e.g., recursive least squares. In this article, using such a laboratory system, we will investigate the computational efficiency of the B-spline parameterization technique in designing a practical continuous-time model predictive control (CMPC) procedure. The techniques for the efficient design and implementation of CMPC schemes are the subject of systematic research, motivated by many advantages that these techniques offer compared with common discrete-time MPC formulations. Some well-known schemes for designing such CMPC strategies can be found, for example, in [8,9,10,11,12,13], where different ways to preserve the time-continuity properties of the design and its independence on the chosen sampling rate are discussed.

In the works by [14,15,16,17], the authors of this paper have proposed an alternative approach to the CMPC problem solution based on B-spline functions parameterization. It can be shown that if we assume a finite number of B-spline basis functions, we may appropriately parameterize the control signal as a continuous spline curve with a predefined degree of continuity. The solution can provide some new benefits in CMPC problem formulation, such as the intersample satisfaction of constraints and the formulation of smooth control signals. In this procedure, the user selects the orders of the splines used to approximate the input and output signals in the prediction horizon and also determines the number and distribution of their knot points. The appropriate selection of these parameters thus significantly reduces the dimensionality of the corresponding optimization problem, i.e., the length of the optimizer, which becomes the control polygon of B-spline functions. The advantage of the spline formulation of the CMPC is also the possibility to preserve the original continuous boundaries appearing in the optimization problem by simply rewriting them to the boundaries of the elements of the control polygon.

In predictive control applications, the ability of the control law to follow predefined reference values is very often required. Possible approaches to solving this problem for the usual discrete-time MPC formulations are discussed, e.g., in [18,19,20]. As a novelty in this article, the authors present an extension of the spline velocity version of the CMPC algorithms, cited in their previous works [15,16,17], to multivariable nonlinear systems with an adaptation of the model parameters. The intention here is to achieve offset-free tracking of a set of piecewise-constant reference values in the presence of random disturbances. In addition, for the first time, we present the real-time deployment of the proposed algorithm to control a real-world system—a 2-DOF laboratory helicopter.

As already mentioned, these laboratory systems, same as the real-world helicopters, are in fact nonlinear and nonstationary systems, with their properties changing with the operating point over trajectory and time. These changes can be so significant that fixed feedback control may be unacceptable or even impossible. The effort to employ more advanced controllers—capable of adapting their setup according to the changing conditions or effects of random disturbances—is therefore a subject of constant interest in practice. Because we do not consider a more complex, nonlinear model of the controlled system, the adaptive approach appears as a feasible and simple solution. In terms of control, the explicit solution approaches to CMPC proposed by the authors in [16,17] seek an efficient representation of the predictive control law which, however, in implementation stays fixed, i.e., time-invariant. This paper therefore puts forward an implicit form of the spline-based CMPC in an adaptive mode, i.e., with adaptive parameter estimation, using the recursive identification and adaptive calculation of a stabilizing terminal set at each sampling instant.

In this work, the helicopter is modeled online using the RLS library [21]. The resulting helicopter multi-input multi-output (MIMO) model is created using the well-known technique of multi-input single-output (MISO) models [22]. In view of the real-time implementation, the developed adaptive B-spline-based CMPC controllers were deployed by means of the MATLAB/Simulink Desktop Real-Time software environment.

2. Spline and B-Spline Functions

In this section, we provide a brief summary of the basic properties of B-spline functions, conversions between B- and pp-spline representations, as well as their essential shape properties. For a comprehensive theory of splines, we refer the interested reader to [23,24,25,26]. In terms of content, the following mathematical background is mainly recalled from [16].

2.1. Basic Definitions

Let us first state some formal definitions.

Definition 1. 

Let (ξ0=)0<ξ1<<ξq<Tx(=ξq+1) be the subdivision of a closed finite-time interval [0,Tx] by q distinct (time) points. A function s(t), defined on the interval [0,Tx], is called a spline function of the order r>0 (degree r1) and the defect def if the following two conditions hold:

  • In each open interval ξi,ξi+1,i=0,,q,s(t) is a polynomial of degree r1;

  • It has continuous derivatives up to the order rdef1 in the open interval 0,Tx.

The points ξi,i=1,,q are referred to as interior knots or breakpoints of the spline function. For each fixed set ξ=(ξ1,ξq) of the knots, the class of splines is a linear space of functions with dimension

z=(α1+α2++αq)+r, (1)

where αi denotes a multiplicity (or defect def) of the knot ξi. Let Pr,ξ,α denote the linear space of spline functions for α=(α1,αq). If all interior knots, ξi, are simple, i.e., αi=1,i=1,,q, then Pr,ξ,α=Cr2[0,Tx]. In order to perform computations with splines, one must first choose a suitable representation, in which any member of Pr,ξ,α can be written as a unique linear combination of properly chosen z basis functions such that Definition 1 is satisfied. A common choice is to use B-spline functions.

Definition 2. 

A B-spline function Ni,r,ξ(t) of order r>0, with knots ξi,,ξi+r, can be defined using the following recurrence relation:

Ni,1,ξ(t):=1ifξit<ξi+1,0otherwise,Ni,k,ξ(t):=ξi+ktξi+kξi+1Ni+1,k1,ξ(t)+tξiξi+k1ξiNi,k1,ξ(t),fork=2,,r,

where the two fraction terms are interpreted as zero whenever ξi+kξi+1=0 and ξi+k1ξi=0, respectively.

From Definition 2, one can observe that Ni,r,ξ(t),i=0,1 (i) have a local support, (ii) are positive on their supports and (iii) form a partition of unity. Every function s(t) satisfying Definition 1 then has a unique representation:

s(t)=i=1zciNi,r,ξ(t)=n(t)Tc, (2)

with n(t)=[N1,r,ξ(t),,Nz,r,ξ(t)]T, c=[c1,,cz]T, where Ni,r,ξ(t) or shortly Ni(t), i=1,,z, denote base functions of the spline space Pr,ξ,α, and ci denotes the i-th B-spline coefficient of s(t). They are commonly referred to as control coefficients or control points, and the collection {ci}i=1z of all control points is referred to as the control polygon of the spline. In the following, we will assume the spline represented as a linear combination of basis B-spline functions (2) as the approximation function. The spline design parameters thus are the following:

  • The order r and defect def of the spline;

  • The number q and location ξ of its knots;

  • The control coefficients (control polygon) {ci}i=1z.

2.2. Conversion from B- to pp-Representation

A polynomial spline can be, by definition, written as

s(t)=pi(t):=j=1rpij(tξi)j1,t[ξi,ξi+1],i=0,,q, (3)

where pi(t) are polynomial pieces or segments which represent the spline s(t) on interval [0,Tx]. The relation (3) is called a piecewise polynomial (pp-)representation of the spline s(t). Clearly, the pp-representation of spline s(t) is completely determined by the (q+1)r-dimensional vector of the polynomial coefficients p=[p01,,p0r,,pq1,,pqr]T. Given the B-representation (2) of the spline s(t), the vector p of its pp-representation can be easily computed according to

p=Pc, (4)

where rows of matrix P can be obtained by the differentiation of vector nT(t) in knots {ξi}i=1q:

P=1(j1)!n[j1]T(t)t=ξij=1,,ri=0,,q

with

n[j1]T(t)=[N1[j1](t),,Nz[j1](t)],

where notation f[i](t) stands for the i-th derivative of f(t) with respect to t, with f[0](t)f(t); see [23,27] for details.

Given the vector p, the conversion from pp-representation to B-representation can be performed as follows:

c=PL1p,

which is more difficult because of the left inverse of matrix P; however, if it is a priori known that the approximated function lies in Pr,ξ,α for a certain r,ξ,α, then PL1 can be determined uniquely.

2.3. Shape Properties of B-Spline Curves

The fundamental shape properties of B-spline curves that we rely on in this article may be summarized using the following theorem. The reader is referred to, e.g., [26] for more details and proofs.

Theorem 1 

(Shape properties of B-spline curves). Let s(t) be a B-spline curve of order r over the knot sequence ξ. Then, the following properties hold:

  • (i

    In general, there is no endpoint interpolation;

  • (ii

    For ξit<ξi+1, s(t) lies in the convex hull of the r control points cir+1,,ci;

  • (iii

    Local control: for t[ξi,ξi+1], the curve is independent of cj for j<ir+1 and j>i;

  • (iv

    If r1 control points coincide, then the spline curve passes through this point and is tangent to the control polygon;

  • (v

    If r1 control points are on a line, then the spline curve touches this line;

  • (vi

    If r control points are on a line L, then s(t)L for ξit<ξi+1, i.e., an entire segment of the curve s(t) coincides with L;

  • (vii
    Its derivative is
    s(t)=i=1z1c¯iNi,r1,ξ(t)withc¯i=r1ξi+r1ξi(cici+1);
  • (viii

    If r1 knots t=ξi+1==ξi+r1 coincide, then s(t)=ci, i.e., the spline curve passes through a control point and is tangent to the control polygon.

3. Problem Formulation

The problem formulation will be presented using the example of the aforementioned laboratory 2-DOF helicopter, the hardware of which will be described later in Section 4. In some passages, it will follow formulations presented by the authors in [17] which led to the explicit solution to the spline-based CMPC problem.

Let us in general consider the laboratory 2-DOF helicopter as a continuous-time MIMO system described near a given operating point by the following linear time-invariant state-space form (in reality, in our application, it will be a two-input two-output (TITO) system):

x˙h(t)=Ahxh(t)+Bhu(t), (5a)
y(t)=Chxh(t), (5b)

where Ah, Bh and Ch are state-space matrices of appropriate dimensions and the elements of the state vector xh(t)Rru (ru denoted the order of the spline input signal) can be directly calculated from the spline derivatives of input/output signals u(t)Rnu,y(t)Rny by using the multi-input single-output (MISO) technique formulated below.

3.1. Phase-Variable State-Space Description

Let us consider the MIMO system description (5) in the deterministic framework and apply it over the spline output and input signals, syi(t) and suj(t), i=1ny,j=1nu. Then, for the i-th spline output signal, syi(t), of the system, the following MISO differential equation can be written:

syi[ρα](t)+αi,1syi[ρα1](t)++αi,ραsyi(t)==j=1nu[β0i,jsuj[ρβ](t)+β1i,jsuj[ρβ1](t)++βρβi,jsuj(t)],ρβρα, (6)

where coefficients αi,k and βli,j, k=1ρα,l=1ρβ, are real constant scalars. For the degrees ρα and ρβ, it holds that ρα(ry1) and ρβ(ru1), respectively.

Having specified spline input–output derivatives, by applying a common technique of moving data windows it is easy to estimate the vector of unknown parameters of (6) through linear regression:

syi[ρα](t)=θsiTφsi(t))+ϵsi(t),θsi=[αi,1,αi,ρα,β0i,1,βρβi,1β0i,nu,βρβi,nu]T,φsi(t)=[syi[ρα1](t),syi(t),su1[ρβ](t),su1(t)sunu[ρβ](t),sunu(t)]T,

and a linear square approach where ϵsi(t) denotes an equation error.

Several methods are available for finding possible state-space forms from the input–output map (6). The well-known phase-variable canonical forms, see, e.g., [28], are particularly useful for our purposes because state variables can be defined in terms of the plant variables and their derivatives. With this, we can choose the ρα-dimensional state vector xi(t)=[x1i(t)xραi(t)]T, of a phase-variable canonical form related to the i-th spline output, as

xi(t)=Syis¯yi[ρα1](t)+j=1nuSujis¯uj[ρβ1](t) (7)

with (ρα×ρα) square matrices Syi,Sui,j defined as

Syi=1αi,1αi,2αi,ρα101αi,1αi,ρα2001αi,ρα30001,Suji=0β0i,jβ1i,jβρβ1i,j00β0i,jβρβ2i,jβ0i,j0000,

and with ρα-dimensional vectors s¯yi[ρα1](t), s¯uj[ρβ1](t) containing spline derivatives of the i-th plant output and the j-th plant input in a backward location, compared with syi[ρα1](t), suj[ρβ1](t). In the case of s¯uj[ρβ1](t), the missing entries to the dimension ρα are completed by a corresponding amount of zeros:

s¯uj[ρβ1](t)=[0,,0,suj[ρβ1](t),,suj[1](t),suj(t)]T. (8)

The foregoing equations can be arranged in the following MISO state-space form:

x˙i(t)=Aixi(t)+Bisu(t), (9a)
syi(t)=cxi(t), (9b)

where

Ai=0000αi,ρα1000αi,ρα10100αi,ρα20000αi,20001αi,1,Bi=βρβi,1βρβi,nuβ0i,1β0i,nu0000,su(t)=su1(t)sunu(t),c=0001.

By assuming i=1ny, the set of MISO realizations (9) can be used to create the following simple MIMO state-space realization of the system which is valid near the given operating point:

x˙m(t)=Amxm(t)+Bmsu(t), (10a)
sy(t)=Cmxm(t), (10b)

with order n=ny.ρα, and the state and output vectors defined as

xm(t)=x1(t)xny(t),sy(t)=sy1(t)syny(t).

It is easy to verify that

Am=A1A2Any,Bm=B1B2Bny,Cm=ccc.

The realization (10) is a straightforward connection of canonical realizations (9) for each system output and therefore is not the minimal one. Nevertheless, in this realization, the n-dimensional state vector xm(t) is accessible to direct measurement.

If the system’s operating point varies in time—and this is our case—then the description (10) also becomes time-variant and can be written as:

x˙m(t)=Am(t)xm(t)+Bm(t)su(t), (11a)
sy(t)=Cm(t)xm(t), (11b)

where the matrices Am(t) and Bm(t) can be easily identified online using, e.g., algorithms of the recursive least squares method; thus, the overall design of the control scheme will enter the adaptive mode.

3.2. B-Spline Parameterization of CMPC Formulation

In this subsection, we discuss the CMPC formulation from the viewpoint of the application of B-spline parameterization as a starting point for obtaining computationally efficient control algorithms. In order to be able to introduce the integral action in the resulting formulations, we are further more interested in the derivatives of control input signals contained in the vector u˙(τ). Using the expansion (2) with the same choice of B-spline function parameters for all inputs (i.e., ui(τ)sui(τ)=n(τ)Tcui, ui(τ)Pru,ξ,α,i=1,,nu), these can be obtained as

u˙(τ)=N˙(τ)cu, (12)

where

N˙(τ)=n˙T(τ)n˙T(τ),cu=cu1cunu,

with cui=[c1i,,czi]T,i=1,,nu and n˙(τ) denoting a vector of the first derivatives of the used B-spline functions.

By taking the derivative of both sides of (11) with u(t)su(t) and y(t)sy(t), the state-space model can be rewritten in the following augmented form:

x˙(t)=A(t)x(t)+B(t)u˙(t), (13a)
y(t)=Cx(t), (13b)

where

x(t)=zT(t)yT(t)T,z(t)=x˙m(t),A(t)=Am(t)0Cm0,B(t)=Bm(t)0,C=0I.

Assuming a time window given by τ[tk,tk+Th], where tk is the current time and Th denotes the prediction horizon, the predicted state at time tk+τ can be obtained by solving the differential Equation (13a) as follows:

x(tk+τ)=eAkτx(tk)+0τeAk(τγ)Bku˙(tk+γ)dγ, (14)

where for simplicity we used the notation Ak=A(tk) and Bk=B(tk). Now, if we employ the B-spline functions-based expansion (12) to approximate the control input derivatives, we can substitute them into the prediction Equation (14), which thus becomes parameterized in cu:

x(tk+τ)=eAkτx(tk)+Γk(τ)cu (15)

with Γk(τ)=0τeAk(τγ)BkN˙(γ)dγ.

The objective of the velocity-form CMPC design considered in this work is to drive the predicted system outputs, y(τ), as close as possible to predefined reference trajectories ys(τ), ideally to solve the following infinite-horizon control problem:

minu(·)0y(τ)ys(τ)Qy(τ)2+u˙(τ)Qu(τ)2dτ (16a)
s.t.uminu(τ)umax,τ0, (16b)
u˙minu˙(τ)u˙max,τ0, (16c)

where within the quadratic objective (16a), Qy(τ)0 and Qu(τ)0 denote the output and input weighting matrix, respectively. In the constraints (16b) and (16c), (umin,umax) and (u˙min,u˙max) denote bounds imposed on control signals and their derivatives, respectively.

Now, applying the quasi-infinite horizon approach to guarantee the closed-loop stability, our goal is to solve the following finite-horizon continuous-time MPC problem:

minu(·)tktk+Thx(tk+τ|tk)xs(tk+τ|tk)Qx(τ)2+u˙(tk+τ|tk)Qu(τ)2dτ+x˜(tk+Th|tk)Qh,k2 (17a)
s.t.uminu(t+τ|t)umax,τt, (17b)
u˙minu˙(t+τ|t)u˙max,τt, (17c)
x˜(tk+Th|tk)Ωk, (17d)

where Qx(τ)=CTQy(τ)C, xs(τ) denotes the state reference trajectories defined by the setpoints, and x˜(tk+Th|tk) denotes a deviation from the steady-state target calculated for the current reference state xs(τ) at τ=Th. In addition, the stability and recursive feasibility of the control problem are ensured by assuming a terminal cost weighted with Qh,k0 in (17a), and by assuming a terminal set Ωk constraint (17d). This set has to be invariant under a local linear state feedback u=Fx, virtually acting for τ[tk+Th,[ and feasible with (17b) and (17c). For the calculation of Ωk and Qh,k, a simple computational procedure proposed in [29] can be adopted.

The adaptive CMPC problem (17) can be tackled using B-spline parameterization which leads to the following formulation:

mincu(k)cu(k)THkcu(k)+2cu(k)TGkx(tk)Qs,kcs(tk), (18a)
s.t.cumincu(k)cumax, (18b)
cu,ΔminAΔcu(k)cu,Δmax, (18c)
xΩkminAΩkcu(k)xΩkmax, (18d)
n(0)Tcu(k)=n(Th)Tcu(k1), (18e)
n˙(0)Tcu(k)=n˙(Th)Tcu(k1), (18f)
n˙(Th)Tcu(k)=0. (18g)

The reformulated objective (18a) was obtained by substituting (12) and (15) into (17a), while expressing the setpoints as spline functions using the relation (2) as follows:

ys(tk+τ|tk)=Ns(τ)cs(tk),

where

Ns(τ)=nsT(τ)nsT(τ),cs(tk)=cs1(tk)csny(tk),

with csi(tk)=[cs1i(tk),,cszi(tk)]T,i=1,,ny, and cs(tk) is a vector of the splines’ control points expressing the trajectories of setpoints prescribed by the user for the desired system outputs’ behavior over the prediction horizon τ[tk,tk+Th]. The matrices Hk, Gk and Qh,k can be calculated, using numerical integration, as follows:

Hk=tktk+ThΓk(τ)TQx(τ)Γk(τ)dτ+tktk+ThN(τ)TQu(τ)N(τ)dτ+Γk(Th)TQh,kΓk(Th),Gk=tktk+ThΓk(τ)TCTQy(τ)CeAkτdτ+Γk(Th)TQh,keAkTh,Qs,k=tktk+ThΓk(τ)TCTQy(τ)Ns(τ)dτ.

Note that the continuous-time constraints (17b) and (17c) had to be reformulated to suitable finite-dimensional forms given by (18b) and (18c), respectively. These must guarantee the intersample behavior of the spline control signal, which is achieved by a proper bounding of its control polygon cu(k). Taking into account the basic shape properties of B-splines, (18b) represents the amplitude constraints (17b) of the control signal u(t) imposed over a horizon [tk,tk+Th], where cumin and cumax are the min and max values of the spline control coefficients cu(k) computed using the B-spline approximation of the given umin and umax values. Similarly, (18c) approximates the constraints (17c) on the derivative of the control signal u˙(t), where cu,Δmin and cu,Δmax are the min and max values of the differences in the spline control coefficients, which can, together with entries of matrix AΔ, be computed based on the location of the spline knots. Next, (18d) represents the terminal constraints transformed from (17d) using the prediction model (15), where xΩkmin, xΩkmax denote the vectors bounding the terminal set Ωk. In order to keep the spline function sui(t) in the space Pru,ξ,α for the given (ru,ξ,α), the equality constraints (18e) and (18f) are used to enforce continuity between the implemented and the projected spline control signals at the beginning of the prediction horizon [tk,tk+Th]. Finally, the constraint (18g) is added to improve the stability of the control signals by requiring a zero derivative of the projected spline control signal at the end of the prediction horizon [tk,tk+Th].

From the optimization perspective, the adaptive spline-based stabilizing CMPC problem in velocity form, (18), is a quadratic program (QP), which can be recast in the following simplified form:

mincu(k)12cu(k)THkcu(k)+cu(k)TGkx(tk)Qs,kcs(tk), (19a)
s.t.Aineqcu(k)bineq, (19b)
Aeqcu(k)=beq. (19c)

Solving QP (19) implicitly for a current state x(tk) and given setpoints cs(tk) yields a vector of optimal control coefficients cu(k)=[c1T,,cnuT]T, ciRz,i=1,,nu. According to [15,16], cu(k) is subsequently converted to piecewise polynomial (pp)-representation of the individual optimal spline control signals sui(τ), τ[tk,tk+Th], i=1,,nu given by their polynomial coefficients contained in a vector p(k)=Pcu(k).

The optimization problem (18) implies that we are looking at the control signals ui(t) from the viewpoint of a selected distance T between the knot points of the spline function sui(t). In real-time implementation, the distance T corresponds to the control period, in which the first polynomial segments of the respective optimal spline input signals, i.e., sui(τ), τ[tk,tk+T], are applied for control. This is usually performed with a much shorter implementation period TgT; see Figure 1 for illustration. This means that we calculate the values of the control signal sui(tk+τ) for the relative time variable τ=jTg, j=1,,ng, T=ngTg, i=1,,nu and implement them for control using a common zero-order hold. The parameter ng is user-defined and its choice is important because it determines the degree of continuity of the generated signal.

Figure 1.

Figure 1

Illustration of how a spline control signal is generated. ∘ denotes a knot point, T—sampling period, Tg—implementation (generation) period.

3.3. Number of Polynomial Segments of Projected Spline Control Signals

Note that during the prediction horizon [tk,tk+Th] the distance T between the knots of the projected spline input signal sui(τ), τ[tk,tk+Th] can be chosen as βT, β=1,2,, introducing a property comparable with the well-known move-blocking techniques used in MPC.

This is an important design parameter which—in conjunction with spline continuity conditions and the spline defect—allows us to tune various controller setups. Essentially, the number q of the polynomial segments in the projected spline control signal determines the degrees of freedom for a given task. A higher value of q provides a more active control signal, while a lower value leads to control which is more smooth and sluggish. Note that small values of q,q1 significantly reduce the QP computational effort.

The projected polynomial segments are interconnected in the interior knot points of the sequence ξh which spans over the prediction horizon, [tk,tk+Th]. In general, the placement of these knots may be considered as another design tool. As mentioned earlier, we prefer a uniform location of these knots with a selected distance Tu, taken as Tu=βT. The distance then becomes a remarkable tuning knob for setting the overall length Th of the prediction horizon under the same number q of its segments. Using the distance Tu as a variable, we can extend or shorten the prediction horizon satisfying the same computational burden due to the same dimension of the decision vector cu. The chosen length of Tu considerably dominates the activity of the projected spline control signal. Consequently, there is no need for any control weighting in the cost and it is possible to set wu(t)=0, even for control of non-minimum phase plants. The setting wu(t)=0 was assumed in all the experiments reported in this work.

One may tune different controllers via alternating continuity conditions and the spline defect in selected knots of the projected spline control signal. For example, it is possible to make—like in generalized predictive control—an assumption of zero increments of the projected control signal, starting from a certain time instant in the horizon, and thereby to impose an actual control horizon within the given prediction horizon. This can be simply achieved by constraining the knot derivatives of a certain number of last polynomial segments to zero while setting spline defects in the involved joining knots to zero as well. Applying the above procedure to a chosen number of segments, we can set a proper length of the control horizon, see, e.g., Figure 2a,b. For illustrative purposes, in these figures, two arrangements of third-order polynomial spline segments within the prediction horizon are presented. In Figure 2a, the derivatives of the last segment are set to zero, while in a similar arrangement in Figure 2b, a zero defect in the next-to-last knot is added. The impact on the actual control horizon length is evident.

Figure 2.

Figure 2

Illustration of a projected spline control signal with (a) 3 and (b) 4 polynomial segments.

Following the receding horizon strategy, only that piece of the first polynomial segment of the spline control signal which corresponds to the first sampling period T is really applied to the controlled system, as per Figure 1.

Overall, the proposed adaptive B-spline-based stabilizing CMPC algorithm boils down to performing the following steps at each time instant tk:

  1. For current plant data yk, cu(k), and reference values cs(tk), using a recursive least squares algorithm update the model (10) and calculate the state vector x(tk); use it to

  2. adapt the calculation of bounds xΩkmin and xΩkmax of the terminal set Ωk, and terminal cost Qh,k; and to

  3. update the matrices Hk, Gk and Qs,k;

  4. solve the optimal control problem (18) as the QP (19) to obtain the vector of optimal control coefficients cu(k); which is then used to

  5. calculate the vector p(k) containing polynomial coefficients of all segments, using the relation (4) as p(k)=Pcu(k); and

  6. following the receding horizon strategy apply with the possibly shortest implementation period Tg,TgT the first polynomial segments of p(k) to control the system during the time interval [tk,tk+T], which means calculate the control signals sui(tk+τ) for a relative time variable τ=jTg, j=1,,ng, T=ngTg, i=1,,nu, as spline polynomial segments of order ru, and implement them for control using a common zero-order hold; and finally

  7. repeat the procedure from step 1. for the next sampling instant tk+1=tk+T.

Figure 3 shows a simplified block scheme of the above algorithm.

Figure 3.

Figure 3

A simplified block scheme of the adaptive spline-based stabilizing CMPC feedback loop.

4. Experimental Results and Discussion

This section describes the experiments carried out to verify the functionality and efficiency of the proposed concept of the B-spline CMPC algorithm. In the following subsections, we briefly explain the experimental 2-DOF helicopter platform and software tools, and after that, we illustrate some of the obtained results on four examples of tracking the predefined reference trajectories for the pitch and yaw angles. Similar platforms are well-known in the literature and are commonly used as benchmarks for testing various control techniques. In our case, the platform allows to easily demonstrate the basic features of the design and performance of the proposed B-spline-based CMPC controller.

4.1. Experimental Setup

Our laboratory helicopter physical model [7] consists of a base and a beam carrying at its ends two propellers—the main and the tail one—driven by DC motors; see Figure 4. The beam is attached to its base via an articulated joint which allows the beam to rotate so that its ends move on spherical surfaces. This connection enables two degrees of freedom of the helicopter body movement—rotation around the horizontal axis, described by the pitch angle, and rotation around the vertical axis, described by the yaw angle. Both angles are measured using high-resolution incremental encoders. The model was designed at the authors’ workplace and represents a low-cost alternative to the commercially available models, such as [30], except for its limited rotation around the vertical axis imposed by power and data cables.

Figure 4.

Figure 4

Photograph of the laboratory 2-DOF helicopter setup.

The axes of the main and the tail propellers as well as the vertical and the horizontal helicopter axes are usually perpendicular to each other so that the movement in the vertical plane and the movement in the horizontal plane are each affected by the thrust of only one propeller. A counter-weight fixed to the beam determines a stable equilibrium position. The system is balanced in such a way that when the motors are not powered, the main propeller end of the beam is lowered. As is usual for similar small-scale laboratory helicopter setups, the control is achieved exclusively by controlling the speeds of the propellers at a fixed angle of attack. The range of the helicopter body rotation is ± 30 in the pitch angle and ± 145 in the yaw angle. The plane of our main propeller is also slightly (∼ 2) deviated from the horizontal one to strengthen the coupling effect with the tail propeller. The main source of random uncertainties in our laboratory helicopter design is the persistent vibration of the tail endpoint of the beam, which manifests itself in the increased fluctuation of the measured value of the helicopter yaw angle during the experiments.

The described laboratory helicopter model can be represented as a nonlinear multivariable system with two inputs:

  • u1—voltage driving propeller speed of the main motor;

  • u2—voltage driving propeller speed of the tail motor.

These are manipulated in the interface range of 0 V to 10 V. There are also two outputs:

  • y1—pitch (elevation) angle;

  • y2—yaw (azimuth) angle.

These are measured in degrees.

The interface voltages u1 and u2 applied for setting the helicopter inputs are converted to appropriate voltage values that drive the propeller motors. The output y1 denotes the pitch angle in the vertical plane between the longitudinal axis of the helicopter body and the horizontal axis, and the output y2 denotes the yaw angle in the horizontal plane between the longitudinal axis of the helicopter body and its zero (initial) position.

The voltage driving the main motor and the voltage driving the tail motor affect both the pitch angle and the yaw angle; hence, we can say that the interaction makes the system multivariable. It is also worth mentioning that the used mechanical simplification with fixed-angle propeller blades does not necessarily translate into simplified dynamics. On the contrary, the input torques and forces are applied via aerodynamical effects, as well as additional coupling effects appearing between the helicopter body and propellers dynamics, due to the reaction forces and torques arising at the acceleration or deceleration of the propellers. These increased cross-coupling effects have important implications on the control of the helicopter system and make its dynamics, as already mentioned, partially uncertain and time-variable. This is the reason why we consider the design of the control in an adaptive mode with RLS estimation of the model parameters and the adaptation of the calculation of the stabilizing terminal set. To solve the problem of RLS estimator wind-up, the estimator with directional forgetting from [21] was implemented. This estimator ensures the convergence of the estimation and avoids large changes in the model parameters.

The proposed spline-based CMPC scheme to control the laboratory helicopter shown in Figure 4 was implemented using the MATLAB/Simulink Desktop Real-Time prototyping suite on a mini PC equipped with a 2.8 GHz CPU and 16 G of RAM. Communication with the helicopter testbed was handled using the Humusoft’s MF644 multifunction desktop I/O card. The underlying QP (19) of the MPC problem is solved repeatedly at each control instant T using a parametric active-set algorithm implemented in the open-source software package qpOASES [31].

4.2. Experimental Results

In order to demonstrate the functionality and computational efficiency of the proposed spline-based CMPC scheme, we present four experiments assuming values of the design parameters listed in Table 1. These parameters are complemented by the selection of weighing matrices in the objective function (18), which were set as follows:

  • As outlined, the input weighing matrix Qu was set as zero for all experiments.

  • The output weighing matrix Qy was chosen as an exponential type with different exponential factors, λ1=0.995 for the pitch angle and λ2=0.967 for the yaw angle.

Table 1.

Values of parameters used in real-time experiments.

Parameters Experiments
E1 E2 E3 E4
Implementation period  Tg 0.04 s 0.04 s 0.02 s 0.02 s
Parameter ng 10 10 10 10
Control period T=ngTg 0.4 s 0.4 s 0.2 s 0.2 s
Prediction horizon Th 20 T 30 T 15 T 20 T
Order of spline input signals ru 3 3 3 3
Order of spline output signals ry 4 4 4 4
Order of spline reference signals rs 4 4 4 4
Defect of splines def 1 1 1 1
Number q of interior knots within Th 3 4 2 3
Location of interior knots within Th {5 T,10 T,15 T} {6 T,12 T,18 T,24 T} {5 T,10 T} {5 T,10 T,15 T}
Move-blocking parameter β 5 6 5 5
Number of decision variables nu(ru+q) 12 14 10 12
Input amplitude bounds for main rotor u1min=4.6, u1max=5.7
Input amplitude bounds for tail rotor u2min=4.0, u2max=4.2
Input derivative bounds for main rotor u˙1min=1.9, u˙1max=1.9
Input derivative bounds for tail rotor u˙2min=1.3, u˙2max=1.3

Corresponds to sampling time. Same as in experiment E1.

The parameters of the adaptive directional forgetting used in the experiments were chosen as follows:

  • The minimum value of the adaptive forgetting factor was set to 0.97.

  • The expected value of the adaptive forgetting factor in a steady state was set to 0.99.

All four controllers were tested to follow the same sequence of nonsimultaneous step changes in the pitch angle and yaw angle references. The experiments were conducted for a selection of two different implementation periods, namely Tg=0.04 s (experiments E1 and E2) and Tg=0.02 s (experiments E3 and E4). In doing so, the chosen setting of the quality parameters of the B-spline representation (spline orders, number and location of interior knots) in these experiments led to the number nu(ru+q) of decision variables (i.e., the length of the optimizer vector) varying in the range of 10 to 14, as listed in Table 1.

The obtained tracking results for experiments E1 and E2 are presented in Figure 5a. One may notice the quite expected consequence that increasing the length of the optimizer improves the overall tracking performance, which is also evidenced by means of standard deviations of the tracking errors listed in Table 2. The comparison of the experiments is also supplemented by the profiles of the applied spline input signals, see Figure 5b, respecting the constraints imposed on the amplitude and the derivative. Finally, Figure 5c shows the numbers of iterations of the employed QP solver. Its addition is merely illustrative but to an extent confirms that lengthening the optimizer leads (under the same conditions) to lower numbers of required iterations.

Figure 5.

Figure 5

Experimental results of spline-based CMPC, compared for optimizer lengths 12 (experiment E1) and 14 (experiment E2), assuming Tg=0.04 s. (a) Tracking of reference trajectories for pitch and yaw angles. (b) Voltage inputs applied to the helicopter rotors. (c) QP solver iterations.

Table 2.

Standard deviations of pitch and yaw control errors as attained during the experiments.

Experiment Pitch Angle Yaw Angle
E1 1.4870 3.3289
E2 1.2877 3.2910
E3 0.9294 3.1678
E4 0.8111 2.9105

The experiments were repeated with the implementation period Tg=0.02 s (experiments E3 and E4). As evidenced by Figure 6a and Table 1, the shorter implementation period contributed to an increase in the quality of tracking. Figure 6b,c illustrate the corresponding profiles of the spline input signals and solver iterations, respectively.

Figure 6.

Figure 6

Experimental results of spline-based CMPC, compared for optimizer lengths 10 (experiment E3) and 12 (experiment E4), assuming Tg=0.02 s. (a) Tracking of reference trajectories for pitch and yaw angles. (b) Voltage inputs applied to the helicopter rotors. (c) QP solver iterations.

We can also observe from the performed experiments that the quality of tracking the reference trajectories was significantly affected by the existing cross-couplings, characteristic for the controlled helicopter system. This is owed mainly to the mutual link between the pitch angle and the yaw angle, which in this state of the solution we tried to suppress by the mentioned selection of the output weighing matrix Qy.

We also remark that the zero input weighing matrix sufficed to ensure a stabilizing control. This observation is a by-product of the conditions (18e)–(18g) imposed on the continuity and zero derivative of the splines at the end of the prediction horizon.

In terms of evaluating the computational complexity, the main intention of this article is not to compare the proposed approach with other MPC formulations. Nevertheless, if we want to assess the computational burden of the proposed B-spline-based CMPC procedure compared with the standard discrete-time MPC procedure virtually acting on the same prediction horizon, we can approach it by comparing the sizes of the parameterizations that would be required by these procedures within the implementation, see Table 3, Table 4 and Table 5. They show that the B-spline parameterization is markedly leaner, i.e., computationally more efficient than the parameterization of a comparable standard discrete-time formulation, either in the case of parameterization assuming faster sampling given by control period Tg (Table 5) or slower sampling given by T (Table 4). Regarding these comparisons, we may also point out that the CMPC procedure in addition enables to guarantee the intersample behavior—a property that may be approximated by the discrete-time formulation with shorter sampling time Tg, presented in Table 5.

Table 3.

Size of B-spline parameterization of the CMPC assumed in real-time experiments E1 to E4.

Experiment Prediction
Horizon
Th=NT 
Number of
Decision Variables
nu(ru+q)
Number of Input Amplitude
and Derivative Constraints
4nu(ru+q)2nu
E1 20 T 12 44
E2 30 T 14 52
E3 15 T 10 36
E4 20 T 12 44

N denotes the number of prediction horizon steps.

Table 4.

Size of parameterization of a comparable standard discrete-time MPC formulation virtually acting on prediction horizon Th with control period (sampling time) T.

Experiment Prediction
Horizon
Th=NT
Number of
Decision Variables
nuN
Number of Input Amplitude
and Increment Constraints
nu4N
E1 20 T 40 160
E2 30 T 60 240
E3 15 T 30 120
E4 20 T 40 160

Table 5.

Size of parameterization of a comparable standard discrete-time MPC formulation virtually acting on prediction horizon Th with control period (sampling time) Tg.

Experiment Prediction
Horizon
Th=NngTg
Number of
Decision Variables
nuNng
Number of Input Amplitude
and Increment Constraints
nu4Nng
E1 200Tg 400 1600
E2 300Tg 600 2400
E3 150Tg 300 1200
E4 200Tg 400 1600

5. Conclusions

This paper presented a numerically efficient approach to the synthesis of an adaptive velocity integration version of a continuous-time MPC based on B-spline parameterization. The design procedure is shown for multivariate systems represented by a set of MISO models. The implementation itself was carried out in an adaptive mode, with the adaptation of the model and the stabilizing terminal set, in order to improve the tracking capabilities of the controlled system in an uncertain and stochastic environment.

The resulting control strategy was applied for the pitch and yaw angle control of a 2-DOF laboratory helicopter. The performed real-time experiments demonstrated that the proposed B-spline CMPC by design represents a computationally viable alternative to the standard discrete-time MPC implementation. The obtained results are documented both graphically and numerically by capturing the standard deviations of the control errors. At the same time, they allow the reader or user to clearly understand the impact of optional parameters of the B-spline parameterization on the resulting tracking performance.

Finally, we remark that the proposed algorithm is typically coded on a single processor, although a dual-processor implementation would enable to separate the generation of the input polynomial segment from the optimization process, which could further contribute to the reduction in the tracking error.

Author Contributions

Conceptualization, B.R.-I. and M.G.; methodology, B.R.-I. and M.G.; software, B.R.-I., M.G. and P.M.; validation, B.R.-I., M.G. and P.M.; formal analysis, B.R.-I. and M.G.; investigation, B.R.-I. and M.G.; resources, B.R.-I. and M.G.; data curation, B.R.-I., M.G. and P.M.; writing—original draft preparation, B.R.-I. and M.G.; writing—review and editing, B.R.-I. and M.G.; visualization, M.G. and P.M.; supervision, B.R.-I.; project administration, B.R.-I. and M.G; funding acquisition, B.R.-I. and M.G. All authors have read and agreed to the published version of the manuscript.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The data presented in this study are available on request from the corresponding author. The data are not publicly available due to privacy.

Conflicts of Interest

The authors declare no conflict of interest.

Funding Statement

This research was funded by the Slovak Research and Development Agency under the grants APVV-18-0023 and APVV-20-0046, by the Cultural and Educational Grant Agency of the Ministry of Education of Slovak Republic under the grant KEGA 012STU-4/2021 and by the European Union’s Horizon Europe under the grant no. 101079342 (Fostering opportunities towards Slovak excellence in advanced control for smart industries).

Footnotes

Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

References

  • 1.Wang G., Chen J., Zhou K., Pang Z. Industrial robot contouring control based on non-uniform rational B-spline curve. Symmetry. 2022;14:2533. doi: 10.3390/sym14122533. [DOI] [Google Scholar]
  • 2.Usman M., Ali A., Tahir A., Rahman M.Z.U., Khan A.M. Efficient approach for extracting high-level B-spline features from LIDAR data for light-weight mapping. Sensors. 2022;22:9168. doi: 10.3390/s22239168. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 3.Wang G., Xu F., Zhou K., Pang Z. S-velocity profile of industrial robot based on NURBS curve and Slerp interpolation. Processes. 2022;10:2195. doi: 10.3390/pr10112195. [DOI] [Google Scholar]
  • 4.Belmonte L.M., Morales R., Fernández-Caballero A., Somolinos J.A. Robust decentralized nonlinear control for a twin rotor MIMO system. Sensors. 2016;16:1160. doi: 10.3390/s16081160. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 5.Rohaľ-Ilkiv B., Volenský T., Pavlík L. LQ control of a laboratory helicopter model using subspace identification; Proceedings of the 16th International Conference on Process Control; Štrbské Pleso, Slovakia. 11–14 June 2007; pp. 202–207. [Google Scholar]
  • 6.Abdelmaksoud S.I., Mailah M., Abdallah A.M. Practical real-time implementation of a disturbance rejection control scheme for a twin-rotor helicopter system using intelligent active force control. IEEE Access. 2021;9:4886–4901. doi: 10.1109/ACCESS.2020.3046728. [DOI] [Google Scholar]
  • 7.Gulan M., Minarčík P., Lizúch M. Real-time stabilizing MPC of a 2DOF helicopter; Proceedings of the 22nd International Conference on Process Control; Štrbské Pleso, Slovakia. 11–14 June 2019; pp. 215–221. [Google Scholar]
  • 8.Demircioğlu H., Gawthrop P.J. Continuous-time generalised predictive control. Automatica. 1991;27:55–74. doi: 10.1016/0005-1098(91)90006-N. [DOI] [Google Scholar]
  • 9.Ronco E., Arsan T., Gawthrop P.J. Open-loop intermittent feedback control: Practical continuous-time GPC. IEEE Proc.-Control Theory Appl. 1999;146:426–434. doi: 10.1049/ip-cta:19990504. [DOI] [Google Scholar]
  • 10.Wang L. Model Predictive Control System Design and Implementation Using MATLAB. Springer; London, UK: 2009. [Google Scholar]
  • 11.Pannocchia G., Rawlings J.B., Mayne D.Q., Marquardt W. On computing solutions to the continuous time constrained linear quadratic regulator. IEEE Trans. Autom. Control. 2010;55:2192–2198. doi: 10.1109/TAC.2010.2053478. [DOI] [Google Scholar]
  • 12.Pannocchia G., Rawlings J.B., Mayne D.Q., Mancuso G.M. Whither discrete time model predictive control? IEEE Trans. Autom. Control. 2015;60:246–252. doi: 10.1109/TAC.2014.2324131. [DOI] [Google Scholar]
  • 13.Ferreau H.J., Almér S., Peyrl H., Jerez J.L., Domahidi A. Survey of industrial applications of embedded model predictive control; Proceedings of the 15th European Control Conference; Aalborg, Denmark. 29 June–1 July 2016; p. 601. [Google Scholar]
  • 14.Rohaľ-Ilkiv B. One approach to continuous-time predictive control. IFAC Proc. Vol. 1997;30:107–114. doi: 10.1016/S1474-6670(17)41424-8. [DOI] [Google Scholar]
  • 15.Rohaľ-Ilkiv B., Gulan M., Minarčík P. Implementation of continuous-time MPC using B-spline functions; Proceedings of the 22nd International Conference on Process Control; Štrbské Pleso, Slovakia. 11–14 June 2019; pp. 222–227. [Google Scholar]
  • 16.Rohaľ-Ilkiv B., Gulan M., Minarčík P. Explicit spline-based continuous-time MPC: A study on design and performance; Proceedings of the 21st IFAC World Congress; Berlin, Germany. 11–17 July 2020. [Google Scholar]
  • 17.Rohaľ-Ilkiv B., Gulan M., Minarčík P. Velocity-form spline-based continuous-time MPC: Explicit solution; Proceedings of the 23rd International Conference on Process Control; Štrbské Pleso, Slovakia. 1–4 June 2021; pp. 261–265. [Google Scholar]
  • 18.Betti G., Farina M., Scattolini R. An MPC algorithm for offset-free tracking of constant reference signals; Proceedings of the 51st Conference on Decision and Control; Maui, HI, USA. 10–13 December 2012; pp. 5182–5187. [Google Scholar]
  • 19.Pannocchia G. Offset-free tracking MPC: A tutorial review and comparison of different formulations; Proceedings of the 14th European Control Conference; Linz, Austria. 15–17 July 2015; pp. 527–532. [Google Scholar]
  • 20.Jimoh I.A., Küçükdemiral I.B., Bevan G., Orukpe P.E. Offset-free model predictive control: A study of different formulations with further results; Proceedings of the 28th Mediterranean Conference on Control and Automation; Saint-Raphael, France. 15–18 September 2020; pp. 671–676. [Google Scholar]
  • 21.Navrátil P., Bobál V. Recursive Identification Algorithms Library; Proceedings of the 17th International Conference on Process Control; Štrbské Pleso, Slovakia. 9–12 June 2009; pp. 516–523. [Google Scholar]
  • 22.Erdoğan H., Gülal E. Identification of dynamic systems using multiple input–single output (MISO) models. Nonlinear Anal. Real World Appl. 2009;10:1183–1196. doi: 10.1016/j.nonrwa.2007.12.008. [DOI] [Google Scholar]
  • 23.de Boor C. A Practical Guide to Splines. Springer; New York, NY, USA: 1978. [Google Scholar]
  • 24.Schumaker L.L. Spline Functions: Basic Theory. John Wiley & Sons; New York, NY, USA: 1981. [Google Scholar]
  • 25.Piegl L., Tiller W. The NURBS Book. Springer; Berlin/Heidelberg, Germany: 1995. [Google Scholar]
  • 26.Höllig K., Hörner J. Approximation and Modeling with B-Splines. SIAM; Philadelphia, PA, USA: 2013. [Google Scholar]
  • 27.Bartels R.H., Beatty J.C., Barsky B.A. An Introduction to Splines for Use in Computer Graphic and Geometric Modeling. Morgan Kaufman Publishers, Inc.; San Francisco, CA, USA: 1987. [Google Scholar]
  • 28.Gopal M. Modern Control System Theory. Wiley Eastern Limited; New Delhi, India: 1985. [Google Scholar]
  • 29.Rohaľ-Ilkiv B. A note on calculation of polytopic-invariant feasible sets for linear continuous-time systems. Annu. Rev. Control. 2004;28:59–64. doi: 10.1016/j.arcontrol.2004.01.006. [DOI] [Google Scholar]
  • 30.Quanser Aero 2. [(accessed on 9 January 2023)]. Available online: https://www.quanser.com/products/aero-2/
  • 31.Ferreau H.J., Kirches C., Potschka A., Bock H.G., Diehl M. qpOASES: A parametric active-set algorithm for quadratic programming. Math. Program. Comput. 2014;6:327–363. doi: 10.1007/s12532-014-0071-1. [DOI] [Google Scholar]

Associated Data

This section collects any data citations, data availability statements, or supplementary materials included in this article.

Data Availability Statement

The data presented in this study are available on request from the corresponding author. The data are not publicly available due to privacy.


Articles from Sensors (Basel, Switzerland) are provided here courtesy of Multidisciplinary Digital Publishing Institute (MDPI)

RESOURCES