0% found this document useful (0 votes)
17 views

Attitude Stabilization of Marine Satellite Tracking Antenna Using Model Predictive Control

Uploaded by

solabag360
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Attitude Stabilization of Marine Satellite Tracking Antenna Using Model Predictive Control

Uploaded by

solabag360
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

University of Southern Denmark

Attitude stabilization of Marine Satellite Tracking Antenna using Model Predictive Control

Wang, Yunlong; Soltani, Mohsen; Hussain, Dil Muhammad Akbar

Published in:
IFAC Journal of Systems and Control

DOI:
10.1016/j.ifacsc.2021.100173

Publication date:
2021

Document version:
Accepted manuscript

Document license:
CC BY-NC-ND

Citation for pulished version (APA):


Wang, Y., Soltani, M., & Hussain, D. M. A. (2021). Attitude stabilization of Marine Satellite Tracking Antenna
using Model Predictive Control. IFAC Journal of Systems and Control, 17, Article 100173.
https://doi.org/10.1016/j.ifacsc.2021.100173

Go to publication entry in University of Southern Denmark's Research Portal

Terms of use
This work is brought to you by the University of Southern Denmark.
Unless otherwise specified it has been shared according to the terms for self-archiving.
If no other license is stated, these terms apply:

• You may download this work for personal use only.


• You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying this open access version
If you believe that this document breaches copyright please contact us providing details and we will investigate your claim.
Please direct all enquiries to [email protected]

Download date: 19. Nov. 2024


Attitude Stabilization of Marine Satellite Tracking Antenna Using
Model Predictive Control⋆
Yunlong Wanga,∗ , Mohsen Soltanib and Dil Muhammad Akbar Hussainb
a Applied AI and Data Science (AID), Maersk Mc-Kinney Moeller Institute, University of Southern Denmark 55 Campusvej, Odense, 5230, Denmark
b Department of Energy Technology, Aalborg University, Esbjerg 6700, Denmark

ARTICLE INFO ABSTRACT


Keywords: Attitude stabilization is a necessary function for a shipboard Marine Satellite Tracking Antenna
Attitude stabilization (MSTA), which is responsible for making the antenna dish track the geostationary satellite in the
Model Predictive Control (MPC) presence of severe environment. A control scheme based on Model Predictive Control (MPC) is pro-
FPGA posed to stabilize the antenna dish of an MSTA, and the detailed design process from algorithm design
Active set method to Hardware-in-the-loop (HIL) simulation is explained. Due to the use of stepper motor as the actu-
Half-precision floating point ator, the MPC is proposed to deal with the speed acceleration and deceleration problems of stepper
motors, which can result in the optimal velicity profile. The MPC algorithm is implemented in Field
Programmable Gate Array (FPGA) with three different data types. In addition to using traditiuonal
floating-point and fixed-point data types to represent values in MPC, a special data type, half-precision
floating-point, is also explored for the first time. The comparison results are presented and analyzed
in terms of FPGA resource usage and algorithm execution time. The performance of the proposed
control scheme is validated in HIL simulation, which is creatively implemented in a low-cost System
On Chip (SOC) FPGA. The HIL simulation results demonstrate that the proposed control scheme in
fixed-point MPC can satisfy the requirements of the MSTA.

Acronyms 1. Introduction
ARM Advanced RISC Machines. 6 Marine Satellite Tracking Antenna (MSTA) is an im-
portant shipboard equipment for establishing communica-
AXI Advanced Extensible Interface. 6 tion between ships and geostationary satellites. Due to the
ship motion caused by the ocean wave, an attitude stabiliza-
DSP Digital Signal Processing. 1 tion system is necessary for MSTA to keep the antenna dish
pointed toward the geostationary satellite with high preci-
FPGA Field Programmable Gate Array. 1, 2 sion.The Ka-band MSTA is the latest generation of MSTA
and is also the one used in our research. The Root Mean
FTC Fault Tolerant Control. 1 Square (RMS) value of allowable tracking error is only 0.2 𝑑𝑒𝑔.
Moreover, the actuators in our MSTA are stepper motors,
HIL Hardware-in-the-loop. 1, 2 whose velocity changing rate cannot be higher than a cer-
tain threshold. Otherwise, step missing will occur.
HLS High Level Synthesis. 6
Many research works have been done about the attitude
stabilization system of MSTA. In Wang et al. (2011), a per-
MPC Model Predictive Control. 1, 2 manent magnet synchronous motor servo system based on
MSTA Marine Satellite Tracking Antenna. 1 Digital Signal Processing (DSP) chip and vector control is
designed. The DSP and complex programmable logic device
are the main control chips. The software and hardware are
RMS Root Mean Square. 1
designed and completed to realize the digital control of the
satellite tracking antenna. In Tseng and Teo (1998), fuzzy
SOC System On Chip. 1, 2 logic is used to cope with the uncertainty and non-linearity

This document is the results of the research project funded by the In- of the attitude control of shipboard tracking antenna. The
novation Fund Denmark. simulations demonstrated the effectiveness of the design, which
∗ Corresponding author
has been implemented on some antennas. A Fault Tolerant
[email protected] (Y. Wang)
ORCID (s): 0000-0002-9451-1746 (Y. Wang)
Control (FTC) system is proposed in Soltani et al. (2011)
to deal with certain faults from communication system mal-
function or signal blocking. The FTC system maintains the
tracking functionality by employing a proper control strat-
egy. A robust fault diagnosis system is designed to super-
vise the FTC system. The employed fault diagnosis solution
is able to estimate the faults for a class of nonlinear systems
acting under external disturbances. In Ming et al. (2005),

Yunlong Wang et al.: Preprint submitted to Elsevier Page 1 of 10


Yunlong Wang et al.

