Inhaltsverzeichnis:

DC-Motor-Geschwindigkeitsantrieb - Gunook
DC-Motor-Geschwindigkeitsantrieb - Gunook

Video: DC-Motor-Geschwindigkeitsantrieb - Gunook

Video: DC-Motor-Geschwindigkeitsantrieb - Gunook
Video: Drehzahlregler für Elektromotoren 2024, November
Anonim
DC-Motordrehzahlantrieb
DC-Motordrehzahlantrieb
DC-Motordrehzahlantrieb
DC-Motordrehzahlantrieb

Dieses anweisbare wird auf das Design, die Simulation, den Bau und das Testen eines DC-DC-Wandlers im Schaltmodus und eines Steuersystemcontrollers für einen DC-Motor eingehen. Dieser Umrichter wird dann für die digitale Steuerung eines Nebenschluss-Gleichstrommotors mit Last verwendet. Die Schaltung wird in verschiedenen Phasen entwickelt und getestet.

Die erste Phase besteht darin, einen Konverter für den Betrieb mit 40 V zu bauen. Dies geschieht, um sicherzustellen, dass keine parasitäre Induktivität von Drähten und anderen Schaltungskomponenten vorhanden ist, die den Treiber bei hohen Spannungen beschädigen können. In der zweiten Stufe wird der Umrichter den Motor mit 400 V bei maximaler Last betreiben. Die letzte Stufe besteht darin, die Drehzahl des Motors mit einer variablen Last zu steuern, wobei das Arduino eine PWM-Welle steuert, um die Spannung anzupassen.

Komponenten sind nicht immer günstig und so wurde versucht das System möglichst günstig zu bauen. Das Endergebnis dieser praktischen Arbeit ist der Bau eines DC-DC-Wandlers und eines Steuersystem-Controllers, um die Drehzahl des Motors innerhalb von 1% bei einem Sollwert im stationären Zustand zu steuern und die Drehzahl bei variabler Last innerhalb von 2s einzustellen.

Schritt 1: Komponentenauswahl und Spezifikationen

Komponentenauswahl und Spezifikationen
Komponentenauswahl und Spezifikationen

Der Motor, den ich zur Verfügung hatte, hatte die folgenden Spezifikationen.

Motorspezifikationen: Anker: 380 Vdc, 3,6 A

Erregung (Shunt): 380 Vdc, 0,23 A

Nenndrehzahl: 1500 U/min

Leistung: ≈ 1,1 kW

DC-Motorstromversorgung = 380V

Optokoppler und Treiberversorgung = 21V

Dies würde bedeuten, dass der maximale Nennstrom und die maximale Nennspannung von Komponenten, die an den Motor angeschlossen sind oder den Motor steuern, höhere oder gleichwertige Nennwerte aufweisen.

Die Freilaufdiode, im Schaltplan mit D1 gekennzeichnet, wird verwendet, um der Rückwärts-EMK des Motors einen Weg zu geben, um zu verhindern, dass der Strom umkehrt und Komponenten beschädigt, wenn der Strom abgeschaltet ist und der Motor noch dreht (Generatormodus). Sie ist für eine maximale Sperrspannung von 600 V und einen maximalen Vorwärts-Gleichstrom von 15 A ausgelegt. Daher kann davon ausgegangen werden, dass die Schwungraddiode für diese Aufgabe mit ausreichender Spannung und Stromstärke arbeiten kann.

Der IGBT wird verwendet, um die Stromversorgung des Motors zu schalten, indem er ein 5V-PWM-Signal vom Arduino über den Optokoppler und den IGBT-Treiber empfängt, um die sehr große 380-V-Motorversorgungsspannung umzuschalten. Der verwendete IGBT hat einen maximalen Dauerkollektorstrom von 4,5 A bei einer Sperrschichttemperatur von 100 °C. Die maximale Kollektor-Emitter-Spannung beträgt 600 V. Daher kann davon ausgegangen werden, dass die Schwungraddiode in der Lage sein wird, mit einem für die Praxis ausreichenden Spannungs- und Stromniveau zu arbeiten. Es ist wichtig, dem IGBT einen möglichst großen Kühlkörper hinzuzufügen. Wenn keine IGBTs verfügbar sind, kann ein schnell schaltender MOSFET verwendet werden.

Der IGBT hat eine Gate-Schwellenspannung zwischen 3,75 V und 5,75 V und ein Treiber wird benötigt, um diese Spannung zu liefern. Die Frequenz, mit der die Schaltung betrieben wird, beträgt 10 kHz, daher müssen die Schaltzeiten des IGBT um Größenordnungen schneller als 100 us, die Zeit einer Vollwelle, sein. Die Schaltzeit für den IGBT ist mit 15ns ausreichend.

Der gewählte Treiber TC4421 hat Schaltzeiten von mindestens 3000 mal der PWM-Welle. Dadurch wird sichergestellt, dass der Treiber schnell genug für den Schaltungsbetrieb schalten kann. Der Treiber wird benötigt, um mehr Strom bereitzustellen, als der Arduino liefern kann. Der Treiber bezieht den erforderlichen Strom zum Betrieb des IGBT aus der Stromversorgung, anstatt ihn vom Arduino zu ziehen. Dies dient dem Schutz des Arduino, da das Ziehen zu viel Strom den Arduino überhitzt und Rauch austritt und der Arduino zerstört wird (versucht) und getestet).

