model predictive control based motion drive algorithm for a … · 2017-07-10 · abstract model...
TRANSCRIPT
Model Predictive Control Based Motion Drive Algorithm for aDriving Simulator
by
Faizan Rehmatullah
A thesis submitted in conformity with the requirementsfor the degree of Master of Applied Science
Graduate Department of Aerospace Science and EngineeringUniversity of Toronto
c© Copyright 2017 by Faizan Rehmatullah
Abstract
Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator
Faizan Rehmatullah
Master of Applied Science
Graduate Department of Aerospace Science and Engineering
University of Toronto
2017
In this research, we develop a model predictive control based motion drive algorithm for the driving
simulator at Toronto Rehabilitation Institute. Motion drive algorithms exploit the limitations of the
human vestibular system to formulate a perception of motion within the constrained workspace of a
simulator. In the absence of visual cues, the human perception system is unable to distinguish between
acceleration and the force of gravity. The motion drive algorithm determines control inputs to displace
the simulator platform, and by using the resulting inertial forces and angular rates, creates the perception
of motion. By using model predictive control, we can optimize the use of simulator workspace for every
maneuver while simulating the vehicle perception. With the ability to handle nonlinear constraints, the
model predictive control allows us to incorporate workspace limitations.
ii
To my mother Rubina
iii
Acknowledgements
I am grateful to my thesis supervisors Professor Peter R. Grant and Dr. Bruce Haycock for their guidance
and support which has been integral to my progress in this project. I can say this unequivocally that
I would not have been able to get this far without them. Whenever I ran into trouble, the door to
Professor Grant’s office was always open, and with Bruce, I didn’t even have to think before jumping
into his office to explain my queries.
I would like to especially thank Professor Christopher Damaren for helping me navigate around
some of the intricacies of the optimal control theory and Professor Prasanth Nair for his guidance
on optimization algorithms. I would also like to thank Professor Hugh H. T. Liu for his advice and
reviews as a member of my research committee. I sincerely thank my friends Behrad Vatakhanghadim,
Gregory Moszczynski and Syed Haider Abidi for listening to my ideas and providing constructive advice
throughout this research. I also thank all the Masters and Ph.D. students at the Institute for Aerospace
Studies; you make UTIAS a fun place to work!
I would like to thank Toronto Rehabilitation Institute and the University Health Network for provid-
ing funding for this work. And would like to thank the research team at Toronto Rehabilitation Institute
(TRI); sharing a research lab with the TRI team was a lot of fun!
I would like to thank my parents Nizarali Rehmatullah and Rubina Rehmatullah for their support
and encouragement. If it weren’t for their trust in my abilities, I would have never been able to get here.
I would like to thank my sister Sanya Punjwani for pushing me to pursue my dreams and ambitions. I
would like to thank my uncle, Rafiq Panjwani (Senior) for helping me navigate through my academic
journey. I would also like to thank my uncle, Rafiq Panjwani (Junior) whose financial support and advice
allowed me to stay afloat over the past seven years as an international student in Canada. And finally
my grandmother Shakkar Khanu Panjwani; your mentorship has enabled me to make correct decisions
at every turn of my life.
iv
Contents
1 Introduction 1
1.1 Vehicle Simulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Driving Simulator at Toronto Rehabilitation Institute . . . . . . . . . . . . . . . . . . . . 2
1.3 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Classical Motion Drive Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Model Predictive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.3 Model Predictive Control Based Motion Drive Algorithms . . . . . . . . . . . . . . 8
1.3.4 Motion Perception Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Research Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Thesis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Model Predictive Control 14
2.1 Optimization Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.1 Constrained Nonlinear Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.2 Constrained Linear Quadratic Optimization . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Algorithms for Quadratic Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1 Active Set Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2 Interior Point Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Commercial Quadratic Programming Solvers . . . . . . . . . . . . . . . . . . . . . 16
2.3 Constrained Finite-Time Optimal Control Problem . . . . . . . . . . . . . . . . . . . . . . 17
2.4 The Receding Horizon Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Model Predictive Control Applied to Simulator Motion Drive . . . . . . . . . . . . . . . . 18
3 Human Perception Model 21
3.1 Rotational Motion Sensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Specific Force Sensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Nonlinear Motion Drive Algorithm 26
4.1 Motion Perception Model for the Simulator Driver . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1 Angular Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.2 Specific Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.3 Perception Model and the Overall System Model . . . . . . . . . . . . . . . . . . . 28
v
4.2 Augmented System Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Motion Perception for Vehicle Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Kinematic Model of Hexapod Motion Base . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.5 Successive Re-linearization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5.1 Successive Re-linearization of Augmented System Model . . . . . . . . . . . . . . . 35
4.5.2 Successive Re-linearization of Hexapod Model . . . . . . . . . . . . . . . . . . . . . 36
4.6 Optimal Control Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6.1 Lifted State and Output Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6.2 Cost Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.6.3 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6.4 Optimization Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Linear Motion Drive Algorithm 44
5.1 Motion Perception Model for Simulator and Vehicle Driver . . . . . . . . . . . . . . . . . 44
5.1.1 Angular Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1.2 Specific Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.3 Linear Perception Model and the Overall System Model . . . . . . . . . . . . . . . 46
5.2 Augmented Model for Perception in Simulator . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Optimal Control Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.1 Lifted State and Output Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.2 Cost Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.3 Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.4 Optimization Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6 Simulation Results and Discussion 55
6.1 Simulation Test Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2 Results for Normal Acceleration/Deceleration and Normal Left Turn . . . . . . . . . . . . 56
6.2.1 Vehicle Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.2 Simulator Kinematics for the Nonlinear Controller . . . . . . . . . . . . . . . . . . 57
6.2.3 Simulator Actuator Excursions for the Nonlinear Controller . . . . . . . . . . . . . 61
6.2.4 Comparison of Perception in Vehicle and Simulator for the Nonlinear Controller . 62
6.2.5 Comparison of Perception in Vehicle and Simulator for the Linear Controller . . . 62
6.3 Quality of Perception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.4 Comparison Between the Linear and Nonlinear Controller . . . . . . . . . . . . . . . . . . 67
6.4.1 Perception and False Cues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.4.2 Hexapod Actuator Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.5 Effect of Prediction Window Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.6 Patches, Limitations and Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7 Conclusions and Future Work 73
7.1 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
vi
A Simulation Parameters 75
A.1 System and Solver Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A.2 Parameters for the nonlinear motion drive algorithm . . . . . . . . . . . . . . . . . . . . . 76
A.3 Parameters for Linear Motion Drive Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 78
B Detailed Results 79
B.1 Normal Right Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
B.2 Aggressive Acceleration and Deceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
B.3 Aggressive Left Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
B.4 Aggressive Right Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
B.5 Normal Driving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
References 100
vii
List of Tables
1.1 Performance characteristics of CEAL motion base . . . . . . . . . . . . . . . . . . . . . . 4
3.1 Parameters for Semicircular Canal Model . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Parameters for Otolith Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.1 Summary of all simulation test cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.2 Performance summary for different prediction window lengths . . . . . . . . . . . . . . . . 71
A.1 System and solver parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A.2 Model parameters for the nonlinear controller . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.3 Parameters for the linear controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
B.1 Summary of all simulation test cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
viii
List of Figures
1.1 Aircraft and car simulators in operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 CEAL simulator at Toronto Rehabilitation Institute (UHN) . . . . . . . . . . . . . . . . . 3
1.3 7-Degree of Freedom (DOF) driving simulator (DriverLab) at Toronto Rehab Institute . . 3
1.4 DriverLab at TRI, with all components labeled . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Classical washout filter based motion drive algorithm . . . . . . . . . . . . . . . . . . . . . 5
1.6 Adaptive motion drive algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Optimal controller motion drive algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.8 Reference frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.9 Driver head frame in vehicle and simulator . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Receding horizon principle, the black bars represent control inputs applied to the plant
at each iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Control block diagram (CBD) and the overview of model predictive control based motion
drive algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1 Block diagram for semicircular canal model . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Bode diagram for semicircular canal model . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Block diagram for otolith Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Bode diagram for otolith model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1 Geometry of the hexapod motion base and the relationships between different vectors for
the ith actuator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1 Vehicle motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2 Vehicle data for normal acceleration and deceleration . . . . . . . . . . . . . . . . . . . . . 57
6.3 Vehicle data for normal left turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.4 Simulator data for normal acceleration and deceleration (nonlinear model) . . . . . . . . . 59
6.5 Simulator data for normal left turn (nonlinear model) . . . . . . . . . . . . . . . . . . . . 60
6.6 Actuator lengths for normal acceleration and deceleration (nonlinear model) . . . . . . . . 61
6.7 Actuator lengths for normal normal left turn (nonlinear model) . . . . . . . . . . . . . . . 62
6.8 Perception for normal acceleration and deceleration (nonlinear model) . . . . . . . . . . . 63
6.9 Perception for normal normal left turn (nonlinear model) . . . . . . . . . . . . . . . . . . 63
6.10 Perception for normal acceleration and deceleration (linear model) . . . . . . . . . . . . . 64
6.11 Perception for normal normal left turn (linear model) . . . . . . . . . . . . . . . . . . . . 64
6.12 Perception in simulator vs. perception in the vehicle for normal left turn . . . . . . . . . . 65
ix
6.13 Perception in simulator vs. perception in the vehicle for aggressive right turn . . . . . . . 66
6.14 Comparison of perception in vehicle vs. simulator for linear and nonlinear controllers for
normal left turn and normal acceleration & deceleration . . . . . . . . . . . . . . . . . . . 68
6.15 Comparison between the linear and nonlinear controllers for actuator constraint satisfac-
tion during normal acceleration and deceleration maneuver . . . . . . . . . . . . . . . . . 69
6.16 Comparison between reference tracking accuracy for different prediction lengths . . . . . . 70
6.17 Excursions in x direction and pitch angle for different prediction windows . . . . . . . . . 70
6.18 Average iteration time and RMS error for different prediction window lengths . . . . . . . 71
B.1 Vehicle data for normal right turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
B.2 Simulator data for normal right turn (nonlinear model) . . . . . . . . . . . . . . . . . . . 81
B.3 Actuator lengths for normal normal right turn (nonlinear model) . . . . . . . . . . . . . . 82
B.4 Perception for normal normal right turn (nonlinear model) . . . . . . . . . . . . . . . . . 82
B.5 Perception for normal normal right turn (linear model) . . . . . . . . . . . . . . . . . . . . 83
B.6 Vehicle data for aggressive acceleration and deceleration . . . . . . . . . . . . . . . . . . . 84
B.7 Simulator data for aggressive acceleration and deceleration (nonlinear model) . . . . . . . 85
B.8 Actuator lengths for aggressive acceleration and deceleration (nonlinear model) . . . . . . 86
B.9 Perception for aggressive acceleration and deceleration (nonlinear model) . . . . . . . . . 86
B.10 Perception for aggressive acceleration and deceleration (linear model) . . . . . . . . . . . . 87
B.11 Vehicle data for aggressive left turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
B.12 Simulator data for aggressive left turn (nonlinear model) . . . . . . . . . . . . . . . . . . . 89
B.13 Actuator lengths for aggressive left turn (nonlinear model) . . . . . . . . . . . . . . . . . . 90
B.14 Perception for aggressive left turn (nonlinear model) . . . . . . . . . . . . . . . . . . . . . 90
B.15 Perception for aggressive left turn (linear model) . . . . . . . . . . . . . . . . . . . . . . . 91
B.16 Vehicle data for aggressive right turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
B.17 Simulator data for aggressive right turn (nonlinear model) . . . . . . . . . . . . . . . . . . 93
B.18 Actuator lengths for aggressive right turn (nonlinear model) . . . . . . . . . . . . . . . . . 94
B.19 Perception for aggressive right turn (nonlinear model) . . . . . . . . . . . . . . . . . . . . 94
B.20 Perception for aggressive right turn (linear model) . . . . . . . . . . . . . . . . . . . . . . 95
B.21 Vehicle data for normal driving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
B.22 Simulator data for normal driving (nonlinear model) . . . . . . . . . . . . . . . . . . . . . 97
B.23 Actuator lengths for normal driving (nonlinear model) . . . . . . . . . . . . . . . . . . . . 98
B.24 Perception for normal driving (nonlinear model) . . . . . . . . . . . . . . . . . . . . . . . 98
B.25 Perception for normal driving (linear model) . . . . . . . . . . . . . . . . . . . . . . . . . . 99
x
List of Acronyms
CBD Control Block Diagram
CEAL Challenging Environment Assessment Laboratory
CFTOCP Constrained Finite Time Optimal Control Problem
DOF Degree of Freedom
IP Interior Point
KKT Karush–Kuhn–Tucker
MDA Motion Drive Algorithm
MPC Model Predictive Control
NLP Nonlinear Program
OTO Otolith
PQP Parallel Quadratic Program
QP Quadratic Programming
RHC Receding Horizon Control
RMS Root Mean Squared
SCC Semicircular Canal
TRI Toronto Rehabilitation Institute
UHN University Health Network
UTIAS University of Toronto Institute for Aerospace Studies
xi
List of Symbols
Variables
AiS vector from simulator reference point to
the ith upper bearing
A state matrix
BiH vector from simulator base reference point
to ith lower bearing
B input matrix
CIS rotation from simulator to inertial frame
CSI rotation from inertial to simulator frame
CV I rotation from inertial to vehicle frame
C output matrix
Fu jacobian of state equation with control
Fx jacobian of state equation with state
Gx jacobian of output equation with state
Hu jacobian of hexapod model with hexapod
control
Ln actuator mid-stroke length
N steps in prediction horizon
Ts discretization time constant
~a acceleration vector
a acceleration
l vector length of actuator
ω angular rate vector
β Euler angle rates
∆ limited deflection of the cupula
U control inputs over prediction window
Y output over prediction window
X state over prediction window
R control penalty matrix
u control vector
J cost function
D limited displacement of the otolith
δ deflection of the cupula
d displacement of the otolith
Q error penalty matrix
~f specific force vector
~g gravity vector
Γ reference vector
g gravity vector/
nonlinear output model
h nonlinear hexapod model
i current prediction window
k step within the prediction window
Λ reduction matrix for hexapod model
s Laplace variable
Ω lifted input matrix
Ξ lifted operating state matrix
Φ lifted output matrix
Θ lifted state matrix
h nonlinear constraint
ω perceived angular rate
ω angular rate
U optimized control over prediction window
K otolith gain
τl otolith model parameter
τs otolith model parameter
τa otolith model parameter
y output vector
L actuator length over prediction window/
penalty function
f perceived specific force
ω perceived angular rate vector
f perceived specific force vector
φ roll angle
x x position
y y position
z z position
ψ yaw angle
xii
~rSSDvector from the simulator frame to the sim-
ulator driver frame
~rV VDvector from the vehicle frame to the vehicle
driver frame
TL semicircular canal model parameter
TS semicircular canal model parameter
Ta semicircular canal model parameter
P position of simulator payload platform
f specific force
f specific force vector/
nonlinear state space model
x state vector
F terminal penalty function
θ pitch angle
S transformation matrix
Reference Frames
FI inertial frame
FSDsimulator driver frame
FS simulator frame
FVDvehicle driver frame
FV vehicle frame
Sets
U feasible controls
S general feasible region
R real numbers
X feasible states
Superscripts
(·)a variable for augmented perception model
(·)SD quantity of simulator driver
(·)S quantity of simulator
(·)VD quantity of vehicle driver
(·)V quantity of vehicle
(·)h variable for hexapod
(·)STCsimulator tilt coordination
(·)∗ optimal quantity
(·) stacked variable/
discretized matrix
(·) augmented variable
Subscripts
(·)I in inertial frame
(·)i variable at the current prediction window/
variable for integration model
(·)k variable within the prediction window
(·)op operating point
(·)o variable for otolith model
(·)p variable for perception model
(·)SDin simulator driver frame
(·)S in simulator frame
(·)s variable for semicircular canal model
(·)VDin vehicle driver frame
(·)V in vehicle frame
(·)x variable along x axis
(·)y variable along y axis
(·)z variable along z axis
Operators
(·)× skew-symmetric matrix operator
(·) second time derivative˙(·) time derivative
∇· grad operator
(·)− matrix inverse∂·∂· partial derivative
(·)T matrix transpose
xiii
Chapter 1
Introduction
In this chapter, we provide an introduction to vehicle simulation and present the objectives of this
research. Over the past 100 years, simulators have become an essential tool in vehicle development,
training, and research. Several factors contribute to improving the accuracy and realism inside a simu-
lator; these include; realistic visual graphics, auditory cues and motion cues. In this thesis, we focus on
improving motion cues through a model predictive control based motion drive algorithm. This chapter
starts with an overview of simulators in Section 1.1, followed by a description of the car simulator at
Toronto Rehabilitation Institute (TRI) in Section 1.2. A review of the literature on model predictive
control and simulator motion drive is presented in Section 1.3. An overview of this project and the re-
search objectives is presented in Section 1.4, followed by a discussion on research contributions in Section
1.5. Finally, an overview of the thesis document is presented in Section 1.6, followed by a description of
the frames of reference in Section 1.7.
1.1 Vehicle Simulators
The interest in simulators dates back to the early days of powered flight, and they have now emerged as
a dominant engineering tool for aircraft development. Simulators are beneficial for a range of purposes,
including research and development, training, and skill maintenance. A key advantage of a simulator
is that it allows developers and researchers to understand the response of the human controller in
abnormal operating conditions with safety. It also allows them to realize the impact of their design
decisions. Simulators are extensively used by airlines to ensure that their pilots maintain the essential
skills to operate aircraft under various failure conditions. A perfect example of this is aircraft upset
recovery training. Over the past several years, extensive research has been conducted at The Institute
for Aerospace Studies to model stall characteristics of aircraft so that pilots can gain valuable training
for aircraft stall recovery. Such dangerous maneuvers can be costly to perform on a real aircraft and
can put the test vehicle and the operator in incredible danger. Under such conditions, simulators play a
paramount role in providing a cheap and safe alternative, allowing pilots to maintain the required skill
levels.
There is a range of simulators in operation around the world. Motion is simulated through a motion
base that may include a hexapod, turntable, x-y platform, etc. Each additional degree of freedom adds to
the cost and complexity of the system but adds to the face validity. The University of Toronto Institute
1
Chapter 1. Introduction 2
(a) Flight simulator at UTIAS (b) Car simulator at Toyota
Figure 1.1: Aircraft and car simulators in operation
for Aerospace Studies (UTIAS) flight simulator is shown in Figure 1.1a. This simulator has a 6-degree
of freedom hexapod motion base. The Toyota simulator, shown in Figure 1.1b consists of a hexapod
motion base, an x-y platform, a turntable and four high-frequency actuators. While the hexapod motion
base is used to simulate high-frequency and very low-frequency motion cues, the x-y platform allows
one to generate the mid-frequency component of the sustained specific force. The turntable allows for
accurate tracking of yaw rates, and the high-frequency actuators are used for high-frequency roll, pitch
and heave relative to the road. Due to the large range of motion, the Toyota simulator can provide one
to one cueing for simple maneuvers such as lane changes.
While simulators have several advantages, a core problem is that the driver or the pilot is affected
by the performance of the simulator itself. When it comes to motion perception, it is imperative to
recognize that the simulator driver is operating a fixed-displacement system, while the car or the aircraft
is moving freely in the world. Secondly, a simulator is using virtual graphics, which are not identical to
the reality. It is inevitable that such a system will never exactly match the operational conditions or
the performance of the actual vehicle. Over the past several years, advancements in vehicle dynamics
modeling, improvements in graphics and sound technology, and headways in motion control systems
have considerably improved the realism of the simulator. However, one cannot ignore that a simulator
is always producing an approximation of the real vehicle.
1.2 Driving Simulator at Toronto Rehabilitation Institute
The Toronto Rehabilitation Institute, which is a part of the University Health Network (UHN) is one of
the best rehabilitation research centres in the world. Research projects at TRI range from investigating
handrail designs and fall prevention, to assessing driving performance under challenging conditions. The
Challenging Environment Assessment Lab (CEAL) is equipped with a hexapod motion base used to
generate motion. Four interchangeable payloads: WinterLab (used to simulate icy conditions), StairLab
(used to simulate stairways), StreetLab (used to simulate street walking) and DriverLab (used for driving
simulation) are used at the research facility. When installed on the motion base, these payloads allow
researchers to simulate real-life situations that are controllable and repeatable in an environment that
is safer than testing it in the real world.
The CEAL motion base together with WinterLab, StairLab and StreetLab are shown in Figure 1.2,
Chapter 1. Introduction 3
while the DriverLab is shown in Figure 1.3. This thesis is focused on developing a motion drive algorithm
for the DriverLab. Research with the DriverLab at TRI will focus on developing more sensitive methods
for assessing driving performance, effective methods for training, and recommendations for vehicle design.
One of the main objectives of the DriverLab is to develop novel capabilities to assess driving performance
of senior adults. Performance degradation of essential sensory organs used for situational awareness in
humans can put older adults at greater risk for driving related accidents. There is little to no research
on such performance related issues, hence the DriverLab aims to fill this research gap.
Figure 1.2: CEAL simulator at Toronto Rehabilitation Institute (UHN)
Figure 1.3: 7-Degree of Freedom (DOF) driving simulator (DriverLab) at Toronto Rehab Institute
Chapter 1. Introduction 4
The DriveLab consists of an Audi A3 mounted on a turntable inside a dome (see Figure 1.3). A
projection system immerses the user in the virtual environment, which includes a curved screen, high-
resolution stereoscopic projection system, and calibration hardware and software to create a seamless
360-degree field of view. A surround sound system produces engine noise, tire rumble, wind roar and
traffic noise. The DriverLab is also equipped with a one-of-a-kind weather simulator to create real
rain droplets on the windshield and a robotic glare simulator that simulates harsh glare of oncoming
headlights or a bright sun. All of these components are identified in Figure 1.4.
Curved Screen
Audi A3
Glare Simulator
Rain Simulator
Hexapod Motion Base
Turntable
360 ProjectionSystem
Figure 1.4: DriverLab at TRI, with all components labeled
Performance Characteristics of the CEAL Motion Base
The performance characteristics of the hexapod motion base for non-simultaneous excursions, velocities,
and acceleration are summarized in Table 1.1.
Table 1.1: Performance characteristics of CEAL motion base
Excursion Velocity Acceleration
Upper Limit Lower Limit Upper Limit Lower Limit Upper Limit Lower Limit
Surge 1.174m −0.892m 1.5m/s −1.5m/s 6m/s2 −6m/s2
Sway 0.926m −0.926m 1.5m/s −1.5m/s 6m/s2 −6m/s2
Heave 0.878m −0.761m 1.1m/s −1.1m/s 8m/s2 −8m/s2
Roll 23.15 −23.15 35/s −35/s 100/s2 −100/s2
Pitch 22.00 −22.70 30/s −30/s 100/s2 −100/s2
Yaw 26.80 −26.80 40/s −40/s 100/s2 −100/s2
The actuator limits are ±0.61m from the nominal while the turntable has a limit of ±360, velocity
limit of ±100/s and acceleration limit of ±100/s2.
Chapter 1. Introduction 5
1.3 Background
1.3.1 Classical Motion Drive Algorithms
A variant of the filter based motion drive algorithm is used in almost all simulators in operation around
the world. Motion Drive Algorithms (MDA) have been around since the 60s, and in the 80’s and 90’s,
Reid, Nahon, and Grant performed a thorough investigation of filter based MDAs [1, 2, 3, 4]. Various
MDAs have been proposed in the literature, but the most widely used MDAs are the classical washout,
optimal control, and adaptive filters.
Reid and Nahon conducted an investigation into the ease of adjustment and computational costs and
performed experiments with experienced pilots for the three commonly used washout filters in [1, 2, 3, 4].
Here we provide a brief description on these commonly used MDAs. For detailed descriptions and model
derivation the reader is advised to see technical notes from Reid and Nahon [2, 3, 4].
Classical Washout
Figure 1.5: Classical washout filter based motion drive algorithm
In the classical washout filter, shown in Figure 1.5, high and low-pass filters are used, and the filter
break frequencies and damping ratios are determined using a trial and error approach. Due to a large
number of such tunable parameters, these filters are very challenging to set-up and can pose a problem
for a novice simulator developer. The model inputs are specific forces and angular rates. The specific
force is high-pass filtered to generate the high frequency lateral and heave specific forces by moving the
simulator cab in the x and y-directions. The specific forces are low-pass filtered for the tilt coordination
channel responsible for tilting the cab to produce low frequency lateral and heave specific forces. The
tilt-coordination channel is rate-limited so that the rotation of the simulator cab is below the human
perception threshold. The angular rate channel is high-pass filtered to simulate high-frequency angular
rates. These are then converted into the actuator length commands, accepted by the motion base. In
the most basic form of a classical washout filter, the filter parameters are tuned and adjusted off-line,
the system is usually tuned around worst case maneuvers, making it operate sub-optimally under other
operating conditions. Newer versions of this algorithm can switch filter parameters in real-time based
Chapter 1. Introduction 6
on upcoming maneuvers, allowing for a better use of the motion base. Tuning is usually first done offline
using various techniques to get reasonably accurate results, then fine tuned using pilot/drive in the loop
trial and error procedure.
Adaptive
Figure 1.6: Adaptive motion drive algorithm
An adaptive washout filter, shown in Figure 1.6 is similar in principle to the other washout filters.
In an adaptive washout filter, the filter parameters are varied depending on the current system state.
The different filter parameters are determined by minimizing a cost function. A single step in the
steepest decent direction is taken at each time step, so the minimum of the cost function is almost never
obtained. Since filter parameters are varied through an optimization at a given system state, in theory
the algorithm is expected to make the best use of the available workspace.
Optimal Control
Figure 1.7: Optimal controller motion drive algorithm
Chapter 1. Introduction 7
The optimal control motion drive algorithm, shown in Figure 1.7 consists of a combination of linear filters
designed by solving a linear quadratic optimization problem for the filter parameters. The algorithm
aims at minimizing the difference between motion sensation in the vehicle and the simulator. The
structure of the optimal control based MDA is similar to that of the classical washout filter; however,
the filters (W) are determined by minimizing a cost function. The human perception model is directly
used during the optimization process, where the input to the perception model is a filtered white noise.
The optimal filters are designed around a filtered white noise, hence just like classical washout filters,
these are sub-optimal under other operating conditions.
1.3.2 Model Predictive Control
Model Predictive Control (MPC) has emerged as an effective tool for handling multi-variable constraint
control problems. With its ability to optimize the system response while respecting constraints, model
predictive control is a robust control algorithm used in various industrial applications. The history of
model predictive or receding horizon control is traced back to the 1960s, and the algorithm has been
used in various applications since. Applications of MPC are found across a broad spectrum; ranging
from finance to process control. After more than 25 years of research in this field, a firm theoretical basis
for MPCs has been established. In a review paper from Manfred, the author discusses the past, present
and the future of model predictive control strategy. Manfred and Jay discuss linear model predictive
control, its feasibility, closed-loop stability, and performance, delve into the key issues with the controller
and identify the research areas for future study [5]. To date, several books [6, 7, 8, 9, 10, 11, 12, 13,
14, 15] have been published on the topic. These books cover a broad range of subjects on MPC that
include constrained MPC, nonlinear MPC and Receding Horizon Control (RHC). With improvements
in computational hardware and software, we are now able to solve constraint optimization problems on
compact systems in real-time. Klancar applies a model predictive trajectory tracking control strategy to
a mobile robot [16], Kuhne uses the model-based predictive control for trajectory tracking problem for
nonholonomic wheeled mobile robots [17], while Xee develops a first-state contractive model predictive
control algorithm for mobile robots [18].
A recognized shortcoming of MPC is the computational effort required due to the repeated solution of
an optimal control problem. Wang focuses on exploiting the structure of the MPC problem [19], allowing
the system to compute the control action 100 times faster than a method that uses a generic optimizer.
To handle the same efficiency problems, Brand proposes a parallel quadratic programming algorithm for
fast MPC computation [20]. Brand proposes an iterative multiplicative algorithm for the fast solution
of the Quadratic Programming (QP) problems and claims 5-10x speed over the MATLAB quadprog
solvers [20]. Cairano and Brand discuss a multiplicative update, quadratic programming algorithm,
which has applications in model predictive control for constrained linear systems [21]. They provide
a simple Parallel Quadratic Programing (PQP) method with a linear rate of convergence. In another
paper, Kelly provides transcription methods for trajectory optimization [22]. On the topic of solver
efficiency, Mikulas has performed some studies on the different off-the-shelf QP solvers available and has
performed a comparison study on the efficiency of the different solvers [23] .
Recent efforts by Muehlebach and D’Andrea focus on approximate model predictive control to deal
with limited computational resources [24, 25]. The research from Muehlebach is focused on producing
a parametric description of the input and state trajectories to approximate the infinite horizon control.
By using continuous time parametrization of the state and input trajectories, the authors can derive a
Chapter 1. Introduction 8
compact description of the optimal control problem that can be solved in small systems in real time.
Work from Ostafew, Schoellig, and Barfoot, focuses on learning based nonlinear model predictive control
[26, 27]. The algorithms proposed by Ostafew enable high-performance path tracking in challenging off-
road terrain through learning. The deficiencies in system models are overcome by modeling disturbances
as Gaussian Process [28], based on experience collected during past traversals.
1.3.3 Model Predictive Control Based Motion Drive Algorithms
In this section, we will provide a review of the various MPC based MDAs and the highlight the ways in
which researchers handle the process model, prediction and optimization parts of the MPC based MDA.
Process Model
The basic idea of a model predictive control based motion drive algorithm is to use the process model
to optimize the future control inputs that minimize the error between the motion perception in the
simulator and that in the vehicle. Naturally, an accurate model of the system is a critical element in the
MPC. In this section, we discuss the process models used in various published MPC based MDAs.
The process model used by Beghi and Bruschetta is a state space model of the human vestibular
system i.e. a dynamic model of the otoliths and semi-circular canals [29]. In the implementation by
Beghi, constraints are applied to simulator positions and velocities. Augusto [30], Baseggio [31] and
Bruschetta [32] use similar process models and constraints. Bruschetta defines a spherical constraint
obtained by fitting a sphere through the set of possible simulator cab positions, providing a simplified
constraint equation [32].
Garrett uses a similar technique, however, instead of including the position and velocities of the
simulator motion base, the model is developed around actuator length and velocity [33, 34]. Including
actuator lengths as constraints, the system can account for actuator limits while minimizing the error
between the perceived acceleration in the vehicle to that in the simulator. Garrett only uses the model
for a single degree of freedom, using filters for others. Several approximations are also made while
deriving the actuator model.
Prediction
Reference generation is a critical element in the MPC based MDA. It is intuitive that accurate prediction
models will lead to improved performance of the system. Augusto and Loureiro describe three different
methods for reference generation [30]. The prediction models used by Augusto are summarized below:
(i) In the first method, Euler angular rates and translational accelerations from the current time step
are kept constant over the prediction horizon. This method provides the reference prediction for
the future control states. Bruschetta also uses a similar approach [32].
(ii) In the second method, a bicycle model is simulated using the control inputs at time t. These
control inputs are held constant over the prediction horizon. The simulation of the bicycle model
over the prediction window provides the reference.
(iii) In the third case, the derivatives of the bicycle model control inputs are established and held
constant over the entire prediction horizon. The bicycle model is run over the prediction horizon,
providing the desired control inputs.
Chapter 1. Introduction 9
While the three approaches described above can predict the reference, these do not exploit the
knowledge of the path. Given that we have a complete knowledge of the simulated environment (the
road, turns, stop signs, traffic light, etc) inside a driving simulator, improved predictions of the vehicle
state over the prediction horizon can be obtained; enhancing the accuracy of the system. Using the
knowledge of the simulation environment, Baseggio proposes a look ahead approach for prediction [31].
In this, a virtual driver is used to predict the future telemetry. The future telemetry information is then
used with the vehicle model to generate the reference signals.
Optimization
Almost all researchers that have worked on model predictive motion drive algorithms [29, 30, 31, 35,
36, 34, 33, 37, 38] use the quadratic programming optimization technique. By establishing the control
problem as a constrained quadratic programming problem, off-the-shelf, quadratic programming solvers
can be used. A choice is usually made between the interior point or the active set method for quadratic
programs.
1.3.4 Motion Perception Models
Human perception of spatial orientation and self-motion is achieved through the integration of visual,
vestibular and somatosensory signals. Considerable research has been done in the development of human
perception models aimed at understanding how these signals are used to develop motion perception in the
human brain. MacNeilage [39] and Zacharias [40] provide a review of various computational approaches to
spatial orientation. These include frequency domain analysis, internal models, observer theory, Bayesian
theory, and Kalman filtering. They conclude that the application of particle filtering produces the most
likely state estimates by incorporating models for system dynamics and noise associated with neural
processing. As the objective of the proposed MDA is to match the perceived specific force and angular
rate in the vehicle to those in the simulator, it is essential that these numerical models closely represent
the actual behavior. Otherwise, even if the control system is optimal, the motion cues inside the simulator
will be incorrect.
Somatosensory signals are received by the brain from mechanoreceptors in the skin, muscles, and
joints. These modalities convey information about changes in the forces on the body. While somatosen-
sory information is an essential element of human motion perception, visual and vestibular cues overpower
the somatosensory information, this was identified in experiments conducted by MacNeilage [39] and by
Gum [41]. Optic flow provides visual velocity, and the perceived gravity vector and visual horizon pro-
vide visual orientation. Semicircular canal and otolith organs of the vestibular system are stimulated
by the angular acceleration and specific forces in the driver head reference frame i.e. in FSDor FVD
.
The human brain combines the visual and vestibular signals to generate a multi-modal estimate of the
spatial position, velocity, and acceleration.
Merfeld proposed observer-based models [42], an extension of which was developed by Newman [43,
44], incorporating visual information. The model designed by Newman provides estimates of perceived
position, velocity, acceleration, angular rate, and orientation. Fernandez and Goldberg [45], performed
studies to investigate the discharge of peripheral otolith neurons in response to sinusoidal force variations
in a squirrel monkey.
Chapter 1. Introduction 10
1.4 Research Overview
It is known that the driving performance in a simulator is dependent on its ability to produce a high
fidelity virtual environment and from experience at UTIAS we know that a key element of this is
generating representative motion cues. Since simulators operate in a confined space, which in the case of
TRI DriverLab is a hexapod motion base with a turntable, it is nearly impossible to match the vehicle
motion cues exactly. A motion drive algorithm converts dynamic forces and angular rates calculated in
the vehicle model into simulator platform commands that then provide representative gravito-inertial
cues to the simulator operator while maintaining the constraints of the operational envelope.
The essential principle of a motion drive algorithm is to exploit the deficiencies of human motion
perception organs. In the absence of visual cues, the human perception system is unable to distinguish
between acceleration and the force of gravity. Also, a typical driver is unable to accurately gauge
the magnitude of force imparted on the driver’s body. A MDA generates the actuator control inputs to
displace the platform and by using the resulting inertial forces, moments and gravity creates a perception
of translational and rotational motion.
Recent advancements in optimization techniques and improvements in computational power have
enabled systems to run real-time optimal controllers, making MPCs an attractive choice for motion
drive algorithms. With its ability to optimize the system response while respecting constraints, model
predictive control is a robust control algorithm used in various industrial applications. The history of
model predictive control is traced back to the 1960s, and over the past several years, it has been used in
various industrial applications. In 2009, it was introduced to the field of simulator motion by Dagdelen
[35]. Due to its relatively new introduction to simulator motion, research in MPC based MDA is sparse,
with most applications limited to linear controllers.
The current research aims at developing a model predictive control based motion drive algorithm for
DriverLab at TRI. An optimal control based motion drive algorithm allows the system to be optimal in
operation and intuitive to setup. The ability to minimize the difference between perceived specific forces
and angular rates in the vehicle and those in the simulator while maintaining constraints imposed by
actuator limits makes MPC an ideal choice for this task. So far research in MPC based MDAs has been
limited to linear system models with box constraints. Here we seek to extend the MPC based MDA to
nonlinear system models and nonlinear actuator constraints.
1.5 Contributions
Filter-based motion drive algorithms have been the standard for the simulation industry for over 50
years. In most cases, researchers tune the motion drive algorithm for the different flight or driving
maneuvers. It is known from experience within the flight simulation lab at UTIAS that a well-tuned
motion drive algorithm can create very realistic perception but optimal tuning of filter-based MDAs
requires significant experience. Due to the nature of the algorithm, an MPC based MDA can be robust
under such deficiencies, allowing developers with modest knowledge of the optimal control theory and
simulator motion to successfully tune a motion cueing system that makes optimal use of the motion
base.
Chapter 1. Introduction 11
The following can be identified as major contributions of this research to the field of motion drive
algorithms:
(i) Development of a motion drive algorithm that enables optimal use of the constrained simulator
workspace.
(ii) Development of a motion drive algorithm that is intuitive and easy to set up, requiring a modest
knowledge of the optimal control theory and simulator motion.
(iii) Extension of the model predictive control based motion drive algorithm to the nonlinear simulator
and perception models.
(iv) Introduction of nonlinear actuator constraints to the MPC based MDA control strategy.
1.6 Thesis Overview
This thesis is organized as follows:
(i) Chapter 1 - Introduction presents an introduction to vehicle simulation and motion drive
algorithms. We present details on the design of the driving simulator at Toronto Rehabilitation
Institute and also discuss the goals, objectives, and contributions of this research.
(ii) Chapter 2 - Model Predictive Control presents model predictive control theory and its appli-
cation to the simulator motion drive problem. We also discuss the generic outline of the proposed
MPC based MDA.
(iii) Chapter 3 - Human Perception Model presents the mathematical models used to represent
perception dynamics of the human vestibular system. We present the transfer functions used for
dynamic modeling of the otolith and semicircular canals.
(iv) Chapter 4 - Nonlinear Motion Drive Algorithm presents the core theory of the proposed
MPC based MDA. The system model, the cost function, and the constraints are presented. An
optimal control problem is defined, the repeated solution of which provides the necessary actuator
command sequence that generates representative motion perception inside the simulator.
(v) Chapter 5 - Linear Motion Drive Algorithm presents the MPC based MDA for a linear
system. The linear perception model, the quadratic cost function, and linear constraints are
presented. The solution to the linear optimal control problem provides the necessary actuator
command sequence that generates the motion perception inside the simulator.
(vi) Chapter 6 - Simulation Results and Discussion presents simulation results for the various
controllers under different driving tasks.
(vii) Chapter 7 - Conclusions and Future Work presents conclusions of the research and provides
the possible future work in this area.
(viii) Appendix A - Simulation Parameters provides a summary of the parameters used in the
linear and nonlinear controllers.
(ix) Appendix B - Detailed Results provides results from the motion drive algorithm for the seven
simulation cases.
Chapter 1. Introduction 12
1.7 Reference Frames
It is convenient to employ a number of reference frames when describing the motion drive algorithm.
These reference frames are shown in Figure 1.8 and 1.9.
(i) The inertial reference frame FI is an earth fixed reference frame with z-axis aligned with the
gravity vector and x-axis pointing forward. The frame is located at the centroid of the lower
bearing frame attachment points.
(ii) The simulator reference frame FS is attached to the simulator cab at the centroid of the upper
bearing frame attachment points. The x-axis points forward and the z-axis points downwards. The
reference frame is parallel to the floor of the simulator cab and rotates with the turntable.
(iii) The simulator driver reference frame FSDis attached to the head of the simulator driver with
its origin located at a point midway between left and right vestibular systems. The x-axis points
forward and the z-axis downward along the spine. The x-z plane consists of the driver’s vertical
plane of symmetry. The simulator driver reference frame is parallel to the simulator frame FS .
(iv) The vehicle reference frame FV has its origin located at the car’s center of gravity with the
x-axis pointing forward and the z-axis downward. This frame is fixed with respect to the car.
(v) The vehicle driver reference frame FVDis attached to the head of the vehicle driver with its
origin located at a point midway between left and right vestibular systems. The x-axis points
forward and the z-axis downward along the spine. The x-z plane consists of the driver’s vertical
plane of symmetry. The vehicle driver reference frame is parallel to the vehicle frame FV .
(vi) rV VDis a vector from the vehicle reference frame FV to the vehicle driver reference frame FVD
.
(vii) rSSDis a vector from the simulator reference frame FS to the simulator driver reference frame
FSD.
Chapter 1. Introduction 13
Vehicle
Simulator
FV
FVD
FS
FSD
z
x
y
~rV VD
~rSSD
FI
1
Figure 1.8: Reference frames
FVDor FSD
z
x
y
1
Figure 1.9: Driver head frame in vehicle and simulator
Chapter 2
Model Predictive Control
In this chapter, we describe the model predictive control algorithm and present details for its application
to the simulator motion drive problem. In model predictive control, starting with the current state of
the system, a constrained finite-time optimal control problem is solved over a N -step prediction window.
The first step of this optimal control sequence is applied to the plant, and the process is repeated. At
the core of MPC is a constrained optimal control problem, as such, we start with a discussion on a
general nonlinear optimal control problem in Section 2.1.1, and then state the Karush-Kuhn-Tucker
(KKT) optimality conditions. In this thesis, we focus almost exclusively on quadratic programs, which
are a special class of nonlinear optimization problems, where the objective function is quadratic, and
constraints are linear. Therefore in Section 2.1.2, we discuss how the KKT optimality conditions apply
to a quadratic programming problem. We then employ the Nonlinear Programming (NLP) principles to
the constrained finite time optimal control problem in Section 2.3. Finally, we provide an overview of
the MPC based motion drive algorithm in Section 2.5.
2.1 Optimization Problem
2.1.1 Constrained Nonlinear Optimization
At the core of model predictive control is a constrained optimization problem. We therefore start with
the most general description of a nonlinear optimization problem with nonlinear equality and inequality
constraints. Let S define the feasible region:
S = x ∈ X : gi(x) ≤ 0, i = 1, . . . ,m, hi(x) = 0, i = 1, . . . , l, (2.1)
where gi : Rn → X for i = 1, . . . ,m, are m inequality constraints, hi : Rn → R for i = 1, . . . , l are l
equality constraints, and X is a nonempty open set in Rn. The following nonlinear optimization problem
can be defined for optimizing a general nonlinear function J(x) in the feasible region S (2.1):
minimize J(x),
subject to: gi(x) ≤ 0 for i = 1, . . . ,m,
hi(x) ≤ 0 for i = 1, . . . , l,
x ∈ X
(2.2)
14
Chapter 2. Model Predictive Control 15
The optimality conditions for the general nonlinear program (Equation 2.2) are called Karush-Kuhn-
Tucker conditions and are described in Theorem 1 [10] below:
Theorem 1 Karush-Kuhn-Tucker Necessary Conditions Let X be a nonempty open set in Rn,
and let J : Rn → R, gi : Rn → R for i = 1, . . . ,m, hi : Rn → R for i = 1, . . . , l. Consider the problem
defined in Equation 2.2. Let x be a feasible solution, and let I = i : gi(x) = 0. Suppose that J
and gi for i ∈ I are differentiable at x, that each gi for i 6∈ I is continuous at x, and that each hi for
i = 1, . . . , l is continuously differentiable at x. Furthermore, suppose that ∇gi(x)T for i ∈ I and ∇hi(x)T
for i = 1, . . . , l are linearly independent. If x is a local optimal solution, then there exist unique scalars
ui for i ∈ I, and vi for i = 1, . . . , l, such that
∇J(x)T +∑i∈I
ui∇gi(x)T +
l∑i=1
vi∇hi(x)T = 0,
ui ≥ 0 for i ∈ I.(2.3)
Furthermore, if gi, i 6∈ I are also differentiable at x, then the above conditions can be written as:
∇J(x)T +
m∑i=1
ui∇gi(x)T +
l∑i=1
vi∇hi(x)T = 0,
uigi(x) = 0 for i = 1, . . . ,m,
ui ≥ 0 for i = 1, . . . ,m.
(2.4)
See Goodwin [10] for a proof of this theorem. The scalars ui and vi are Lagrange multipliers asso-
ciated with the m inequality and l equality constraints respectively. The condition that x be feasible
for the optimization problem is called the primal feasibility condition, ∇J(x)T +∑i∈I ui∇gi(x)T +∑l
i=1 vi∇hi(x)T = 0 is called the stationary condition, ui ≥ 0 is called the dual feasibility condition
and uigi(x) = 0 for i = 1, . . . ,m is called the complementary slackness condition. Together these condi-
tions are called the Karush-Kuhn-Tucker (KKT) optimality conditions and the point that satisfies these
conditions is a KKT point.
2.1.2 Constrained Linear Quadratic Optimization
Quadratic programs are a special class of nonlinear programs (Equation 2.2) where the cost function is
quadratic and the constraints are linear. In this thesis we almost exclusively use quadratic programming
for optimization. In general, a quadratic program can be written as:
minimize J(x) =1
2xTHx + fTx + c,
subject to: Aix ≤ bi,
Aex = be.
(2.5)
Chapter 2. Model Predictive Control 16
The KKT conditions for the quadratic program defined in Equation 2.5 are:
Primary Feasibility: ATi x ≤ bi,
ATe x = be,
Stationary:Hx + f + Aiu + Aev = 0,
Dual Feasibility: u ≥ 0,
Complementary Slackness: uT(ATi x− bi) = 0,
(2.6)
where u is a vector of Lagrange multipliers that corresponds to the inequality constraints and v is a
vector of Lagrange multipliers that corresponds to the equality constraints.
2.2 Algorithms for Quadratic Programs
There are two widely used methods for solving quadratic optimization problems namely; active set, and
interior point. Since we use off-the-shelf QP solvers, we will only provide a brief overview of the two
solvers. The interested reader is referred to Borrelli [7] for a detailed explanation of the common QP
and NLP solvers.
2.2.1 Active Set Method
The active set method is very similar to the simplex method used in the linear programming. As the
name suggests, it is based on the idea that the optimum solution is usually obtained at the constraint
boundary. It iteratively adds a subset of constraints to the working set or the active set and determines
if constraints need to be added or removed to decrease the objective function. These methods have a
worst case complexity that is exponential in the problem size as opposed to the interior point method
that has polynomial complexity [7].
2.2.2 Interior Point Method
In this thesis, we use Interior Point (IP) method for solving the optimal control problem. IP is a widely
used numerical method for solving convex optimization problems. In this, an augmented, unconstrained
cost function replaces the original problem. The original cost function is augmented with logarithmic
barrier functions representing constraints. The algorithm effectively applies a sharp penalty on any
solution outside the feasible region. Hence, as the name suggests, every iteration is strictly within the
interior of the feasible region.
2.2.3 Commercial Quadratic Programming Solvers
Mikulas [23] provides a thorough discussion on the various QP solvers and presents the relative advan-
tages and disadvantages of these commercial solvers in the context of the MPC problem. The solvers
analyzed by Mikulas include:
(i) quadprog, which is Matlab’s quadratic programming function that allows the use of both interior
point and active set solvers1.
1We use Matlab’s quadprog, interior point solver in this research
Chapter 2. Model Predictive Control 17
(ii) qpOASES, which is a specialized active set solver.
(iii) FiORdOs, which uses fast gradient methods.
(iv) MOSEK, which is an interior point algorithm.
(v) Fast MPC, which is a specialized interior point method.
The interested reader is directed to reference [23] to understand the relative advantages of these
solvers under various conditions.
2.3 Constrained Finite-Time Optimal Control Problem
In the model predictive control algorithm, we repeatedly solve a Constrained Finite Time Optimal
Control Problem (CFTOCP) over a N -step prediction window. The nonlinear program for solving the
N -step optimization problem over the ith prediction window [i, i+ 1, . . . , i+N − 1] is given by:
minimizeU ∗
i =u∗i ,u
∗i+1,...,u
∗i+N−1
Ji = F(xi+N ) +
i+N−1∑k=i
L(xk,uk),
subject to: xk+1 = f(xk,uk) for k = i, i+ 1, . . . , i+N − 1,
uk ∈ U for k = i, i+ 1, . . . , i+N − 1,
xk ∈ X for k = i, i+ 1, . . . , i+N,
h(xk,uk) ∈ H for k = i, i+ 1, . . . , i+N − 1,
(2.7)
where Ji = F(xi+N ) +∑i+N−1k=i L(xk,uk) is the cost function for the ith prediction window, U ∗i is the
optimal control sequence, xk+1 = f(xk,uk) is the discrete nonlinear state space model of the system.
uk is an m-dimensional control vector and xk is the n-dimensional state vector, while U and X are the
corresponding feasible sets. h(xk,uk) is the nonlinear constraint which is dependent on the state and
control vectors, while H is the corresponding feasible set.
2.4 The Receding Horizon Strategy
As discussed earlier, the model predictive control algorithm is based on successive solutions of finite
horizon optimal control problems (Equation 2.7). The overall MPC control strategy can be summarized
as follows:
(i) Solve: At the current iteration i, solve the constrained finite time optimal control problem (Equa-
tion 2.7) for U ∗i = u∗i ,u∗i+1, . . . ,u∗i+N−1 over an N -step prediction window, say [i, i + N − 1],
starting from the current state xi and taking into account the current and future constraints.
(ii) Apply: Apply the first step of the resulting optimal control sequence u∗i .
(iii) Measure: Measure or estimate the state xi+1 reached as a result of the applied control u∗i .
Chapter 2. Model Predictive Control 18
(iv) Repeat: Repeat the CFTOCP at iteration i+ 1 over the window [i+ 1, i+N ], starting from the
new state xi+1 and taking into account the current and future constraints.
The receding horizon principle can be understood better through Figure 2.1. At iteration 0, a 5-step
CFTOCP solution provides the 5-step optimal control sequence U ∗0 , the first element of this control
sequence u∗0 (black bar) is applied to the plant. The horizon is shifted by one step, the process is
repeated for U ∗1 where u∗1 is applied, and then for U ∗2 where u∗2 is applied, and so on.
0 1 2 3 4 5 6 7 8 9 10
Iteration 0
0 1 2 3 4 5 6 7 8 9 10
Iteration 1
0 1 2 3 4 5 6 7 8 9 10
Iteration 2
U ∗0
u∗0
U ∗1
u∗1
U ∗2
u∗2
Figure 2.1: Receding horizon principle, the black bars represent control inputs applied to the plant ateach iteration
2.5 Model Predictive Control Applied to Simulator Motion Drive
An overview of the proposed model predictive control based motion drive algorithm is shown in Figure
2.2. Key elements of the control algorithm include perception dynamics, optimization and coordinate
transforms. Below we summarize the key steps involved in the MPC based MDA and point to the
relevant sections in this thesis where the details are provided2:
(i) Vehicle Inputs: We first obtain a vector of N vehicle inputs UVi =
[uVi
TuVi+1
T. . . uVi+N
T]T
representing vehicle dynamics over the prediction window. These inputs can either be taken from
2While the thesis delves into nonlinear and linear system models, this overview is in reference to the chapters pertainingto nonlinear system models.
Chapter 2. Model Predictive Control 19
SimulatorPerception Model (Simulator Driver)
Perception Model (Car Driver)
Cost Function
Measure/Estimate State
Transform
Constraints
Transform
USi
YSD,ai
YVDi
U Si
UVi
uSixSD,a
i+1
1
Figure 2.2: Control block diagram (CBD) and the overview of model predictive control based motiondrive algorithm
prerecorded simulation data, or generated by predicting driving behavior inside the simulator and
applying vehicle model. WThe vehicle inputs include car’s acceleration, velocity and its Euler
angles, angular rates and angular acceleration. The kth input vector is given by:
uVk =[ωV Ix,V ωV Iy,V ωV Iz,V ωV Ix,V ωV Iy,V ωV Iz,V φV θV ψV xVV yVV zVV xVV yVV zVV
]Tk
. It
should be noted that when using the proposed MPC based MDA as motion control system for the
simulator, we cannot use the vehicle time histories for prediction because future vehicle inputs
depend on the future inputs from the driver.
(ii) Perception Model (Car Driver): The vehicle model provides the car’s translational accelera-
tion, and its Euler angles, angular rates and angular acceleration in the vehicle reference frame FV .
However, the inputs to the human perception model discussed in Chapter 3 include specific force
and angular rates at the vehicle driver reference point FVD. The N vehicle inputs UV
i are therefore
transformed into specific force fVDand angular rates ωV IV at the vehicle driver reference point FVD
in the transform block. ωV IV is passed through the semicircular canal model (Section 3.1, Equation
3.7) while fVDis passed through the otolith model (Section 3.2, Equation 3.17) to calculate the
perceived angular rate and specific force for the kth input yVD
k =[ωV I
T
V fTVD
]Tk
. The N vehicle
control inputs lead to N vehicle driver perception outputs YVDi =
[yVDi
TyVDi+1
T. . . yVD
i+N
T]T
.
Detailed equations for the motion perception model for the car driver are given in Section 4.3.
(iii) Simulator Inputs: A vector of N simulator inputs USi =
[uSi
TuSi+1
T. . . uSi+N
T]T
that
can allow the simulator to track the perceived specific force and angular rates in a car YVDi is
determined through optimization. The kth vector for simulator input is given by:
uSk =[φS θS ψS xSI ySI zSI
]Tk
.
(iv) Perception Model (Simulator Driver): Control inputs USi represent acceleration and Euler
angle acceleration generated in the simulator reference frame FS , while the inputs to the perception
model are the angular rates and specific force in the simulator driver frame FSD. The transform
Chapter 2. Model Predictive Control 20
block therefore performs the necessary reference frame transformation and converts the simulator
inputs to specific force and angular rates at the simulator drive point FSD. The N simulator con-
trol inputs lead to N simulator perception outputs YSD,ai =
[ySD,ai
TySD,ai+1
T. . . ySD,a
i+N
T]T
3.
Detailed equations for the motion perception for the simulator driver are given in Section 4.1.
(v) Cost Function: To track the perceived motion inside the simulator, we seek to calculate the
optimal set of simulator control inputs U S∗
i that minimize the difference between the perceived
motion in the car YVDi and that in the simulator YSD
i . The cost function block minimizes the
tracking error while satisfying the simulator constraints. These constraints include limits on sim-
ulator position, velocity and acceleration and most importantly the constraints on the lengths of
actuators on the hexapod.
(vi) Apply and Repeat: At the end, an optimal sequence of control inputs over N -step prediction
window U S∗
i =[uS
∗
i
TuS
∗
i+1
T. . . uS
∗
i+N
T]
is available. We only apply the first of these control
inputs uS∗
i to the simulator and then either through direct measurement, or estimation, estimate
the resulting future perception state xSD,ai+1 due to the applied control. The process is repeated
starting at the new simulator state.
3The superscript a represents augmented perception model. In deriving the perception model for the simulator driverin Chapter 4, we define an augmented perception model. The reason behind using an augmented model will become clearin Chapter 4.
Chapter 3
Human Perception Model
In this chapter we present the model used to represent human perception of motion. In developing the
model predictive control based motion drive algorithm, we need to predict the sensation of physical
motion by the driver (or pilot). Many sensors located throughout the body contribute towards the
perception of motion. The human brain integrates information from visual, vestibular, proprioceptive
and tactile sensors to get a sense of body’s position, movement and acceleration. However, the sensor
that provides the most significant signal for the gravito-inertial cues is the vestibular system located
in the human head. In a MPC algorithm for simulator motion drive. We present the dynamic model
of semicircular canals (the rotation motion sensor) in Section 3.1 followed by that for the otolith (the
specific force sensor) in Section 3.2.
3.1 Rotational Motion Sensation
Semicircular Canals (SCC) are the sensory organs primarily responsible for sensing rotational motion.
These are liquid filled semi-circular tubes located roughly along the three orthogonal axes of the human
head. As the body undergoes rotational acceleration, the semicircular canals allow humans to sense
rotations. The semicircular canals are known as the angular velocity sensors. We use the semicircular
canal model presented by Reid and Nahon in [2]. A block diagram for the semicircular canal model is
shown in Figure 3.1.
! TLs(TLs+1)(TSs+1)
Tas(Tas+1)
!
1
Figure 3.1: Block diagram for semicircular canal model
In the diagram above the first block represents the semicircular canal dynamics. The canal dynamics
are modeled as a overdamped torsional pendulum. The input to the canal dynamics model is angular
rate ω and the output is the deflection of the cupula δ. The cupula deflection is then passed through a
threshold to simulate the human perception threshold. In setting up the optimal control model, we do
not include the threshold as it leads to a highly nonlinear system, which difficult to solve in an optimal
21
Chapter 3. Human Perception Model 22
control setting. To represent the washout of human response to the rotational motion, we then pass the
cupula deflection through a first order high pass filter block. A transfer function representation of the
linear semicircular canal model is provided in Equation 3.1.
ω
ω=
TLTas2
(TLs+ 1)(Tss+ 1)(Tas+ 1)(3.1)
The dynamic model for semicircular canals can be written in the state space form as:
xs = Asxs + Bsω, (3.2)
ω = Csxs (3.3)
where xs is the state vector for the semicircular canal model, ω is the input angular rate, ω is the
perceived angular rate and the matrices As, Bs and Cs are given by:
As =
−a2 1 0
−a1 0 1
−a0 0 0
, a0 =1
TLTsTa, a1 =
1
TLTs+
1
TaTL+
1
TaTs, a2 =
1
TL+
1
TS+
1
Ta(3.4)
Bs =
b200
, b2 = T−1S (3.5)
Cs =[1 0 0
](3.6)
Each of the three rotational degrees of freedom are represented by the semicircular canal model
above. The model parameters for x, y and z axes are summarized in the Table 3.1.
Table 3.1: Parameters for Semicircular Canal Model
TL TS Ta
Roll (about x-axis) 6.10 0.10 30.0
Pitch (about y-axis) 5.30 0.10 30.0
Yaw (about z-axis) 10.2 0.10 30.0
The combined semicircular canal model including each of the three rotational axes is given by:
˙xs = Asxs + Bsω, (3.7)
ω = Csxs (3.8)
where xs =[xTs,x xT
s,y xTs,z
]T∈ R9×1 is the state vector, ω =
[ωx ωy ωz
]T∈ R3×1 is the vector
of angular rates along x, y and z axes, ω =[ωx ωy ωz
]T∈ R3×1 is the perceived angular rate. The
Chapter 3. Human Perception Model 23
matrices As ∈ R9×9, Bs ∈ R9×3 and Cs ∈ R3×9 are given by:
As =
As,x
As,y
As,z
, Bs =
Bs,x
Bs,y
Bs,z
, Cs =
Cs,x
Cs,y
Cs,z
(3.9)
The bode plot of the semicircular canal model for roll, pitch and yaw is shown in Figure 3.2.
-80
-70
-60
-50
-40
-30
-20
-10
0
Magnitude (
dB
)
10-3
10-2
10-1
100
101
102
103
-90
-45
0
45
90
135
180
Phase (
deg)
roll (x)pitch (y)yaw (z)
Bode Diagram for Semicircular Canal Model
Frequency (rad/s)
Figure 3.2: Bode diagram for semicircular canal model
3.2 Specific Force Sensation
Otolith (OTO) are sensory organs in the vestibular system responsible for measuring the specific force~f , which is the difference between the translational inertial acceleration vector ~a and gravity vector ~g
~f = ~a− ~g (3.10)
The otolith system in humans is contained within the utricle, which is the common base of the
semicircular canals. The information from the otolith combined with that from other sensors on the
body generate the perceived specific force. They are effectively pieces of calcium carbonate mounted on
the end of a stiff cantilevered spring. As the head accelerates, the calcium carbonate particles cause the
Chapter 3. Human Perception Model 24
nerve cell to deflect. The rate of neuron firing is proportional to the deflection. As with the semicircular
canal model, the otolith model used here is from Reid and Nahon [2]. A block diagram of the otolith
model is shown in Figure 3.3.
fKa
1L 1
S
(s+1L )(s+1
S )
d Ds + 1
a f
1
Figure 3.3: Block diagram for otolith Model
The first block represents the dynamics of the otolith which as its input has the specific force ~f and
the output, the displacement of the otolith with respect to macula d. Similar to the semicircular canal
model, there is a human perception threshold on the otolith model. The last block is a first order lead
term representing neural processing. The output of which is the perceived specific force f . In optimal
control, we ignore the threshold parameter. Therefore the transfer function representation for the linear
part of the otolith model is given by:
f
f=
K(τas+ 1)
(τLs+ 1)(τSs+ 1)(3.11)
The dynamic equation for otolith provided in Equation 3.11 above can be written in the state space
form:
xo = Aoxo + Bof (3.12)
f = Coxo (3.13)
where xo is the state vector, f is the input specific force, f is the perceived specific force and the
matrices Ao, Bo and Co are given by:
Ao =
[−a1 1
−a0 0
], a0 =
1
τLτS, a1 =
1
τL+
1
τS(3.14)
Bo =
[b1
b0
], b0 =
K
τLτSb1 = K
τaτLτS
(3.15)
Co =[1 0
](3.16)
The perceived specific force along each of the three translational degrees of freedom is represented
by the above otolith model. The parameters for the x, y and z axes are summarized in Table 3.2.
Table 3.2: Parameters for Otolith Model
τL τS τa K
Surge (along x-axis) 5.33 0.66 13.2 0.40
Sway (along y-axis) 5.33 0.66 13.2 0.40
Heave (along z-axis) 5.33 0.66 13.2 0.40
Chapter 3. Human Perception Model 25
The combined otolith model including specific force perception along each of the three translational
degrees of freedom is given by:
˙xo = Aoxo + Bof (3.17)
f = Coxo (3.18)
where xo =[xTo,x xT
o,y xTo,z
]T∈ R6×1 is the state vector, f =
[fx fy fz
]T∈ R3×1 is the vector
of specific force along x, y and z axes, f =[fx fy fz
]T∈ R3×1 is the perceived specific force. The
matrices Ao ∈ R6×6, Bo ∈ R6×3 and Co ∈ R3×6 are given by
Ao =
Ao,x
Ao,y
Ao,z
, Bo =
Bo,x
Bo,y
Bo,z
, Co =
Co,x
Co,y
Co,z
(3.19)
The bode plot of otolith models for surge, sway and heave is shown in Figure 3.4.
-35
-30
-25
-20
-15
-10
-5
0
Magnitude (
dB
)
10-3
10-2
10-1
100
101
102
-90
-45
0
45
Phase (
deg)
surge (x)sway (y)heave (z)
Bode Diagram for Otolith Model
Frequency (rad/s)
Figure 3.4: Bode diagram for otolith model
Chapter 4
Nonlinear Motion Drive Algorithm
In this chapter we present the proposed model predictive control based motion drive algorithm with
nonlinear system model and constraints. We start with the motion perception model for the simulator
driver in Section 4.1, followed by that for the vehicle driver in Section 4.3. The appropriate coordinate
transformations for calculating the specific force and angular rates in the driver reference frame are
presented in Sections 4.1.1 and 4.1.2 respectively. We then derive the augmented system model, sepa-
rating the angular rate due to rotation and that due to tilt coordination in Section 4.2. The nonlinear
system model is then linearized in Section 4.5.1. A kinematics model for the hexapod motion base used
for calculating actuator constraints is presented in Section 4.4, which is linearized in Section 4.5.2. We
then assemble the optimal control problem in Section 4.6; we first present the lifted state and output
equations in Section 4.6.1, followed by the cost function in Section 4.6.2, we then assemble the constraint
equations in Section 4.6.3, and finally the entire optimization problem is assembled in Section 4.6.4.
4.1 Motion Perception Model for the Simulator Driver
The motion perception for the simulator driver is determined by substituting the angular rate expressed
in the simulator driver frame (FSD) into the semicircular canal model presented in Section 3.1 (Equation
3.7) and the specific force expressed in the simulator driver frame into the otolith model presented in
Section 3.2 (Equation 3.17). Command inputs to the simulator motion base include Euler angles, their
rates and accelerations, and the simulator position velocity and acceleration. To calculate the perceived
motion in the simulator driver frame as a result of the simulator commands, we need to apply the
necessary coordinate transformations. Sections 4.1.1 and 4.1.2 provide the necessary transformation
equations for angular rates and specific force respectively. The perception equations are assembled in
Section 4.1.3.
4.1.1 Angular Rate
The angular rate between the simulator frame FS and inertial frame FI expressed in frame FS can be
calculated from the simulator Euler angle rates βS
=[φS θS ψS
]Tthrough:
ωSIS = SβS
(4.1)
26
Chapter 4. Nonlinear Motion Drive Algorithm 27
For the 1-2-3 (roll, pitch, yaw) Euler angle sequence, the transformation matrix S is given by:
S =
cos θS cosψS sinψS 0
− cos θS sinψS cosψS 0
sin θS 0 1
(4.2)
where φS , θS and ψS are the simulator Euler angles and φS , θS and ψS are the simulator Euler angle
rates.
We use the 1-2-3 (roll, pitch, yaw) Euler angle sequence instead of 3-2-1 (yaw, pitch, roll) so that
we can apply the roll and pitch angles to the hexapod and then apply the yaw rotation to the turntable
directly (ψ maps to the turntable).
The simulator angular rate ωSIS is then given by:
ωSIS =
φS cos θS cosψS + θS sinψS
−φS cos θS sinψS + θS cosψS
φS sin θS + ψS
(4.3)
4.1.2 Specific Force
The acceleration in the simulator driver frame FSDis given by:
aSD= CSIa
SI + 2ωSI
×
S rSSD+ ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD(4.4)
where aSI =[xSI ySI zSI
]Tis the acceleration of the origin of the simulator frame in the inertial frame,
and aSDis the acceleration in the simulator driver frame FSD
. The vector rSSDis a vector from the
simulator frame to the simulator driver frame. Note that the simulator frame FS and the simulator
driver frame FSDare parallel.
For a 1-2-3 (roll, pitch, yaw) Euler angle sequence, the rotation matrix CSI is given by:
CSI =
cos θS cosψS cosφS sinψS + cosψS sinφS sin θS sinφS sinψS − cosφS cosψS sin θS
− cos θS sinψS cosφS cosψS − sinφS sin θS sinψS cosψS sinφS + cosφS sin θS sinψS
sin θS − cos θS sinφS cosφS cos θS
,(4.5)
where φS , θS and ψS are the simulator roll, pitch and yaw Euler angles respectively.
ωSIS is the simulator angular acceleration, which is given by the derivative of ωSIS yielding,
ωSIS =
−φSψS cos θS sinψS − θSφS cosψS cos θS + φS cos θS cosψS + θSψS cosψS + θS sinψS
−ψS + φS cos θS cosψS − φS θS sinψS sin θS − φS cos θS sinψS − θSψS sinψS + θS cosψS
−φS θS cos θS + ψS sin θS + ψS
,(4.6)
and r× is the skew-symmetric cross operator given by:
r× =
0 −r3 r2
r3 0 −r1−r2 r1 0
(4.7)
Chapter 4. Nonlinear Motion Drive Algorithm 28
Since the driver is stationary with respect to the simulator motion base, the derivative of the vector
from simulator to driver rSSDis 0, hence the Coriolis acceleration 2ωSI
×
S rSSDis 0 and aSD
simplifies
to:
aSD= CSIa
SI + ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD(4.8)
The specific force is the vector difference between the inertial acceleration and gravity, therefore the
specific force is given by:
fSD= CSI(a
SI − g) + ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD(4.9)
where g =[0 0 g
]Tis the gravity vector.
4.1.3 Perception Model and the Overall System Model
The motion perception in the simulator driver frame is calculated by substituting the angular rate from
Equation 4.3 into the semicircular canal model (Equation 3.7) and substituting the specific force from
Equation 4.9 into the otolith model (Equation 3.17).
The semicircular canal model is then given by:
˙xs = Asxs + BsωSIS , (4.10)
ωSIS = Csxs (4.11)
and the otolith model is given by:
˙xo = Aoxo + BofSD= Aoxo + Bo(CSI(a
SI − g) + ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD), (4.12)
fSD= Coxo (4.13)
where ωSIS is the perceived angular rate in the simulator and fSDis the perceived specific force.
We define integration equations to integrate translational/rotational acceleration to calculate trans-
lational/rotational velocity and position/angle used in the otolith and semicircular canal models defined
above. These equations are given by:
xi = Aixi + BiuS , (4.14)
yi = Cixi (4.15)
Here xi is the integration state vector given by:
xi =[φS θS ψS φS θS ψS xSI ySI zSI xSI ySI zSI
]T, (4.16)
where xSI , ySI and zSI represent the simulator position in the inertial frame.
The input uS is the input to the system model which is given by:
uS =[φS θS ψS xSI ySI zSI
]T, (4.17)
Chapter 4. Nonlinear Motion Drive Algorithm 29
The matrices Ai, Bi and Ci are given by:
Ai =
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
, Bi =
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
, Ci = I12×12
(4.18)
The overall system model is then given by:
xSD = f(xSD ,uS) =
˙xs˙xo
xi
=
Asxs + BsωSIS
Aoxo + Bo(CSI(aSI − g) + ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD)
Aixi + BiuS
, (4.19)
ySD = g(xSD ) =
ωSIS
fSD
yi
=
Csxs
Coxo
Cixi
(4.20)
where xSD is the state vector for the simulator driver model, ySD is the output vector and uS is the input
vector. The transformation from Euler angle rates to angular rates ωSIS is performed using Equation 4.3
and the transformation from Euler angle acceleration to angular acceleration ωSIS is given in Equation
4.6.
4.2 Augmented System Model
While the model presented in Section 4.1 accurately describes the driver’s perception of motion, it does
not differentiate between the angular rate used to simulate rotation and that used for tilt coordination.
Specific force is the vector difference between linear acceleration and gravity, so we can generate specific
force in the x or y directions by rolling or pitching the simulator platform. This process of using tilt to
simulate specific force in the x or y directions is called tilt coordination. Tilt coordination can be used
to simulate very low frequency x and y specific force.
As a result of tilt coordination, minimizing the difference between perceived specific force in the
simulator (Equation 4.19 and Equation 4.20) and vehicle (Equation 4.46 and Equation 4.47) will generate
command inputs that will rotate the simulator platform. Care has to be taken as the semicircular canals
can detect roll and pitch angular rates. If the simulator rotates too fast, then the driver will be able
to detect these rotations, destroying the illusion. Studies suggest that the rotation perception threshold
for a human body is less than 3 degrees per second [46]. However, experience at UTIAS suggests that
Chapter 4. Nonlinear Motion Drive Algorithm 30
rotation rates as large as 5 degrees per second can go undetected if the driver is busy with a task. So
when we use tilt coordination to simulate lateral motion, we need to rotate the simulator at a rate that
is lower than rotation perception threshold.
We wish to match the vehicle angular rates and keep the tilt coordination angular rates under the
perception threshold. Since the model presented in Section 4.1 is unable to differentiate between the
two, we define an augmented system model that separates the angular rates due to vehicle and tilt
coordination. Let φSTC , θSTC be the tilt coordination Euler angles, φSTC , θSTC the tilt coordination
Euler angle rates and φSTC , θSTC the tilt coordination Euler angle acceleration1. The augmented Euler
angles for roll and pitch are then given by:
φS ≈ φS + φSTC , θS ≈ θS + θSTC , (4.21)
the augmented Euler angle rates are given by:
˙φS ≈ φS + φSTC , ˙θS ≈ θS + θSTC , (4.22)
and the augmented Euler angle acceleration is given by:
¨φS ≈ φS + φSTC , ¨θS ≈ θS + θSTC (4.23)
Strictly speaking we cannot add Euler angles because rotations are not vectors, but tilt coordination
is an approximation itself and so the errors from the equations above are sufficiently small that they can
be ignored.
The augmented rotation matrix is given by:
CSI =
cos θS cosψS cos φS sinψS + cosψS sin φS sin θS sin φS sinψS − cos φS cosψS sin θS
− cos θS sinψS cos φS cosψS − sin φS sin θS sinψS cosψS sin φS + cos φS sin θS sinψS
sin θS − cos θS sin φS cos φS cos θS
(4.24)
The augmented angular rate ωSIS is given by:
ωSIS =
˙φS cos θS cosψS + ˙θS sinψS
− ˙φS cos θS sinψS + ˙θS cosψS
˙φS sin θS + ψS
(4.25)
The augmented angular acceleration ˙ωSIS is given by:
˙ωSIS =
− ˙φSψS cos θS sinψS − ˙θS ˙φS cosψS cos θS + ¨φS cos θS cosψS + ˙θSψS cosψS + ¨θS sinψS
−ψS + ˙φS cos θS cosψS − ˙φS ˙θS sinψS sin θS − ¨φS cos θS sinψS − ˙θSψS sinψS + ¨θS cosψS
− ˙φS ˙θS cos θS + ψS sin θS + ψS
(4.26)
In the augmented model, the specific force is calculated using the augmented angular rate and
1Notice that we do not do anything to the yaw channel, this is because yaw channel does not participate in tiltcoordination
Chapter 4. Nonlinear Motion Drive Algorithm 31
acceleration, which is given by:
faSD= CSI(a
SI − g) + ˙ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD(4.27)
The augmented otolith model is given by:
˙xao = Aoxao + Bof
aSD
= Aoxao + Bo(CSI(a
SI − g) + ˙ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD), (4.28)
faSD= Cox
ao (4.29)
and the augmented semicircular canal model is given by:
˙xas = Asxas + Bsω
SIS , (4.30)
ωSIS = Csxas (4.31)
The augmented integration system is given by:
xai = Aai x
ai + Ba
i uS,a, (4.32)
yai = Cai x
ai (4.33)
where the augmented integration state vector xai is:
xai =[φS θS ψS φS θS ψS xSI ySI zSI xSI ySI zSI φSTC θSTC φSTC θSTC
]T,
(4.34)
and the augmented control vector uS,a is:
uS,a =[φS θS ψS xSI ySI zSI φSTC θSTC
]T(4.35)
The matrices Aai , Ba
i and Cai are given by:
Aai =
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
, Bai =
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
(4.36)
Chapter 4. Nonlinear Motion Drive Algorithm 32
Cai =
1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
(4.37)
The overall augmented system model is then given by:
xSD,a = f(xSD,a,uS,a) =
˙xas˙xao
xai
=
Asxas + Bsω
SIS
Aoxao + Bo(CSI(a
SI − g) + ˙ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD)
Aai x
ai + Ba
i uS,a
, (4.38)
ySD,a = g(xSD,a) =
ωSIS
faSD
yai
=
Csxas
Coxao
Cai x
ai
(4.39)
The transformation from Euler angle rates to angular rates ωSIS is performed using Equation 4.3, the
augmented angular rate ωSIS is per Equation 4.25. The augmented angular acceleration ˙ωSIS is per
Equation 4.6.
Now when we minimize the error between the output of the augmented model (Equation 4.38 and
Equation 4.39) with that of the vehicle driver perception model (Equation 4.46 and Equation 4.47) and
apply a perception threshold constraint on the tilt coordination angular rate, we will be able to match
the specific force while minimizing false rotation cues.
4.3 Motion Perception for Vehicle Driver
A similar perception model exists for the vehicle driver where the semicircular canal model is given by:
˙xs = Asxs + BsωV IV , (4.40)
ωV IV = Csxs (4.41)
and the otolith model is given by:
˙xo = Aoxo + BofVD= Aoxo + Bo(a
VV + ωV I
×
V rV VD+ ωV I
×
V ωV I×
V rV VD−CV Ig) (4.42)
fVD= Coxo (4.43)
where aVV is the vehicle acceleration in the vehicle body frame, ωV IV is the angular rate between the
vehicle frame and inertial frame expressed in the vehicle frame, CV I is the rotation matrix from inertial
Chapter 4. Nonlinear Motion Drive Algorithm 33
frame to vehicle body frame, and rV VDis the vector from the simulator frame to the simulator driver
frame.
For the 3-2-1 (yaw, pitch, roll) Euler angle sequence used in the vehicle dynamics model, the rotation
matrix CV I is given by:
CV I =
cosφV cos θV sinφV cos θV − sin θV
− sinφV cosψV + cosφV sin θV sinψV cosφV cosψV + sinφV sin θV sinψV cos θV sinψV
sinφV sinψV + cosφV sin θV cosψV − cosφV sinψV + sinφV sin θV cosψV cos θV cosψV
,(4.44)
where φV , θV and ψV are the vehicle roll, pitch and yaw Euler angles respectively.
The acceleration, angular acceleration, angular rate and Euler angles for the vehicle, which are
inputs to the vestibular model can be determined from the vehicle dynamics. We, therefore, use all
these variables as inputs in the vehicle motion perception model and hence do not need an integration
block. The input vector uV for the vehicle motion perception model is given by:
uV =[ωVx,V ωVy,V ωVz,V ωVx,V ωVy,V ωVz,V φV θV ψV xVV yVV zVV xVV yVV zVV
]T(4.45)
The overall system model is given by:
xVD = f(xVD ,uV ) =
[˙xs˙xo
]=
[Asxs + Bsω
V IV
Aoxo + Bo(aVV + ωV I
×
V vV + ωV I×
V rV VD+ ωV I
×
V ωV I×
V rV VD−CV Ig)
],
(4.46)
ySD = g(xSD ) =
ωV IV
fVD
yi
=
[Csxs
Coxo
](4.47)
where CV I is defined in Equation 4.44, xVD is the state vector for the vehicle driver perception model,
yVD is the output vector and uV is the input vector. ωV IV and fVDare the perceived angular rate and
specific force respectively.
4.4 Kinematic Model of Hexapod Motion Base
To apply constraints in the actuator space, we need to transform the simulator pose into actuator lengths.
The geometric layout of the six degree of freedom hexapod motion base2 is shown in Figure 4.1. The
derivation of the kinematic model of the motion base closely follows that by Reid and Nahon in [2].
The location of the simulator frame FS with respect to the inertial frame FI is given by:
~P = ~Bi +~li − ~Ai (4.48)
~li = ~Ai + ~P − ~Bi (4.49)
where ~li is the vector length of the ith actuator.
2The CEAL driving simulator has a seven degree of freedom motion base, with the additional 7th DOF due to theturntable. Constraints on the turntable are applied separately. Hence we only discuss the hexapod part of the motion basehere.
Chapter 4. Nonlinear Motion Drive Algorithm 34
Payload Platform
Base Platform
Base platform attachment bearing
Payload platform attachment bearing
12
3
4
5
6
1 23
45
6
~l1 ~l2
~l3~l4
~l5
~l5
~Bi i
i
~li
~Ai
~P
~ri
FS
FI
1
Figure 4.1: Geometry of the hexapod motion base and the relationships between different vectors forthe ith actuator.
Expressed in the inertial frame FI , the above equation can be written as:
li,I = CISAi,S + PI −Bi,I (4.50)
where li,I is the vector length of the ith actuator expressed in FI , Ai,S is the vector from the simulator
frame FS to the ith upper bearing expressed in FS , Bi,I is the vector from the inertial frame to the ith
lower bearing expressed in FI . The vector PI =[xSI ySI zSI
]Tis the simulator position. The rotation
matrix CIS , which is a function of the augmented simulator roll and pitch Euler angles βS
=[φS θS
]Tis given by:
CIS =
cos θS sin φS sin θS − cos φS sin θS
0 cos φS sin φS
sin θS − cos θS sin φS cos φS cos θS
, (4.51)
where φS ≈ φS + φSTC
, θS ≈ θS + θSTC . Note we do not include the yaw degree of freedom (ψS) in the
Chapter 4. Nonlinear Motion Drive Algorithm 35
hexapod model because the yaw angles are applied exclusively to the turntable.
The scalar displacement of the ith actuator from it neutral position is given by:
li =√
lTi,I li,I − Ln (4.52)
where Ln is the mid-stroke length of the actuator. We can stack up the lengths of the six actuators to
give the overall hexapod model for the motion base as:
l = h(uh) =[l1 l2 l3 l4 l5 l6
]T(4.53)
where uh =[xSI ySI zSI φS θS
]T. The hexapod control input uh is a subset of the output ySD,a,
so we can write the hexapod control input as:
uh = ΛySD,a (4.54)
where
Λ =
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
(4.55)
The nonlinear hexapod model is then given by:
l = h(ΛySD,a) (4.56)
4.5 Successive Re-linearization
With nonlinear state equations and constraints, we have two options; we can either use nonlinear pro-
gramming to solve the resulting nonlinear optimization problem or linearize the system and use fast
quadratic programming solvers. With the requirement to run the system in real time, it is desirable to
choose a solver with fast convergence rates. Hence QP solvers have emerged as the de-facto choice in the
field of MPC based MDA. In the proposed algorithm, we derive equations that allow us to successively
re-linearize the augmented system model; the operating point of which is the simulator position at the
start of the control horizon. It is reasonable to assume that within a N -step prediction window from
this linearizion point, the equations will represent the dynamics of the nonlinear system with reasonable
accuracy for small N .
4.5.1 Successive Re-linearization of Augmented System Model
The nonlinear augmented system model is given by:
xSD,a = f(xSD,a,uS,a), (4.57)
ySD,a = g(xSD,a) (4.58)
Chapter 4. Nonlinear Motion Drive Algorithm 36
To simplify the equations, we will drop the subscripts and superscripts on variables and write the
nonlinear augmented system model as:
x = f(x,u), (4.59)
y = g(x) (4.60)
The first order Taylor series approximation of the system model is:
x ≈ f(xop,uop) + Fx(x− xop) + Fu(u− uop), (4.61)
y ≈ g(xop,uop) + Gx(x− xop) (4.62)
where,
Fx =∂f
∂x
∣∣∣∣xop,uop
, Fu =∂f
∂u
∣∣∣∣xop,uop
, Gx =∂g
∂x
∣∣∣∣xop,uop
(4.63)
The discretized version (using 1st order Euler integration) of the above equation is given by:
xk+1 = xk + Ts [f(xop,uop) + Fx(xk − xop) + Fu(uk − uop)] , (4.64)
yk = g(xop,uop) + Gx(xk − xop) (4.65)
where Ts is the discretization time.
We can simplify the above equation as:
xk+1 = fop + Fxxk + Fuuk, (4.66)
yk = gop + Gxxk (4.67)
where,
fop = Ts(f(xop,uop)− Fxxop − Fuuop), Fx = I + TsFx, Fu = TsFu, (4.68)
gop = g(xop,uop)−Gxxop (4.69)
4.5.2 Successive Re-linearization of Hexapod Model
The nonlinear hexapod model is given by:
l = h(uh) (4.70)
To simplify the equations, we will drop the subscripts and superscripts on the variables and write
the hexapod model as:
l = h(u) (4.71)
The first order taylor series approximation of the hexapod model is given by:
l ≈ h(uop) + Hu(u− uop), (4.72)
where,
Hu =∂h
∂u
∣∣∣∣uop
(4.73)
Chapter 4. Nonlinear Motion Drive Algorithm 37
Substituting u = Λy we get:
l ≈ h(Λyop) + HuΛ(y − yop) (4.74)
For the kth iteration, the hexapod model is given as:
lk = hop + HuΛyk, (4.75)
where,
hop = h(Λyop)−HuΛyop (4.76)
4.6 Optimal Control Definition
4.6.1 Lifted State and Output Equations
For the ith N step prediction window, we can assemble the lifted form of state equations as:
Xi = ΘFop + Ξxi + ΩUi (4.77)
where,
Xi =[xTi+1 xT
i+2 xTi+3 . . . xT
i+N
]T, Ui =
[uTi uT
i+1 uTi+2 . . . uT
i+N−1
]T, (4.78)
Fop = 1N×1 ⊗ fop =[fTop fTop fTop . . . fTop
]T(4.79)
Ξ =
Fx
F2x
F3x
...
FNx
, Ω =
Fu
FxFu Fu
F2xFu FxFu Fu...
......
. . .
FN−1x Fu FN−2x Fu FN−3x Fu . . . Fu
, Θ =
I
Fx I
F2x Fx I...
......
. . .
FN−1x FN−2x FN−3x . . . I
(4.80)
Similarly, the output equation is given by:
Yi = Gop + ΦXi (4.81)
where
Yi =[yTi+1 yT
i+2 yTi+3 . . . yT
i+N
]T, Xi =
[xTi+1 xT
i+2 xTi+3 . . . xT
i+N
]T, (4.82)
Gop = 1N×1 ⊗ gop =[gTop gT
op gTop . . . gT
op
]T, (4.83)
Chapter 4. Nonlinear Motion Drive Algorithm 38
Φ =
Gx
Gx
Gx
. . .
Gx
(4.84)
The output equation can also be written as:
Yi = Gop + ΦXi = Gop + Φ(ΘFop + Ξxi + ΩUi)
= Gop + ΦΘFop + ΦΞxi + ΦΩUi
(4.85)
Hence,
Xi = ΘFop + Ξxi + ΩUi, (4.86)
Yi = Gop + ΦΘFop + ΦΞxi + ΦΩUi (4.87)
4.6.2 Cost Function
The objective of the MPC is to generate simulator control sequences that can best replicate the motion
perception inside a vehicle. As such, we would like to minimize the difference between the output of
the motion perception model for vehicle driver and that of the simulator driver. The nonlinear motion
perception model for the vehicle driver is explained in Section 4.3, where Equations 4.46 and 4.47 are the
equations of motion for perceive motion in the vehicle. Similarly the perceived motion in the simulator
is governed by the augmented system model described in Section 4.2, where Equations 4.38 and 4.39 are
the equations of motion for the perceived motion in the simulator.
The cost function for the optimization can be written as:
Ji =
i+N∑k=i+1
[(yVD
k − ySD,ak
)TQ(yVD
k − ySD,ak
)]+
i+N−1∑k=i
[(uS,ak
)TR(uS,ak
)](4.88)
where Q and R are the error and control penalties respectively. Notice that the output of the vehicle
model yVD
k is a six-dimensional vector containing the perceived specific force in the x, y and z directions,
followed by perceived angular rates, however the output of the perception in the simulator ySD,ak is a
15-dimensional vector, which includes simulator position, velocity, angle and angular rate. We augment
yVD
k with the required number of zeros to penalize the deviation of these variables away from zero. This
allows us to control the magnitude of displacement of the simulator away from zero.
We can write the above cost function in the lifted form as:
Ji =(YVDi −YSD,a
i
)TQ(YVDi −YSD,a
i
)+(US,ai
)TR(US,ai
)(4.89)
Chapter 4. Nonlinear Motion Drive Algorithm 39
where the lifted error penalty Q and control penalty R are given by:
Q =
Q
Q
Q
. . .
Q
, R =
R
R
R
. . .
R
(4.90)
the vector YVDi =
[yVDi+1
TyVDi+2
TyVDi+3
T. . .yVD
i+N
T]T
represents vehicle driver perception over the
prediction window, YSD,ai
T=[ySD,ai+1
TySD,ai+2
TySD,ai+3
T. . .ySD,a
i+N
T]T
represents simulator driver per-
ception over the prediction window, while US,ai =
[uS,ai
TuS,ai+1
T. . . uS,ai+N−1
T]T
is the control vector
over the prediction horizon.
For simplicity, we will write the above equation as:
Ji = (Γi −Yi)T
Q (Γi −Yi) + UTi RUi (4.91)
where Γi represents the reference, which is the vehicle perception YVD,i.
The cost function Ji can be expanded as:
Ji =(ΓTi QΓi − 2ΓTi QYi + YT
i QYi
)+ UT
i RUi (4.92)
Replacing Yi with Equation 4.87 we get:
Ji = + ΓTi QΓi − 2ΓTi Q(Gop + ΦΘFop + ΦΞxi + ΦΩUi)
+ (Gop + ΦΘFop + ΦΞxi + ΦΩUi)T Q(Gop + ΦΘFop + ΦΞxi + ΦΩUi)
+ UTi RUi
(4.93)
Since we are optimizing over Ui, we can simplify the above equation and retain only those terms
that depend on Ui to get:
Ji =− 2ΓTi QΦΩUi + 2(Gop + ΦΘFop)TQΦΩUi
+ 2xTi ΞTΦTQΦΩUi + UT
i ΩTΦTQΦΩUi + UTi RUi
(4.94)
Ji =UTi
[ΩTΦTQΦΩ + R
]Ui
+[−2ΓTi QΦΩ + 2(Gop + ΦΘFop)
TQΦΩ + 2xTi ΞTΦTQΦΩ
]Ui
(4.95)
The cost function is now quadratic in Ui, which is the optimization variable. This puts the cost
function in the desired quadratic form described in Equation 2.5.
Chapter 4. Nonlinear Motion Drive Algorithm 40
4.6.3 Constraints
Here we define the state, input, and output constraints that the system needs to satisfy. Specifically
during a single step of the optimal control, the system needs to satisfy the following constraints over the
prediction horizon:
xSD,amin ≤ xSD,a
k ≤ xSD,amax , k = i+ 1, . . . , i+N (4.96)
ySD,amin ≤ ySD,a
k ≤ ySD,amax , k = i+ 1, . . . , i+N (4.97)
lmin ≤ lk ≤ lmax, k = i+ 1, . . . , i+N (4.98)
uS,amin ≤ uS,ak ≤ uS,amax, k = i, i+ 1, . . . , i+N − 1 (4.99)
In the lifted form the above constraints are given by:
XSD,amin ≤ XSD,a
i ≤ XSD,amax (4.100)
YSD,amin ≤ YSD,a
i ≤ YSD,amax (4.101)
Lmin ≤ Li ≤ Lmax (4.102)
US,amin ≤ US,a
k ≤ US,amax (4.103)
where
XSD,amin = 1N×1 ⊗ xSD,a
min =[xSD,amin
TxSD,amin
T. . . xSD,a
min
T]T
(4.104)
XSD,amax = 1N×1 ⊗ xSD,a
max =[xSD,amax
TxSD,amax
T. . . xSD,a
maxT]T
(4.105)
YSD,amin = 1N×1 ⊗ ySD,a
min =[ySD,amin
TySD,amin
T. . . ySD,a
min
T]T
(4.106)
YSD,amax = 1N×1 ⊗ ySD,a
max =[ySD,amax
TySD,amax
T. . . ySD,a
maxT]T
(4.107)
Lmin = 1N×1 ⊗ lmin =[lmin
T lminT . . . lmin
T]T
(4.108)
Lmax = 1N×1 ⊗ lmax =[lmax
T lmaxT . . . lmax
T]T
(4.109)
US,amin = 1N×1 ⊗ uS,amin =
[uS,amin
TuS,amin
T. . . uS,amin
T]T
(4.110)
US,amax = 1N×1 ⊗ uS,amax =
[uS,amax
TuS,amax
T. . . uS,amax
T]T
(4.111)
We can drop the subscripts and superscripts to simplify the above equation:
Xmin ≤ Xi ≤ Xmax (4.112)
Ymin ≤ Yi ≤ Ymax (4.113)
Lmin ≤ Li ≤ Lmax (4.114)
Umin ≤ Ui ≤ Umax (4.115)
Chapter 4. Nonlinear Motion Drive Algorithm 41
State Constraints
The state constraints on the system are given by:
Xmin ≤ Xi ≤ Xmax (4.116)
Substituting Equation 4.86 for Xi and splitting the two inequality constraints we get:
ΘFop + Ξxi + ΩUi ≤ Xmax (4.117)
−ΘFop −Ξxi −ΩUi ≤ −Xmin (4.118)
ΩUi ≤ Xmax −ΘFop −Ξxi (4.119)
−ΩUi ≤ −Xmin + ΘFop + Ξxi (4.120)
[Ω
−Ω
]Ui ≤
[Xmax −ΘFop −Ξxi
−Xmin + ΘFop + Ξxi
](4.121)
Output Constraints
The output constraints on the system are given by:
Ymin ≤ Yi ≤ Ymax (4.122)
Substituting Equation 4.87 for Yi and splitting the two inequality constraints we get:
Gop + ΦΘFop + ΦΞxi + ΦΩUi ≤ Ymax (4.123)
−Gop −ΦΘFop −ΦΞxi −ΦΩUi ≤ −Ymin (4.124)
ΦΩUi ≤ Ymax −Gop −ΦΘFop −ΦΞxi (4.125)
−ΦΩUi ≤ −Ymin + Gop + ΦΘFop + ΦΞxi (4.126)
[ΦΩ
−ΦΩ
]Ui ≤
[Ymax −Gop −ΦΘFop −ΦΞxi
−Ymin + Gop + ΦΘFop + ΦΞxi
](4.127)
Actuator Constraints
The actuator constraints on the system are given by:
Lmin ≤ Li ≤ Lmax (4.128)
As per Equation 4.75 the actuator length for kth iteration is given by
lk ≈ hop + HuΛyk (4.129)
Chapter 4. Nonlinear Motion Drive Algorithm 42
Stacking up the actuator lengths over the prediction window for the lifted actuator length vector Li
we get:
Li ≈ Hop + ΨYi, (4.130)
where,
Hop = 1N×1 ⊗ hop =[hop hop hop . . . hop
]T, (4.131)
Ψ = IN×N ⊗HuΛ =
HuΛ
HuΛ
HuΛ
. . .
HuΛ
(4.132)
Substituting Equation 4.130 for Li and splitting the two inequality constraints we get:
Hop + ΨYi ≤ Lmax (4.133)
−Hop −ΨYi ≤ −Lmin (4.134)
Substituting Equation 4.87 for Yi we get:
Hop + ΨGop + ΨΦΘFop + ΨΦΞxi + ΨΦΩUi ≤ Lmax (4.135)
−Hop −ΨGop −ΨΦΘFop −ΨΦΞxi −ΨΦΩUi ≤ −Lmin (4.136)
ΨΦΩUi ≤ Lmax −Hop −ΨGop −ΨΦΘFop −ΨΦΞxi (4.137)
−ΨΦΩUi ≤ −Lmin + Hop + ΨGop + ΨΦΘFop + ΨΦΞxi (4.138)
[ΨΦΩ
−ΨΦΩ
]Ui ≤
[Lmax −Hop −ΨGop −ΨΦΘFop −ΨΦΞxi
−Lmin + Hop + ΨGop + ΨΦΘFop + ΨΦΞxi
](4.139)
Overall Constraints
All the constraints stacked up are then given by:
Ω
−Ω
ΦΩ
−ΦΩ
ΨΦΩ
−ΨΦΩ
Ui ≤
Xmax −ΘFop −Ξxi
−Xmin + ΘFop + Ξxi
Ymax −Gop −ΦΘFop −ΦΞxi
−Ymin + Gop + ΦΘFop + ΦΞxi
Lmax −Hop −ΨGop −ΨΦΘFop −ΨΦΞxi
−Lmin + Hop + ΨGop + ΨΦΘFop + ΨΦΞxi
(4.140)
Umin ≤ Ui ≤ Umax (4.141)
Chapter 4. Nonlinear Motion Drive Algorithm 43
4.6.4 Optimization Problem
Finally the optimization problem becomes:
minimizeU ∗
i =u∗i ,u
∗i+1,...,u
∗i+N−1
Ji = UTi
[ΩTΦTQΦΩ + R
]Ui+[
−2ΓTi QΦΩ + 2(Gop + ΦΘFop)TQΦΩ + 2xT
i ΞTΦTQΦΩ]
Ui
,
subject to:
Ω
−Ω
ΦΩ
−ΦΩ
ΨΦΩ
−ΨΦΩ
Ui ≤
Xmax −ΘFop −Ξxi
−Xmin + ΘFop + Ξxi
Ymax −Gop −ΦΘFop −ΦΞxi
−Ymin + Gop + ΦΘFop + ΦΞxi
Lmax −Hop −ΨGop −ΨΦΘFop −ΨΦΞxi
−Lmin + Hop + ΨGop + ΨΦΘFop + ΨΦΞxi
Umin ≤ Ui ≤ Umax
(4.142)
The cost function for this optimization problem is quadratic in the optimization variable Ui with
linear inequality and bound constraints. We can therefore use any quadratic programming solver to
solve the above problem. Once the quadratic optimization problem is solved, the first control input u∗iis applied to the plant, the horizon is shifted, and the process is repeated at the new operating point.
The detailed receding horizon strategy is explained in Section 2.5.
Chapter 5
Linear Motion Drive Algorithm
In this chapter, we present the linear model predictive control based motion drive algorithm. A version
of the linear MDA described in this chapter is used in almost all implementations of MPC based MDA
in the literature. We use this controller as a benchmark to test the performance of the proposed MPC
based MDA described in Chapter 4. We start with a derivation of the linear motion perception model
for simulator and vehicle drivers in Section 5.1, followed by the augmented perception model derived
to separate vehicle rotations and rotations due to tilt coordination in Section 5.2. Finally the linear
quadratic optimal control problem is described in Section 5.3; we first present the lifted state and
output equations in Section 5.3.1, followed by the cost function in Section 5.3.2, we then assemble the
constraint equations in Section 5.3.3, and finally the entire optimization problem is assembled in Section
5.3.4.
5.1 Motion Perception Model for Simulator and Vehicle Driver
5.1.1 Angular Rate
The angular rate between the simulator frame FS and inertial frame FI expressed in frame FS can be
calculated from Euler angle rates βS
=[φS θS ψS
]Tusing:
ωSIS = SβS
(5.1)
For the 1-2-3 (roll, pitch, yaw) Euler angle sequence, the transformation matrix S is given by:
S =
cos θS cosψS sinψS 0
− cos θS sinψS cosψS 0
sin θS 0 1
(5.2)
Using small angle approximation (sin θ ≈ θ, cos θ ≈ 1), the transformation matrix is simplified as:
S ≈
1 ψS 0
−ψS 1 0
θS 0 1
(5.3)
44
Chapter 5. Linear Motion Drive Algorithm 45
Substituting Equation 5.3 into Equation 5.1 and retaining only the first-order terms (assuming small
angles) we get:
ωSIS ≈ βS
(5.4)
5.1.2 Specific Force
The acceleration in the simulator driver frame FSDis given by:
aSD= CSIa
SI + 2ωSI
×
S rSSD+ ωSI
×
S rSSD+ ωSI
×
S ωSI×
S rSSD(5.5)
where aSI =[xSI ySI zSI
]Tis the acceleration of the simulator in the inertial frame, and aSD
is the
acceleration in the simulator driver frame FSD. Note that the simulator frame FS and the simulator
driver frame FSDare parallel. The vector rSSD
is a vector from the simulator frame to the simulator
driver frame.
Since are free to chose the reference point, we can define it such that rSSDis small. Then we can
eliminate the terms with rSSDin Equation 5.5 (i.e. we can eliminate Coriolis acceleration, angular
acceleration and centripetal acceleration). The Equation 5.5 then simplifies to:
aSD≈ CSIa
SI (5.6)
For a 1-2-3 (roll, pitch, yaw) Euler angle sequence, the rotation matrix CSI , which is a function of
the simulator Euler angles βS =[φS θS ψS
]Tis given by:
CSI =
cos θS cosψS cosφS sinψS + cosψS sinφS sin θS sinφS sinψS − cosφS cosψS sin θS
− cos θS sinψS cosφS cosψS − sinφS sin θS sinψS cosψS sinφS + cosφS sin θS sinψS
sin θS − cos θS sinφS cosφS cos θS
,(5.7)
Using small angle approximation, the rotation matrix reduces to:
CSI ≈
1 ψS −θS−ψS 1 φS
θS −φS 1
(5.8)
If we substitute this linearized rotation matrix into Equation 5.6 and keep only the first order terms,
we get (assuming small accelerations):
aSD≈ aSI (5.9)
Specific force is the vector difference between the inertial acceleration and gravity, therefore the
specific force is given by:
fSD= aSI −CSIg = aSI − g
−θS
φS
1
(5.10)
The above equation can be written as:
fSD= H
[βS
TaSI
T]T, (5.11)
Chapter 5. Linear Motion Drive Algorithm 46
where,
H =
0 g 0 1 0 0
−g 0 0 0 1 0
0 0 0 0 0 1
, (5.12)
and
βS =[φS θS ψS
]T, aSI =
[xSI ySI zSI
]T(5.13)
5.1.3 Linear Perception Model and the Overall System Model
The motion in the simulator driver frame is calculated by substituting the angular rate from Equation
5.4 into the semicircular canal model presented in Section 3.1 and substituting the specific force from
Equation 5.11 into the otolith model presented in Section 3.2.
The semicircular canal model is therefore given by:
˙xs = Asxs + Bsω = Asxs + BsωSIS = Asxs + Bsβ
S, (5.14)
ys = Csxs (5.15)
The input to the otolith model is specific force f . Using specific force from Equation 5.11, the otolith
model is given by:
˙xo = Aoxo + Bof = Aoxo + BofSD= Aoxo + BoH
[βS
aSI
], (5.16)
yo = Coxo (5.17)
We can represent BoH as:ˇBo = BoH =
[ˇBo1
ˇBo2
](5.18)
where ˇBo1 ∈ R6×3 is the part of ˇBo ∈ R6×6 that is multiplied by the Euler angles βS and ˇBo2 ∈ R6×3
is the part that is multiplied by the acceleration aSI . We now append Euler angles to the otolith state
vector ¯xo =[xTo βS
T]T∈ R9×1 and define the new modified state space model for the otolith as:
˙xo = ¯Ao ¯xo + ¯BouS , (5.19)
¯yo = ¯Co ¯xo (5.20)
where ¯xo =[xTo βS
T]T∈ R9×1 is the otolith state vector, uS =
[βST
aSIT]T∈ R6×1 is the input
vector, ¯yo =[yTo βS
T]T∈ R6×1 is the output vector. The matrices ¯Ao ∈ R9×9, ¯Bo ∈ R9×6 and
¯Co ∈ R6×9 are given by:
¯Ao =
[Ao
ˇBo1
03×6 03×3
], ¯Bo =
[06×3
ˇBo2
I3×3 03×3
], ¯Co =
[Co 03×3
03×6 I3×3
](5.21)
We define integration equations to integrate the acceleration to calculate velocity and position used
Chapter 5. Linear Motion Drive Algorithm 47
to apply constraints. The integration equations are given by:
xi = Aixi + Biui, (5.22)
yi = Cixi (5.23)
where the state vector xi ∈ R6×1 is given by:
xi =[xSI ySI zSI xSI ySI zSI
]T, (5.24)
the output vector yi ∈ R6×1 is given by:
yi =[xSI ySI zSI xSI ySI zSI
]T, (5.25)
and the input vector ui ∈ R3×1 is given by:
ui =[xSI ySI zSI
]T(5.26)
The matrices Ai ∈ R6×6, Bi ∈ R6×1 and Ci ∈ R6×6 are given by:
Ai =
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
, Bi =
0 0 0
0 0 0
0 0 0
1 0 0
0 1 0
0 0 1
, Ci = I6×6 (5.27)
The overall perception model for the simulator driver is then given by:
xSD = ApxSD + Bpu
S , (5.28)
ySD = CpxSD (5.29)
where the state xSD ∈ R24×1 and control vectors uS ∈ R6×1 are given by:
xSD =[xTs
¯xoT xi
T]T, uS =
[βST
aSIT]T, (5.30)
the output vector ySD ∈ R15×1 is given by:
ySD =[yTs
¯yoT yi
T]T, (5.31)
the matrices Ap ∈ R24×24, Bp ∈ R24×6 and Cp ∈ R15×24 are given by:
Ap =
As 09×9 09×6
09×9¯Ao 09×6
06×9 06×9 Ai
, Bp =
09×3 Bs
¯Bo
06×3 Bi
, Cp =
Cs 03×9 03×6
06×9¯Co 06×6
06×9 06×9 Ci
(5.32)
Chapter 5. Linear Motion Drive Algorithm 48
A similar perception model for the vehicle driver is given by:
xVD = ApxVD + Bpu
V , (5.33)
yVD = CpxVD (5.34)
5.2 Augmented Model for Perception in Simulator
Since the simulator operates in a confined environment, we use tilt coordination to simulate perception
of sustained lateral motion. The tilt coordination technique was discussed in Section 4.2 of Chapter 4.
To separate the rotation angles from tilt coordination angle, we define the augmented system model as:
xSD,a = Aapx
SD,a + Bapu
S,a, (5.35)
ySD,a = Capx
SD,a (5.36)
Here the state xSD,a ∈ R26×1 is given by:
xSD,a =[xs ¯xo xSI ySI zSI xSI ySI zSI φSTC θSTC
]T, (5.37)
where φSTC and θSTC are the tilt coordination roll and pitch angles respectively.
The control vector uS,a ∈ R8×1 is given by:
uS,a =[φS θS ψS xSI ySI zSI φSTC θSTC
]T, (5.38)
the output vector ySD,a ∈ R15×1 is given by:
ySD,a =[ys ¯yo xSI ySI zSI xSI ySI zSI
]T, (5.39)
the matrix Aap ∈ R26×26 is given by:
Aap =
[Ap LA
02×24 02×2
], LA =
09×2ˇBo1[1:4,1:2]
011×2
, ˇBo1[1:4,1:2] =
0 gKxτax
τlxτsx
0 g Kx
τlxτsx
−gKyτay
τlyτsy0
−g Ky
τlyτsy0
(5.40)
From Equation 5.18 we know that ˇBo1 is the part of the matrix ˇBo = BoH that is multiplied to the
roll and pitch Euler angles. With the above equation, we are adding the roll and pitch contributions
from both tilt coordination and rotation when calculating the corresponding state equations.
The matrix Bap ∈ R26×8 is given by:
Bap =
[Bp 024×2
02×6 I2×2
], (5.41)
Chapter 5. Linear Motion Drive Algorithm 49
The output matrix Cap ∈ R15×26 is given by:
Cap =
Cp
07×2
I2×2
06×2
, (5.42)
5.3 Optimal Control Definition
5.3.1 Lifted State and Output Equation
The linear augmented system model is given by:
xSD,a = Aapx
SD,a + Bapu
S,a, (5.43)
ySD,a = Capx
SD,a (5.44)
To simplify the equations, we will drop the subscripts and superscripts and write the linear augmented
system mode as:
x = Ax + Bu, (5.45)
y = Cx (5.46)
The discretized version of the above equation is given by:
xk+1 = Axk + Buk, (5.47)
yk = Cxk, (5.48)
where,
A = I + TsA, B = TsB, (5.49)
and Ts is the discretization time constant.
For the ith, N step prediction window, we can assemble the lifted form of state equations as:
Xi = Ξxi + ΩUi, (5.50)
where,
Xi =[xi+1
T xi+2T xi+3
T . . . xi+NT]T, Ui =
[ui
T ui+1T ui+2
T . . . ui+N−1T]T,
(5.51)
Ξ =
A
A2
A3
...
AN
, Ω =
B
AB B
A2B AB B...
......
. . .
AN−1B AN−2B AN−3B . . . B
(5.52)
Chapter 5. Linear Motion Drive Algorithm 50
Similarly, the output equation is given by:
Yi = ΦXi, (5.53)
where,
Yi =[yi+1 yi+2 yi+3 . . . yi+N
]T, Xi =
[xi+1 xi+2 xi+3 . . . xi+N
]T, (5.54)
Φ =
C
C
C
. . .
C
(5.55)
The output equation can also be written as:
Yi = ΦXi = Φ(Ξxi + ΩUi) = ΦΞxi + ΦΩUi (5.56)
Hence,
Xi = Ξxi + ΩUi, (5.57)
Yi = ΦΞxi + ΦΩUi (5.58)
5.3.2 Cost Function
Similar to the nonlinear case in Chapter 4, Section 4.6.2, the cost function for the optimization can be
written as:
Ji =
i+N∑k=i+1
[(yVD
k − ySD,ak
)TQ(yVD
k − ySD,ak
)]+
i+N−1∑k=i
[(uS,ak
)TR(uS,ak
)](5.59)
where Q and R are the error and control penalties respectively. Notice that the output of the vehicle
model yVD
k is a six-dimensional vector containing the perceived specific force in the x, y and z directions,
followed by perceived angular rates, however the output of the perception in the simulator ySD,ak is a
15-dimensional vector, which includes simulator position, velocity, angle and angular rate. We augment
yVD
k with the required number of zeros to penalize the deviation of these variables away from zero. This
allows us to control the magnitude of displacement of the simulator away from zero.
We can write the above cost function in the lifted form as:
Ji =(YVDi −YSD,a
i
)TQ(YVDi −YSD,a
i
)+(US,ai
)TR(US,ai
)(5.60)
Chapter 5. Linear Motion Drive Algorithm 51
where the lifted error penalty Q and control penalty R are given by:
Q =
Q
Q
Q
. . .
Q
, R =
R
R
R
. . .
R
(5.61)
the vector YVDi =
[yVDi+1
TyVDi+2
TyVDi+3
T. . .yVD
i+N
T]T
represents vehicle driver perception over the pre-
diction window, YSD,ai =
[ySD,ai+1
TySD,ai+2
TySD,ai+3
T. . .ySD,a
i+N
T]T
represents simulator driver perception
over the prediction window, while US,ai =
[uS,ai
TuS,ai+1
T. . . uS,ai+N−1
T]T
is the control vector over
the prediction horizon.
For simplicity, we will write the above equation as:
Ji = (Γi −Yi)T
S (Γi −Yi) + UTi RUi (5.62)
where Γi represents the reference, which is the vehicle perception YVDi .
The cost function Ji can be expanded as:
Ji = (Γi −Yi)T
S (Γi −Yi) + UTi RUi (5.63)
=(ΓTi SΓi − 2ΓTi SYi + YT
i SYi
)+ UT
i RUi (5.64)
Now if we replace Yi with Equation 5.58, we get:
Ji = + ΓTi SΓi − 2ΓTi S(ΦΞxi + ΦΩUi)
+ (ΦΞxi + ΦΩUi)T S(ΦΞxi + ΦΩUi)
+ UTi RUi
(5.65)
Since we are optimizing over Ui, we simplify the above equation and retain only those terms that
depend on Ui to get:
Ji =− 2ΓTi SΦΩUi + 2xTi ΞTΦTSΦΩUi + UT
i ΩTΦTSΦΩUi + UTi RUi (5.66)
Ji =UTi
[ΩTΦTSΦΩ + R
]Ui +
[−2ΓTi SΦΩ + 2xT
i ΞTΦTSΦΩ]
Ui (5.67)
The cost function is now quadratic in Ui, which is the optimization variable. This puts the cost
function in the desired quadratic form described in Equation 2.5.
Chapter 5. Linear Motion Drive Algorithm 52
5.3.3 Constraints
Here we define the state, input, and output constraints that the system needs to satisfy. Specifically
during a single step of the optimal control, the system needs to satisfy the following constraints over the
prediction horizon:
xSD,amin ≤ xSD,a
k ≤ xSD,amax , k = i+ 1, . . . , i+N (5.68)
ySD,amin ≤ ySD,a
k ≤ ySD,amax , k = i+ 1, . . . , i+N (5.69)
uS,amin ≤ uS,ak ≤ uS,amax, k = i, i+ 1, . . . , i+N − 1 (5.70)
In the lifted form the above constraints are given by:
XSD,amin ≤ XSD,a
i ≤ XSD,amax (5.71)
YSD,amin ≤ YSD,a
i ≤ YSD,amax (5.72)
US,amin ≤ US,a
k ≤ US,amax (5.73)
where
XSD,amin = 1N×1 ⊗ xSD,a
min =[xSD,amin
TxSD,amin
T. . . xSD,a
min
T]T
(5.74)
XSD,amax = 1N×1 ⊗ xSD,a
max =[xSD,amax
TxSD,amax
T. . . xSD,a
maxT]T
(5.75)
YSD,amin = 1N×1 ⊗ ySD,a
min =[ySD,amin
TySD,amin
T. . . ySD,a
min
T]T
(5.76)
YSD,amax = 1N×1 ⊗ ySD,a
max =[ySD,amax
TySD,amax
T. . . ySD,a
maxT]T
(5.77)
US,amin = 1N×1 ⊗ uS,amin =
[uS,amin
TuS,amin
T. . . uS,amin
T]T
(5.78)
US,amax = 1N×1 ⊗ uS,amax =
[uS,amax
TuS,amax
T. . . uS,amax
T]T
(5.79)
We can drop the subscripts and superscripts to simplify the above equation:
Xmin ≤ Xi ≤ Xmax (5.80)
Ymin ≤ Yi ≤ Ymax (5.81)
Umin ≤ Ui ≤ Umax (5.82)
State Constraints
The state constraints on the system are given by:
Xmin ≤ Xi ≤ Xmax (5.83)
Substituting Equation 5.57 for Xi and splitting the two inequality constraints we get:
Ξxi + ΩUi ≤ Xmax (5.84)
−Ξxi −ΩUi ≤ −Xmin (5.85)
Chapter 5. Linear Motion Drive Algorithm 53
ΩUi ≤ Xmax −Ξxi (5.86)
−ΩUi ≤ −Xmin + Ξxi (5.87)[Ω
−Ω
]Ui ≤
[Xmax −Ξxi
−Xmin + Ξxi
](5.88)
Output Constraints
The output constraints on the system are given by:
Ymin ≤ Yi ≤ Ymax (5.89)
Substituting Equation 5.58 for Yi and splitting the two inequality constraints we get:
ΦΞxi + ΦΩUi ≤ Ymax (5.90)
−ΦΞxi −ΦΩUi ≤ −Ymin (5.91)
ΦΩUi ≤ Ymax −ΦΞxi (5.92)
−ΦΩUi ≤ −Ymin + ΦΞxi (5.93)
[ΦΩ
−ΦΩ
]Ui ≤
[Ymax −ΦΞxi
−Ymin + ΦΞxi
](5.94)
Overall Constraints
The constraints are then given by:Ω
−Ω
ΦΩ
−ΦΩ
Ui ≤
Xmax −Ξxi
−Xmin + Ξxi
Ymax −ΦΞxi
−Ymin + ΦΞxi
(5.95)
Umin ≤ Ui ≤ Umax (5.96)
Chapter 5. Linear Motion Drive Algorithm 54
5.3.4 Optimization Problem
Finally the optimization problem becomes:
minimizeU ∗
i =u∗i ,u
∗i+1,...,u
∗i+N−1
Ji = UTi
[ΩTΦTSΦΩ + R
]Ui+[
−2ΓTi SΦΩ + 2xTi ΞTΦTSΦΩ
]Ui
,
subject to:
Ω
−Ω
ΦΩ
−ΦΩ
Ui ≤
Xmax −Ξxi
−Xmin + Ξxi
Ymax −ΦΞxi
−Ymin + ΦΞxi
Umin ≤ Ui ≤ Umax
(5.97)
The cost function for this optimization problem is quadratic in the optimization variable Ui with
linear inequality and bound constraints. We can therefore use any quadratic programming solver to
solve the above problem. Once the quadratic optimization problem is solved, the first control input u∗iis applied to the plant, the horizon is shifted, and the process is repeated at the new operating point.
The detailed receding horizon strategy is explained in Section 2.5.
Chapter 6
Simulation Results and Discussion
In this chapter, we present simulation results and analyze various aspects of the proposed controller. We
start with a description of all the test cases in Section 6.1. In this chapter, we only discuss a subset of
these cases to highlight the key features and limitations of the controller; detailed results are presented
in Appendix B while the control parameters are provided in Appendix A. In Section 6.2 we provide a
detailed discussion on normal acceleration and deceleration and normal left turn maneuvers. In Section
6.3 we assess the quality of the perceived motion inside the simulator when using the proposed controller.
In Section 6.4, we compare the results of the nonlinear motion drive algorithm described in Chapter 4
with those of the linear motion drive algorithm described in Chapter 5. We then analyze the impact of
different prediction windows on the performance of the motion drive in Section 6.5. The study allows
us to chose a prediction window that provides a good balance between speed and performance. Finally,
in Section 6.6 we discuss the tuning procedure and limitation of the controller.
6.1 Simulation Test Cases
Seven different maneuvers are executed to evaluate the performance of the MDA. These cases assess the
response of the controller over a wide operational envelope. The test maneuvers were recorded using
DriverLab. Cases 1, 2, 3 and 4 represent normal driving scenarios while cases 5, 6 and 7 are aggressive
performance maneuvers. In Appendix B we provide detailed results for cases 3 to 7.
Table 6.1: Summary of all simulation test cases
Case Maneuver Type Ref. Complete Results Description
1
Normal
Section 6.2 Normal acceleration and deceleration
2 Section 6.2 Normal left turn
3 Appendix B.1 Normal right turn
4 Appendix B.5 Normal driving
5
Performance
Appendix B.2 Aggressive acceleration and deceleration
6 Appendix B.3 Aggressive left turn
7 Appendix B.4 Aggressive right turn
55
Chapter 6. Simulation Results and Discussion 56
6.2 Results for Normal Acceleration/Deceleration and Normal
Left Turn
In this Section, we will present results for the normal acceleration/deceleration maneuver and normal
left turn. We start by looking at the vehicle dynamics during these maneuvers in Section 6.2.1. Then in
Section 6.2.2 we discuss the simulator dynamics while simulating motion using the nonlinear MPC based
MDA. In Section 6.2.3 we look at the hexapod actuator excursions while using the nonlinear controller.
We then present the perception of motion in the vehicle and compare it against the perception of motion
in the simulator for the nonlinear controller in Section 6.2.4 and that for the linear controller in Section
6.2.5. The same sequence is used in detailed results for other maneuvers presented in Appendix B.
6.2.1 Vehicle Kinematics
The vehicle position during the normal acceleration and deceleration maneuver is shown in Figure 6.1a.
For normal acceleration and deceleration maneuver, the vehicle moves in a straight line from the starting
position (shown using a red dot •) to the ending position (shown using a red star ∗). The vehicle position
during normal left turn is shown in Figure 6.1b. In this case the vehicle makes a 90 turn.
3800 3900 4000 4100 4200
x(m)
-4964
-4963.5
-4963
-4962.5
-4962
-4961.5
-4961
-4960.5
-4960
y(m
)
(a) Vehicle position for normal acceleration
4050 4100 4150 4200
x(m)
-4960
-4940
-4920
-4900
-4880
-4860
y(m
)
(b) Vehicle position for normal left turn
Figure 6.1: Vehicle motion
Vehicle kinematics during the normal acceleration/deceleration maneuver are shown in Figure 6.2.
At the start of this maneuver, the vehicle accelerates in the x direction at approximately 2m/s2. The
resulting velocity is maintained for about 20 seconds after which a braking deceleration of approximately
4m/s2 is applied, generating a −0.4g acceleration along the x axis. The acceleration in the y and z
directions is small compared to that in the x direction. Since we do not turn in this maneuver, the Euler
angles φ and ψ are also small. The pitch angle θ reaches approximately ±1 due to compression of the
car’s suspension during the deceleration maneuver. Since the vehicle is not turning, ωx and ωz are small.
Note, the vehicle model generates sharp spikes in acceleration that are likely not realistic but this is the
only vehicle model that was available at the time.
Chapter 6. Simulation Results and Discussion 57
0 10 20 30 40
Time (s)
-6
-4
-2
0
2
ax(m
/s2)
ax
0 10 20 30 40
Time (s)
-0.1
0
0.1
ay(m
/s2)
ay
0 10 20 30 40
Time (s)
-0.2
0
0.2
0.4
az(m
/s2)
az
0 10 20 30 40
Time (s)
-0.05
0
0.05
φ(deg)
φ
0 10 20 30 40
Time (s)
-0.5
0
0.5
1
θ(deg)
θ
0 10 20 30 40
Time (s)
-0.2
-0.1
0
0.1
0.2
ψ(deg)
ψ
0 10 20 30 40
Time (s)
-0.3
-0.2
-0.1
0
0.1
ωx(deg/s)
ωx
0 10 20 30 40
Time (s)
-1
0
1
2
3
ωy(deg/s)
ωy
0 10 20 30 40
Time (s)
-0.4
-0.2
0
0.2
0.4
ωz(deg/s)
ωz
Figure 6.2: Vehicle data for normal acceleration and deceleration
In the case of the normal left turn, shown in Figure 6.3, we see significant lateral acceleration; the
centripetal acceleration observed during the turn reaches 4m/s2. The car reaches a roll angle of around
1.7due to suspension compliance. A yaw rate ωz of approximately 22/s occurs during the maneuver.
6.2.2 Simulator Kinematics for the Nonlinear Controller
The simulator kinematics for normal acceleration/deceleration are shown in Figure 6.4 while the kine-
matics for the normal left turn are shown in Figure 6.5. During the vehicle acceleration and deceleration,
the simulator moves in the x direction, building up velocity1. The simulator displacements allow us to
replicate the high-frequency component of the acceleration maneuver.
To simulate the low-frequency component, the simulator uses tilt-coordination; this is evident in the
simulator pitch angles (θ) and pitch rate (ωy). The simulator reaches a pitch angle of approximately
10 to simulate the low-frequency component of the forward acceleration, thereby pushing the simulator
driver back into the seat and using the force of gravity to produce the perception of forward acceleration.
The reverse happens during deceleration where the simulator achieves a pitch down of approximately
−18; this causes the driver to push out of the seat in a forward direction, simulating deceleration.
1The red lines on the top of every plot represent the constraint boundaries. We can see that the simulator satisfies allconstraints at all times.
Chapter 6. Simulation Results and Discussion 58
0 5 10 15 20
Time (s)
-2
-1
0
1
ax(m
/s2)
ax
0 5 10 15 20
Time (s)
0
1
2
3
4
ay(m
/s2)
ay
0 5 10 15 20
Time (s)
-0.1
0
0.1
az(m
/s2)
az
0 5 10 15 20
Time (s)
0
0.5
1
1.5
φ(deg)
φ
0 5 10 15 20
Time (s)
0
0.5
1
θ(deg)
θ
0 5 10 15 20
Time (s)
100
120
140
160
180
ψ(deg)
ψ
0 5 10 15 20
Time (s)
-1
0
1
ωx(deg/s)
ωx
0 5 10 15 20
Time (s)
-2
0
2
ωy(deg/s)
ωy
0 5 10 15 20
Time (s)
0
5
10
15
20
ωz(deg/s)
ωz
Figure 6.3: Vehicle data for normal left turn
Notice that in both acceleration and deceleration cases, the simulator angular rate is under 5/s, which
is an acceptable threshold for tilt-coordination.
The results for the normal left turn follow the predictable pattern for simulating forces in the y-
direction. There is some acceleration component in the x-axis so the simulator has some fore-aft move-
ment. However, the most significant motion is in the y-direction. In this case, the simulator is producing
the high-frequency component of y acceleration by moving the simulator left and right and after the
turn, the simulator cab rotates by 90 thereby switching the x with y-axis, and therefore demanding
displacement along x. The simulator uses the roll angle (φ) with a limited roll rate (ωx) for the low
frequency components. Note that in this case as well, the simulator remains below the 5/s perception
threshold. Turn maneuvers generate substantial yaw angular rate which is reproduced almost exactly
by the turn-table.
Chapter 6. Simulation Results and Discussion 59
0 20 40
Time (s)
-0.5
0
0.5x(m
)
x
0 20 40
Time (s)
-0.5
0
0.5
y(m
)
y
0 20 40
Time (s)
-0.5
0
0.5
z(m
)
z
0 20 40
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 20 40
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 20 40
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 20 40
Time (s)
-2
-1
0
1
ax(m
/s2)
ax
0 20 40
Time (s)
-0.2
0
0.2
0.4
0.6
0.8
ay(m
/s2)
ay
0 20 40
Time (s)
-5
0
5
az(m
/s2)
az
0 20 40
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 20 40
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 20 40
Time (s)
-200
0
200
ψ(deg)
ψ
0 20 40
Time (s)
-2
0
2
ωx(deg/s)
ωx
0 20 40
Time (s)
-5
0
5
ωy(deg/s)
ωy
0 20 40
Time (s)
-0.5
0
0.5
ωz(deg/s)
ωz
0 20 40
Time (s)
-1
0
1
ωx(deg/s
2)
ωx
0 20 40
Time (s)
-2
0
2
ωy(deg/s
2)
ωy
0 20 40
Time (s)
-0.2
-0.1
0
0.1
ωz(deg/s
2)
ωz
Figure 6.4: Simulator data for normal acceleration and deceleration (nonlinear model)
Chapter 6. Simulation Results and Discussion 60
0 10 20
Time (s)
-0.5
0
0.5
x(m
)
x
0 10 20
Time (s)
-0.5
0
0.5
y(m
)
y
0 10 20
Time (s)
-0.5
0
0.5
z(m
)
z
0 10 20
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 10 20
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 10 20
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 10 20
Time (s)
-1.5
-1
-0.5
0
0.5
ax(m
/s2)
ax
0 10 20
Time (s)
-1.5
-1
-0.5
0
0.5
ay(m
/s2)
ay
0 10 20
Time (s)
-5
0
5
az(m
/s2)
az
0 10 20
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 10 20
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 10 20
Time (s)
-200
0
200
ψ(deg)
ψ
0 10 20
Time (s)
-5
0
5
ωx(deg/s)
ωx
0 10 20
Time (s)
-5
0
5
ωy(deg/s)
ωy
0 10 20
Time (s)
0
5
10
15
20
ωz(deg/s)
ωz
0 10 20
Time (s)
-5
0
5
ωx(deg/s
2)
ωx
0 10 20
Time (s)
-5
0
5
ωy(deg/s
2)
ωy
0 10 20
Time (s)
-2
-1
0
1
ωz(deg/s
2)
ωz
Figure 6.5: Simulator data for normal left turn (nonlinear model)
Chapter 6. Simulation Results and Discussion 61
6.2.3 Simulator Actuator Excursions for the Nonlinear Controller
In Figure 6.6, we present the actuator excursions while simulating the normal acceleration and decelera-
tion. For the acceleration maneuver, we can see three actuator pairs 1 & 6, 2 & 5 and 3 & 4 have almost
identical time histories. This is because, with the forward-backward and pitch up-down motion, the
x-axis becomes the line of symmetry. Actuators 1 and 6 reach close to the constraint boundary and the
nonlinear hexapod model constraints allow the controller to avoid hitting the actuator limits presented
by the dotted red lines. In the case of the turn maneuver, all actuators meet the constraint boundaries.
0 20 40 60
Time (s)
-0.5
0
0.5
l 1(m
)
l1
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 2(m
)
l2
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 5(m
)
l5
0 20 40 60
Time (s)
-0.5
0
0.5
l 6(m
)
l6
Figure 6.6: Actuator lengths for normal acceleration and deceleration (nonlinear model)
Chapter 6. Simulation Results and Discussion 62
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6l 1(m
)
l1
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 2(m
)
l2
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 5(m
)
l5
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 6(m
)
l6
Figure 6.7: Actuator lengths for normal normal left turn (nonlinear model)
6.2.4 Comparison of Perception in Vehicle and Simulator for the Nonlinear
Controller
Figure 6.8 shows a comparison between the perception in simulator and vehicle for normal acceleration
and deceleration while Figure 6.9 shows that for the normal left turn maneuver. For the normal accelera-
tion and deceleration case, we have good tracking of the x specific force, while the tilt-coordination pitch
angular rate ωy is close to the 5/s threshold. We can observe similar performance regarding tracking
accuracy and constraint satisfaction in the normal left turn case. A more thorough discussion on the
perception quality is provided later in Section 6.3.
6.2.5 Comparison of Perception in Vehicle and Simulator for the Linear
Controller
Figure 6.10 shows the comparison between the perception in simulator and vehicle for normal acceleration
and deceleration for the linear controller while Figure 6.11 shows that for the normal left turn. While
the tracking accuracy of the linear controller is acceptable in the case of acceleration and deceleration,
the system is very inaccurate during the left turn. The left turn maneuver exposes the deficiency of the
small angle approximation. A more thorough discussion on this topic is presented later in Section 6.4.1.
Chapter 6. Simulation Results and Discussion 63
0 20 40
Time (s)
-3
-2
-1
0
1f(m
/s2)
fx
Sim
Veh
0 20 40
Time (s)
-0.4
-0.2
0
0.2
f(m
/s2)
fy
Sim
Veh
0 20 40
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 20 40
Time (s)
-3
-2
-1
0
1
2
ω(deg/s)
ωx
Sim
Veh
0 20 40
Time (s)
-5
0
5
ω(deg/s)
ωy
Sim
Veh
0 20 40
Time (s)
-0.5
0
0.5
ω(deg/s)
ωz
Sim
Veh
Figure 6.8: Perception for normal acceleration and deceleration (nonlinear model)
0 10 20
Time (s)
-0.5
0
0.5
f(m
/s2)
fx
Sim
Veh
0 10 20
Time (s)
-0.5
0
0.5
1
1.5
2
2.5
f(m
/s2)
fy
Sim
Veh
0 10 20
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 10 20
Time (s)
-4
-2
0
2
4
6
ω(deg/s)
ωx
Sim
Veh
0 10 20
Time (s)
-4
-2
0
2
4
6
8
ω(deg/s)
ωy
Sim
Veh
0 10 20
Time (s)
-10
-5
0
5
10
15
ω(deg/s)
ωz
Sim
Veh
Figure 6.9: Perception for normal normal left turn (nonlinear model)
Chapter 6. Simulation Results and Discussion 64
0 20 40
Time (s)
-3
-2
-1
0
1f(m
/s2)
fx
Sim
Veh
0 20 40
Time (s)
-0.4
-0.2
0
0.2
f(m
/s2)
fy
Sim
Veh
0 20 40
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 20 40
Time (s)
-0.2
0
0.2
0.4
ω(deg/s)
ωx
Sim
Veh
0 20 40
Time (s)
-4
-2
0
2
4
6
ω(deg/s)
ωy
Sim
Veh
0 20 40
Time (s)
-0.5
0
0.5
ω(deg/s)
ωz
Sim
Veh
Figure 6.10: Perception for normal acceleration and deceleration (linear model)
0 5 10 15 20
Time (s)
-0.5
0
0.5
1
1.5
f(m
/s2)
fx
Sim
Veh
0 5 10 15 20
Time (s)
-1
0
1
2
f(m
/s2)
fy
Sim
Veh
0 5 10 15 20
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10 15 20
Time (s)
-4
-2
0
2
4
6
ω(deg/s)
ωx
Sim
Veh
0 5 10 15 20
Time (s)
-4
-2
0
2
4
6
ω(deg/s)
ωy
Sim
Veh
0 5 10 15 20
Time (s)
-5
0
5
10
15
ω(deg/s)
ωz
Sim
Veh
Figure 6.11: Perception for normal normal left turn (linear model)
Chapter 6. Simulation Results and Discussion 65
6.3 Quality of Perception
In this section, we assess the quality of the perceived motion inside the simulator when using the proposed
nonlinear MPC based MDA. We use the otolith and semicircular canal models described in Chapters 3
and 4 to calculate the perception resulting from the simulator motion. It should be noted, however, that
comparing the perceived motion in the simulator and vehicle calculated using the perception models is a
somewhat crude attempt to assess the quality of the controller. The human brain integrates information
from visual, vestibular, proprioceptive and tactile sensors to get a sense of the body’s position, movement,
and acceleration. We need to perform studies with human test subjects to accurately characterize the
performance of this controller and compare it with other filter-based MDAs. These experiments with
human subjects form the next steps in the development of the MPC based MDA. The discussion here
is intended to provide some insights into the quality of perception from an MPC based MDA and aims
to characterize the essential performance characteristics of the controller. Here we will look at two
maneuvers: the normal left turn and the aggressive right turn.
0 5 10 15 20
Time (s)
-0.5
0
0.5
f(m
/s2)
fx
Sim
Veh
0 5 10 15 20
Time (s)
-0.5
0
0.5
1
1.5
2
2.5
f(m
/s2)
fy
Sim
Veh
0 5 10 15 20
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10 15 20
Time (s)
-1.5
-1
-0.5
0
0.5
1
1.5
ω(deg/s)
ωx
Sim
Veh
0 5 10 15 20
Time (s)
-4
-2
0
2
ω(deg/s)
ωy
Sim
Veh
0 5 10 15 20
Time (s)
-10
-5
0
5
10
15
ω(deg/s)
ωz
Sim
Veh
Figure 6.12: Perception in simulator vs. perception in the vehicle for normal left turn
A key aspect of a good MDA is its ability to track the shape of vehicle perception accurately. Typical
drivers are unable to accurately resolve the magnitude of the specific force. Their sense of motion has
more to do with correlating the visual motion with the direction of the forces. It can be seen from Figure
6.12 that within the limitations of the simulator workspace, the nonlinear controller can track the shape
of the vehicle perception for a normal left turn maneuver with relatively good accuracy. In Figure 6.13,
however, it can be seen that the tracking is poor for the aggressive right turn.
Figure 6.12 shows the perceived specific force and angular rate in the vehicle and simulator for
a normal left turn maneuver. We see that for a low frequency, small amplitude specific force, the
Chapter 6. Simulation Results and Discussion 66
simulator can track the vehicle perception. Notice the disparity in the y specific force between 14 and 16
seconds; this is due to the rate limitation imposed on the controller that prevents it from quickly getting
back to horizontal position after simulating the low-frequency specific force through tilt coordination.
This would not necessarily feel completely inaccurate because the system catches up with the vehicle
perception relatively quickly; this will become clearer with tests on the TRI DriverLab. Figure 6.12 also
shows that the shape of angular rate is captured in the response. The disparity between the simulator
and vehicle angular rate perception caused by tilt-coordination is well under the desired 5 degree per
second. We also see that the system has no trouble matching the yaw rate because of the large constraint
boundaries in the yaw DOF due to the turntable.
0 5 10 15 20
Time (s)
-3
-2
-1
0
1
f(m
/s2)
fx
Sim
Veh
0 5 10 15 20
Time (s)
-6
-4
-2
0f(m
/s2)
fy
Sim
Veh
0 5 10 15 20
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10 15 20
Time (s)
-5
0
5
10
ω(deg/s)
ωx
Sim
Veh
0 5 10 15 20
Time (s)
-4
-2
0
2
ω(deg/s)
ωy
Sim
Veh
0 5 10 15 20
Time (s)
-30
-20
-10
0
10
20
ω(deg/s)
ωz
Sim
Veh
Figure 6.13: Perception in simulator vs. perception in the vehicle for aggressive right turn
While using tilt coordination, we have to be careful to avoid producing false rotation cues by rotating
the simulator at rates higher than the perception threshold. The real perception threshold for the angular
rate is around 3 deg/s [46]. However, as discussed earlier, angular rates up to 5 deg/s can go undetected
when the operator is busy with the driving task. In Figure 6.12 and 6.13 we can see how the system
hovers around 3 − 4 deg/s sensed angular rate during the turn maneuver. In some instances, the rate
goes above the limit, but those are consistent with large vehicle angular rates in the same direction.
Also, notice how the shape of the simulator angular rate perception is similar to that of the vehicle.
This is a result of the augmented model whereby the split in the angular rate allows us to put a high
weight on the tracking error for angular rate penalty while applying a constraint on the tilt-coordination
part.
Figure 6.13 shows the perceived specific force and angular rate in the vehicle and simulator for an
aggressive right turn maneuver. The tracking accuracy of the aggressive right turn is qualitatively much
Chapter 6. Simulation Results and Discussion 67
worse than that for the normal maneuver. The system is unable to track the magnitude or the shape
accurately. We should understand that this maneuver is demanding excursions along the roll and pitch
as well as the x and y-directions with very high rates of motion. It is not surprising that the system
is hitting constraint boundaries because the simulator quickly runs out of actuator displacements when
trying to tilt and move around the x and y-axes simultaneously.
In this section, we only discussed the maneuvers on the extreme ends of the operational envelope.
We present other interesting cases such as acceleration and deceleration in Appendix B. We also show
results from the normal driving case, where we assess the system performance during a normal drive.
Overall, we were able to achieve relatively good tracking performance for normal maneuvers but faced
similar problems to the ones described above for other aggressive maneuvers.
6.4 Comparison Between the Linear and Nonlinear Controller
6.4.1 Perception and False Cues
The linear MPC based MDA described in Chapter 5 assumes small angles and rates. However, the
hexapod is capable of reaching angles that are greater than 20. The small angle approximation breaks
down at such large angles. In fact, the error significantly amplifies with a turntable that has a yaw
excursion of ±360; this results in large perception errors and false cues. Figure 6.14 shows a comparison
between the vehicle and simulator perception for linear and nonlinear controllers. Figure 6.14a shows
specific force along x and y-axes and the perceived yaw angular rate for the normal left turn maneuver
while Figure 6.14b shows that for the normal acceleration and deceleration maneuver. Detailed results
for these maneuvers are provided in Section 6.2.
The left turn maneuver requires a 90 rotation of the turntable, which effectively switches the di-
rection of the x and y-axes. From Figure 6.14a it is evident that after the turntable has rotated, the
linear controller, with a small angle approximation, produces a large specific force along the x direction
while reducing the specific force in the y direction; resulting in significant false cues. We can see very
clearly that developing an MDA that assumes small angles can lead to large perception errors, resulting
in poor performance, particularly when a turntable is used. By successively re-linearizing the nonlinear
system at new operating points, the system is able to track the vehicle perception far more accurately.
While it is true that the small angle approximation has poor results with a turntable, we can see in
Figure 6.14b that it does a relatively good job at tracking vehicle perception for the normal acceleration
and deceleration maneuver. So one can conclude that a hexapod-only motion base could use the linear
controller with qualitatively similar results to a nonlinear controller for a hexapod-only motion base.
The nonlinear controller, on the other hand, has no problem tracking the vehicle perception and
closely matches it during the turn as well as the acceleration and deceleration maneuvers for modest
motions. The results show the practicality of using successive re-linearization technique presented in the
proposed controller. The algorithm was able to handle system nonlinearities with relative ease without
any cost to the time efficiency of the solver. The only step requiring computational effort is the evaluation
of the Jacobians at new operating points; which is not very costly.
Chapter 6. Simulation Results and Discussion 68
0 10 20
Time (s)
-0.5
0
0.5
1
1.5f(m
/s2)
fx
Sim (lin)Sim (nlin)Veh
0 10 20
Time (s)
-1
-0.5
0
0.5
1
1.5
2
2.5
f(m
/s2)
fy
Sim (lin)Sim (nlin)Veh
0 10 20
Time (s)
-0.1
0
0.1
0.2
ω(rad/s)
ωz
Sim (lin)Sim (nlin)Veh
(a) Perception during normal left turn
0 20 40
Time (s)
-3
-2
-1
0
1
f(m
/s2)
fx
Sim (lin)Sim (nlin)Veh
0 20 40
Time (s)
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2f(m
/s2)
fy
Sim (lin)Sim (nlin)Veh
0 20 40
Time (s)
-5
0
5
10
ω(rad/s)
×10-3 ωz
Sim (lin)Sim (nlin)Veh
(b) Perception during normal acceleration
Figure 6.14: Comparison of perception in vehicle vs. simulator for linear and nonlinear controllers fornormal left turn and normal acceleration & deceleration
6.4.2 Hexapod Actuator Constraints
In the nonlinear controller described in Chapter 5, we introduced simulator hexapod constraints in
Section 4.4. The motion base limitations summarized in Table 1.1 in Chapter 1 are for independent
motion along each of the six degrees of freedom. We could use those as linear boxed constraints on the
system, however, in some cases such as during acceleration simulation, the simulator moves forward to
generate the high-frequency onset cues while tilting to produce low frequency sustained acceleration.
Since the real limitation on the simulator is the actuator limits, a combination of forward displacement
and tilt, quickly consumes the actuator stroke.
We can choose to use a smaller bounding box for the linear boxed constraints or use the successive
re-linearized hexapod model from Section 4.4 to account for actuator constraints directly. Figure 6.15
shows the actuator excursions for the normal acceleration and deceleration maneuver. Detailed results
for this maneuver are provided in Appendix 6.2. We can see how the nonlinear controller with actuator
constraints can satisfy the actuator limits while the same motion from the linear controller exceeds the
constraint boundary. Of course, we could reduce the bounding box in the linear controller, but that would
create a smaller operational envelope for all cases (even when only a single DOF is in use). This shows
that the successive re-linearization of the hexapod model is a reasonable technique for incorporating
nonlinear actuator constraints.
Chapter 6. Simulation Results and Discussion 69
0 20 40 60
Time (s)
-0.5
0
0.5
l 1(m
)
l1
Linear
Nonlinear
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 2(m
)
l2
Linear
Nonlinear
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
Linear
Nonlinear
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
Linear
Nonlinear
0 20 40 60
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 5(m
)
l5
Linear
Nonlinear
0 20 40 60
Time (s)
-0.5
0
0.5
l 6(m
)
l6
Linear
Nonlinear
Figure 6.15: Comparison between the linear and nonlinear controllers for actuator constraintsatisfaction during normal acceleration and deceleration maneuver
6.5 Effect of Prediction Window Length
There is no precise method for choosing the prediction window for MPCs. Therefore, prediction windows
are selected through a trial and error approach. The goal is to ensure that the system remains stable, is
computationally manageable and has sufficient accuracy. To determine a reasonable prediction window
for the proposed MPC based MDA, we try five different options ranging from 1 to 5 seconds. We use the
aggressive acceleration and deceleration maneuver as the test case because it demands significant and
rapid excursions. We also show results for normal acceleration and deceleration maneuver to examine if
the selected prediction window has good performance in normal cases. We chose the acceleration and
deceleration maneuvers as the example because they only use excursions in two degrees of freedom (x
and θ), making it easy to discern the system performance.
Figure 6.16a shows the effect of the different prediction windows on the tracking accuracy for the
aggressive acceleration and deceleration maneuver while Figure 6.16b shows the same for the normal
acceleration and deceleration maneuver. In Table 6.22 we summarize the performance characteristics for
the two maneuvers; the data is plotted in Figure 6.18. We also show the x position of the simulator and
its pitch angle (θ) in Figure 6.17 to understand how the system uses the feasible region under different
prediction windows.
2Simulations were performed on MacBook Pro with 2.6 GHz Intel Core i5 processor with 8 GB RAM.
Chapter 6. Simulation Results and Discussion 70
0 5 10 15 20 25 30 35 40
Time (s)
-7
-6
-5
-4
-3
-2
-1
0
1
2f(m
/s2)
fx
N = 10
N = 20
N = 30
N = 40
N = 50
Veh
(a) Aggressive acceleration and deceleration maneuver
0 5 10 15 20 25 30 35 40
Time (s)
-3
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
f(m
/s2)
fx
N = 10
N = 20
N = 30
N = 40
N = 50
Veh
(b) Normal acceleration and deceleration maneuver
Figure 6.16: Comparison between reference tracking accuracy for different prediction lengths
0 5 10 15 20 25 30 35 40
Time (s)
-0.5
0
0.5
x(m
)
x
0 5 10 15 20 25 30 35 40
Time (s)
-10
-5
0
5
10
θ(deg)
θ
N = 10
N = 20
N = 30
N = 40
N = 50
(a) Aggressive acceleration and deceleration maneuver
0 5 10 15 20 25 30 35 40
Time (s)
-0.5
0
0.5
x(m
)x
0 5 10 15 20 25 30 35 40
Time (s)
-20
-10
0
10
θ(deg)
θ
N = 10
N = 20
N = 30
N = 40
N = 50
(b) Normal acceleration and deceleration maneuver
Figure 6.17: Excursions in x direction and pitch angle for different prediction windows
As expected, the tracking performance improves with longer prediction windows. The performance
improvement is evident from the decreasing Root Mean Squared (RMS) errors in Figure 6.18 and Table
6.2 and the improving shape tracking in Figure 6.16. The theoretically best case for reference tracking
is a batch solution where the entire maneuver is calculated within a single optimization problem (i.e. a
window that is equal to the length of the simulation case). With a limited window size, the MPC can only
incorporate the vehicle reference and account for the constraints for a period as long as the prediction
horizon; making it suboptimal in comparison to the batch solution. If the controller is unaware of an
aggressive future motion i.e. a large amplitude event happening outside the prediction window then, in
the beginning, it will maximize the use of the available solution space. The system will quickly get close
to the constraint boundary, whereby making it difficult to track the large amplitude reference later.
We can see the simulator x displacement for the acceleration and deceleration maneuvers in Figure
Chapter 6. Simulation Results and Discussion 71
6.17. It can be seen that with a prediction window of 1 sec, the simulator rapidly moves in the x
direction, consuming that DOF faster than it does with longer prediction windows. On the contrary, large
prediction windows allow the system to sense the future surge in demand and appropriately calculate
the optimal trajectory that uses less from the x DOF in the beginning in exchange for better overall
tracking.
Table 6.2: Performance summary for different prediction window lengths
Aggressive Acceleration
and Deceleration
Normal Acceleration
and Deceleration
Prediction
Horizon (N)
Prediction
Time (s)
Avg. Iter.
Time (s)RMS Error
Avg. Iter.
Time (s)RMS Error
10 1 0.1824 1.6299 0.1150 0.6388
20 2 0.3544 1.3826 0.2322 0.4325
30 3 0.7875 1.2955 0.4574 0.3237
40 4 1.2435 1.2814 0.8596 0.2961
50 5 2.5329 1.2814 1.6199 0.2961
10 15 20 25 30 35 40 45 50
Prediction Window Length (N)
0
1
2
3
Average
IterationTim
e(s)
Average Iteration Time
10 15 20 25 30 35 40 45 50
Prediction Window Length (N)
1.2
1.4
1.6
1.8
RMSError
RMS Error
(a) Aggressive acceleration and deceleration maneuver
10 15 20 25 30 35 40 45 50
Prediction Window Length (N)
0
0.5
1
1.5
2
Average
IterationTim
e(s)
Average Iteration Time
10 15 20 25 30 35 40 45 50
Prediction Window Length (N)
0.2
0.4
0.6
0.8
RMSError
RMS Error
(b) Normal acceleration and deceleration maneuver
Figure 6.18: Average iteration time and RMS error for different prediction window lengths
From Table 6.2 and Figure 6.18 we can see that significant improvements are gained by going from
1 to 2 and then to a 3-second prediction window. Note that 3 seconds is approximately the surge time
for the signal so the controller can see the entire event within the prediction window. Beyond 3 seconds,
the marginal improvement in the tracking error comes at the cost of doubling the average computational
time, and we see no improvement beyond 4 seconds. It is evident from the tracking performance that a
3 second, 30 step prediction window is the best for the given problem. We use this for all simulations
including those for the linear controller.
Chapter 6. Simulation Results and Discussion 72
6.6 Patches, Limitations and Tuning
As with any controller, there are limitations of the proposed nonlinear MPC based MDA. The most
significant limitation arises from the hexapod constraints. The nonlinear kinematics, when used with
successive re-linearization renders the solution infeasible when the system is close to the actuator con-
straint boundaries. Here infeasible refers to a condition where the optimization algorithm is unable find
a solution in the feasible (or the constraint) space. This problem arises during performance maneuvers
where multiple DOFs are operating simultaneously. The solution for this issue was to use 60 percent
of the positional and angular workspace during aggressive acceleration and deceleration maneuver and
using 30 percent of the available bounding box during aggressive turns.
This problem can be overcome by writing custom solvers, which is beyond the scope of this thesis.
By carefully controlling the system response near the constraint boundaries and by ramping up the
constraint penalty gradually as opposed to the sharp constraint application typical of the logarithmic
barrier functions one can achieve reasonable response around the constraints.
When tuning the controller, the programmer should apply a high penalty on the angular rate tracking
error. The large penalty forces the solver to match the vehicle angular rates accurately. One can then
chose appropriate penalties for the specific force and other channels. For control inputs, the lower the
penalty on the control, the better. In terms of tilt-coordination angular rate limit, notice how we put the
limit at around 3/s but the simulator reaches 5/s. The reason why this constraint is not met exactly
is because even with a large penalty on the angular rate tracking error if the specific force is high, the
simulator will use some amount of the normal angular rate component. If a very large penalty is applied
to the vehicle angular rate tracking channel to suppress this artifact, then in trying to match the vehicle
angular rate, the controller will generate erroneous specific force signals. The best approach is to put
the limit a little lower than the desired 5/s, then in the severe cases, the system will stay under 5/s
and in normal cases it will stay under 3/s.
Chapter 7
Conclusions and Future Work
In this thesis we were able to develop a nonlinear MPC based MDA with nonlinear hexapod model that
enables optimal use of the constrained simulator workspace. We developed a controller that is relatively
intuitive to set up, requiring a modest knowledge of the optimal control theory. We were able to show
that a robust nonlinear MPC based MDA can be developed without incurring a large computational
cost and were able to establish a framework for future work in the area of nonlinear MPC based MDA.
7.1 Future Work
The following can be identified as potential future work on the subject:
(i) Studies with Human Test Subjects: Any claim on the performance of the simulator MDA is
incomplete until tests are performed with human subjects. Experiments with human subjects is
one of the most significant tasks that needs to be completed to analyze the relative performance
of the proposed controller against a filter-based algorithm.
(ii) Custom Quadratic Programming Solver: A significant limitation of using off the shelf
quadratic programming solvers is that you have no control over the ways in which the constraints
are handled. By writing custom quadratic programming solvers, we can control the parameters
of the barrier functions used in interior point method and ramp up the constraint penalty more
gradually than the standard logarithmic barrier functions. Control over the solver can also aid in
improving the solver time efficiency.
(iii) Improved Perception Models: With a robust nonlinear controller that adds a minimal cost to
the solution time, we have a framework for nonlinear MPC based MDAs. The algorithm can now be
extended to representative perception models with more accurate modeling of human perception.
(iv) Driving Prediction and Online Implementation: In this research we used pre-recorded
simulation data to assess the performance of the controller. An online implementation requires
predicting the future reference over the prediction window such that it can be incorporated in the
MPC. We conducted some studies using vehicle model for predictions, but those efforts failed to
predict the driving dynamics. A combination of vehicle model with machine learning can be a
promising in predicting driving behavior inside a simulator.
73
Chapter 7. Conclusions and Future Work 74
(v) Variable Sampling Rate: The reason why large prediction windows are preferred is so that
the system is able to account for future constraints. We should notice that beyond 1 second, the
prediction window is only used for constraint satisfaction. We can, therefore, use variable sampling
times with smaller sampling rates closer to the current time so that that the perception dynamics
are accurate in the near future and use a large sampling rate beyond. The system kinematics are
fairly stable under a coarse mesh, so this can be a useful method for increasing the prediction
window without taking a significant impact on the solver time and efficiency.
Appendix A
Simulation Parameters
In this appendix, we provide the simulation parameters for the nonlinear and linear controllers. Section
A.1 provides the system and solver parameters, Section A.2 provides parameters for successive linearized
controller with nonlinear system model and Section A.3 provides parameters for the linear controller.
A.1 System and Solver Parameters
Table A.1: System and solver parameters
System MacBook Pro
Processor 2.6 GHz Intel Core i5
Memory 8 GB 1600 MHz DDR3
Software Matlab
QP Solver quadprog, interior point
75
Appendix A. Simulation Parameters 76
A.2 Parameters for the nonlinear motion drive algorithm
Table A.2: Model parameters for the nonlinear controller
Parameters for Perception Model
Parameters for semicircular canal model (x) TL = 6.10 TS = 0.10 Ta = 30.00
Parameters for semicircular canal model (y) TL = 5.30 TS = 0.10 Ta = 30.00
Parameters for semicircular canal model (z) TL = 10.20 TS = 0.10 Ta = 30.00
Parameters for otolith model (x) K = 0.40 τL = 5.33 τS = 0.66 τa = 13.20
Parameters for otolith model (y) K = 0.40 τL = 5.33 τS = 0.66 τa = 13.20
Parameters for otolith model (z) K = 0.40 τL = 5.33 τS = 0.66 τa = 13.20
Simulator and Vehicle Parameters
Actuator neutral length Ln = 3.3860
Actuator limit lmin =
−0.60
lmax = 0.60
Vector from the base platform frame to the ith
lower bearing expressed FIB1B = [1.35, 2.12, 0.00]T
B2B = [1.15, 2.23, 0.00]T
B3B = [−2.51, 0.11, 0.00]T
B4B = [−2.51,−0.11, 0.00]T
B5B = [1.15,−2.23, 0.00]T
B6B = [1.35,−2.12, 0.00]T
Vector from the simulator frame FS to the ith
upper bearing expressed in FSA1S = [2.11, 0.11, 0.00]T
A2S = [−0.95, 1.88, 0.00]T
A3S = [−1.15, 1.77, 0.00]T
A4S = [−1.15,−1.77, 0.00]T
A5S = [−0.95,−1.88, 0.00]T
A6S = [2.11,−0.11, 0.00]T
Vector from simulator frame to the driver in
the simulator frame
rSSD= [0.00, 0.00,−0.50]T
Vector from vehicle to the driver in the vehicle
frame
rV VD= [−0.40,−0.40,−0.60]T
MPC Parameters
Sample time Ts = 0.10
Length of prediction horizon 3 seconds
Number of steps in prediction horizon N = 30
Appendix A. Simulation Parameters 77
Constraints
Position xSI = 0.90 ySI = 0.90 zSI = 0.90
Velocity xSI = 0.6 ySI = 0.6 zSI = 0.6
Acceleration xSI = 6 xSI = 6 xSI = 8
Angle φS = π/8 θS = π/8 ψS = 2π
Angular rate φS = 0.5 θS = 0.5 ψS = 0.5
Tilt coordination angular rate φSTC = 0.05 θSTC = 0.05
Angular acceleration φS = 2π φS = 2π φS = 2π
Tilt coordination angular acceleration φSTC = 2π φSTC = 2π
Error Penalty
Specific force tracking error 500 500 500
Angular rate tracking error 400000 400000 100000
Deviation of Euler angles from 0 2000 2000 1000
Deviation of Euler angle rates from 0 1000 1000 1
Deviation of position from 0 600 600 5000
Deviation of velocity from 0 600 600 5000
Control Penalty
Angular acceleration 5× 10−5 5× 10−5 1× 10−9
Acceleration 1× 10−16 1× 10−16 1× 10−16
Tilt coordination angular acceleration 1× 10−4 1× 10−4
Appendix A. Simulation Parameters 78
A.3 Parameters for Linear Motion Drive Algorithm
Table A.3: Parameters for the linear controller
Parameters for Perception Model
Parameters for semicircular canal model (x) TL = 6.10 TS = 0.10 Ta = 30.00
Parameters for semicircular canal model (y) TL = 5.30 TS = 0.10 Ta = 30.00
Parameters for semicircular canal model (z) TL = 10.20 TS = 0.10 Ta = 30.00
Parameters for otolith model (x) K = 0.40 τL = 5.33 τS = 0.66 τa = 13.20
Parameters for otolith model (y) K = 0.40 τL = 5.33 τS = 0.66 τa = 13.20
Parameters for otolith model (z) K = 0.40 τL = 5.33 τS = 0.66 τa = 13.20
MPC Parameters
Sample time Ts = 0.10
Length of prediction horizon 3 seconds
Number of steps in prediction horizon N = 30
Constraints
Position xSI = 0.90 ySI = 0.90 zSI = 0.90
Velocity xSI = 0.6 ySI = 0.6 zSI = 0.6
Acceleration xSI = 6 xSI = 6 xSI = 8
Angle φS = π/8 θS = π/8 ψS = 2π
Angular rate φS = 0.5 θS = 0.5 ψS = 0.5
Tilt coordination angular rate φSTC = 0.08 θSTC = 0.08
Error Penalty
Specific force tracking error 90 90 90
Angular rate tracking error 100000 100000 100000
Deviation of Euler angles from 0 1000 1000 100
Deviation of position from 0 100 100 5000
Deviation of velocity from 0 100 100 5000
Control Penalty
Angular rate 1000 1000 0.01
Acceleration 1× 10−9 1× 10−9 1× 10−9
Tilt coordination angular rate 1000 1000
Appendix B
Detailed Results
In this appendix, we provide detailed results for all the test cases. In these test cases, we attempt to
cover the entire operational envelope of the system. The test cases range from standard operational
maneuvers to aggressive performance maneuvers. The test cases are summarized in Table B.1. For each
test case, we plot the following information:
(i) The 3-dimensional position of the car, where the symbol (•) is the car’s starting position, and
symbol (∗) represents the final position.
(ii) Time histories for car’s acceleration, angle and angular rate.
(iii) A comparison between the perceived motion in the simulator vs. vehicle.
(iv) Time histories for simulator position, velocity, acceleration, angle, angular rate, and angular ac-
celeration.
(v) Time histories for actuator length from the nominal position.
Table B.1: Summary of all simulation test cases
Case Maneuver Type Ref. Complete Results Description
1
Normal
Section 6.2 Normal acceleration and deceleration
2 Section 6.2 Normal left turn
3 Appendix B.1 Normal right turn
4 Appendix B.5 Normal driving
5
Performance
Appendix B.2 Aggressive acceleration and deceleration
6 Appendix B.3 Aggressive left turn
7 Appendix B.4 Aggressive right turn
79
Appendix B. Detailed Results 80
B.1 Normal Right Turn
4350 4360 4370 4380 4390 4400
x(m)
-5040
-5030
-5020
-5010
-5000
-4990
-4980
-4970
y(m
)
0 5 10 15
Time (s)
-3
-2
-1
0
1
ax(m
/s2)
ax
0 5 10 15
Time (s)
-3
-2
-1
0
ay(m
/s2)
ay
0 5 10 15
Time (s)
-0.1
-0.05
0
0.05
0.1
az(m
/s2)
az
0 5 10 15
Time (s)
-1.5
-1
-0.5
0
φ(deg)
φ
0 5 10 15
Time (s)
0
0.5
1
θ(deg)
θ
0 5 10 15
Time (s)
-80
-60
-40
-20
ψ(deg)
ψ
0 5 10 15
Time (s)
-1
0
1
2
3
ωx(deg/s)
ωx
0 5 10 15
Time (s)
-2
0
2
ωy(deg/s)
ωy
0 5 10 15
Time (s)
-30
-20
-10
0
ωz(deg/s)
ωz
Figure B.1: Vehicle data for normal right turn
Appendix B. Detailed Results 81
0 5 10
Time (s)
-0.5
0
0.5x(m
)
x
0 5 10
Time (s)
-0.5
0
0.5
y(m
)
y
0 5 10
Time (s)
-0.5
0
0.5
z(m
)
z
0 5 10
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 5 10
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 5 10
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 5 10
Time (s)
-1
-0.5
0
0.5
1
ax(m
/s2)
ax
0 5 10
Time (s)
-0.4
-0.2
0
0.2
0.4
0.6
0.8
ay(m
/s2)
ay
0 5 10
Time (s)
-5
0
5
az(m
/s2)
az
0 5 10
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 5 10
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 5 10
Time (s)
-200
0
200
ψ(deg)
ψ
0 5 10
Time (s)
-4
-2
0
2
4
ωx(deg/s)
ωx
0 5 10
Time (s)
-4
-2
0
2
4
ωy(deg/s)
ωy
0 5 10
Time (s)
-30
-20
-10
0
ωz(deg/s)
ωz
0 5 10
Time (s)
-4
-2
0
2
ωx(deg/s
2)
ωx
0 5 10
Time (s)
-5
0
5
ωy(deg/s
2)
ωy
0 5 10
Time (s)
0
2
4
ωz(deg/s
2)
ωz
Figure B.2: Simulator data for normal right turn (nonlinear model)
Appendix B. Detailed Results 82
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 1(m
)
l1
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 2(m
)
l2
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 5(m
)
l5
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 6(m
)
l6
Figure B.3: Actuator lengths for normal normal right turn (nonlinear model)
0 5 10
Time (s)
-1.5
-1
-0.5
0
0.5
f(m
/s2)
fx
Sim
Veh
0 5 10
Time (s)
-2.5
-2
-1.5
-1
-0.5
0
f(m
/s2)
fy
Sim
Veh
0 5 10
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10
Time (s)
-4
-2
0
2
ω(deg/s)
ωx
Sim
Veh
0 5 10
Time (s)
-4
-2
0
2
4
ω(deg/s)
ωy
Sim
Veh
0 5 10
Time (s)
-20
-15
-10
-5
0
5
10
ω(deg/s)
ωz
Sim
Veh
Figure B.4: Perception for normal normal right turn (nonlinear model)
Appendix B. Detailed Results 83
0 5 10
Time (s)
-1.5
-1
-0.5
0
0.5
1
1.5f(m
/s2)
fx
Sim
Veh
0 5 10
Time (s)
-2.5
-2
-1.5
-1
-0.5
0
0.5
f(m
/s2)
fy
Sim
Veh
0 5 10
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10
Time (s)
-4
-2
0
2
4
ω(deg/s)
ωx
Sim
Veh
0 5 10
Time (s)
-5
0
5
ω(deg/s)
ωy
Sim
Veh
0 5 10
Time (s)
-20
-15
-10
-5
0
5
10
ω(deg/s)
ωz
Sim
Veh
Figure B.5: Perception for normal normal right turn (linear model)
Appendix B. Detailed Results 84
B.2 Aggressive Acceleration and Deceleration
3300 3400 3500 3600 3700
x(m)
-4964
-4963.5
-4963
-4962.5
-4962
-4961.5
-4961
-4960.5
-4960
y(m
)
0 10 20 30 40
Time (s)
-8
-6
-4
-2
0
2
ax(m
/s2)
ax
0 10 20 30 40
Time (s)
-0.4
-0.2
0
0.2
ay(m
/s2)
ay
0 10 20 30 40
Time (s)
-0.5
0
0.5
az(m
/s2)
az
0 10 20 30 40
Time (s)
-0.1
0
0.1
φ(deg)
φ
0 10 20 30 40
Time (s)
-1
0
1
2
θ(deg)
θ
0 10 20 30 40
Time (s)
0
0.5
1
1.5
ψ(deg)
ψ
0 10 20 30 40
Time (s)
-0.5
0
0.5
ωx(deg/s)
ωx
0 10 20 30 40
Time (s)
-5
0
5
ωy(deg/s)
ωy
0 10 20 30 40
Time (s)
-2
-1
0
ωz(deg/s)
ωz
Figure B.6: Vehicle data for aggressive acceleration and deceleration
Appendix B. Detailed Results 85
0 20 40
Time (s)
-0.5
0
0.5x(m
)
x
0 20 40
Time (s)
-0.5
0
0.5
y(m
)
y
0 20 40
Time (s)
-0.5
0
0.5
z(m
)
z
0 20 40
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 20 40
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 20 40
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 20 40
Time (s)
-2
-1
0
1
ax(m
/s2)
ax
0 20 40
Time (s)
-0.5
0
0.5
ay(m
/s2)
ay
0 20 40
Time (s)
-2
0
2
4
az(m
/s2)
az
0 20 40
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 20 40
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 20 40
Time (s)
-200
0
200
ψ(deg)
ψ
0 20 40
Time (s)
-2
0
2
ωx(deg/s)
ωx
0 20 40
Time (s)
-5
0
5
ωy(deg/s)
ωy
0 20 40
Time (s)
-2
-1
0
ωz(deg/s)
ωz
0 20 40
Time (s)
-5
0
5
10
ωx(deg/s
2)
ωx
0 20 40
Time (s)
-40
-20
0
20
40
ωy(deg/s
2)
ωy
0 20 40
Time (s)
-5
0
5
ωz(deg/s
2)
ωz
Figure B.7: Simulator data for aggressive acceleration and deceleration (nonlinear model)
Appendix B. Detailed Results 86
0 10 20 30 40
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 1(m
)
l1
0 10 20 30 40
Time (s)
-1
-0.5
0
0.5
l 2(m
)
l2
0 10 20 30 40
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
0 10 20 30 40
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
0 10 20 30 40
Time (s)
-1
-0.5
0
0.5
l 5(m
)
l5
0 10 20 30 40
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 6(m
)
l6
Figure B.8: Actuator lengths for aggressive acceleration and deceleration (nonlinear model)
0 20 40
Time (s)
-6
-4
-2
0
2
f(m
/s2)
fx
Sim
Veh
0 20 40
Time (s)
-0.4
-0.2
0
0.2
f(m
/s2)
fy
Sim
Veh
0 20 40
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 20 40
Time (s)
-2
-1
0
1
2
ω(deg/s)
ωx
Sim
Veh
0 20 40
Time (s)
-6
-4
-2
0
2
4
6
ω(deg/s)
ωy
Sim
Veh
0 20 40
Time (s)
-2
-1.5
-1
-0.5
0
0.5
ω(deg/s)
ωz
Sim
Veh
Figure B.9: Perception for aggressive acceleration and deceleration (nonlinear model)
Appendix B. Detailed Results 87
0 20 40
Time (s)
-6
-4
-2
0
2
f(m
/s2)
fx
Sim
Veh
0 20 40
Time (s)
-0.4
-0.2
0
0.2
f(m
/s2)
fy
Sim
Veh
0 20 40
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 20 40
Time (s)
-0.5
0
0.5
ω(deg/s)
ωx
Sim
Veh
0 20 40
Time (s)
-5
0
5
ω(deg/s)
ωy
Sim
Veh
0 20 40
Time (s)
-2
-1.5
-1
-0.5
0
0.5
ω(deg/s)
ωz
Sim
Veh
Figure B.10: Perception for aggressive acceleration and deceleration (linear model)
Appendix B. Detailed Results 88
B.3 Aggressive Left Turn
4080 4100 4120 4140 4160 4180 4200
x(m)
-4850
-4840
-4830
-4820
-4810
-4800
-4790
-4780
-4770
-4760
y(m
)
0 5 10 15
Time (s)
-2
-1
0
1
ax(m
/s2)
ax
0 5 10 15
Time (s)
-2
0
2
4
6
8
ay(m
/s2)
ay
0 5 10 15
Time (s)
-0.1
0
0.1
0.2
az(m
/s2)
az
0 5 10 15
Time (s)
-1
0
1
2
3
φ(deg)
φ
0 5 10 15
Time (s)
0
0.5
1
1.5
θ(deg)
θ
0 5 10 15
Time (s)
100
120
140
160
180
ψ(deg)
ψ
0 5 10 15
Time (s)
-10
-5
0
5
ωx(deg/s)
ωx
0 5 10 15
Time (s)
-1
0
1
2
3
ωy(deg/s)
ωy
0 5 10 15
Time (s)
-10
0
10
20
30
ωz(deg/s)
ωz
Figure B.11: Vehicle data for aggressive left turn
Appendix B. Detailed Results 89
0 5 10
Time (s)
-0.5
0
0.5x(m
)
x
0 5 10
Time (s)
-0.5
0
0.5
y(m
)
y
0 5 10
Time (s)
-0.5
0
0.5
z(m
)
z
0 5 10
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 5 10
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 5 10
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 5 10
Time (s)
-1
0
1
2
3
ax(m
/s2)
ax
0 5 10
Time (s)
-1
-0.5
0
0.5
1
ay(m
/s2)
ay
0 5 10
Time (s)
-2
0
2
4
az(m
/s2)
az
0 5 10
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 5 10
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 5 10
Time (s)
-200
0
200
ψ(deg)
ψ
0 5 10
Time (s)
-4
-2
0
2
4
6
ωx(deg/s)
ωx
0 5 10
Time (s)
-5
0
5
10
ωy(deg/s)
ωy
0 5 10
Time (s)
-10
0
10
20
30
ωz(deg/s)
ωz
0 5 10
Time (s)
-40
-20
0
ωx(deg/s
2)
ωx
0 5 10
Time (s)
-50
0
50
ωy(deg/s2)
ωy
0 5 10
Time (s)
-100
-50
0
50
ωz(deg/s
2)
ωz
Figure B.12: Simulator data for aggressive left turn (nonlinear model)
Appendix B. Detailed Results 90
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 1(m
)
l1
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 2(m
)
l2
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 5(m
)
l5
0 5 10 15
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 6(m
)
l6
Figure B.13: Actuator lengths for aggressive left turn (nonlinear model)
0 5 10
Time (s)
-1
-0.5
0
0.5
1
f(m
/s2)
fx
Sim
Veh
0 5 10
Time (s)
0
2
4
6
f(m
/s2)
fy
Sim
Veh
0 5 10
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10
Time (s)
-10
-5
0
5
10
ω(deg/s)
ωx
Sim
Veh
0 5 10
Time (s)
-3
-2
-1
0
1
2
3
ω(deg/s)
ωy
Sim
Veh
0 5 10
Time (s)
-20
-10
0
10
20
30
ω(deg/s)
ωz
Sim
Veh
Figure B.14: Perception for aggressive left turn (nonlinear model)
Appendix B. Detailed Results 91
0 5 10
Time (s)
-1
-0.5
0
0.5
1
1.5
2f(m
/s2)
fx
Sim
Veh
0 5 10
Time (s)
0
2
4
6
f(m
/s2)
fy
Sim
Veh
0 5 10
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10
Time (s)
-10
-5
0
5
ω(deg/s)
ωx
Sim
Veh
0 5 10
Time (s)
-10
-5
0
5
ω(deg/s)
ωy
Sim
Veh
0 5 10
Time (s)
-20
-10
0
10
20
30
ω(deg/s)
ωz
Sim
Veh
Figure B.15: Perception for aggressive left turn (linear model)
Appendix B. Detailed Results 92
B.4 Aggressive Right Turn
4200 4220 4240 4260 4280 4300 4320 4340
x(m)
-5060
-5040
-5020
-5000
-4980
-4960
-4940
y(m
)
0 10 20
Time (s)
-6
-4
-2
0
ax(m
/s2)
ax
0 10 20
Time (s)
-8
-6
-4
-2
0
2
ay(m
/s2)
ay
0 10 20
Time (s)
-0.4
-0.2
0
0.2
az(m
/s2)
az
0 10 20
Time (s)
-3
-2
-1
0
φ(deg)
φ
0 10 20
Time (s)
0
0.5
1
1.5
2
θ(deg)
θ
0 10 20
Time (s)
-280
-260
-240
-220
-200
-180
ψ(deg)
ψ
0 10 20
Time (s)
-5
0
5
10
ωx(deg/s)
ωx
0 10 20
Time (s)
-4
-2
0
2
ωy(deg/s)
ωy
0 10 20
Time (s)
-40
-20
0
ωz(deg/s)
ωz
Figure B.16: Vehicle data for aggressive right turn
Appendix B. Detailed Results 93
0 10 20
Time (s)
-0.5
0
0.5x(m
)
x
0 10 20
Time (s)
-0.5
0
0.5
y(m
)
y
0 10 20
Time (s)
-0.5
0
0.5
z(m
)
z
0 10 20
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 10 20
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 10 20
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 10 20
Time (s)
-2
-1
0
1
2
ax(m
/s2)
ax
0 10 20
Time (s)
-1
0
1
ay(m
/s2)
ay
0 10 20
Time (s)
-2
0
2
4
az(m
/s2)
az
0 10 20
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 10 20
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 10 20
Time (s)
-200
0
200
ψ(deg)
ψ
0 10 20
Time (s)
-5
0
5
ωx(deg/s)
ωx
0 10 20
Time (s)
-10
-5
0
5
ωy(deg/s)
ωy
0 10 20
Time (s)
-30
-20
-10
0
10
ωz(deg/s)
ωz
0 10 20
Time (s)
-20
0
20
40
ωx(deg/s
2)
ωx
0 10 20
Time (s)
-50
0
50
ωy(deg/s
2)
ωy
0 10 20
Time (s)
-50
0
50
100
ωz(deg/s
2)
ωz
Figure B.17: Simulator data for aggressive right turn (nonlinear model)
Appendix B. Detailed Results 94
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 1(m
)
l1
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 2(m
)
l2
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 3(m
)
l3
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 4(m
)
l4
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 5(m
)
l5
0 5 10 15 20
Time (s)
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
l 6(m
)
l6
Figure B.18: Actuator lengths for aggressive right turn (nonlinear model)
0 5 10 15 20
Time (s)
-3
-2
-1
0
1
f(m
/s2)
fx
Sim
Veh
0 5 10 15 20
Time (s)
-6
-4
-2
0
f(m
/s2)
fy
Sim
Veh
0 5 10 15 20
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10 15 20
Time (s)
-5
0
5
10
ω(deg/s)
ωx
Sim
Veh
0 5 10 15 20
Time (s)
-4
-2
0
2
4
6
8
ω(deg/s)
ωy
Sim
Veh
0 5 10 15 20
Time (s)
-30
-20
-10
0
10
20
ω(deg/s)
ωz
Sim
Veh
Figure B.19: Perception for aggressive right turn (nonlinear model)
Appendix B. Detailed Results 95
0 5 10 15 20
Time (s)
-3
-2
-1
0
1f(m
/s2)
fx
Sim
Veh
0 5 10 15 20
Time (s)
-6
-4
-2
0
f(m
/s2)
fy
Sim
Veh
0 5 10 15 20
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 5 10 15 20
Time (s)
-10
-5
0
5
10
ω(deg/s)
ωx
Sim
Veh
0 5 10 15 20
Time (s)
-4
-2
0
2
4
6
8
ω(deg/s)
ωy
Sim
Veh
0 5 10 15 20
Time (s)
-30
-20
-10
0
10
20
ω(deg/s)
ωz
Sim
Veh
Figure B.20: Perception for aggressive right turn (linear model)
Appendix B. Detailed Results 96
B.5 Normal Driving
3600 3700 3800 3900 4000 4100 4200
x(m)
-7700
-7600
-7500
-7400
-7300
-7200
-7100
-7000
-6900
-6800
-6700
y(m
)
0 100 200
Time (s)
-5
0
5
ax(m
/s2)
ax
0 100 200
Time (s)
-5
0
5
ay(m
/s2)
ay
0 100 200
Time (s)
-5
0
5
az(m
/s2)
az
0 100 200
Time (s)
-2
0
2
4
φ(deg)
φ
0 100 200
Time (s)
-6
-4
-2
0
θ(deg)
θ
0 100 200
Time (s)
-100
-50
0
50
ψ(deg)
ψ
0 100 200
Time (s)
-2
0
2
4
ωx(deg/s)
ωx
0 100 200
Time (s)
-20
-10
0
10
20
ωy(deg/s)
ωy
0 100 200
Time (s)
-20
0
20
ωz(deg/s)
ωz
Figure B.21: Vehicle data for normal driving
Appendix B. Detailed Results 97
0 50 100 150
Time (s)
-0.5
0
0.5x(m
)
x
0 50 100 150
Time (s)
-0.5
0
0.5
y(m
)
y
0 50 100 150
Time (s)
-0.5
0
0.5
z(m
)
z
0 50 100 150
Time (s)
-0.5
0
0.5
v x(m
/s)
vx
0 50 100 150
Time (s)
-0.5
0
0.5
v y(m
/s)
vy
0 50 100 150
Time (s)
-0.5
0
0.5
v z(m
/s)
vz
0 50 100 150
Time (s)
-4
-2
0
2
4
ax(m
/s2)
ax
0 50 100 150
Time (s)
-2
0
2
ay(m
/s2)
ay
0 50 100 150
Time (s)
-5
0
5
az(m
/s2)
az
0 50 100 150
Time (s)
-20
-10
0
10
20
φ(deg)
φ
0 50 100 150
Time (s)
-20
-10
0
10
20
θ(deg)
θ
0 50 100 150
Time (s)
-200
0
200
ψ(deg)
ψ
0 50 100 150
Time (s)
-5
0
5
10
ωx(deg/s)
ωx
0 50 100 150
Time (s)
-20
-10
0
10
20
ωy(deg/s)
ωy
0 50 100 150
Time (s)
-20
0
20
ωz(deg/s)
ωz
0 50 100 150
Time (s)
-5
0
5
ωx(deg/s
2)
ωx
0 50 100 150
Time (s)
-10
0
10
20
ωy(deg/s2)
ωy
0 50 100 150
Time (s)
-2
0
2
4
ωz(deg/s
2)
ωz
Figure B.22: Simulator data for normal driving (nonlinear model)
Appendix B. Detailed Results 98
0 100 200
Time (s)
-1
-0.5
0
0.5
1
l 1(m
)
l1
0 50 100 150 200
Time (s)
-1
-0.5
0
0.5
1
l 2(m
)
l2
0 100 200
Time (s)
-1
-0.5
0
0.5
1
l 3(m
)
l3
0 100 200
Time (s)
-1
-0.5
0
0.5
1
l 4(m
)
l4
0 50 100 150 200
Time (s)
-1
-0.5
0
0.5
1
l 5(m
)
l5
0 100 200
Time (s)
-1
-0.5
0
0.5
1
l 6(m
)
l6
Figure B.23: Actuator lengths for normal driving (nonlinear model)
0 50 100 150
Time (s)
-5
-4
-3
-2
-1
0
1
f(m
/s2)
fx
Sim
Veh
0 50 100 150
Time (s)
-4
-2
0
2
4
f(m
/s2)
fy
Sim
Veh
0 50 100 150
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 50 100 150
Time (s)
-10
-5
0
5
10
ω(deg/s)
ωx
Sim
Veh
0 50 100 150
Time (s)
-20
-10
0
10
20
ω(deg/s)
ωy
Sim
Veh
0 50 100 150
Time (s)
-20
-10
0
10
20
ω(deg/s)
ωz
Sim
Veh
Figure B.24: Perception for normal driving (nonlinear model)
Appendix B. Detailed Results 99
0 50 100 150
Time (s)
-4
-2
0
2f(m
/s2)
fx
Sim
Veh
0 50 100 150
Time (s)
-4
-2
0
2
4
f(m
/s2)
fy
Sim
Veh
0 50 100 150
Time (s)
-10
-8
-6
-4
-2
0
f(m
/s2)
fz
Sim
Veh
0 50 100 150
Time (s)
-5
0
5
ω(deg/s)
ωx
Sim
Veh
0 50 100 150
Time (s)
-20
-10
0
10
20
ω(deg/s)
ωy
Sim
Veh
0 50 100 150
Time (s)
-20
-10
0
10
20
ω(deg/s)
ωz
Sim
Veh
Figure B.25: Perception for normal driving (linear model)
References
[1] L. Reid and M. Nahon, “Simulator Motion-Drive Algorithms: A Designers Perspective,” Journal
Guidance, vol. 13, pp. 356–362, Oct. 1988.
[2] L. Reid and M. Nahon, “Flight Simulation Motion-Base Drive Algorithms: Part 1 - Developing
and Testing the Equations,” tech. rep., University of Toronto Institute for Aerospace Studies, Mar.
1985.
[3] L. Reid and M. Nahon, “Flight Simulation Motion-Base Drive Algorithms: Part 2 - Selecting the
System Parameters,” tech. rep., University of Toronto, Institute for Aerospace Studies, Jan. 1986.
[4] L. Reid and M. Nahon, “Flight Simulation Motion-Base Drive Algorithms: Part 3 - Pilot Evalua-
tions,” tech. rep., University of Toronto, Institute for Aerospace Studies, Nov. 1986.
[5] M. Morari and J. H. Lee, “Model Predictive Control: Past, Present and Future,” Journal of Com-
puters and Chemical Engineering, vol. 23, pp. 667–682, Sept. 1999.
[6] D. Bertsekas, Constrained Optimization Using Laggrange Multipliers. Belmont, MA, USA: Athena
Scientific, 1996.
[7] F. Borrelli, A. Bemporad, and M. Morari, Predictive Control for Linear and Hybrid Systems. Un-
published, 2015.
[8] F. Borrelli, Constrained Optimal Control of Linear and Hybrid Systems. Berlin-Heidelberg, Ger-
many: Springer, 2003.
[9] E. Camacho and C. Bordons, Model Predictive Control. London, UK: Springer, 2 ed., 2007.
[10] G. C. Goodwin, M. M. Seron, and J. A. De Dona, Constrained Control and Estimation. London,
UK: Springer, 2005.
[11] L. Grune and J. Pannek, Nonlinear Model Predictive Control. London, UK: Springer, 2011.
[12] B. Kouvaritakis, Model Predictive Control; Classical, Robust and Stochastic. Switzerland: Springer,
2016.
[13] W. Kwon and S. Han, Receding Horizon Control. London, UK: Springer, 2005.
[14] M. Maggiore, Foundations of Nonlinear Control Theory. Unpublished, 2014.
[15] J. A. Rossiter, Model-Based Predictive Control: A Practical Approach. Boca Raton, FL, USA: CRC
Press LLC, 2004.
100
REFERENCES 101
[16] G. Klancar and I. Skrjanc, “Tracking-Error Model-Based Predictive Control for Mobile Robots in
Real Time,” Robotics and Autonomous Systems, vol. 55, pp. 460–469, Jan. 2007.
[17] J. Manoel, S. Jr, and W. F. Lages, “Mobile Robot Trajectory Tracking Using Model Predictive
Control,” in IEEE Latin American Robotics Symposium, (St. Louis, Brazil), Sept. 2005.
[18] F. Xie and R. Fierro, “First-State Contractive Model Predictive Control of Nonholonomic Mobile
Robots,” in American Control Conference, (Seattle, WA, USA), pp. 3494–3499, Jun. 2008.
[19] Y. Wang and S. Boyd, “Fast Model Predictive Control Using Online Optimization,” IEEE Trans-
actions on Control Systems Technology, vol. 18, pp. 267–278, Mar. 2010.
[20] M. Brand, V. Shilpiekandula, C. Yao, and S. A. Bortoff, “A Parallel Quadratic Programming Al-
gorithm for Model Predictive Control,” in International Federation of Automatic Control, (Milano,
Italy), pp. 1031–1039, Aug.-Sept. 2011.
[21] S. D. Cairano and M. Brand, “On a Multiplicative Update Dual Optimization Algorithm for Con-
strained Linear MPC,” in Conference on Decision and Control, (Florence, Italy), pp. 1696–1701,
Dec. 2013.
[22] M. P. Kelly, “Transcription Methods for Trajectory Optimization: A Beginners Tutorial.” Unpub-
lished, 2015.
[23] O. Mikulas, “Quadratic Programming Algorithms for Fast Model-Based Predictive Control,” Mas-
ter’s thesis, Czech Technical University, Prague, Czech Republic, 2013.
[24] M. Muehlebach and R. D. Andrea, “Parametrized Infinite-Horizon Model Predictive Control for
Linear Time-Invariant Systems with Input and State Constraints,” Unpublished, Accessed: April
2017.
[25] M. Hofer, M. Muehlebach, and R. D. Andrea, “Application of an Approximate Model Predictive
Control Scheme on an Unmanned Aerial Vehicle,” Unpublished, Accessed: April 2017.
[26] C. J. Ostafew, A. P. Schoellig, and T. D. Barfoot, “Learning-Based Nonlinear Model Predictive Con-
trol to Improve Vision-Based Mobile Robot Path-Tracking in Challenging Outdoor Environments,”
in International Conference on Robotics and Automation, (Hong Kong, China), pp. 4029–4036,
May-June 2014.
[27] C. J. Ostafew, A. P. Schoellig, and T. D. Barfoot, “Robust Constrained Learning-based NMPC
Enabling Reliable Mobile Robot Path Tracking,” The International Journal of Robotics Research,
vol. 35, pp. 1547–1563, Jan. 2016.
[28] T. Barfoot, State Estimation for Robotics. Unpublished, 2016.
[29] B. Alessandro, B. Mattia, and M. Fabio, “A Real Time Implementation of MPC Based Motion
Cueing Strategy for Driving Simulators,” in IEEE Conference on Decision and Control, (Maui,
Hawaii, USA), pp. 6340–6345, Dec. 2012.
[30] B. Augusto and R. Loureiro, “Motion Cueing in the Chalmers Driving Simulator - A Model Pre-
dictive Control Approach,” Master’s thesis, Chalmers University of Technology, Goteborg, Sweden,
2009.
REFERENCES 102
[31] M. Baseggio, A. Beghi, M. Bruschetta, F. Maran, and D. Minen, “An MPC Approach to the
Design of Motion Cueing Algorithms for Driving Simulators,” in IEEE Conference on Intelligent
Transportation Systems, Proceedings, ITSC, (Washington, DC, USA), pp. 692–697, Oct. 2011.
[32] M. Bruschetta, F. Maran, and A. Beghi, “A Non-Linear MPC based Motion Cueing Implementation
for a 9 DOFs Dynamic Simulator Platform,” IEEE Conference on Decision and Control, pp. 2517–
2522, Dec. 2014.
[33] N. J. Garrett and M. C. Best, “Driving Simulator Motion Cueing Algorithms: A Survey of the
State of the Art,” in Proceedings of the 10th International Symposium on Advanced Vehicle Control
(AVEC), (Loughborough, UK), pp. 183–188, Aug. 2010.
[34] N. Garrett and M. Best, “Model Predictive Driving Simulator Motion Cueing Algorithm with
Actuator-Based Constraints,” Vehicle System Dynamics, vol. 51, pp. 1151–1172, Apr. 2013.
[35] M. Dagdelen, G. Reymond, A. Kemeny, M. Bordier, and N. Maızi, “Model-Based Predictive Motion
Cueing Strategy for Vehicle Driving Simulators,” Control Engineering Practice, vol. 17, pp. 995–
1003, Mar. 2009.
[36] Z. Fang and A. Kemeny, “Review and Prospects of Renault’s MPC based Motion Cueing Algorithm
for Driving Simulator,” in Driving Simulation Conference, (Paris, France), pp. 1–9, 2014.
[37] F. Maran, Model-Based Control Techniques for Automotive. PhD thesis, Department of Information
Engineering, University of Padova, Padua, Italy, 2013.
[38] F. Maran, M. Bruschetta, A. Beghi, and D. Minen, “Improvement of an MPC-based Motion Cueing
Algorithm with Time-Varying Prediction and Driver Behaviour Estimation,” in Driving Simulation
Conference, (Tubingen, Germany), Sept. 2015.
[39] P. R. Macneilage, N. Ganesan, and D. E. Angelaki, “Computational Approaches to Spatial Orien-
tation : From Transfer Functions to Dynamic Bayesian Inference,” Journal Neurophysiol, vol. 100,
pp. 2981–2996, Oct. 2008.
[40] G. Zacharias, “Motion Cue Models for Pilot-Vehicle Analysis,” tech. rep., Aerospace Medical Re-
search Laboratory, Jan.-Sept. 1977.
[41] D. Gum, “Modeling of the Human Force and Motion-Sensing Mechanisms,” tech. rep., Air Force
Human Resources Laboratory, June 1973.
[42] Y. Merfeld and S. Oman, “A Multidimensional Model of the Effect of Gravity on the Spatial
Orientation of the Monkey,” Journal of Vestibular Research, vol. 3, pp. 141–161, Sept. 1993.
[43] M. Newman, A Multisensory Observer Model for Human Spatial Orientation Perception. PhD
thesis, Massachusetts Institute of Technology, Boston, MA, 2007.
[44] M. C. Newman, B. D. Lawson, A. H. Rupert, and B. J. McGrath, “The Role of Perceptual Mod-
eling in the Understanding of Spatial Disorientation During Flight and Ground-based Simulator
Training,” in AIAA Modeling and Simulation Technologies Conference, (Minneapolis, Minnesota,
USA), Aug. 2012.
REFERENCES 103
[45] C. Fernandez and J. Goldberg, “Physiology of Peripheral Neurons Innervating Otolith Organs of
the Squirrel Monkey,” Journal of Neurophysiology, vol. 39, Sept. 1976.
[46] R. J. Hosman and J. C. Van Der Vaart, “Vestibular Models and Thresholds of Motion Perception:
Results of Tests in a Flight Simulator,” tech. rep., Delf University of Tehnology, Apr. 1978.