a method for constructing the model of MSTA is proposed cross-elevation part and the azimuth part. The attitude stabi-
and the model is established by experiments. According to lization design of each part is independent and the controller
the model, an H-infinity controller is designed and imple- design method of each part is the same. Therefore, only the
mented in the antenna system. These research works have elevation part is used to show the design process of the atti-
contributed a lot to the design of the attitude control system tude stabilization system.
of MSTA, but none of them has considered the constraints
in the system. In the attitude stabilization system of MSTA, 2.1. Diagram of the attitude stabilization system
the actuators are stepper motors, whose angular accelera- The diagram of the attitude stabilization system of the
tion has to be limited to avoid missing steps. Previously, elevation part is shown in Fig. 1.
research works focused on the design of velocity profiles to
avoid missing steps, but to the best of our knowledge, no one
has tried to apply Model Predictive Control (MPC) to solve
this problem.
Recently, there is an increasing interest in the applica-
tion of Field Programmable Gate Array (FPGA) on compu-
tational acceleration (Tu et al. (2019); Zhang et al. (2019); Figure 1: Diagram of the attitude stabilization system of the
Kosan et al. (2018); Lucia et al. (2018)). This is mainly due elevation part
to its special hardware architecture, which is completely dif-
ferent from CPU. The development of FPGA chips is very
fast in the past five years, which is mainly pushed by the In Fig. 1, the reference angle is determined by the po-
strong need from deep learning and machine vision (Rah- sition of the geostationary satellite that the MSTA needs to
man et al. (2016); Dundar et al. (2017)). A lot of research track. This reference angle can be considered as a constant
work on the application of FPGA to accelerate the calcu- value in our research. There are two closed loops in this atti-
lation of MPC can be found (Gulbudak and Santi (2016); tude stabilization system, the inner loop and the outer loop.
Darba et al. (2016); Ramrez et al. (2014); Damiano et al. The inner loop is the velocity loop, which is responsible for
(2014); Ma et al. (2014); Jerez et al. (2014)). The compre- controlling the angular velocity of the elevation part. And
hensive reviews of FPGA applications in the industrial con- the outer loop is the position loop, which is responsible for
trol system can be found in (Monmasson and Cirstea (2007); controlling the rotation angle of the elevation part. The ro-
Monmasson et al. (2011)). These researches have laid a solid tation angle and velocity can be obtained from an attitude
foundation in the application of FPGA on MPC. However, sensor. The disturbance in Fig. 1 is from the rotation move-
there are still some areas that must be improved. ments of ships caused by ocean waves.
In this paper, the MPC algorithm based on the active set The position controller is a proportional–integral con-
method is designed and implemented in FPGA for the atti- troller. In this paper, only the design of the velocity con-
tude stabilization of MSTA. The contribution of the current troller will be explained in detail. The velocity controller is
work has four aspects: (1) The MPC algorithm is applied responsible for compensating most part of the disturbance
to handle the velocity change of stepper motors in MSTA. from the ship.
(2) Half-precision floating-point data type is proposed for
MPC implementation. (3) The Hardware-in-the-loop (HIL) 2.2. State space model for MPC
simulation is achieved in a low-cost System On Chip (SOC) In the attitude stabilization system of the elevation part,
FPGA chip, which demonstrates an inexpensive method for the stepper motor is the actuator and the elevation part is the
HIL simulation. (4) Three parallel fixed-point MPC con- load. For MPC design, the model of stepper motor has to be
trollers are implemented in the low-cost SOC FPGA chip obtained first.
and are executed simultaneously. In the previous formulation of predictive model control,
The remainder of this paper is organized as follows: In finite impulse response models, step response models, and
Section 2, the attitude stabilization system of MSTA is in- transfer function models were favored. In recent years, there
troduced and the model for MPC design is presented. The is a growing popularity of designing MPC based on state-
design procedure of MPC algorithm is stated in Section 3. space models (Wang (2009)). The main theoretical results
Then, the designed MPC is implemented in FPGA in Section of MPC related to stability come from state-space models.
4 and a HIL simulation is made in Section 5 to verify the per- The state-space model can be used for both mono-variable
formance of the proposed control scheme. Lastly, Section 6 and multi-variable processes, and can even be extended to
gives the conclusion and discusses future works. nonlinear processes (Camacho and Alba (2007)). Therefore,
the state-space model is applied in the paper.
2. Introduction and modeling of control The stepper motor is used in the close-loop control sys-
tem and its angular velocity is obtained from a high-precision
system
gyroscope mounted on the elevation part. By conducting ex-
The MSTA under development is a commercial product, perimental analysis, it is found that the velocity model of the
which has three rotating parts, namely the elevation part, the stepper motor can be approximated as a second-order linear

Yunlong Wang et al.: Preprint submitted to Elsevier Page 2 of 10


Yunlong Wang et al.

system, and is Algorithm 1: MPC controller algorithm