Der Treiber wird mit einem Optokoppler vom Mikrocontroller isoliert, der die PWM-Welle bereitstellt. Der Optokoppler hat das Arduino vollständig isoliert, das der wichtigste und wertvollste Teil Ihrer Schaltung ist.

Bei Motoren mit anderen Parametern muss nur der IGBT auf einen mit ähnlichen Eigenschaften wie der Motor geändert werden, der die erforderliche Sperrspannung und den erforderlichen Dauerstrom des Kollektors verarbeiten kann.

Ein WIMA-Kondensator wird in Verbindung mit einem Elektrolytkondensator über der Motorstromversorgung verwendet. Dies speichert eine Ladung, um die Stromversorgung zu stabilisieren und hilft vor allem, die Induktivitäten von den Kabeln und Anschlüssen im System zu eliminieren

Schritt 2: Gebäude und Layout

Gebäude und Layout
Gebäude und Layout

Das Layout der Schaltung wurde so konzipiert, dass der Abstand zwischen den Komponenten minimiert wird, um unnötige Induktivitäten zu eliminieren. Dies geschah insbesondere in der Schleife zwischen dem IGBT-Treiber und dem IGBT. Es wurde versucht, Rauschen und Klingeln mit großen Widerständen zu beseitigen, die zwischen Arduino, Optokoppler, Treiber und IGBT geerdet wurden.

Die Komponenten werden auf ein Veroboard gelötet. Eine einfache Möglichkeit, die Schaltung aufzubauen, besteht darin, die Komponenten des Schaltplans auf das Veroboard zu zeichnen, bevor Sie mit dem Löten beginnen. Löten Sie in einem gut belüfteten Bereich. Kratzen Sie den leitfähigen Pfad mit einer Datei ab, um eine Lücke zwischen Komponenten zu schaffen, die nicht verbunden werden sollen. Verwenden Sie DIP-Pakete, damit Komponenten leicht ausgetauscht werden können. Das hilft bei ausgefallenen Bauteilen, diese dann nicht auslöten und das Ersatzteil nachlöten zu müssen.

Ich habe Bananenstecker (schwarze und rote Buchsen) verwendet, um meine Netzteile einfach an das Veroboard anzuschließen. Dies kann übersprungen und die Drähte direkt auf die Platine gelötet werden.

Schritt 3: Programmierung des Arduino

Die PWM-Welle wird durch Einbinden der Arduino-PWM-Bibliothek (als ZIP-Datei angehängt) generiert. Zur Drehzahlregelung des Rotors wird ein Proportional-Integralregler PI-Regler verwendet. Die proportionale und integrale Verstärkung kann berechnet oder geschätzt werden, bis ausreichende Einschwingzeiten und Überschwinger erreicht sind.

Der PI-Regler ist in der while()-Schleife des Arduino implementiert. Der Tachometer misst die Drehzahl des Rotors. Diese Messeingabe an das Arduino in einen der analogen Eingänge mit analogRead. Der Fehler wird berechnet, indem die aktuelle Rotordrehzahl von der Soll-Rotordrehzahl subtrahiert und gleich dem Fehler gesetzt wird. Die Zeitintegration wurde durchgeführt, indem die Abtastzeit zu jeder Schleife addiert und gleich der Zeit gesetzt wurde und somit mit jeder Iteration der Schleife erhöht wurde. Das Tastverhältnis, das das Arduino ausgeben kann, reicht von 0 bis 255. Das Tastverhältnis wird berechnet und mit PWMWrite aus der PWM-Bibliothek an den ausgewählten digitalen Ausgangs-PWM-Pin ausgegeben.

Implementierung des PI-Reglers

Doppelfehler = ref - rpm;

Zeit = Zeit + 20e-6;

double pwm = initial + kp * error + ki * Time * error;

Implementierung von PWM

Doppelsensor = analogRead(A1);

pwmWrite(3, pwm-255);

Der vollständige Projektcode kann in der Datei ArduinoCode.rar eingesehen werden. Der Code in der Datei wurde für einen invertierenden Treiber angepasst. Der invertierende Treiber hatte die folgende Auswirkung auf den Arbeitszyklus der Schaltung, dh new_dutycycle = 255 -dutycycle. Dies kann für nicht invertierende Treiber durch Umkehren der obigen Gleichung geändert werden.

Schritt 4: Test und Schlussfolgerung

Test und Fazit
Test und Fazit
Test und Fazit
Test und Fazit
Test und Fazit
Test und Fazit

Die Schaltung wurde schließlich getestet und es wurden Messungen vorgenommen, um festzustellen, ob das gewünschte Ergebnis erreicht wurde. Der Controller wurde auf zwei verschiedene Geschwindigkeiten eingestellt und auf das Arduino hochgeladen. Die Netzteile sind eingeschaltet. Der Motor beschleunigt schnell über die gewünschte Geschwindigkeit hinaus und pendelt sich dann bei der ausgewählten Geschwindigkeit ein.

Diese Technik zur Steuerung eines Motors ist sehr effektiv und würde bei allen Gleichstrommotoren funktionieren.