Alvin’s Status Report for 4/6

Personal tasks of this week:

Task: Tuning the SLP parameters

Definition: The SLP solver includes multiple tunable parameters, including the bounds for the constraints and the time discretization. The damping coefficient is another variable that is adjustable. Tuning these parameters will effect the performance of the solver.

Completion: Apart from affecting the performance of the solver, these parameters also affect the stability/reliability of the circuit. After testing with different numbers, we found that using the (-0.6, 0.6) as the bounds for the state and (-0.2, 0.2) as the bounds for the control input yielded good results.

 

Note that the pendulum takes multiple swings back and forth before being swung up due to a cost penalty on the control effort.

 

 

Next Steps:

Set up raspi and the drivers for communicating with the PCB.

 

Verification & Validation:

As the digital SLP solver is completed, we can now perform tests to gauge its robustness. Namely, we can run the test suite T2 as we defined in our report.

Run digital implementation 30 times and verify it solves the problem at least 90% of the time

We will run the test with three different starting positions to verify the correctness of the solver.

 

Overall progress assessment:

The SLP solver is mostly completed, moving on to configuring the raspi. On schedule.

Thomas’s Status Report for Apr. 6

Personal tasks of this week:

Task: Further test and resolve circuit issues in simulation

Definition: Work with Andrew to test with a larger set of representative LP problems on the analog circuit simulation. Use actual LPs sampled from the software SLP solver to test the simulated circuit for convergence, accuracy, and robustness. Resolve issues discovered in the process.

Completion: The task is completed. We’ve successfully conducted tests on six LPs sampled from the software SLP solver. They represent two different configurations of the software solver, with the first, the last, and a random LP problem used for testing the simulated circuit. The circuit was able to converge on all six problems, and the worst error across all problems and variables is 2.37%. In addition, I have made automated Excel sheets to speed up testing and avoid mistakes in manual calculation.

Verification:

Analog Component Verification: With Andrew, verify that each individual analog component is configured and, if applicable, calibrated correctly. This mainly applies to digital potentiometers, as they have large resistance tolerances, but can (and should) be calibrated prior to solver operation. This also applies to other components like ADCs, DACs, and analog switches, as they can be configured incorrectly.

Orchestrator Verification: With Alvin, verify that the orchestrator program produces a valid LP at each SLP iteration, such that it can be represented by a configuration of the analog circuit. In addition, verify that the Raspberry Pi’s digital interfaces, including I2C and SPI, are configured correctly, to ensure that the analog circuit is configured and measured correctly.

Next Steps:

My next step is to work on the schematics and layout of the PCB with Andrew. I will also help Alvin in porting the orchestrator program to the Raspberry Pi, and write code for interfacing with the analog circuit.

Overall progress assessment:

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