𝑤𝑛 2 1 MPCControllerOneStep (𝑅𝑠 ,𝑥𝑑 (𝑘),𝑦𝑑 (𝑘))
𝑉 (𝑠) [ ]
𝐺𝑣𝑠 (𝑠) = = , (1) 𝑥𝑑 (𝑘) − 𝑥𝑑 (𝑘 − 1)
𝑅(𝑠) 𝑠2 + 2 ⋅ 𝜉𝑣 ⋅ 𝑤𝑛 ⋅ 𝑠 + 𝑤2𝑛 2 𝑥(𝑘) ←
𝑦𝑑 (𝑘)
where 𝑅(𝑠) is the reference angular velocity and 𝑉 (𝑠) is the 3
𝑇
ΔU ← (Φ Φ + 𝑅) ̄ −1 Φ𝑇 (𝑅𝑠 − 𝐹 ⋅ 𝑥(𝑘𝑖 ))
actual angular velocity of the stepper motor shaft. 𝑤𝑛 = 4 𝑁𝑐𝑣 ← 0
27.3𝑟𝑎𝑑∕𝑠 is the undamped natural frequency and 𝜉𝑣 = 0.022 5 for 𝑖 = 1, ..., 2 ⋅ 𝑁𝑐 do
is the damping ratio. 𝑤𝑛 and 𝜉𝑣 are obtained by applying 6 if (𝑀(𝑖, ∶) ⋅ ΔU > 𝛾(𝑖)) then
model identification method on sampled experimental data. 7 𝑁𝑐𝑣 ← 𝑁𝑐𝑣 + 1
The transfer function model in (1) is converted into the 8 end
continuous-time state-space model and then discretized by 9 end
the Euler method to get the discrete-time state-space model.The 10 if 𝑁𝑐𝑣 > 0 then
discrete-time state-space model is shown as 11 𝐾 ← 𝑀 ⋅ (−ΔU) + 𝛾
12 for 𝑐𝑦 = 1, ..., 𝑁1 do
13 for 𝑖 = 1, ..., 𝑁𝑐 do
𝑥𝑑 (𝑘 + 1) = 𝐴𝑑 ⋅ 𝑥𝑑 (𝑘) + 𝐵𝑑 ⋅ 𝑢𝑑 (𝑘), (2) 14 𝑠1 ← 0
𝑦𝑑 (𝑘) = 𝐶𝑑 ⋅ 𝑥𝑑 (𝑘), 15 𝑠2 ← 0
16 for 𝑗 = 1, ..., 𝑖 − 1 do
where 𝑘 is the current time step, 𝑥𝑑 (𝑘) = [𝑥1 (𝑘) 𝑥2 (𝑘)]𝑇 17 𝑠1 ← 𝑠1 + 𝐻(𝑖, 𝑗) ⋅ 𝜆(𝑗)
where 𝑥1 (𝑘) is the angular velocity and 𝑥2 (𝑘) is the angular 18 end
acceleration. 𝐴𝑑 = exp(𝐴𝑐 ⋅ Δ𝑡) ≈ 𝐼 + 𝐴𝑐 ⋅ Δ𝑡, where Δ𝑡 is 19 for 𝑗 = 𝑖 + 1, ..., 𝑁𝑐 do
the sampling interval, and 𝐴𝑐 is 20 𝑠2 ← 𝑠2 + 𝐻(𝑖, 𝑗) ⋅ 𝜆𝑝 (𝑗)
[ ] 21 end
0 1
𝐴𝑐 = , 22 𝜔(𝑖, 1) ← −(1∕𝐻(𝑖, 𝑖))⋅(𝐾(𝑖, 1)+𝑠1+𝑠2)
−𝑤2𝑛 −2 ⋅ 𝜉 ⋅ 𝑤𝑛 23 𝜆(𝑖, 1) ← 𝑚𝑎𝑥(0, 𝑤(𝑖, 1))
24 end
and
25 𝐸𝜆2 ← (𝜆 − 𝜆𝑝 )𝑇 ⋅ (𝜆 − 𝜆𝑝 )
[ ]
0 [ ] 26 if 𝐸𝜆2 < 𝐸𝑐 then
𝐵𝑑 = , 𝐶𝑑 = 1 0 .
𝑤2𝑛 27 break;
28 end
The model in (2) is changed to augment an integrator 29 𝜆𝑝 ← 𝜆
in MPC. The changed model is called augmented model, as 30 end
shown in (3). The details about augmented model can be 31 ΔU ← ΔU − (Φ𝑇 Φ + 𝑅) ̄ −1 ⋅ 𝑀 𝑇 ⋅ 𝜆
found in the paper of Wang (2009). 32 end
𝑥(𝑘 + 1) = 𝐴 ⋅ 𝑥(𝑘) + 𝐵 ⋅ Δ𝑢(𝑘), (3) 33 Δu ← 𝐿0 ⋅ ΔU
34 𝑢 ← 𝑢 + Δu
𝑦(𝑘) = 𝐶 ⋅ 𝑥(𝑘),
35 𝑥𝑑 (𝑘 − 1) ← 𝑥𝑑 (𝑘)
[ ] [ ]
Δ𝑥(𝑘 + 1) 𝐴𝑑 𝑜𝑇𝑑 36 return 𝑢
where 𝑥(𝑘 + 1) = ,𝐴 = , 37 End Of MPCControllerOneStep
𝑦(𝑘 + 1) 𝐶𝑑 𝐴𝑑 1
[ ] [ ]
Δ𝑥(𝑘) 𝐵𝑑 [ ]
𝑥(𝑘) = ,𝐵 = , 𝐶 = 𝑜𝑑 1 , 𝑜𝑑 =
𝑦(𝑘) 𝐶 𝑑 𝐵𝑑
[ ] 3.1. Definition of MPC problem
0 0 , Δ𝑥(𝑘) = 𝑥𝑑 (𝑘 + 1) − 𝑥𝑑 (𝑘), Δ𝑢(𝑘) = 𝑢𝑑 (𝑘 + 1) −
Firstly, the following vectors are defined,
𝑢𝑑 (𝑘). Note that, Δ𝑢 is the change of controlled variable.
Equation (3) is the model that will be used for MPC de- [ ]𝑇
𝑌 = 𝑦(𝑘 + 1|𝑘) 𝑦(𝑘 + 2|𝑘) ... 𝑦 (𝑘 + 𝑁𝑝 |𝑘) ,
sign in Section 3. [ ]𝑇
Δ𝑈 = Δ𝑢(𝑘) Δ𝑢(𝑘 + 1) ... Δ𝑢(𝑘 + 𝑁𝑐 − 1) ,

3. MPC algorithm where the elements of 𝑌 are the predicted outputs based on
The pseudo-code of the MPC algorithm for velocity con- current state 𝑥(𝑘). Thus they are also the predicted angular
trol loop in Fig. 1, is stated in Algorithm 1. The detailed velocities of the elevation part of the MSTA. The elements of
explanation of each line is given next. It should be noted Δ𝑈 are the increment of future control trajectory that can be
that this pseudo code is written in the style of the Matlab M obtained by solving convex optimization problem with con-
language. straints. 𝑁𝑝 is the prediction horizon, and 𝑁𝑐 is the control
horizon.

Yunlong Wang et al.: Preprint submitted to Elsevier Page 3 of 10


Yunlong Wang et al.

