Balancing and Rotary Inverted Pendulum (Furata pendulum)
Performed SysID for the base motor.
Create CT/DT digital twinsin MATLAB and verify with hardware data.
Tuned PID for base motor.
Designed a non-linear model for the entire pendulum system.
Linearized and designed a Leunberger observer for pendulum angle.
Verified with a simple low-pass filter on hardware.Â
Designed and tuned LQR for the entire system.
Implemented a trigger system to only activate controler when within linearization neighbourhood.
Converted entire above implementation to discrete transfer functions.
Wrote code to deploy arbitrary polynomial transfer function controller on Arduino.
Finally deployed on Arduino.
Stuff works, but failswhen you forget to account in sampling time : )
When you correct for it, we get perfect tracking with string disturbance-rejection as well.