Thomas’s Status Report for Feb 17

Personal tasks of this week:

Task: Library-Based NMPC Swing-Up Controller Synthesis

Definition: Using an open source library, synthesize a NMPC controller that is capable of swinging up an inverted double pendulum. The purpose of this task is to validate that swinging up the inverted double pendulum is achievable with NMPC with small prediction and control horizons. The implementation must be in Python in order to integrate with the rest of the project.

Completion: The task is completed. We’ve selected do-mpc [1] as our library due to its ease of use. The synthesized NMPC controller is capable of consistently swinging up an inverted double pendulum with a prediction horizon of 3 and a control horizon of 3. However, we will synthesize a controller with longer predilection and control horizons for better robustness against noise.

Next Steps:

My next step is to integrate the NMPC swing-up controller with the symbolic dynamics model, and derive a symbolic NLP problem that corresponds to the NMPC controller. Then I will work on solving the NLP problem by implementing the SQP algorithm, calling an open-source QP solver.

I will also work with Andrew on analog component selection and circuit simulation.

Overall progress assessment:

My progress is on-schedule, as all of my tasks this week have been completed.

References:

[1] https://www.do-mpc.com/en/latest/