GRAMPC-S is a framework for nonlinear stochastic model predictive control based on GRAMPC. The implementation in C++ and the fast solver allow sampling times in the (sub)millisecond range. A manual of GRAMPC-S is provided in the folder documentation.
The most important features are listed below. For a more detailed description of the features, please refer to the documentation.
- Approximation of a stochastic optimal control problem by a deterministic optimal control problem that can be solved by GRAMPC,
- Several approximation methods for predicting stochastic moments of random variables:
- First-order Taylor linearization,
- Stochastic sampling,
- Transformations between points and stochastic moments, such as the unscented transformation, multiple Gaussian quadrature rules, and Stirling's interpolation of first and second order,
- Polynomial chaos expansion.
- Approximation of probabilistic inequality constraints by deterministic inequality constraints,
- Random sampling from a large number of probability density functions,
- Consideration of additive Gaussian processes in the system function for modeling unknown parts of the dynamics using measured data points.
GRAMPC-S depends on the Eigen 3.4 library. If Eigen is not installed on your system, clone the repository, create the folder build, and install Eigen. For Linux, execute the following commands:
git clone -–branch 3.4.0 https://gitlab.com/libeigen/eigen.git
mkdir eigen/build
cd eigen/build
cmake -DCMAKE_BUILD_TYPE=Release ..
sudo make install
For Windows with MinGW compiler, execute the following commands:
git clone --branch 3.4.0 https://gitlab.com/libeigen/eigen.git
mkdir eigen\build
cd eigen\build
cmake -DCMAKE_BUILD_TYPE=Release .. -G "MinGW Makefiles"
cmake --install .
Clone the repository and all submodules:
git clone --recurse-submodules https://github.com/grampc/grampc-s.git
To build GRAMPC-S using Linux, run the CMakeLists.txt and call make afterwards:
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
make
To build GRAMPC-S using Windows, the editor Visual Studio Code with the C++ extension is recommended. Open the folder "grampc-s" in Visual Studio Code, click the button "Build", and select a compiler from the list.
GRAMPC-S is licensed under BSD 3-clause license, see LICENSE.txt.