Projekt: DC Motor Position Control in MATLAB/Simulink

Dieses Projekt untersucht, wie ein DC-Motor mithilfe eines Regelkreises in MATLAB/Simulink gesteuert werden kann, um eine gewünschte Position zuverlässig zu erreichen. Meine Ziele waren hier:

Die folgenden Abbildungen zeigen den physikalischen Aufbau eines DC-Motors. Der DC-Motor wandelt elektrische Energie in mechanische Bewegung um. Die DC-Spannungsquelle (Power supply) versorgt den Motor mit elektrischer Energie. Durch den fließenden Strom entsteht im Rotor ein Magnetfeld, das eine Lorentz-Kraft erzeugt (Rotation).

DC Motor Aufbau

Diese Abbildungen lassen sich dann mit zwei Hauptgleichungen beschreiben:

- Elektrische Gleichung (2. Kirchhoffschen Gesetz / Faraday’schen Induktionsgleichung)

\[ V(t) = L \frac{di(t)}{dt} + R\,i(t) + K_e\,\omega(t) \]

und da

\[ \omega(t) = \frac{d\theta(t)}{dt} \]

Folgt daraus:

\[ L \frac{di(t)}{dt} = V(t) - R\,i(t) - K_e \frac{d\theta(t)}{dt} \]

oder auch geschrieben als:

\[ L \frac{di}{dt} = V - (R\,i + K_e \frac{d\theta}{dt}) \]

Diese Gleichung beschreibt den elektrischen Stromkreis der Motorwicklung.

- Mechanische Gleichung: (2. Newtonschen Gesetz für Rotation)

\[ \sum M = J \frac{d\omega}{dt} \quad \Longleftrightarrow \quad J \frac{d\omega(t)}{dt} = K_t\,i(t) - b\,\omega(t) \]

mit den Momenten:

\[ M = K_t\,i(t) - b\,\omega(t) \]

und da

\[ \omega(t) = \frac{d\theta(t)}{dt} \]

folgt daraus:

\[ J \frac{d^2\theta(t)}{dt^2} = K_t\,i(t) - b\,\frac{d\theta}{dt} \]

oder auch geschrieben als:

\[ J \frac{d^2\theta}{dt^2} = K_t\,i - b\,\frac{d\theta(t)}{dt} \]

Diese Gleichung beschreibt die Drehbewegung des Motors ohne äußere Last.

- Reglerentwurf:

Ein PID-Regler wird zur Positionsregelung eingesetzt. Ziel ist es, den Positionsfehler

\[ e(t) = \theta_{ref}(t) - \theta(t) \]

zu minimieren.

PID-Reglergleichung:

\[ u(t) = K_p\,e(t) + K_i \int e(t)\,dt + K_d\,\frac{de(t)}{dt} \]

Die Parameter \( K_p \), \( K_i \) und \( K_d \) werden z. B. durch manuelles Tuning, die Ziegler–Nichols-Methode oder den Simulink Tuner bestimmt.

Bei der Erstellung wird die zwei folgenden Gleichungen verwendet:

\[ L \frac{di}{dt} = V - (R\,i + K_e \frac{d\theta}{dt}) \]

(1)

\[ J \frac{d^2\theta}{dt^2} = K_t\,i - b\,\frac{d\theta}{dt} \]

(2)

- Simulink-Modell des DC-Motors ohne Regler und Ergebnis der Positionsausgabe (θ)

Simulink Modell ohne Regler Ergebnis ohne Regler

Das zweite Bild zeigt das Positionssignal θ(t) über die Zeit.

Beobachtungen:

Das bedeutet:

Ein PID-Regler ist notwendig, um die Position (θ) gezielt zu steuern und stabil an einem Sollwert zu halten.

- Simulink-Modell des DC-Motors mit Regler und Ergebnis der Positionsausgabe (θ)

Simulink Modell mit Regler Ergebnis mit Regler

Die neue Simulink-Struktur (mit Regler) stellt einen geschlossenen Regelkreis (Closed-Loop Control) dar:

Das ist der gewünschte Zielwert der Motorposition (\( \theta_{ref} = 1\,\text{rad} \)).

Berechnet den Positionsfehler \[ e(t) = \theta_{ref}(t) - \theta(t) \]

Berechnet das Stellsignal (Spannung \( v(t) \)) aus dem Fehler: \[ v(t) = K_p\,e(t) + K_i \int e(t)\,dt + K_d\,\frac{de(t)}{dt} \]

Das System, das die Spannung in eine Rotationsbewegung (Position θ) umwandelt.

In diese erste Simulation wurde:

\[ K_p = 1, \quad K_i = 1, \quad K_d = 0 \]

Beobachtungen:

Interpretation – Vergleich mit dem offenen System

Merkmal Ohne PID-Regler Mit PID-Regler (P = 1, I = 1)
Systemtyp Offener Kreis Geschlossener Regelkreis
Verhalten θ steigt unbegrenzt an θ erreicht Sollwert stabil
Stabilität instabil (läuft weiter) stabil (stationärer Zustand)
Fehler (steady-state) unendlich groß ≈ 0
Überschwingen leicht (~10–15 %)
Einschwingzeit < 1.5 s

Probleme im aktuellen System (P = 1, I = 1, D = 0)

Beim Blick auf Diagramm mit Regler erkennt man:

Ursache:

Das Zusammenspiel von \( K_p = 1 \) und \( K_i = 1 \) führt zu einer recht hohen Integraldynamik. → Das heißt: Der I-Anteil sammelt den Fehler zu stark auf → zu viel Stellspannung, bevor das System reagiert → Überschwingen. Da kein D-Anteil vorhanden ist, fehlt hier die Dämpfung.

Experiment mit Kp = 1, Ki = 0.5, Kd = 0.05

Regler Struktur Ergebnis optimiert

Beobachtung aus der Kurve

Vergleich mit vorherigen Ergebnissen:

Konfiguration Verhalten Bemerkung
Ohne PID θ wächst unbegrenzt Kein Feedback → instabil
PI-Regler (1, 1, 0) Überschwingung, Nachschwingen Zu aggressiv, übersteuert
PID-Regler (1, 0.5, 0.05) Schnell, stabil, kein Überschwingen Optimal abgestimmt