PKT - Reglerentwurf mit Arduino

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

Im Praktikum Reglerentwurf mit Arduino, das im Praktikum Kommunikationstechnik als Versuch 9 angeboten wird, erhalten die Studierenden einen Einblick in Problemstellungen im Zusammenhang mit Reglerentwürfen. Sie bearbeiten theoretische vorbereitende Aufgaben zur Modellierung und Reglersynthese, simulieren ein Modell der Regelstrecke mit ihren entworfenen Reglern, implementieren ihre Regler auf einem Mikrokontroller und testen die Wirkung am realen System. Hierzu leiten wir die Studierenden an, ein etabliertes Vorgehen für den Reglerentwurf an unserem Versuchsaufbau nachzuvollziehen.

Der Lehrstuhl für Intelligente Regelungssysteme (IC) bietet den Praktikumsversuch Reglerentwurf mit Arduino 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 (oder einer vergleichbaren Veranstaltung) erworben wurden.

Die Studierenden arbeiten in diesem Praktikumsversuch in Gruppen mit unserem Versuchsaufbau FloatShield.

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 Regelgröße 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 und stellt somit die Eingangsgröße unserer Regelstrecke dar.

Die Studierenden werden für den Regelungsentwurf das gesamte System als zeitkontinuierlichen Standardregelkreis modellieren, anschließend mit Entwurfsmethoden für lineare Systeme einen zeitkontinuierlichen Regler entwerfen, und diesen abschließend in einen zeitdiskreten Regler transformieren, den sie auf der Arduino-Platform implementieren können.