This repository has been created for the project of the course "Control Systems Lab" with Prof. Riccardo Ferrari in BA4. The purpose of the project is to control a double pendulum by stabilizing it in 2 equilibrium positions and rejecting the input disturbance.
The first step is to create a model of the real system using the right parameters. This involves calibrating the model through a Non-Linear Least-Square Optimization process. This helps in comparing and adjusting the model's output data to match the data collected from the real pendulum.
The 2 equilibrium positions chosen are up-up and down-down. This implies using a linear controller for both positions.
For this position, the chosen layout for the controller is a LQR (to simplify pole placement) coupled with a Luenberg observer (in order to reconstruct the full state). The design of the controller ended up with the following weights:
This position aims to reject input disturbances. The design has been achieved by implementing two cascaded PID controllers in series to individually regulate the two variables of the SIMO sytem. The best parameters found so far are listed below: