Arkadiy Turevskiy, MathWorks
In this video we deploy PID autotuner to embedded software running on Lego MINDSTORMS EV3 robot to automatically tune gains of a PID controller that provides power to the wheel to regulate its speed.
We use Online PID Tuner block, a new capability in Simulink Control Design in release R2017b to generate the code for the PID autotuning algorithm. We download the generated code to the LEGO EV3. We initialize PID Controller in the LEGO EV3 embedded software with initial guesses and command step changes in reference speed to evaluate PID controller performance with initial gains. We show that system performance is poor, with large overshoot and oscillations.
We then use Simulink External Mode to run the autotuning algorithm The algorithm injects an excitation signal into the plant, measures the output, and uses collected data to estimate plant frequency response. All of this is done in embedded software. The algorithm then computes PID gains for use in the PID controller. We test the new gains by requesting a series of step changes in wheel speed to demonstrate improved controller performance.