The predicted output variables are, active set methods, finding the active constraints is a time-
consuming task, especially when there are many constraints.
𝑌 = 𝐹 ⋅ 𝑥(𝑘) + Φ ⋅ Δ𝑈 , (4) Here, the primal-dual method is used to find the active set.
A dual method is applied systematically to find the inactive
where constraints, which can then be removed in the solution. The
dual problem is written in (12), whose detailed derivation
[ ]𝑇 procedure can be found in Wang (2009).
𝐹 = 𝐶𝐴 𝐶𝐴2 ... 𝐶𝐴𝑁𝑝 (5)
( )
1 1
max − 𝜆𝑇 𝐻𝜆 − 𝜆𝑇 𝐾 − 𝐹𝑑𝑇 𝐸 −1 𝐹𝑑 , (12)
𝜆≥0 2 2
⎡ 𝐶𝐵 0 ... 0 ⎤ where 𝜆 is the Lagrange multiplier, also called dual variable.
⎢ 𝐶𝐴𝐵 𝐶𝐵 ... 0 ⎥ And,
Φ=⎢ ⎥ (6)
⎢ ... ⎥ 𝐻 = 𝑀 ⋅ 𝐸 −1 ⋅ 𝑀 𝑇 , (13)
⎢ ⎥
⎣ 𝐶𝐴𝑁𝑝 −1
𝐵 𝐶𝐴 𝑁𝑝 −2
𝐵 ... 𝐶𝐴 𝑁𝑝 −𝑁𝑐
𝐵 ⎦ 𝐾 = 𝛾 +𝑀 ⋅𝐸 −1
⋅ 𝐹𝑑 , (14)
By using (4), the cost function of MPC, 𝐽 , is then defined where 𝐸 = Φ𝑇 Φ + 𝑟𝑤 ⋅ 𝐼𝑁𝑐 ×𝑁𝑐 , 𝐹𝑑 = −Φ𝑇 (𝑅𝑠 − 𝐹 ⋅ 𝑥(𝑘))
as, From (12), it can be seen that the dual is also a quadratic
program problem with 𝜆 as the decision variable. Equation
𝐽 = (𝑅𝑠 − 𝑌 )𝑇 ⋅ (𝑅𝑠 − 𝑌 ) + Δ𝑈 ⋅ 𝑅̄ ⋅ Δ𝑈 , (7) (12) is equivalent to,
( )
where 𝑅𝑠 ∈ ℝ𝑁𝑝 ×1 is the vector of reference values. 𝑅̄ = 1 1
min 𝜆𝑇 𝐻𝜆 + 𝜆𝑇 𝐾 + 𝐹𝑑 𝑇 𝐸 −1 𝐹𝑑 , (15)
𝑟𝑤 ⋅ 𝐼𝑁𝑐 ×𝑁𝑐 (𝑟𝑤 ≥ 0), where 𝑟𝑤 is the tuning parameter that 𝜆≥0 2 2
determines the desired closed-loop performance, i.e., the cost
which is solved by the Hildreth’s quadratic programming
of actuation.
procedure. This procedure is based on an element-by-element
By using (7), the MPC problem is defined as,
search. Therefore, no matrix inversion is required.
𝑚𝑖𝑛 𝐽 (8) The active set method corresponds to Line 10 − 32 in
Δ𝑈 Algorithm 1.
𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 ∶ 𝑥(𝑘 + 1) = 𝐴 ⋅ 𝑥(𝑘) + 𝐵 ⋅ Δ𝑢(𝑘) (9)
𝑀 ⋅ ΔU ≤ 𝛾 (10) 3.3. Explanation of algorithm 1
Before the execution of Algorithm 1, some variables have
where to be initialized. The following variables are set: 𝑁𝑐 = 40,
[ ] [ ] 𝑁𝑝 = 40, Δ𝑢𝑚𝑖𝑛 = −3 𝑑𝑒𝑔∕𝑠, Δ𝑢𝑚𝑎𝑥 = 3 𝑑𝑒𝑔∕𝑠, and
𝐼𝑁𝑐 ×𝑁𝑐 ΔUmax
𝑀= ,𝛾 = , (11) Δ𝑡 = 0.002. The methodology to obtain these parameters
−𝐼𝑁𝑐 ×𝑁𝑐 −ΔUmin is explained in Section 3.4 with details. These parameters,
together with the identified model parameters, 𝜉𝑣 = 0.022
ΔUmin = 𝐼𝑁𝑐 ×1 ⋅Δ𝑢min , ΔUmax = 𝐼𝑁𝑐 ×1 ⋅Δ𝑢max . The chang- and 𝑤𝑛 = 27.3 𝑟𝑎𝑑∕𝑠, are used to calculate 𝐹 , Φ, 𝑀, 𝛾,
ing rate of the command angular velocity of stepper motor 𝐻, by (5), (6), (11), and (13), respectively. Then, the fol-
has to be constrained in the range of [Δ𝑢𝑚𝑖𝑛 Δ𝑢𝑚𝑎𝑥 ], whose lowing parameters have to be initialized before the execu-
exact values are explained in Section 3.4. Equation (10) is tion of Algorithm 1: 𝑢 = 0, 𝑥𝑑 (0) = 0, 𝜆 = 02𝑁𝑐 ×1 , 𝜆𝑝 =
equivalent to ΔUmin ≤ ΔU ≤ ΔUmax . This inequality con- 02𝑁𝑐 ×1 , 𝐿0 = [1 0 ... 0]𝑁𝑐 ×1 , 𝑁1 = 100, 𝐸𝑐 = 0.001, where
straint arises from the stepper motor, whose angular acceler- 𝑢 is the controller output, 𝜆 is the Lagrange multipliers, 𝜆𝑝
ation has to be limited. Otherwise, the stepper motor would is the previous 𝜆, 𝐿0 is a vector that is used to select the
miss some steps. first element of Δ𝑈 , 𝑁1 is just a constant that determines
the number of cycles for finding 𝜆 that satisfies (15), 𝐸𝑐 is
3.2. Active set methods an error threshold that determines when the cyclic section
From (8) to (10), it can be seen that solving the MPC should be left. 𝑁1 and 𝐸𝑐 are specified by trial and error.
problem is actually solving quadratic programming problem After parameters setting and initialization, the main parts
with equality and inequality constraints. The active set method of Algorithm 1 are explained. There are three inputs in the
is one of the methods for solving the MPC problem and is algorithm, which are 𝑅𝑠 , 𝑥𝑑 (𝑘) and 𝑦(𝑘). 𝑅𝑠 is the refer-
employed in our case (Gu et al. (2009); Cannon et al. (2001); ence velocity of the elevation part. 𝑥𝑑 (𝑘) is the current state,
Bartlett et al. (2000); Lau et al. (2009)). The idea of active whose first element is the current angular velocity of the ele-
set methods is to define, at each step of the MPC algorithm, vation part, and whose second element is the current angular
a set of constraints. The set of constraints are termed the acceleration of the elevation part. 𝑦𝑑 (𝑘) is the model output
working set, which is to be treated as the active set (Wang in (2). 𝑥𝑑 (𝑘) and 𝑦𝑑 (𝑘) are used to get the state variable, 𝑥(𝑘)
(2009)). If the active set is found, the original optimization in (3), which can be found in Line 2. In Line 3, the MPC
problem with inequality constraints can be converted into without inequality constraints is solved and Δ𝑈 is obtained.
an optimization problem with equality constraints. In the From Line 4 to 9, the elements of Δ𝑈 are checked one by

Yunlong Wang et al.: Preprint submitted to Elsevier Page 4 of 10


Yunlong Wang et al.

one to see whether the inequality constraints are violated. If 10

this is the case, the active set method is applied to find the
5
active set, which is used to correct Δ𝑈 , shown in Line 31.
The whole procedure of the active set method corresponds 0
to Line 10 to 32. Line 33 is used to get the first element of
Δ𝑈 . As Δ𝑢 is the change of 𝑢, Line 34 is used to get the lat- -5

