0% found this document useful (0 votes)
14 views7 pages

Implementation and Analysis of Nonlinear Model Predictive Controller on Embedded Systems for Real-Time Applications

Uploaded by

haopengchen233
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views7 pages

Implementation and Analysis of Nonlinear Model Predictive Controller on Embedded Systems for Real-Time Applications

Uploaded by

haopengchen233
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Implementation and Analysis of Nonlinear Model

Predictive Controller on Embedded Systems for


Real-Time Applications
Saket Adhau, Sayli Patil, Deepak Ingole, Dayaram Sonawane

To cite this version:


Saket Adhau, Sayli Patil, Deepak Ingole, Dayaram Sonawane. Implementation and Analysis of Nonlin-
ear Model Predictive Controller on Embedded Systems for Real-Time Applications. ECC 2019, 18th
European Control Conference, Jun 2019, Naples, Italy. pp3359-3364, �10.23919/ECC.2019.8796118�.
�hal-03586196�

HAL Id: hal-03586196


https://hal.archives-ouvertes.fr/hal-03586196
Submitted on 23 Feb 2022

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
Implementation and Analysis of Nonlinear Model Predictive Controller
on Embedded Systems for Real-Time Applications
Saket Adhau1 , Sayli Patil1 , Deepak Ingole2 , and Dayaram Sonawane1

