diff --git a/nmpc/cgmres/README.md b/nmpc/cgmres/README.md new file mode 100644 index 0000000..a46901c --- /dev/null +++ b/nmpc/cgmres/README.md @@ -0,0 +1,79 @@ +# CGMRES method of Nonlinear Model Predictive Control +This program is about Continuous gmres method for NMPC +Although usually we have to calculate the partial differential of optimal matrix, it could be really complicated. +By using CGMRES, we can pass the calculating step and get the optimal input quickly. + +# Problem Formulation + +- **example** + +- model + + + +- evaluation function + + + + +- **two wheeled model** + +- model + + + +- evaluation function + + + + +if you want to see more detail about this methods, you should go https://qiita.com/MENDY/items/4108190a579395053924. +However, it is written in Japanese + +# Expected Results + +- example + +![Figure_1.png](https://qiita-image-store.s3.amazonaws.com/0/261584/3347fb3c-3fce-63fe-36d5-8a7bb053531a.png) + +- two wheeled model + +- trajectory + +![image.png](https://qiita-image-store.s3.amazonaws.com/0/261584/8e39150d-24ed-af13-51f0-0ca97cb5f5ec.png) + +- time history + +![Figure_1.png](https://qiita-image-store.s3.amazonaws.com/0/261584/e67794f3-e8ef-5162-ea84-eb6adefd4241.png) +![Figure_2.png](https://qiita-image-store.s3.amazonaws.com/0/261584/d74fa06d-2eae-5aea-4a33-6c63e284341e.png) + +# Usage + +- for example + +``` +$ python main_example.py +``` + +- for two wheeled + +``` +$ python main_two_wheeled.py +``` + +# Requirement + +- python3.5 or more +- numpy +- matplotlib + +# Reference +I`m sorry that main references are written in Japanese + +- main (commentary article) (Japanse) https://qiita.com/MENDY/items/4108190a579395053924 + +- Ohtsuka, T., & Fujii, H. A. (1997). Real-time Optimization Algorithm for Nonlinear Receding-horizon Control. Automatica, 33(6), 1147–1154. https://doi.org/10.1016/S0005-1098(97)00005-8 + +- 非線形最適制御入門(コロナ社) + +- 実時間最適化による制御の実応用(コロナ社) \ No newline at end of file