est 𝑢, which is then returned as the controller output. Then,


-10
𝑥𝑑 (𝑘 − 1) is updated in Line 35 for next cycle. 0 5 10 15 20 25 30 35 40 45 50

3.4. Parameters in MPC algorithm Figure 3: The experiments of 𝑁𝑝 = 𝑁𝑐 = 10, 2


The first parameter that needs to be discussed is Δ𝑡, which
is the sampling interval of the MPC algorithm and deter-
mines the value of 𝑁𝑝 and 𝑁𝑐 . Currently, the setting is,
Δ𝑡 = 0.002 𝑠𝑒𝑐. The bandwidth of the position loop of the
If the 𝑁𝑝 and 𝑁𝑐 are decreased further, the control system
attitude control system has to be above 16𝐻𝑧. As a rule of
becomes unstable. This can be seen in Fig. 3, where 𝑁𝑝 =
thumb, the bandwidth of the velocity loop should be at least
𝑁𝑐 = 10, 2.
5 times larger than that of the position loop. This means the
Finally, the settings of Δ𝑢𝑚𝑖𝑛 and Δ𝑢𝑚𝑎𝑥 , are explained.
bandwidth of the velocity loop should be above 80 Hz. The
They are the boundary of the velocity change of 𝑢 in every
sampling frequency of a control loop should be 5 times faster
2 𝑚𝑠. Currently, the settings are Δ𝑢𝑚𝑖𝑛 = −3 𝑑𝑒𝑔∕𝑠 and
than the bandwidth of the control loop. This means the sam-
Δ𝑢𝑚𝑎𝑥 = 3 𝑑𝑒𝑔∕𝑠, which are obtained through experiments.
pling frequency of the velocity loop should be above 400Hz.
That is why 500 kHz is applied as the sampling frequency of 3.5. Angular acceleration estimation
the MPC algorithm. From (3), it can be seen that there are two elements in
Other parameters that need to be discussed are 𝑁𝑝 and the model state. The first element is the angular velocity of
𝑁𝑐 . They are set to be the same value in our MPC. Currently, the elevation part, which can be obtained from the gyroscope
the setting is, 𝑁𝑝 = 𝑁𝑐 = 40. The reason is that the desired measurement. The second element is the angular accelera-
closed-loop response time of the velocity loop is 80 𝑚𝑠 and tion of the elevation part, which can not be measured directly
Δ𝑡 = 0.002 𝑠𝑒𝑐. The 𝑁𝑝 is chosen in such a way that makes and should be calculated or estimated.
𝑁𝑝 ⋅ Δ𝑡 = 80 𝑚𝑠. Usually, the Kalman filter is used for obtaining the un-
Different 𝑁𝑝 and 𝑁𝑐 are compared during experiments. measurable states, which is infeasible in our case. The rea-
If 𝑁𝑝 and 𝑁𝑐 are set to be smaller values, the execution son is that the disturbance from ships, shown in Fig. 1, is
time of Algorithm 1 can be reduced accordingly. However, low-frequency disturbance and the movement of ship dy-
smaller 𝑁𝑝 , 𝑁𝑐 also mean lower control accuracy, even in- namics cannot be modeled because the ship parameters are
stability. This can be found in the experiment results that are inaccessible to MSTA. Thus, a differentiator together with a
shown in Fig. 2 and Fig. 3. third-order low-pass Butterworth filter is applied to get the
angular acceleration directly from angular velocity, as shown
0.1
in Fig. 4.
0.08

0.06
yd ( k ) rvd (k ) ra(k )
0.04
Figure 4: Calculation of angular acceleration
0.02

-0.02 In Fig. 4, 𝑦𝑑 (𝑘) is the angular velocity and is also the


-0.04
output of the model in (2). The differentiator is, 𝑟𝑣𝑑(𝑘) =
𝑦𝑑 (𝑘)−𝑦𝑑 (𝑘−1)
Δ𝑡𝑎
, where Δ𝑡𝑎 is 0.001𝑠𝑒𝑐. The mathematical ex-
-0.06
pression of the third-order low-pass Butterworth filter is,
-0.08 𝑟𝑎(𝑘) 𝑏(1)+𝑏(2)𝑧−1 +𝑏(3)𝑧−2 +𝑏(4)𝑧−3
𝑟𝑣𝑑(𝑘)
= 𝑎(1)+𝑎(2)𝑧 −1 +𝑎(3)𝑧−2 +𝑎(4)𝑧−3 , where 𝑎(𝑖) and 𝑏(𝑖), 𝑖 ∈
-0.1 1...4, are the coefficients of the filter that can be obtained
0 5 10 15 20 25 30 35 40 45 50
by the Matlab command "butter". When using the "but-
ter" command, the sampling frequency and cutoff frequency
Figure 2: The experiments of 𝑁𝑝 = 𝑁𝑐 = 40, 30, 20
have to be specified. In our case, the sampling frequency is
500 𝐻𝑧, and cutoff frequency is 100 𝐻𝑧, which is obtained
in the simulation environment.
From Fig. 2, it can be seen that when smaller 𝑁𝑝 and
𝑁𝑐 are applied, the control accuracy is reduced accordingly.

Yunlong Wang et al.: Preprint submitted to Elsevier Page 5 of 10


Yunlong Wang et al.