Abstract— Today, various nonlinear programming problem changing dynamic systems, etc., require real-time implemen-
(NLP) solvers and C/C++ code generation frameworks are avail- tations. The code generation tools such as Casadi [6], IPOPT
able as open source for solving nonlinear model predictive [7], PANOC NMPC [8], and AutoGenU for Mapple in [9]
control (NMPC). Almost all the solvers are written in C/C++ code
which are more compatible for the PC-based simulation envi- are excellent for PC-based environment but not as suitable
ronment. These codes are not directly compatible for embedded and ready to port for embedded implementation. Tools such
implementation and real-time control. An attempt has been as FORCES PRO [10] and ODYS [11] are commercially
made to address this shortcoming by creating a customized available for embedded implementation of NMPC.
framework on top of the C code generated from ACADO On the other hand, ACADO Toolkit [12], is a general-
Toolkit to make it directly compatible with ARM based
embedded platforms. The study also analyzes the embedded ized framework for various automatic control and dynamic
implementation aspects using C code generated for qpOASES, optimization along-with built in NMPC. This is a self-
qpDUNES, and HPMPC solvers from ACADO Toolkit. We contained object-oriented C/C++ code, which comes with the
show the results of hardware-in-loop (HIL) simulations with MATLAB user interface and is available as open source
detailed analysis and comparison of memory requirement under GNU lesser general public license1 . The toolkit gen-
and achievable sampling time for three benchmark dynamical
systems on different embedded platforms viz ARM Cortex erates highly efficient C/C++ code but it is generally library
M3, PYNQ FPGA and Raspberry Pi. The results show that dependent. Several authors have validated the reliability of
qpOASES outperforms as compared to the other two solvers the ACADO Toolkit C/C++ code in PC-based simulations
when the computational time is of prime importance for small with sampling time in microsecond range [13]. The previous
prediction horizon. Similarly, when there are limited on-chip works [14], [15], [16] shows the implementation of NMPC
memory resources, qpDUNES can prove beneficial.
Index Terms— Nonlinear model predictive control, optimiza- with computational time results obtained from PC-based
tion solvers, embedded systems. simulations. The author [17] implemented C/C++ code from
ACADO Toolkit on RaspberryPi which is an OS-based
I. INTRODUCTION embedded platform.
Model predictive control (MPC) has been consistently Features like high-performance architecture, flexible pe-
used in both, industries and academic research [1]. MPC has ripheral connectivity, analog support, and low power con-
an inherent potential to handle multi-objective/multi-variable sumption makes ARM based processor a suitable choice in
problems, dealing explicitly with hard constraints as well various industrial applications. ARM based controllers are
as economic and safety considerations. The prevalent use restricted by the available memory and clock frequency.
of linear model predictive control in control tasks has been FPGA is one of the possible solutions for high memory
well established and the nonlinear model predictive control and speed demanding applications. Due to features like
(NMPC) looks like an intriguing solution for highly nonlin- parallelism and optimal performance, FPGA is proven to be
ear control tasks. NMPC captures all the natural nonlinear the most probable choice for applications like image pro-
dynamics and constraints of the model and outperforms cessing, telecommunication, military & aerospace, medical
as compared to linear MPC. This potential can only be electronics, automotive etc.
fully utilized when all the nonlinear process dynamics and In this paper, NMPC for real-time control is implemented
constraints are explicitly defined in the controller [2], [3], on Atmel ARM Cortex M3 micro-controller which has
[4]. limited resources in terms of clock and memory. ACADO
The blooming development in the optimization area has Toolkit generates a s-function which is compatible with
made room for many nonlinear solvers and C/C++ code MATLAB simulations but not with embedded devices. For
generation tools. These tools are highly efficient, reliable and HIL co-simulations on Atmel ARM, we have modified the
feasible for real-time online optimization with sampling time s-function so as it can be easily ported on embedded devices.
in milliseconds and microseconds range [5]. Similarly, we have validated the results on RaspberryPi
However, computationally challenging applications like and Xilinx PYNQ FPGA for models with large memory
autonomous vehicles, unmanned aerial vehicles, fast- requirements. Extending the work, we have also performed
detailed analysis of memory utilization and sampling time for
1 Department of Instrumentation and Control Engineering, College of
different solvers available in ACADO Toolkit for different
Engineering Pune, Shivajinagar 411005, India {adhauss17.instru,
patilsd17.instru, dns.instru}@coep.ac.in problem size.
2 University of Lyon, IFSTTAR, ENTPE, Lyon 69120, France
[email protected] 1 http://acado.github.io/
II. N ONLINEAR M ODEL P REDICTIVE C ONTROL The time required to feed control inputs to the real process
MPC as a constrained finite-time optimal control (CFTOC) depends on how fast quadratic problem (QP) is solved.
problem for reference tracking is represented as, B. Restrictions to use RTI Scheme
Z t0 +T 
1 
While using the RTI scheme in real-time applications,
min ||x(t) − xref (t)||2Q + ||u(t) − uref(t)||2R dt
x(.),u(.) t0 2 some factors might lead to failure of the algorithm [13]:
+ ||x(t0 + T ) − xref (t0 + T )||2P , (1a) 1) Infeasibility: The cost function in (1a), subjected to
state and inequality constraints is vulnerable to two types
subjected to following constraints for all t ∈ [t0 ,t0 + T ] of infeasibilities. The nonlinear optimization problem might
x(t0 ) = x̂0 , (1b) itself be infeasible or the underlying SQP-type algorithm can
become infeasible.
ẋ(t) = f (x(t), u(t)), (1c)
2) Instability: Assuming the QP is feasible for all prob-
umin ≤ u(t) ≤ umax , (1d) lems, the closed-loop system might still become unstable.
xmin ≤ x(t) ≤ xmax . (1e) As we have finite prediction horizon, closed-loop system is
susceptible to instability. Adding weights on the cost function
with initial condition x(t0 ) ∈ Rn .
The term (1a), is the
and/or zero terminal constraints removes this instability.
cost function and T > 0 is the prediction horizon. The cost
function is weighted by Q  0, P  0, and R ≻ 0. The function C. Nonlinear Model and OCP Formulation
f in (1c) describes the nonlinear dynamics of the system in Using the MATLAB interface, nonlinear dynamics of the
ordinary differential equations (ODE) form which depends model were added in the form of f . All the case studies
on the input signal u(t) ∈ Rm . The x̂0 is the current state have been studied with prediction horizon, T = 5 and same
estimate in (1b) and t0 is the current time. The input is control horizon.
bounded by umin and umax . The time varying states and
control references are xref and uref , respectively, see [18], [19, D. Solvers Used
Chapter 2]. Solvers require to solve the parameterized dynamic opti-
mization problems simultaneously for obtaining an optimal
III. ACADO FOR NMPC P ROBLEM F ORMULATION AND
control law at each sampling time. Convex QP solvers
C ODE G ENERATION
are used in ACADO Toolkit for solving optimal control
This section briefly describes the low level C/C++ based problems. In this study, solvers have been selected in con-
numerical methods employed to solve the NLP at each real- sideration with the realization of embedded NMPC to run
time iteration. in a real-time scenario. The following factors were the main
The ACADO Toolkit includes a variety of algorithms criteria for selection of the solvers.
for dynamic optimization, state and parameter estimation,
• Performance and numerical stability considering the
and automatic control. The toolkit exports highly efficient
safety aspects so as to run with limited resources and
C/C++ code for NMPC. There are numerous user accessible
the ability to use single precision arithmetic for the
settings for defining the NMPC problem and achieving
microcontroller,
the desired performance. The ACADO Toolkit-MATLAB
• Structure of the C-code, minimum library dependence,
interface is used to generate customized C code which can
and code portability,
be readily ported onto the embedded devices. Some of the
• Ability to terminate the solver early in order to obtain
basic steps while problem formulation and code generation
a feasible but suboptimal solution for the real-time
are discussed below:
applications,
A. Real-Time Iteration Scheme • Ability to hotstart the QP for fast receding horizon

