Magnet Levitation with High-Speed Control


A classic problem in non-linear controls is the ability to levitate a magnet by using a solenoid. While this task has been achieved by others through software implementation , this project implements the control loop, from state estimation to driving a voltage, entirely on an FPGA, to harness a 156 kHz sample rate. The role of the Raspberry Pi is to command a setpoint and linearized PID gains to the FPGA, and facilitate the movement between setpoints by open-loop control. The system was able to stabilize the magnet at setpoints within a 1 cm range and smoothly move between setpoints.

This was a partner project done with Kunal Menda. See the Github repository here.

Project Block Diagram

Technical Report

A full technical report is shown below:

Back to Projects