├── .gitignore ├── .idea ├── .gitignore └── dictionaries │ └── marco.xml ├── LICENSE.md ├── README.md ├── README_PI.md ├── doc ├── latex │ ├── main.pdf │ ├── main.tex │ ├── pyMPC_formula_1.txt │ └── pyMPC_formula_2.txt └── sphinx │ ├── Makefile │ └── source │ ├── code.rst │ ├── conf.py │ ├── index.rst │ ├── math.rst │ ├── project.rst │ └── sphyinx_install ├── examples ├── example_accelerate_brake.py ├── example_inverted_pendulum.ipynb ├── example_inverted_pendulum.py ├── example_inverted_pendulum_kalman.ipynb ├── example_inverted_pendulum_kalman.py ├── example_point_mass.ipynb ├── example_point_mass.py └── img │ ├── cart_pole.png │ └── cart_pole.svg ├── pyMPC ├── .idea │ ├── misc.xml │ ├── modules.xml │ ├── pyMPC.iml │ ├── vcs.xml │ └── workspace.xml ├── __init__.py ├── kalman.py ├── mpc.py └── mpc_no_slack.py ├── setup.py └── test_scripts ├── alternative ├── example_unconstrained_MPC.py └── unconstrained.py ├── cvx_mpc_reference_governor.py ├── cvx_mpc_reference_governor_du.py ├── cvx_mpc_reference_governor_du_mimo.py ├── cvx_mpc_simple.py ├── disturbance.ipynb ├── example_inverted_pendulum.py ├── example_inverted_pendulum_1ms.py ├── example_inverted_pendulum_disturbance.py ├── example_inverted_pendulum_ode.py ├── example_inverted_pendulum_reference.py ├── example_mpc_function.py ├── kalman ├── MPC_observer.py ├── example_estimator_save_predictions.py ├── example_inverted_pendulum_disturbance.py ├── example_inverted_pendulum_disturbance_test.py ├── example_inverted_pendulum_estimator.py ├── img │ ├── cart_pole.png │ └── cart_pole.svg └── kalman.py ├── main.py ├── main_cvxpy.py ├── main_cvxpy_du.py ├── main_cvxpy_du_Nc.py ├── main_cvxpy_du_nocnst.py ├── main_cvxpy_simple.py ├── main_du.py ├── main_du_Nc.py ├── main_matlab_yalmip.m ├── main_simple.py ├── reference_governor ├── cvx_mpc_reference_governor_du_mimo_slack.py ├── oscillating_dynamics.py └── system_dynamics.py └── verify_MPC.py /.gitignore: -------------------------------------------------------------------------------- 1 | /.ipynb_checkpoints/ 2 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /workspace.xml -------------------------------------------------------------------------------- /.idea/dictionaries/marco.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/.idea/dictionaries/marco.xml -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/README.md -------------------------------------------------------------------------------- /README_PI.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/README_PI.md -------------------------------------------------------------------------------- /doc/latex/main.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/latex/main.pdf -------------------------------------------------------------------------------- /doc/latex/main.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/latex/main.tex -------------------------------------------------------------------------------- /doc/latex/pyMPC_formula_1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/latex/pyMPC_formula_1.txt -------------------------------------------------------------------------------- /doc/latex/pyMPC_formula_2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/latex/pyMPC_formula_2.txt -------------------------------------------------------------------------------- /doc/sphinx/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/Makefile -------------------------------------------------------------------------------- /doc/sphinx/source/code.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/source/code.rst -------------------------------------------------------------------------------- /doc/sphinx/source/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/source/conf.py -------------------------------------------------------------------------------- /doc/sphinx/source/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/source/index.rst -------------------------------------------------------------------------------- /doc/sphinx/source/math.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/source/math.rst -------------------------------------------------------------------------------- /doc/sphinx/source/project.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/source/project.rst -------------------------------------------------------------------------------- /doc/sphinx/source/sphyinx_install: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/doc/sphinx/source/sphyinx_install -------------------------------------------------------------------------------- /examples/example_accelerate_brake.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_accelerate_brake.py -------------------------------------------------------------------------------- /examples/example_inverted_pendulum.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_inverted_pendulum.ipynb -------------------------------------------------------------------------------- /examples/example_inverted_pendulum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_inverted_pendulum.py -------------------------------------------------------------------------------- /examples/example_inverted_pendulum_kalman.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_inverted_pendulum_kalman.ipynb -------------------------------------------------------------------------------- /examples/example_inverted_pendulum_kalman.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_inverted_pendulum_kalman.py -------------------------------------------------------------------------------- /examples/example_point_mass.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_point_mass.ipynb -------------------------------------------------------------------------------- /examples/example_point_mass.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/example_point_mass.py -------------------------------------------------------------------------------- /examples/img/cart_pole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/img/cart_pole.png -------------------------------------------------------------------------------- /examples/img/cart_pole.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/examples/img/cart_pole.svg -------------------------------------------------------------------------------- /pyMPC/.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/.idea/misc.xml -------------------------------------------------------------------------------- /pyMPC/.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/.idea/modules.xml -------------------------------------------------------------------------------- /pyMPC/.idea/pyMPC.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/.idea/pyMPC.iml -------------------------------------------------------------------------------- /pyMPC/.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/.idea/vcs.xml -------------------------------------------------------------------------------- /pyMPC/.idea/workspace.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/.idea/workspace.xml -------------------------------------------------------------------------------- /pyMPC/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pyMPC/kalman.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/kalman.py -------------------------------------------------------------------------------- /pyMPC/mpc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/mpc.py -------------------------------------------------------------------------------- /pyMPC/mpc_no_slack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/pyMPC/mpc_no_slack.py -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/setup.py -------------------------------------------------------------------------------- /test_scripts/alternative/example_unconstrained_MPC.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/alternative/example_unconstrained_MPC.py -------------------------------------------------------------------------------- /test_scripts/alternative/unconstrained.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/alternative/unconstrained.py -------------------------------------------------------------------------------- /test_scripts/cvx_mpc_reference_governor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/cvx_mpc_reference_governor.py -------------------------------------------------------------------------------- /test_scripts/cvx_mpc_reference_governor_du.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/cvx_mpc_reference_governor_du.py -------------------------------------------------------------------------------- /test_scripts/cvx_mpc_reference_governor_du_mimo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/cvx_mpc_reference_governor_du_mimo.py -------------------------------------------------------------------------------- /test_scripts/cvx_mpc_simple.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/cvx_mpc_simple.py -------------------------------------------------------------------------------- /test_scripts/disturbance.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/disturbance.ipynb -------------------------------------------------------------------------------- /test_scripts/example_inverted_pendulum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/example_inverted_pendulum.py -------------------------------------------------------------------------------- /test_scripts/example_inverted_pendulum_1ms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/example_inverted_pendulum_1ms.py -------------------------------------------------------------------------------- /test_scripts/example_inverted_pendulum_disturbance.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/example_inverted_pendulum_disturbance.py -------------------------------------------------------------------------------- /test_scripts/example_inverted_pendulum_ode.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/example_inverted_pendulum_ode.py -------------------------------------------------------------------------------- /test_scripts/example_inverted_pendulum_reference.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/example_inverted_pendulum_reference.py -------------------------------------------------------------------------------- /test_scripts/example_mpc_function.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/example_mpc_function.py -------------------------------------------------------------------------------- /test_scripts/kalman/MPC_observer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/MPC_observer.py -------------------------------------------------------------------------------- /test_scripts/kalman/example_estimator_save_predictions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/example_estimator_save_predictions.py -------------------------------------------------------------------------------- /test_scripts/kalman/example_inverted_pendulum_disturbance.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/example_inverted_pendulum_disturbance.py -------------------------------------------------------------------------------- /test_scripts/kalman/example_inverted_pendulum_disturbance_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/example_inverted_pendulum_disturbance_test.py -------------------------------------------------------------------------------- /test_scripts/kalman/example_inverted_pendulum_estimator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/example_inverted_pendulum_estimator.py -------------------------------------------------------------------------------- /test_scripts/kalman/img/cart_pole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/img/cart_pole.png -------------------------------------------------------------------------------- /test_scripts/kalman/img/cart_pole.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/img/cart_pole.svg -------------------------------------------------------------------------------- /test_scripts/kalman/kalman.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/kalman/kalman.py -------------------------------------------------------------------------------- /test_scripts/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main.py -------------------------------------------------------------------------------- /test_scripts/main_cvxpy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_cvxpy.py -------------------------------------------------------------------------------- /test_scripts/main_cvxpy_du.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_cvxpy_du.py -------------------------------------------------------------------------------- /test_scripts/main_cvxpy_du_Nc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_cvxpy_du_Nc.py -------------------------------------------------------------------------------- /test_scripts/main_cvxpy_du_nocnst.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_cvxpy_du_nocnst.py -------------------------------------------------------------------------------- /test_scripts/main_cvxpy_simple.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_cvxpy_simple.py -------------------------------------------------------------------------------- /test_scripts/main_du.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_du.py -------------------------------------------------------------------------------- /test_scripts/main_du_Nc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_du_Nc.py -------------------------------------------------------------------------------- /test_scripts/main_matlab_yalmip.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_matlab_yalmip.m -------------------------------------------------------------------------------- /test_scripts/main_simple.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/main_simple.py -------------------------------------------------------------------------------- /test_scripts/reference_governor/cvx_mpc_reference_governor_du_mimo_slack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/reference_governor/cvx_mpc_reference_governor_du_mimo_slack.py -------------------------------------------------------------------------------- /test_scripts/reference_governor/oscillating_dynamics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/reference_governor/oscillating_dynamics.py -------------------------------------------------------------------------------- /test_scripts/reference_governor/system_dynamics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/reference_governor/system_dynamics.py -------------------------------------------------------------------------------- /test_scripts/verify_MPC.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forgi86/pyMPC/HEAD/test_scripts/verify_MPC.py --------------------------------------------------------------------------------