Nonlinear model predictive control algorithm is compu- control.


tationally expensive task because it needs to solve CFTOC The listed embedded solvers are used in this study
problem (1a) at each sampling instant. In recent years, many and are also supported by ACADO Toolkit code gen-
algorithms have been proposed which reduce computational eration. The solver option can be set by using the com-
complexity [13], [18], [20]. Real-time iteration (RTI) scheme mand mpc.set(’QP_SOLVER’).
is one of the most efficient approaches among the available • qpOASES: This is an open source C++ -based implemen-
algorithms. RTI scheme for fast NMPC implementation was tation of online active set strategy proposed in [22] for
first introduced [21]. For a quick feedback of the NMPC to solving QP problems.
the process, RTI executes merely one sequential quadratic • qpDUNES: This is a plain C-code compiling to C90
programming (SQP) iteration per time step. standards making it feasible to port the code on various
RTI divides the computation task into two phases, prepa- embedded platforms, see [23].
ration and feedback phase. Preparation phase includes lin- • HPMPC: Defined as the high-performance implemen-
earization and generation of feedback approximation func- tation of solvers for NMPC, currently interior-point
tion and is the most expensive step. Feedback phase rapidly method (IPM) and alternating direction method of mul-
solves the sub-problem to obtain an approximate solution. tipliers (ADMM) solvers are supported in this with the
ability to select the target architecture in configuration 1) Atmel ARM Cortex-M3: Atmel’s ARM Cortex-M3 is a
file [24]. true 32-bit microcontroller running at 84 MHz is a preferred
E. Code Export microcontroller in embedded automotive applications. It has
512 kB of program memory and 96 kB of SRAM. Fig. 2 illus-
As discussed above, ACADO Toolkit can trates HIL implementation flow on ARM using S-Function
generate highly efficient C-code for solving nonlinear in MATLAB and Simulink.
MPC using Real-time iteration (RTI) and Gauss-
Newton Hessian approximation. For code export,
mpc.exportCode(’export_NMPC’) is used. The NMPC
generated code is exported in export_NMPC folder problem formulation
consisting of solver, integrator code and a test file.
MAKEFILE is also provided to facilitate the compilation
Auto-generation
process. ACADO Toolkit also gives liberty to set compiler
of NMPC algorithm ACADO
flag options for target specific code generation. Also, the
in C/C++ Toolkit
solvers allow to set their own compiler flags to cater the
user needs. In all the cases we use single precision (32-bit),
which is done using ’USE SINGLE PRECISION’. Create Simulink
Printing of all the NLP solver information is disabled by S-Function
’PRINTLEVEL’,’NONE’.
IV. E MBEDDED I MPLEMENTATION OF NMPC Software-in-the-loop MATLAB
In the following sections we describe the NMPC working testing/verification Simulink
scheme, used embedded hardware, and case studies which
have been implemented and the methodology to implement
Compile NMPC
on embedded hardware.
algorithm on
A. NMPC Framework ARM board
The Fig. 1 shows the basic closed-loop control strategy
for obtaining the optimal control value by using nonlinear Hardware-in-the-loop ARM
optimization solver or NLP [25]. testing/verification Board