4. FPGA implementation three kinds of data types are explored for the execution of
the MPC algorithm. They are: (1) Single-precision floating-
The designed MPC algorithm is firstly verified in a sim-
point data type (32 bit), (2)Half-precision floating-point data
ulation environment in Matlab/Simulink. After successfully type (16 bit), (3) Fixed-point data type (customized bit). The
doing that, the next step is to implement the MPC algorithm half-precision floating-point data type is released in 2002
in the real hardware. This is a very challenging task, because
and has 1 sign bit, 5 bits exponent width, and 11 bits man-
the sampling rate is only 2𝑚𝑠 in our case. And the prediction
tissa width (10 explicitly stored).
horizon and control horizon are very large, 𝑁𝑝 = 𝑁𝑐 = 40.
The difficulties in the implementation of the MPC algo-
The FPGA chip is selected to execute MPC mainly be-
rithm in FPGA with different data types vary greatly. Among
cause of its parallel computational capacity. By using more them, the single-precision floating-point version is the eas-
FPGA resources, more parallel computation can be achieved. iest one. After implementing the algorithm in C code, the
This results in less time needed for the execution of the algo-
algorithm can be implemented in FPGA with the help of Vi-
rithm. For example, assume that there is one for loop with
vado and HLS software. The half-precision floating-point
30 iteration. And every iteration will cost 1 𝑚𝑠 and 3% of the
version can also be implemented. The works needed are:
FPGA resources. If no parallel mechanism is applied, the to- (1) Changing the data type from "float" into "half" in the
tal time and resources needed for finishing this for loop can variable definition in the HLS, (2) Modifying the function
be about 30𝑚𝑠 and 3%, respectively. By comparison, those parameters into array or pointer. Converting the MPC algo-
numbers would be 1𝑚𝑠 and 30 ⋅ 3% if a fully parallel mech-
rithm from a floating point to a fixed point is very difficult for
anism is applied. That is the feature of FPGA: The FPGA
a complicated algorithm, such as MPC, because of the lim-
resources can be used to save time.
ited tool support. Although the Vivado HLS software can
be used to reduce the needed time, it is still a challenging
4.1. Hardware setup
task. We need to find the suitable bit width for each vari-
The MPC algorithm is implemented on a Xilinx Zynq
able in our algorithm, according to the range and precision
chip, xc7z020, which is a low-cost SOC FPGA chip that in-
needed by that variable. This needs to be done carefully to
tegrates two Advanced RISC Machines (ARM) processors
avoid overflow and rounding that would seriously affect the
(Cortex-A9 with 866𝑀𝐻𝑧) and FPGA architectures into a
controller performance. By using fixed-point data type, the
single chip. Consequently, this chip provide higher integra-
benefit is the obvious reduction of the consumed resources
tion, lower power, smaller board size, and higher-bandwidth
and algorithm execution time. The fixed-point data types of
communication between the processor and FPGA. This chip
some important variables in Algorithm 1 are shown in Tab.
also include a rich set of peripherals, on-chip memory, an
1. The variables in Tab. 1 are only a small part of the vari-
FPGA-style logic array, and high-speed transceivers. Xc7z020
ables involved in Algorithm 1. In Algorithm 1, around 50
is called All Programmable SOC, whose software and hard-
variables are defined and all of them have to be converted
ware can all be programmed. Moreover, a kind of high-
into a fixed-point data type.
speed in-chip data bus, Advanced Extensible Interface (AXI),
The FPGA resource utilization in three different data types
is used to exchange data between ARM cores and FPGA,
are shown in Tab. 2, where LUT is Lookup Table, FF is Flip
whose transmission rate could be at least 800 MByte/sec.
Flops, DSP48E is a digital signal processing logic element
The MPC algorithm coded in C language was imported
included on FPGA, and BRAM_18K is a configurable mem-
into Xilinx Vivado High Level Synthesis (HLS) software.
ory module for data storage. The clock cycles and consumed
This software can convert C code into an intellectual prop-
time are also listed here. It can be clearly seen that, from the
erty block. This block is then used in Vivado software and
floating-point data type to the fixed-point data type, the con-
converted into a bitstream file together with other blocks.
sumed resources and time are all decreased.
The bitstream file is the one that can be downloaded into the
Besides different data types, there are other calculation
FPGA chip.
optimization mechanisms in FPGA, such as pipeline, unroll,
array partition, etc. These optimization mechanisms can fur-
4.2. MPC implementation in different data types
ther make the algorithm execution time shorter.
The resources in one FPGA chip are fixed and limited.
And every calculation operation would consume a certain
amount of resources. However, for the same operation, the 5. HIL simulation
resources consumed by different data types can vary greatly.
The HIL simulation is performed in this section to test
That is, the fewer bits occupied by the data type, the fewer
the proposed control scheme, especially the designed MPC.
resources consumed by the operation. The data types with
The diagram of the HIL simulation is illustrated in Fig.
fewer bits are preferred, and its limitation is whether the pre-
5.
cision and range of this data type are high enough for the
In Fig. 5, the "PI" block is the position loop controller,
algorithm.
which is actually a simple PI controller. The "MPC" block
The FPGA in the xc7z020 chip supports a broad range
is the velocity loop controller. The velocity model used in
of data types from binary (1 bit) to double precision (64 bit).
simulation is (2). The disturbance from ship dynamics is de-
This can provide great flexibility for optimizing resource us-
scribed as 𝐴⋅𝑠𝑖𝑛(𝜔⋅𝑡), where 𝐴 = 25 𝑑𝑒𝑔 and 𝜔 = 2𝜋∕6 𝑠𝑒𝑐.
age while meeting design performance targets. In this paper,

Yunlong Wang et al.: Preprint submitted to Elsevier Page 6 of 10


Yunlong Wang et al.

Table 1
Fixed-point data types of some variables
Word Fraction
Signed Range Precision
Length (bit) Length(bit)
𝑅𝑠 17 9 1 [-128,128) 0.0039
𝑥𝑑 16 8 1 [-128,128) 0.0039
𝑦𝑑 17 10 1 [-64,64) 9.7656e-04
Δ𝑈 16 9 1 [-64,64) 0.0020
Δ𝑢 18 13 1 [-16,16) 1.2207e-04
𝜆 16 11 0 [0,32) 4.8828e-04
𝜔 16 9 1 [-64,64) 0.0020

Table 2
FPGA Resources usage and Consumed time
Floating Point Half Floating Point Fixed Point
LUT 34624(65%) 26242(49%) 1952(3%)
FF 22901(21%) 22492(21%) 1528(1%)
DSP48E 203(92%) 54(24%) 11(5%)
BRAM_18K 88(31%) 60(21%) 24(8%)
Clock Cycles 185409 128435 86346
Consumed Time 1.85 ms 1.28ms 0.86ms

the interruption interval of 2𝑚𝑠, whose parameters are set by


