model predictive control based motion drive algorithm for a … · 2017-07-10 · abstract model...

116
Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator by Faizan Rehmatullah A thesis submitted in conformity with the requirements for the degree of Master of Applied Science Graduate Department of Aerospace Science and Engineering University of Toronto c Copyright 2017 by Faizan Rehmatullah

Upload: others

Post on 17-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 2: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator 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

Page 3: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

To my mother Rubina

iii

Page 4: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 5: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 6: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 7: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 8: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 9: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 10: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 11: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 12: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 13: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

~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

Page 14: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 15: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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,

Page 16: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 17: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 18: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 19: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 20: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 21: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 22: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 23: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 24: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 25: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 26: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 27: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 28: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 29: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 30: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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 .

Page 31: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 32: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 33: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 34: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 35: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 36: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 37: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 38: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 39: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 40: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 41: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 42: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 43: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 44: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 45: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 46: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 47: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 48: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 49: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 50: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 51: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 52: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 53: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 54: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 55: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 56: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 57: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 58: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 59: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 60: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 61: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 62: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 63: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 64: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 65: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 66: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 67: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 68: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 69: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 70: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 71: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 72: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 73: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 74: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 75: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 76: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 77: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 78: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 79: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 80: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 81: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 82: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 83: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 84: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 85: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 86: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 87: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 88: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 89: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 90: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 91: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 92: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 93: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 94: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 95: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 96: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 97: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 98: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 99: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 100: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 101: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 102: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 103: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 104: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 105: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 106: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 107: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 108: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 109: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 110: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 111: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 112: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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)

Page 113: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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

Page 114: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 115: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.

Page 116: Model Predictive Control Based Motion Drive Algorithm for a … · 2017-07-10 · Abstract Model Predictive Control Based Motion Drive Algorithm for a Driving Simulator Faizan Rehmatullah

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.