Cost Function
Fig. 2. HIL design flow of NMPC algorithm on ARM.
Constraints

xref e u⋆ y 2) Xilinx PYNQ FPGA: PYNQ is abbreviated as Python


+ NLP Solver Plant productivity for ZYNQ. Talking about the hardware, the

core of PYNQ is Xilinx ZYNQ system on chip (SOC)
XC7Z020−1CLG400C with dual-core ARM Cortex-A9 pro-
cessor running at 450 MHz and 630kB. The Artix-7 family
Nonlinear Discrete programmable logic contains 13300 logic slices, each with
State
Plant Model Model four 6-input lookup tables (LUTs) and 8 flip-flops (FFs). In
Estimator
addition, it also provides 220 DSP blocks and 630 kB of fast
Newton’s block RAM [26]. We are using the dual-core ARM on this
Method device.
Integrator
3) RaspberryPi: RaspberryPi is SoC featuring 64-bit
NMPC quad-core ARM Cortex-A7 processor which runs at 1.2 GHz
with 1 GB RAM. This is mostly preferred by hobby enthu-
siasts and is easy to use.
Fig. 1. Closed-loop NMPC scheme.
C. Case Study I: Position Control of Hovercraft
B. Embedded Hardware Used As the case studies, we have considered three nonlinear
We have used three different hardware for NMPC im- models having different number of states and control inputs.
plementation and HIL simulation purpose. Each device has One of the models is position control of hovercraft which
it’s own significance for its selection and usage. We have is a six state model having two control inputs with bounds
experimented from basic 32-bit ARM microcontroller to on input. We applied NMPC to this model for state tracking
high functioning PYNQ FPGA board. The study aims to and obtained closed-loop HIL simulation results on PYNQ
implement NMPC in real-time on true embedded devices as board. The mathematical model and the values of physical
otherwise shown in previous works on PC [16]. parameter of this model are taken from [27]. The hovercraft
has two propellers which are fed with DC Motor. The center D. Case Study II and III: Motor and Quadrotor Model
of mass is denoted by (x, y) and θ denotes the attitude angle For further analysis, we have chosen two more models for
of the hovercraft as shown in Fig. 3. The generated thrust implementation and comparison purpose.
by the propellers are u1 and u2 , r is the length between the 1) Motor Model: Speed control of the DC motor has been
center line of the hovercraft and the thrusters, M is the mass done using NMPC. The nonlinear DC motor model has been
while I is the inertia of the model. taken from [28] [29, Chapter 2]. The DC motor model is of
The differential state equation dx dt = ẋ = f (x, u), is obtained two states with bounds on input and state variables.
from equations of motion in x direction, dy dt = ẏ = f (y, u) is 2) Quadrotor Model: Attitude and position control of
the equations of motion in y direction and ddtθ = θ̇ = f (θ , u) the quadrotor has been done using NMPC. The nonlinear
denotes as attitude angle. Neglecting the aerodynamic forces quadrotor model is taken from [30], [31]. The model is highly
for simplicity, the continuous time equations governing the nonlinear consisting of nine states and four control input with
nonlinear dynamics of the model having the states X = bounds on inputs and state variables.
[x, y, θ , ẋ, ẏ, θ̇ ]T and input vectors U = [u1 , u2 ]T are given as
V. NMPC P ERFORMANCE C OMPARISON
follows:
NMPC closed-loop HIL simulation have been performed
d ẍ cosθ (u1 + u2)
= , (2a) in three case studies. The results of case studies are analyzed
dt M using different solvers on various embedded platforms. It is
d ÿ sinθ (u1 + u2)
= , (2b) significant to note that in the literature, the performance of
dt M controllers on considered case studies have been presented
d θ̈ (u1 − u2)r for PC based simulation environment. But, in this work
= . (2c)
dt I we are presenting the results of NMPC implemented on
embedded systems. The work intends to show effect of the
change in number of states and the resource utilization of
xh embedded optimization solvers.
NMPC closed-loop simulation performed on PYNQ as
yh y′ shown in Fig. 5. The figure shows the simulation results
y for the hovercraft model with horizon length, T = 5 and
u2 θ sampling time, T s = 500ms and the initial conditions as