A
V
n
e
g
l
u
o
l
c
a
i
r
ty
ARM core 1 through AXI data bus. For every 2𝑚𝑠, the ARM
core 1 would receive an interrupt from AXI Timer, and the
corresponding interrupt service routine will be called. In-
side the routine, the following works are done:(1) Set the
inputs of MPC through AXI data bus; (2) Start MPC cal-
culation through AXI data bus; (3) Wait until the calcula-
tion is done; (4) Get the MPC calculation results through
Figure 5: Diagram of the simulation of the attitude stabiliza- AXI data bus. Finally, exit the routine and wait for the next
tion control system interrupt. The obtained calculation results are put in DDR
SDRAM by ARM core 1, which can also be read by ARM
core 2 through shared memory. In ARM core 2, the Linux
runs and is responsible for high-level tasks, such as data dis-
The disturbance is generated by the "Disturbance Deriva- playing through graphical user interface, network commu-
tion" block. The "Gyroscope Noise" block is added to rep- nication, data storage on SD card, etc. The benefits of this
resent the measurement noise of the gyroscope. The noise method are: (1) Real-time performance can be guaranteed,
data is actually the measurement of the gyroscope sensor as no operating system exists in ARM core 1 and only a timer
chip when the system is in a static state. The "AccCalcu- is used; (2) No data packet needs to be parsed, as it is known
lation" block is applied to calculate the angular acceleration that parsing a data packet is much harder than sending a data
directly from angular velocity. The details of how to cal- packet; (3) No expensive device or software is required.
culate the angular acceleration can be found in Section 3.5. In Section 4.2, three data types are explored for MPC
The reference angle of the position control loop is 50 𝑑𝑒𝑔. implementation, which are tested here in HIL simulation to
The simulation step is set to be 0.002𝑠𝑒𝑐. check their performance. The MPC implementations in each
In HIL simulation, the MPC block in Fig. 5, is imple- data type are tested in the HIL simulation one by one, and
mented in FPGA while all other blocks are run in another the testing results are collected and shown in Fig. 7.
real-time computation platform. Usually, a computer together From Fig. 7, it can be seen that the controller perfor-
with Matlab/Simulink or LabView is used as the real-time mance of these three MPC controllers is similar. The RMS
platform Xu et al. (2016); Hartley et al. (2014). Here, a cre- tracking angle errors are all less than the product require-
ative method for HIL simulation is proposed because of the ment, 0.2 𝑑𝑒𝑔. The ability of MPC to handle constraints can
powerful architecture of the SOC FPGA chip. be found in Fig. 8. Due to the high similarity of Δ𝑢 in all
The proposed method of HIL simulation is illustrated in three kinds of MPC implementation, only the one in fixed-
Fig. 6. The MPC block in Fig. 5 is implemented in FPGA, point MPC is shown. From the top part of Fig. 8, it can
and the other blocks are implemented in ARM core 1 with be seen that Δ𝑢 can be successfully handled by MPC and be
bare metal. A timer, AXI Timer, is defined in FPGA with limited in the allowable range. To show the details of Δ𝑢,

Yunlong Wang et al.: Preprint submitted to Elsevier Page 7 of 10


Yunlong Wang et al.

4
3
2

u(deg/s)
1
0
-1
-2
-3
-4
0 5 10 15 20 25 30 35 40 45 50
Time(s)

4
3
2

u(deg/s)
1
0
-1
-2
-3
-4
10 10.05 10.1 10.15 10.2 10.25 10.3 10.35 10.4 10.45 10.5
Time(s)

Figure 8: Top: Δ𝑢 output of fixed-point MPC during the whole


HIL simulation process. Bottom: Δ𝑢 output of fixed-point
MPC between 10𝑠𝑒𝑐 to 10.5𝑠𝑒𝑐.

Figure 6: Illustration of the proposed HIL simulation in one


SOC FPGA chip Table 3
Resources utilization after implementation of three fixed-point
MPCs
0.3
floating point Resources Utilization Available Utilization %
0.25
0.2
half floating point LUT 4500 532000 8.5
fixed point
0.15 FF 4977 106400 4.7
AngleError(deg)

0.1 DSP48E 36 220 16.4


0.05 BRAM_18K 34.5 140 24.6
0
-0.05
-0.1
-0.15 system.
-0.2
In the attitude stabilization system of MSTA, there is to-
-0.25
-0.3
tally three independent control system. They are the control
0 5 10 15 20 25 30 35 40 45 systems of the elevation part, the cross-elevation part, and
Time(s)
the azimuth part. Each control system has the same structure
Figure 7: HIL simulation results of three different kinds of as shown in Fig. 5. Therefore, there are totally three MPC
MPC implementation. controllers, which require a huge amount of computation ca-
pacity. The computation capacity of the FPGA is only lim-
ited by its resources and xc7z020 is tested to see whether it
can cope with the computation task of three MPCs. After the
the area, indicated by a red frame in the top part of Fig. 8, is implementation of all three fixed-point MPCs in the FPGA,
plotted in the bottom part of Fig. 8. the FPGA resource utilization is shown in Fig. 9. The area in
There are advantages and disadvantages to each kind of bright yellow color indicates the used resources, and the dark
the MPC implementation. The floating-point data type has area means unused resources. It can be clearly seen that there
the largest data range and highest data precision. The half- are still lots of unused resources, and this means the FPGA
precision floating-point data type can satisfy most cases of can handle the computation of three parallel MPCs. The uti-
application requirements in terms of data range and preci- lization of FPGA resources is also summarized in Tab. 3.
sion while can significantly decrease the consumed FPGA As the MSTA under development is a commercial product,
resources. Moreover, the conversation from floating-point to the price of each component has to be as low as possible.
a half-precision floating-point data type is very easy. Among From the percentage of the used FPGA resources, it can be
these three data types, the fixed-point data type possesses ab- concluded that a cheaper FPGA chip with smaller FPGA re-
solute advantages in terms of consumed time and resources. sources, such as xc7z010, will be able to implement three
This advantage is achieved at the cost of long design time. MPC controllers.
Which data type is the best depends on the specific control

Yunlong Wang et al.: Preprint submitted to Elsevier Page 8 of 10


Yunlong Wang et al.

