Projekte

Erstellen Sie einen PID-Controller auf der NI myRIO-Hardware

Paintball Picasso | Waterloo Labs | Episode 09 (Januar 2019).

Anonim

Erstellen Sie einen PID-Controller auf der NI myRIO-Hardware


Erfahren Sie, wie Sie Ihren eigenen einfachen PID-Regler implementieren. In diesem Artikel werden wir uns auf die Hardware konzentrieren: NI myRIO und einen Hobby-DC-Servomotor.

In dieser kurzen Artikelserie werden wir einen einfachen PID-Controller implementieren, der LabVIEW mit einem Hobby DC Servo-Motor verwendet. Wir werden das Servo anpassen, indem wir den internen Controller entfernen und einen ersetzen, den wir selbst herstellen. In diesem Artikel stellen wir Ihnen schnell die PID-Regelung vor und folgen mit der erforderlichen Hardwarearbeit. Der nächste Artikel wird Software und Implementierung diskutieren.

PID-Regelung

Die Welt, in der wir leben, ist extrem dynamisch und oft schwer zu messen, geschweige denn zu kontrollieren.

Stellen Sie sich einen Elektromotor vor - als er hergestellt wurde, hatte er mechanische Toleranzen, die sich zu messbaren Ungenauigkeiten addierten. Mit der Änderung von Umgebungsvariablen ändern sich auch die Reaktion und das Verhalten der Motoren.

Diese Änderungen oder Ungenauigkeiten allein können dazu führen, dass ein Gerät manchmal gute Ergebnisse liefert und manchmal nicht das ausgibt, was wir erwarten. Daher muss sich unser Gerät anpassen können oder es kann einfach gesteuert werden.

Wann immer wir Prozesse regeln oder bewegte Geräte wie das oben genannte Motorbeispiel steuern wollen, verwenden wir ein externes Gerät oder ein Softwaremodul, das oft als Controller bezeichnet wird.

Die wohl beliebteste Methode zur Verwendung eines Controllers in der Wissenschaft und in der Industrie ist der PID-Controller.

PID steht für Proportional-Integral-Derivative. Diese Steuerungsmethode verwendet eine Rückkopplungsschleife, die den gewünschten Wert mit dem tatsächlichen Wert vergleicht, um einen Fehler zu finden, den er dann zu minimieren versucht. Wenn der Fehler immer kleiner wird, nähert sich der Prozess oder die Vorrichtung dem gewünschten Zustand. Wenn Sie mehr über die technischen Details der PID-Regelung erfahren möchten, lesen Sie bitte diesen Artikel.

Bedarf

Um zu folgen, sollten Sie die folgende Hardware zur Verfügung haben:

  • NI myRIO-Embedded-Hardwaregerät
  • Hobby-DC-Servomotor, mit dem man alles zerlegen und anpassen kann
  • Überbrückungsdrähte
  • 10kOhm Widerstände (x2)
  • Lötkolben / Station

Wenn Sie einen Schrumpfschlauch und / oder ein Isolierband haben, könnte es auch nützlich sein.

Abbildung 1. Setup für dieses Experiment

Über unsere "Pflanze"

Im Zusammenhang mit Controllern wird das gesteuerte Gerät oft als "Anlage" bezeichnet. Dies ist ein alter Begriff (stellen Sie sich eine große chemische Fabrik mit Prozessen vor, die kontrolliert werden müssen), die Sie immer noch oft in der Literatur finden.

Der Hobby-Servo wird unsere Anlage sein. Bevor wir uns jedoch mit der Art und Weise befassen, wie wir es verwenden, wollen wir zuerst die Anpassungen besprechen, die wir zuerst ausführen müssen, und einige Hintergrundinformationen behandeln.

In den meisten Fällen wird ein Standard-Analog-DC-Servo einen Operationsverstärker-basierten Controller aufweisen, der in dem Gehäuse enthalten ist. Zusätzlich wird es ein Drehpotentiometer haben, um die aktuelle Position zu erkennen, die für die Rückmeldung benötigt wird. Wir werden diesen Controller so anpassen, dass er für etwas anderes als seinen ursprünglichen Zweck verwendet werden kann.

Wenn Sie davon gehört haben, Servos für "kontinuierliche Rotation" zu modifizieren, wissen Sie vielleicht, wohin das geht. Unsere Änderung ist etwas anders, da wir das Potentiometer an seinem ursprünglichen Ort behalten, anstatt es vollständig zu entfernen.

Unser Plan ist, den internen Servo Controller so anzupassen, dass wir die Geschwindigkeit anstatt der Position steuern können. Um dies zu tun, werden wir die Potentiometerkabel durch ein Paar von 10 kOhm Widerständen ersetzen, die als Spannungsteiler angeschlossen sind, was eine feste Ausgangsspannung liefert (im Gegensatz zum Potentiometer, das eine Ausgangsspannung erzeugt, die sich ändert, wenn sich das Servo dreht). Dies führt dazu, dass der interne Controller immer einen Positionsoffset erkennt.