P (x, y) x′ x0 = −0.25 0.35 0 0 0 0 . Considering the above
x
settings optimization problem was solved using qpDUNES
0
embedded optimization solver. We observed minimum and
r u1
maximum RTI execution time to be 902 µs and 940 µs,
respectively with the size of executable file as 97 kB. This
shows real-time implementation of NMPC scheme is feasible
Fig. 3. A schematic of the hovercraft. on embedded devices for varying problem size.
Table. II and III, shows the detailed analysis of compu-
TABLE I
tational time and memory requirements NMPC implementa-
VALUES OF PARAMETERS USED IN H OVERCRAFT MODEL .
tion. It can be clearly seen that, increasing the problem size
results in increased memory requirements and computational
time. Due to memory restrictions, large problem size could
Parameter Value Unit
not be implemented on Atmel ARM where it throws the error
Mass (M) 0.974 kg of memory overflow and due to that we are not able to record
the RTI time. It can also be inferred, computational time is
Inertia (I) 0.0125 kg m2 typically low for condensing solver (qpOASES) compared to
Length (r) 0.0485 m the sparse solver such as qpDUNES and HPMPC.
However when the prediction horizon increases, qp-
The objective function for the hovercraft model is formu- DUNES and HPMPC perform better than qpOASES as
lated as follows: stated earlier. Also, code memory does not seem to change
Z t0 +T noticeably with increase in prediction horizon. These results
1 motivates to select appropriate solver and embedded platform
||x(t)||2Q + ||u(t)||2R dt + ||x(t0 + T )||2P (3a)

min
x(.),u(.) t0 2 to meet the requirements. For result validation, we analyzed
subject to, NMPC performance for randomly generated NLP problems
and implemented them on PYNQ FPGA. Every NLP prob-
− 0.121 ≤ u1 (t) ≤ 0.342, (3b) lem was built with a random model while increasing the
− 0.121 ≤ u2 (t) ≤ 0.342, (3c) state variables which resulted in typical sizes for the intended
NMPC applications. The generated NMPC were tested on
where xref = 0
 
0 0 0 0 0 . above NLP solvers. Fig. 4 illustrates the results of variation in
TABLE II
NMPC C/C++ PROGRAM MEMORY REQUIREMENT IN (kB) WITH T = 5.

Embedded Platforms Atmel ARM PYNQ FPGA Raspberry Pi

No. of States
Solver
2 6 9 2 6 9 2 6 9

qpOASES 352 146 163 180 164 184 198


Memory
qpDUNES 298 81 97 115 100 120 140
overflow
HPMPC 389 252 277 300 300 332 284

TABLE III
NMPC RTI AVERAGE TIME IN (µs) WITH T = 5.

Embedded Platforms Atmel ARM PYNQ FPGA Raspberry Pi

No. of States
Solver
2 6 9 2 6 9 2 6 9

qpOASES 242 139 721 2770 150 769 3330

qpDUNES 305 Not available 233 928 3090 237 1190 3580

HPMPC 350 189 789 2860 255 832 3370

TABLE IV
VARIATION IN AVERAGE RTI TIME IN (µs) WITH CHANGE IN PREDICTION HORIZON (T) FOR HOVERCRAFT MODEL (2)

Embedded Platforms PYNQ FPGA Raspberry Pi

Prediction Horizon (T)


Solver
3 5 10 3 5 10

qpOASES 473 721 1545 530 769 1670

qpDUNES 542 928 1152 680 1190 1229

HPMPC 559 789 1356 702 832 1310

NMPC memory requirements with an increase in the number control applications.


