Skip to content

A Model Predictive Control (MPC) Python library based on the OSQP and ProxQP solver.

License

Notifications You must be signed in to change notification settings

shaoanlu/pyMPC-ProxQP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyMPC-ProxQP

WIP alert: The code within this reposity is in a WIP state and may not have undergone rigorous testing and may exhibit instability. Use at your own discretion.

This repository is a fork from forgi86/pyMPC with an additional feature that replaces OSQP with ProxQP. Preliminary experiments on examples/example_inverted_pendulum.py sometime ran faster than OSQP.

Requirements

pyMPC requires the following packages:

Usage

This code snippets illustrates the use of the MPCController class:

from pyMPC.mpc import MPCController

K = MPCController(Ad,Bd,Np=20, x0=x0,xref=xref,uminus1=uminus1,
                  Qx=Qx, QxN=QxN, Qu=Qu,QDu=QDu,
                  xmin=xmin,xmax=xmax,umin=umin,umax=umax,Dumin=Dumin,Dumax=Dumax)
K.setup()

...

xstep = x0
for i in range(nsim): 
  uMPC = K.output()
  xstep = Ad.dot(xstep) + Bd.dot(uMPC)  # system simulation steps
  K.update(xstep) # update with measurement

Full working examples are given in the examples folder:

Acknoledgment

This code have been directly source from forgi86/pyMPC. We are grateful to the original authors and maintainers for their work.

About

A Model Predictive Control (MPC) Python library based on the OSQP and ProxQP solver.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 67.3%
  • Jupyter Notebook 31.8%
  • MATLAB 0.9%