Durch das Senden typischer Servopulse erhalten wir die Möglichkeit, die Geschwindigkeit anstatt der Position zu steuern.

Abbildung 2 und Tabelle 1 zeigen, wie ein Standard-Servomotor ohne Anpassungen funktionieren würde.

Abbildung 2. Einfache Servosteuerung durch PWM

Tabelle 1. Standard-Servoverhalten

Tabelle 2 zeigt, wie es nach den Anpassungen für die gleichen Eingaben reagieren würde. T ist in diesem Fall auf 20 ms eingestellt (50 Hz Bildwiederholrate).

Tabelle 2. Servoverhalten nach der Anpassung

Anpassung

Jetzt, da wir eine Vorstellung davon haben, was wir tun müssen, lassen Sie uns das in die Praxis umsetzen. Befolgen Sie diese Schritte, um das DC-Servo für die externe Steuerung vorzubereiten:

1. Schrauben Sie die Unterseite des Servomotors ab und entfernen Sie das hintere Gehäuse. Suchen Sie dann das Potentiometer (es sollte mit dem rotierenden Teil des Servos verbunden sein) und identifizieren Sie die drei Drähte, mit denen es an die Platine angeschlossen ist.

2. Entlöten Sie diese drei Drähte von Schritt 1, wobei Sie berücksichtigen, an welchen Lötdraht jeder der Drähte angeschlossen ist (besonders der mittlere!). Wenn Sie können, versuchen Sie, Bilder zu machen, wenn Sie auf Ihre Arbeit zurückkommen.

Abbildung 3. Servo mit entfernter rückseitiger Abdeckung.

3. Verbinden Sie die beiden 10 kOhm-Widerstände wie in Abbildung 4 gezeigt, so dass das mittlere Gelenk ein separates Bein ist. Optional können Sie die Verbindung löten, um sicherzustellen, dass sie an Ort und Stelle fixiert ist. Dies wird einen Spannungsteiler bilden, der die Hälfte der Spannung an den zwei Widerständen liefert.

Abbildung 4. Erstellen des Spannungsteilers aus zwei 10 kOhm Widerständen.

4. Jetzt ersetzen wir die Potentiometeranschlüsse durch unseren neuen Spannungsteiler. Löten Sie die Widerstände an die gleichen Pads, an denen die Potentiometerkabel angeschlossen waren. Stellen Sie sicher, dass die Leitung, an der sich die beiden Widerstände treffen, zur mittleren Kontaktstelle führt (wo der mittlere Draht des Potentiometers angeschlossen war). Dies ist in Fig. 5 als (2) angegeben . Die anderen beiden können in beide Richtungen gehen (1) .

Abbildung 5. Ersetzen des Potentiometers durch den Spannungsteiler.

5. Löten Sie (oder befestigen Sie auf andere Weise) die drei hängenden Potentiometeranschlüsse mit den Drahtbrücken, damit wir sie im nächsten Schritt mit dem myRIO verbinden können.

Abbildung 6. Jumperanschlüsse, die an die Potentiometerkabel gelötet sind, um eine einfache Verbindung mit dem myRIO zu ermöglichen.

6. Schließen Sie die zuvor gelöteten Drahtbrücken an die NI myRIO MXP Extension-Karte an. Das mittlere (Wischer) Kabel vom Potentiometer (in meinem Fall weiß) muss zu AI0 von Port A gehen. Die restlichen zwei müssen mit Masse und 5V verbunden sein. Beachten Sie, dass Sie eine andere Methode für die physische Verbindung mit dem myRIO wählen können, solange die Drähte zu den richtigen Verbindungen gehen.

7. Verwenden Sie drei zusätzliche Überbrückungsdrähte, um die schwarzen, roten und weißen Drähte am Servostecker mit Masse, 5 V bzw. AO0 zu verbinden. Auch hier können Sie mit verschiedenen Mitteln physisch eine Verbindung zum myRIO herstellen, solange die Verbindungen identisch sind.

Wenn Sie den Anweisungen folgen, sollten Sie etwas haben, das wie in Abbildung 7 aussieht.

Abbildung 7. Vollständige Servoanpassung und Verbindungsaufbau des Experiments.

Abbildung 8. Ändern des Servogehäuses.

Schließlich möchten Sie das Servogehäuse schließen. Da wir nun zusätzliche Drähte aus dem Gerät herausholen, musste ich etwas mehr Platz schaffen, indem ich einen Teil der Plastikabdeckung abschneide (siehe Abbildung 8 oben). Ich benutzte auch Schrumpfschläuche, um die Kabelverbindungen abzudecken, damit sie sich nicht versehentlich berühren.


Das ist alles was wir für die Hardware brauchen. Im nächsten Artikel werde ich erklären, wie man mit NI LabVIEW den PID-Controller in Software schreibt und das angepasste Servo mit unserem eigenen PID-Controller steuert.

Nächster Artikel in der Serie: Erstellen Sie einen PID-Controller auf der NI myRIO-Software

Gib diesem Projekt einen Versuch für dich selbst! Holen Sie sich die Stückliste.