of states.
ACKNOWLEDGMENT
VI. CONCLUSIONS We gratefully acknowledge the support from R & D center
The work shows the real-time implementation of NMPC of the COEP. Deepak Ingole would like to thank for a
on embedded systems and its performance evaluation using financial contribution from the ERC under the European
ACADO Toolkit code generation. The work shows de- Unions Horizon 2020 research and innovation program (grant
tailed investigation of various NLP solvers implemented for agreement no. 646592 MAGnUM project).
different problem size in terms of memory and time profiling
for one real-time iteration of NMPC. We also presented R EFERENCES
the closed-loop simulation results for the hovercraft model [1] X. Yang, D. W. Griffith, and L. T. Biegler, “Nonlinear programming
on PYNQ FPGA board. The work aims at contributing properties for stable and robust NMPC,” IFAC-PapersOnLine, pp. 388–
397, 2015.
towards feasible real-time implementation of NMPC in com- [2] D. Kouzoupis, R. Quirynen, J. Frasch, and M. Diehl, “Block con-
plex control tasks and proves to be a promising solution. densing for fast nonlinear MPC with the dual newton strategy,” IFAC-
Future work will attempt to write a customized wrappers PapersOnLine, pp. 26 – 31, 2015.
[3] F. Xu, H. Chen, W. Jin, and Y. Xu, “FPGA implementation of
on top of generated C/C++ codes of NMPC to improve nonlinear model predictive control,” in The 26th Chinese Control and
its memory requirements and sampling time for real-time Decision Conference (2014 CCDC), 2014, pp. 108–113.
2671
for nonlinear model predictive control,” in 2015 European Control
2379 Conference (ECC), 2015, pp. 73–86.
[10] A. Domahidi and J. Perez, “FORCES PRO ACADEMIC,” 2014.
2087 [11] G. Cimini, A. Bemporad, and D. Bernardini, “ODYS QP Solver,”
ODYS (https://odys.it/qp), 2017.
1794 [12] B. Houska, H. Ferreau, and M. Diehl, “ACADO Toolkit - An Open
Source Framework for Automatic Control and Dynamic Optimization,”
1502
Optimal Control Applications and Methods, pp. 298–312, 2011.
[13] B. Houska, H. J. Ferreau, and M. Diehl, “An auto-generated real-
1210
time iteration algorithm for nonlinear MPC in the microsecond range,”
917 Automatica, pp. 2279 – 2285, 2011.
[14] N. Duijkeren, T. Keviczky, P. Nilsson, and L. Laine, “Real-time
625 nmpc for semi-automated highway driving of long heavy vehicle
combinations,” 5th IFAC Conference on Nonlinear Model Predictive
333 Control NMPC 2015, pp. 39 – 46, 2015.
[15] R. Verschueren, S. D. Bruyne, M. Zanon, J. V. Frasch, and M. Diehl,
41 “Towards time-optimal race car driving using nonlinear MPC in real-
0 10 20 31 41 51 61 72 82 92
time,” in 53rd IEEE Conference on Decision and Control, 2014, pp.
2505–2510.
qpOASES qpDUNES HPMPC [16] M. Vukov, W. V. Loock, B. Houska, H. Ferreau, J. Swevers, and
M. Diehl, “Experimental Validation of Nonlinear MPC on an Overhead
Crane using Automatic Code Generation,” in The 2012 American
Fig. 4. Effect of change in problem size for various solvers.
Control Conference, Montreal, Canada., 2012.
[17] R. Quirynen, K. Berntorp, and S. Di Cairano, “Embedded optimization
algorithms for steering in autonomous vehicles based on nonlinear
0.1
model predictive control,” in 2018 Annual American Control Confer-
0
0.3 ence (ACC). IEEE, 2018, pp. 3251–3256.
0.2 [18] M. Vukov, A. Domahidi, H. J. Ferreau, M. Morari, and M. Diehl,
-0.1
0.1 “Auto-generated algorithms for nonlinear model predictive control on
-0.2 0 long and on short horizons,” in 52nd IEEE Conference on Decision
0 10 20 30 40 0 10 20 30 40
and Control, 2013, pp. 5113–5118.
[19] A. Grancharova and T. A. Johansen, Explicit nonlinear model pre-
0.3
1
dictive control: Theory and applications, 1st ed., ser. Lecture Notes
0.2
in Control and Information Sciences 429. Springer-Verlag Berlin
0.1
0.5 Heidelberg, 2012.
0
[20] B. Khusainov, E. C. Kerrigan, A. Suardi, and G. A. Constantinides,
0 -0.1
0 10 20 30 40 0 10 20 30 40 “Nonlinear predictive control on a heterogeneous computing platform,”
in IFAC-PapersOnLine, 2017, pp. 11 877 – 11 882.
0.5
[21] M. Diehl, H. Bock, J. P. Schlöder, R. Findeisen, Z. Nagy, and
0
F. Allgöwer, “Real-time optimization and nonlinear model predictive
-0.1 0 control of processes governed by differential-algebraic equations,” in
-0.2
Journal of Process Control, 2002, pp. 0959–1524.
-0.5 [22] H. Ferreau, H. Bock, and M. Diehl, “An online active set strategy to
0 10 20 30 40 0 10 20 30 40 overcome the limitations of explicit MPC,” International Journal of
Robust and Nonlinear Control, pp. 816–830, 2008.
0.3 0.3 [23] J. V. Frasch, S. Sager, and M. Diehl, “A parallel quadratic pro-
0.2 0.2 gramming method for dynamic optimization problems,” Mathematical
0.1 0.1 Programming Computation, 2013.
0 0 [24] G. Frison, H. H. B. S⊘rensen, B. Dammann, and J. B. J⊘rgensen,
-0.1 -0.1 “High-performance small-scale solvers for linear model predictive
0 10 20 30 40 0 10 20 30 40
control,” in 2014 European Control Conference (ECC), 2014, pp. 128–
Reference States Inputs
133.
[25] M. Diehl, H. J. Ferreau, and N. Haverbeke, “Efficient numerical
methods for nonlinear MPC and moving horizon estimation,” in
Fig. 5. HIL simulation results of NMPC implemented on PYNQ FPGA Nonlinear model predictive control. Springer, 2009, pp. 391–417.
board. [26] “PYNQ,” http://www.pynq.io/home.html.
[27] Y. Shimizu, T. Ohtsuka, and M. Diehl, “Nonlinear receding horizon
control of an underactuated hovercraft with a multiple-shooting-based
algorithm,” 2006 IEEE Conference on Computer Aided Control System
[4] R. Findeisen and F. Allgöwer, “An introduction to nonlinear model Design, 2006 IEEE International Conference on Control Applications,
predictive control,” in 21st Benelux Meeting On Systems And Control, 2006 IEEE International Symposium on Intelligent Control, pp. 603–
Veidhoven, 2002, pp. 1–23. 607, 2006.
[5] J. Mattingley and S. Boyd, CVXGEN: A code generator for embedded [28] V. Sankardoss and P. Geethanjali, “Parameter estimation and speed
convex optimization, 1st ed. Springer, 2012. control of a PMDC motor used in wheelchair,” Energy Procedia, vol.
117, pp. 345–352, 2017.
[6] J. A. E. Andersson, J. Gillis, G. Horn, J. B. Rawlings, and M. Diehl,
[29] R. Krishnan, Electric motor drives: modeling, analysis, and control.
“CasADi - A software framework for nonlinear optimization and
Prentice Hall, 2001.
optimal control,” Mathematical Programming Computation, 2018.
[30] M. Hehn and R. D’Andrea, “A flying inverted pendulum,” in 2011
[7] A. Wächter and L. T. Biegler, “On the implementation of an interior-
IEEE International Conference on Robotics and Automation, 2011,
point filter line-search algorithm for large-scale nonlinear program-
pp. 763–770.
ming,” Mathematical Programming, pp. 25–57, 2006.
[31] M. Hehn and R. D’Andrea, “Quadrocopter trajectory generation and
[8] L. Stella, A. Themelis, P. Sopasakis, and P. Patrinos, “A simple and control,” in IFAC Proceedings Volumes, 2011, pp. 1485 – 1491.
efficient algorithm for nonlinear model predictive control,” in Decision
and Control (CDC), 2017 IEEE 56th Annual Conference on. IEEE,
2017, pp. 1939–1944.
[9] T. Ohtsuka, “A tutorial on C/GMRES and automatic code generation

View publication stats

You might also like