Damiano, A., Gatto, G., Marongiu, I., Perfetto, A., Serpi, A., 2014. Op-
erating constraints management of a surface-mounted pm synchronous
machine by means of an fpga-based model predictive control algorithm.
IEEE Transactions on Industrial Informatics 10, 243–255.
Darba, A., Belie, F.D., D’haese, P., Melkebeek, J.A., 2016. Improved dy-
namic behavior in bldc drives using model predictive speed and current
control. IEEE Transactions on Industrial Electronics 63, 728–740.
Dundar, A., Jin, J., Martini, B., Culurciello, E., 2017. Embedded streaming
deep neural networks accelerator with applications. IEEE Transactions
on Neural Networks and Learning Systems 28, 1572–1583.
Gu, R., Bhattacharyya, S.S., Levine, W.S., 2009. Improving the perfor-
mance of active set based model predictive controls by dataflow meth-
Figure 9: The FPGA resources consumed after implementation ods, in: Proceedings of the 48h IEEE Conference on Decision and Con-
of three MPCs trol (CDC) held jointly with 2009 28th Chinese Control Conference, pp.
339–344.
Gulbudak, O., Santi, E., 2016. Fpga-based model predictive controller for
direct matrix converter. IEEE Transactions on Industrial Electronics 63,
4560–4570.
Another test is done to check whether the control system Hartley, E.N., Jerez, J.L., Suardi, A., Maciejowski, J.M., Kerrigan, E.C.,
performance will be affected if three MPC controllers are Constantinides, G.A., 2014. Predictive control using an fpga with appli-
implemented in the SOC FPGA. The following two cases cation to aircraft control. IEEE Transactions on Control Systems Tech-
are tested: (1) The fixed-point MPC in the case of three- nology 22, 1006–1017.
Jerez, J.L., Goulart, P.J., Richter, S., Constantinides, G.A., Kerrigan, E.C.,
MPC implementation; (2) The fixed-point MPC in the case
Morari, M., 2014. Embedded online optimization for model predictive
of one-MPC implementation. After comparing the results control at megahertz rates. IEEE Transactions on Automatic Control 59,
from both cases, it is found that there is no difference in the 3238–3251.
results. Kosan, T., Talla, J., Janous, S., Blahnik, V., 2018. Fpga-based accelerator
for model predictive control of induction motor drive, in: 2018 18th
International Conference on Mechatronics - Mechatronika (ME), pp. 1–
6. Conclusion 6.
Lau, M.S.K., Yue, S.P., Ling, K.V., Maciejowski, J.M., 2009. A comparison
In this paper, a control scheme based on MPC for attitude of interior point and active set methods for fpga implementation of model
stabilization of MSTA is proposed and tested in FPGA. The predictive control, in: 2009 European Control Conference (ECC), pp.
modeling of the stepper motor is stated. The MPC algorithm 156–161.
based on the active set method is given and explained in de- Lucia, S., Navarro, D., Lucía, , Zometa, P., Findeisen, R., 2018. Optimized
tail. Three data types are explored for the implementation of fpga implementation of model predictive control for embedded systems
using high-level synthesis tool. IEEE Transactions on Industrial Infor-
MPC in FPGA. A creative HIL simulation is proposed to ver- matics 14, 137–145. doi:10.1109/TII.2017.2719940.
ify the performance of each MPC implementation. The HIL Ma, Z., Saeidi, S., Kennel, R., 2014. Fpga implementation of model predic-
simulation is achieved in one SOC FPGA, which doesn’t re- tive control with constant switching frequency for pmsm drives. IEEE
quire any expensive tools or software. From HIL simulation Transactions on Industrial Informatics 10, 2055–2063.
results, it can be seen that the proposed control scheme can Ming, A., Yamaoka, T., Kida, T., Kanamori, C., Satoh, M., 2005. Accuracy
improvement of ship mounted tracking antenna for satellite communica-
satisfy the product requirements and the RMS tracking angle tions, in: IEEE International Conference Mechatronics and Automation,
error is within 0.2 𝑑𝑒𝑔. The application of MPC can handle 2005, pp. 1369–1374 Vol. 3.
the velocity change problem of the stepper motor. The im- Monmasson, E., Cirstea, M.N., 2007. Fpga design methodology for in-
plementation of three MPCs in one FPGA is also tested, and dustrial control systems – a review. IEEE Transactions on Industrial
its feasibility is verified. Electronics 54, 1824–1842.
Monmasson, E., Idkhajine, L., Cirstea, M.N., Bahri, I., Tisan, A., Naouar,
M.W., 2011. Fpgas in industrial control applications. IEEE Transactions
on Industrial Informatics 7, 224–243.
ACKNOWLEDGMENT Rahman, A., Lee, J., Choi, K., 2016. Efficient fpga acceleration of convolu-
The authors would like to thank Innovation Fund Den- tional neural networks using logical-3d compute array, in: 2016 Design,
mark for financial support. Thanks also go to SpaceCom Automation Test in Europe Conference Exhibition (DATE), pp. 1393–
1398.
A/S for providing assistance.
Ramrez, R.O., Espinoza, J.R., Mel?n, P.E., Reyes, M.E., Espinosa, E.E.,
Silva, C., Maurelia, E., 2014. Predictive controller for a three-
phase/single-phase voltage source converter cell. IEEE Transactions on
References Industrial Informatics 10, 1878–1889.
Bartlett, R.A., Wachter, A., Biegler, L.T., 2000. Active set vs. interior Soltani, M.N., Izadi-Zamanabadi, R., Wisniewski, R., 2011. Reliable con-
point strategies for model predictive control, in: Proceedings of the 2000 trol of ship-mounted satellite tracking antenna. IEEE Transactions on
American Control Conference. ACC (IEEE Cat. No.00CH36334), pp. Control Systems Technology 19, 221–228.
4229–4233 vol.6. Tseng, H.C., Teo, D.W., 1998. Ship-mounted satellite tracking antenna with
Camacho, E.F., Alba, C.B., 2007. Model Predictive Control. 1439-2232, fuzzy logic control. IEEE Transactions on Aerospace and Electronic
Springer-Verlag London. Systems 34, 639–645.
Cannon, M., Kouvaritakis, B., Rossiter, J.A., 2001. Efficient active set opti- Tu, W., Luo, G., Chen, Z., Liu, C., Cui, L., 2019. Fpga implementation of
mization in triple mode mpc. IEEE Transactions on Automatic Control predictive cascaded speed and current control of pmsm drives with two-
46, 1307–1312. time scale optimization. IEEE Transactions on Industrial Informatics ,

Yunlong Wang et al.: Preprint submitted to Elsevier Page 9 of 10


Yunlong Wang et al.

1–1doi:10.1109/TII.2019.2897074.
Wang, A., Zhang, L., Wei, L., 2011. The design and implementation of
the digital servo system for the satellite antenna, in: 2011 International
Conference on Electrical Machines and Systems, pp. 1–5.
Wang, L., 2009. Model Predictive Control System Design and Implemen-
tation Using MATLAB. Springer-Verlag London.
Xu, F., Chen, H., Gong, X., Mei, Q., 2016. Fast nonlinear model predictive
control on fpga using particle swarm optimization. IEEE Transactions
on Industrial Electronics 63, 310–321.
Zhang, L., Zhou, Z., Chen, Q., Long, R., Quan, S., 2019. Model predic-
tive control for electrochemical impedance spectroscopy measurement
of fuel cells based on neural network optimization. IEEE Transactions
on Transportation Electrification 5, 524–534. doi:10.1109/TTE.2019.
2909687.

Yunlong Wang et al.: Preprint submitted to Elsevier Page 10 of 10

You might also like