Embedded PID Autotuner
In this video, we deploy a 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 the PID controller, running at 20 Hz 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 opens the feedback loop, 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.
Published: 14 Sep 2017
Related Products
Learn More
Featured Product
Simulink Control Design
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asien-Pazifik
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)