Reglerentwurf mit Arduino

  Box mit Arduino und Röhre mit Ball Urheberrecht: © IC

Der Lehrstuhl für Intelligente Regelungssysteme (IC) bietet den Praktikumsversuch "Reglerentwurf mit Arduino" für die Praktika Praktikum Technische Informatik und Praktikum Kommunikationstechnik in zwei verschiedenen Varianten an. Zum einen besteht die Möglichkeit, den Versuch wie üblich in Teilen als vorbereitende Hausaufgabe, und in Teilen als Präsenzpraktikum durchzuführen. Davon abweichend bieten wir ebenfalls die Möglichkeit, unseren Praktikumsversuch vollständig als Take-Home-Praktikum zuhause durchzuführen. Voraussetzung für die erfolgreiche Bearbeitung der gestellten Aufgaben sind die Kenntnisse, die in der Vorlesung Systemtheorie 1 erworben wurden.

Die Studenten werden in diesem Praktikumsversuch mit unserem Versuchsaufbau FloatShield arbeiten. FloatShield ist ein Teilprojekt des Open-Source-Projekts AutomationShield, das seine Ziele auf der eigenen Github-Seite selbst beschreibt:

AutomationShield ist eine Open-Source-Hardware- und -Software-Initiative, die sich auf die Entwicklung von Werkzeugen für die Ausbildung von Ingenieuren und Mechatronikern konzentriert. Der Kern des Projekts sind Designhinweise auf Erweiterungsmodule für die bekannte Mikrocontroller-Plattform von Arduino, die Feedback-Regelsysteme zur Ausbildung von Ingenieuren und Mechatronikern umsetzen. Diese Hardware-Erweiterungen - bekannt als Shield in der Arduino-Welt - sind hauptsächlich Systeme auf gedruckten Leiterplatten.

Bei diesem Praktikumsversuch soll die Höhe eines Korkballs, der von einem Luftstrom in der Schwebe gehalten wird, geregelt werden. Das FloatShield besteht aus einem senkrecht stehenden PVC-Rohr, in das von unten durch einen Lüfter ein Luftstrom eingeleitet wird. In diesem Rohr befindet sich ein Korkball, der sich in vertikaler Richtung im Rohr und im Luftstrom bewegen kann. Am oberen Ende des Rohrs befindet sich ein Abstandssensor, der mithilfe eines Lasers die Höhe des Korkballs im Polyvinylcarbonat-Rohr ermittelt. Für den Lüfter am unteren Ende des Rohrs kann durch den Arduino-Mikrokontroller eine Spannung vorgegeben werden, die über die Drehzahl des Lüfters die Strömungsgeschwindigkeit beeinflusst. Sowohl der Lüfter als auch der Sensor werden mit einer konstanten Abtastfrequenz angesteuert beziehungsweise ausgelesen. Das Auslesen beziehungsweise Ansteuern erfolgt durch Anweisungen an den Arduino mega2560. Die Programmierung des Arduino mega2560 erfolgt durch die Programmbibliotheken von AutomationShield über die Arduino IDE und Matlab Simulink.

Je nach aufgespieltem Programm kann der Arduino Anweisungen von anderen Anwendungen erhalten und darauf reagieren.

Das regelungstechnische Ziel dieses Praktikumsversuchs ist es, die Höhe des Korkballs auf benutzerdefinierte Referenzsignale r(t) zu regeln. Dazu steht am Arduino mit einer durch den Benutzer eingestellten Abtastfrequenz die aktuelle Höhe h(t) als Istwertinformation durch den Laser-Abstandssensor zur Verfügung. Anschaulich ist klar, dass für Veränderungen der Ist-Höhe maßgeblich die Strömungsgeschwindigkeit des Luftstroms im Rohr verantwortlich ist. Die Strömungsgeschwindigkeit selbst ist eine Funktion der Drehzahl des Lüfters. Bei diesem handelt es sich um einen Elektromotor, dessen Drehzahl über Pulsweitenmodulation durch die angelegte Spannung beeinflusst wird. Die Spannung des Elektromotors kann direkt über den Arduino vorgegeben werden. Die Spannung am Motor ist damit die Eingangsgröße unserer Regelstrecke.

Die Studenten werden im Verlauf dieses Praktikumsversuchs und der vorbereitenden Hausaufgaben Regler entwerfen, die als Eingang die Regelabweichung zwischen Ausgangssignal und Referenzsignal konsumieren und deren Ausgang Sie dann zur Erreichung der Regelziele auf den Eingang der Regelstrecke zurückführen.