Personal tasks of this week:
Task: Preliminary Simulation of Circuit Primitives
Definition: Build a circuit simulation in EveryCircuit, a simple circuit simulator, to validate the circuit primitives proposed in Dr. Vichik’s thesis on a small-scale optimization problem.
Completion: The task is completed. I was able to build a solver for a simple LP according to Dr. Vichick’s design. However, the simulation yields concerning results, as I was able to tune the parameters of the LP to make the circuit fail to solve it. We will need to further investigate its implications.
Task: Symbolic NLP Formulation of the NMPC Swing-Up Controller
Definition: Symbolically formulate the NMPC Swing-Up controller as an NLP, which acts as the NLP problem we supply to the analog SQP solver on each iteration. Validate the formulation by solving it with an open source NLP solver.
Completion: The task is completed. Alvin and I have successfully formulated the problem as an NLP, and were able to swing up a double pendulum in simulation by repeatedly solving it. Below is a visualization of the controlled double pendulum:
Next Steps:
My next step is to investigate the implications of the failure of Dr. Vichik’s circuit to solve some LPs, and develop a solution accordingly.
Overall progress assessment:
My progress is on-schedule, as all of my tasks this week have been completed. However, the observed failure of Dr. Vichik’s design indicates a significant risk.