Skip to content

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gaussian-Process based Model Predictive Control

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

For detailed information about the project, please refer to the 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 * ( GP(z_k) + w ) , where z_k = [Bz_x*xk ; Bz_u*uk] is the vector of selected features f_d is the dicrete nominal model w ~ N(0,\sigma_n) is the process WG noise GP is the Gaussian Process model reponsible for learning the unmodeled dynamics$$

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

$$X = [x_k,u_k] Y + w = pinv(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

MPC controller with Gaussian Process deactivated MPC controller with TRAINED and ACTIVATED 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

  • MATLAB 100.0%