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/

Team Status Report for Feb 10

Significant risks and risk management:

Risk: Inverted double pendulum simulation wouldn’t converge

Definition: Since we are still working on building a simulation for the inverted double pendulum, we do not know whether or not problems like numerical instability or truncation error of the integrator would cause the simulation to not converge, i.e. incapable of settling on a solution.

Severity: If the inverted double pendulum simulation wouldn’t converge, the progress of the whole project would be severely jeopardized, because the simulation is a critical part of Prototype 1, that is swinging up the double pendulum with NMPC in simulation.

Resolution: A step we can take right now is to accelerate our progress towards a testable MVP of the simulation, whose convergence can be validated. Another measure is to study the properties of common numerical integrators and select those with superior convergence properties and are available in our library.

Risk: The analog circuit can’t meet the required tolerances

Definition: This risk has been brought to our attention by our assigned in instructor Thomas Sullivan (Thanks!). It is currently unclear to us what tolerance the analog components will need to have in order to satisfy the 10% solution accuracy required by the accuracy requirement (NR3). This is nontrivial to determine as the accuracy of the whole circuit can’t be easily associated with the accuracy of individual components.

Severity: If the analog circuit can’t meet the required tolerances, the progress of the whole project would be severely jeopardized, because the accuracy requirement (NR3) would not be satisfied.

Resolution: A solution is to use Sergey’s work [1] as a reference. If our components are more accurate than Sergey’s components in every relevant measure, it is likely that the whole circuit wouldn’t be significantly worse in accuracy compared to his circuit. This is possible because  more accurate components are available since his work was published.

Changes to the existing design:

There are no significant changes to the existing design because this is the week in which our proposal was presented, and our initial design was just finalized.

Changes to the project schedule:

Similarly, there are no significant changes to the project schedule compared to what was presented in the proposal presentation.

References:

[1] https://escholarship.org/content/qt01q7h2ng/qt01q7h2ng_noSplash_2892dd43015926698bb02bdb85d7b62f.pdf

Thomas’s Status Report for Feb 10

Personal tasks of this week:

Task: Proposal Presentation

Definition: As the presenter, prepare for the proposal presentation by drafting up the content to present, making presentation slides, writing a script, and rehearsing. Finally, present the proposal to our section.

Completion: The task was completed. It was done together with my teammates, who were especially helpful in giving me useful feedback when I rehearsed. Our TA Aidan also gave me very constrictive feedback on my presentation. The presentation slides can be found here: http://course.ece.cmu.edu/~ece500/projects/s24-teamd6/proposal/

Task: Project Management

Definition: As the team’s Project Manager of the week, keep track of the progress of the project, ensure that everyone is aware of and capable of completing their tasks, organize meetings and work sessions, and communicate with instructors and TAs on behalf of the team when necessary.

Completion: The task was partially completed. I was effective in manually tracking progress and organizing work sessions, but I did not set up a more easy-to-use project management tool (like a GitHub Project) as planned. I will work on better utilizing the available tools when I take up PM duties next time.

Task: Symbolic Model Development

Definition: Work with Alvin to develop a symbolic dynamics model of an inverted double pendulum, which would be the basis of Nonlinear Model Predictive Control (NMPC).

Completion: The task is completed. Alvin and I made substantial progress in deriving the dynamics equations and coding up the simulation using CasADi, an automatic differentiation library. A visualization of the simulated double pendulum with an external torque applied can be found in Alvin’s update for this week.

Overall progress assessment:

My progress is on-schedule, as all of my tasks this week have been completed. I will continue working towards completing Prototype 1, which is swinging up the inverted double pendulum with NMPC in a simulation.