/systems-optimization-research

Code from internship activities at Systems Optimization Group at UFSC

Primary LanguagePython

Systems Optimization Research

Repo with code of the algorithms developed of predictive control systems, GPC (Generalized Predictive Control) and IHMPC (Infinite Horizon Model Predictive Control). Internship report and base article used for the implementations.

Repo structure:

  • ./requirements.txt : python dependencies to execute the algorithms
  • ./doc : articles and reports
  • ./img : pictures and screenshots from the experiments
  • ./src : source code for the algorithms implementation
    • /gpc : GPC algorithm files
    • /ihmpc : IHMPC algorithm files
    • /ethylene_oxide_gpc.py : script with simulation with the application of GPC algorithm to control an ethylene oxide plant
    • /ethylene_oxide_ihmpc.py : script with simulation with the application of IHMPC algorithm to control an ethylene oxide plant

Prerequisites

For the execution of the IHMPC algorithm, it's used the solver OSQP. The following dependencies must be installed on your machine:

  • GCC

  • CMake

    curl https://cmake.org/files/v3.10/cmake-3.10.3-Linux-x86_64.sh -o /tmp/curl-install.sh \
          && chmod u+x /tmp/curl-install.sh \
          && mkdir /usr/bin/cmake \
          && /tmp/curl-install.sh --skip-license --prefix=/usr/bin/cmake \
          && rm /tmp/curl-install.sh
    

Instructions to run:

  • git clone git@github.com:igoryamamoto/internship-code.git
  • cd internship-code
  • pip3 install -r requirements.txt
  • pip3 install osqp
  • cd src
  • python3 ethylene_oxide_gpc.py
  • python3 ethylene_oxide_ihmpc.py