Skip to content

lucasrm25/Gaussian-Process-based-Model-Predictive-Control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ef00c0d · Sep 24, 2020
Jan 10, 2020
Apr 9, 2020
Feb 3, 2020
Jan 18, 2020
Sep 24, 2020
Feb 3, 2020
Feb 4, 2020
Apr 9, 2020
Sep 24, 2020
Sep 24, 2020
Jan 24, 2020
Feb 3, 2020

Repository files navigation

Gaussian-Process based Model Predictive Control [IN PROGRESS]

Project for the course "Statistical Learning and Stochastic Control" at University of Stuttgart

For detailed information about the project, please refer to the Presentation and Report.

Supported Matlab Version >= R2019a

Control of a Race Vehicle with unkown complex dynamics

To run the Race Car example execute:

main_singletrack.m


A Gaussian process is used to learn unmodeled dynamics

x k + 1 = f d ( x k , u k ) + B d ( G P ( z k ) + w ) , w h e r e z k = [ B z x x k ; B z u u k ] i s t h e v e c t o r o f s e l e c t e d f e a t u r e s f d i s t h e d i c r e t e n o m i n a l m o d e l w   N ( 0 , σ n ) i s t h e p r o c e s s W G n o i s e G P i s t h e G a u s s i a n P r o c e s s m o d e l r e p o n s i b l e f o r l e a r n i n g t h e u n m o d e l e d d y n a m i c s

The Gaussian Process model GP is then fed with data (X,Y+w) collected online, such that:

X = [ x k , u k ] Y + w = p i n v ( B d ) ( x k + 1 f d ( x k , u k ) )

and it is trained (hyperparameter optimization) by maximizing the log Likelihood p(Y|X,theta), where theta is the vector of hyperparameters.

Results

NMPC controller with unmodelled dynamics Learning-Based NMPC controller (with trained Gaussian Process)
drawing drawing

Control of an Inverted Pendulum with deffect motor

To run the Inverted Pendulum please execute

main_invertedPendulum.m

About

Project for the course "Statistical Learning and Stochastic Control" at University of Stuttgart

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages