Software: SimX - Einfuehrung - DC-Motor - Regelkreis

Aus OptiYummy
Zur Navigation springenZur Suche springen

Regelkreis-Experiment

Oft soll ein Antrieb nicht nur ein- und ausgeschalten werden, sondern sich nach einer vorgegebenen Sollkurve bewegen. Das kann man mit einem Gleichstrom-Motor hinreichend genau nur mit einem Regelkreis realisieren

In unserem Beispiel soll der Motor erst in eine Richtung hochdrehen und dann die Bewegung umkehren. Zum Schluss soll er wieder stehen bleiben. Der gesamte Vorgang soll 1 Sekunde dauern. Bei der Bewegung soll der Motor möglichst ruckfrei beschleunigen, also ganz "zart" die Drehzahl ändern. Dafür wollen wir zuerst einen Sollwert-Generator für die Vorgabe der Winkelgeschwindigkeit aufbauen:

  • Es bietet sich an, für diesen Bewegungsvorgang eine komplette Sinus-Schwingung (=1 Sinus-Impuls) als Grundlage zu nehmen.
    Software SimX - Einfuehrung - DC-Motor - impulsgenerator.gif
  • Wir finden in der Bibliothek das Element Impulsgenerator unter "Signalglieder - Signalquellen".
  • Nach dem Einfügen in unser Antriebsmodell mit dem Namen "Sinus" konfigurieren wir diesen Generator als Sinusgenerator mit einer Impulslänge von 1 s:
Software SimX - Einfuehrung - DC-Motor - sinusgenerator.gif
  • Hinweis:
    Der Name self bezeichnet das eigene Element. SimulationX ergänzt diesen Vorsatz automatisch für alle Bezeichner, welche sich auf das eigene Element beziehen. Im Beispiel ist der Folgeabstand S also immer so groß wie die Impuls-Breite W.
  • Wenn wir die Simulationszeit für das Modell auf 2 s erhöhen, erhalten wir folgendes Ausgangssignal vom Sinusgenerators:
    Software SimX - Einfuehrung - DC-Motor - sinusimpuls.gif

Ein solcher Drehzahl-Verlauf wäre aber noch nicht sanft genug. Am Anfang und Ende gäbe es einen ordentlichen Ruck! Deshalb quadrieren wir den Funktionsverlauf unter Beibehaltung des Vorzeichens:

Software SimX - Einfuehrung - DC-Motor - sinusquadrat elemente.gif
  • Wir nutzen dafür das Element f(x) direkt aus dem Bibliotheksordner "Signalglieder".
  • sign(x) liefert das Vorzeichen von x und kann nur 3 Werte besitzen (-1,0,+1):
    Software SimX - Einfuehrung - DC-Motor - quadrat parm.gif
  • Die Zusammenschaltung beider Signalglieder liefert nun eine sanfte Bewegungssollkurve:
    Software SimX - Einfuehrung - DC-Motor - sinusquadrat kurve.gif

Zusätzlich zum Sollwert-Generator benötigen wir einen Sensor, welcher die aktuelle Drehzahl misst. In der Praxis funktioniert das z.B. mit einer Codescheibe in einem optischen inkrementalen Geber:

Software SimX - Einfuehrung - DC-Motor - codescheibe.gif

Wir wollen das im Beispiel stark vereinfacht mit einem trägheitslosen, analogen Sensor-Element aus der Bibliothek realisieren:

  • Den "Bewegungssensor" findet man in der Bibliothek im Ordner "Rotatorische Mechanik (1D)". Dieser Sensor liefert nach seinem Verbinden mit dem Last-Element alle Bewegungsgrößen an seinen Ausgängen (phi, om, alp):
    Software SimX - Einfuehrung - DC-Motor - modell mit sensor.gif
  • Das Sensor-Element dreht man in der Modellstruktur in die gewünschte Position.
  • Damit man sieht, an welchem Anschluss welches Signal anliegt, kann man die Anschlüsse innerhalb der Modellstruktur einblenden (Ansicht > Beschriftung > Anschlüsse). Diese Beschriftung sollte man dann wieder ausschalten, weil sie meist stört!

Hinweise zu unverbundenen Anschlüssen:

  • Freie Anschlüsse eines Kraftelements (z.B. Feder, Dämpfer, Reibung) sind im Modell "automatisch" fest eingespannt. Um Fehler zu vermeiden, sollte man möglichst (wie gezeigt) die in der Realität vorhandene Einspannung als Element ergänzen (Rotatorische Mechanik(1D) - Element "Vorgabe" - konfiguriert als "Einspannung").
  • Ein sehr "gemeiner" Modellierungsfehler wäre z.B. die Verbindung des Drehzahlsensors mit dem "freien" Anschluss ctr2 der Last-Dämpfung. Dann würde die Dämpfung praktisch unwirksam, da nicht mehr die Relativbewegung zwischen dem Rotor und dem Motorgehäuse erfasst würde!
  • Der "freie" Anschluss Motor.ctr1 entspricht dem Motorgehäuse, das praktisch auch fest eingespannt ist. Wegen der Übersichtlichkeit wurde hier auf eine Verbindung mit einem Einspann-Element verzichtet.

Als Amplitude für unseren Sollwert-Verlauf wollen wir 100 rad/s vorgeben. Dazu müssen wir die Quadrat-Funktion um diesen Faktor ergänzen):

F: sign(self.x)*self.x*self.x*100

Hinweise zu Maßeinheiten:

  • Die Modellberechnung in SimulationX erfolgt grundsätzlich mit den SI-Einheiten!
  • Verwendet man eine Modellgröße in einer Formel, so enthält die Modellgröße immer den aktuellen Zahlenwert für die SI-Einheit.
  • Deshalb wurde im Beispiel eine Drehzahlvorgabe in der SI-Einheit rad/s verwendet, ansonsten hätte man die Umrechnung in der Formel entsprechend berücksichtigen müssen!
  • Nur für die Eingabe der Parameter und die Darstellung von Ergebnisgrößen können handliche Vorsätze zu den SI-Einheiten gewählt werden. SimulationX nimmt dann automatisch die Umrechnung zur SI-Einheit vor.

Im nächsten Schritt muss man die Regelabweichung als Differenz Sollwert minus Istwert bilden:

  • Wir nutzen für die Bildung der Abweichung aus der Bibliothek einen Summationspunkt (direkt im Ordner "Signalglieder"):
    Software SimX - Einfuehrung - DC-Motor - modell mit summe.gif
  • Im Beispiel wurde dieses Element um 180° gedreht und der Eingang x1 mit dem Istwert gespeist. Der Sollwert geht in den Eingang x3. Um Y=x3-x1 zu bilden, muss man den Summationspunkt wie folgt konfigurieren:
    Software SimX - Einfuehrung - DC-Motor - summen parm.gif

Der Regler wertet die Regel-Abweichung aus und beeinflusst dann die Betriebsspannung für den Motor so, dass diese Abweichung möglichst klein wird:

  • Wir nutzen einen einfachen P-Regler (P-Element in der Bibliothek unter "Signalglieder - Lineare Signalglieder") und speisen seinen Eingang mit der Regelabweichung.
  • Ein P-Regler verstärkt mit dem Faktor G die eingespeiste Regelabweichung (Proportional-Regler):
    Software SimX - Einfuehrung - DC-Motor - modell mit regler.gif

Mit dem resultierenden Ausgangswert des Reglers muss man nun entsprechend die Betriebsspannung für den Motor beeinflussen. Dazu benötigen wir eine gesteuerte Spannungsquelle:

  • Wir ersetzen die "Konstantspannungsquelle" (im Modell löschen) durch eine "Spannungsquelle mit Signaleingang" (unter "Elektronik - Analog - Quellen").
  • Der Ausgang Regler.y wird mit dem Signaleingang in1 der Spannungsquelle verbunden:
    Software SimX - Einfuehrung - DC-Motor - modell komplett.gif
  • Als Ausgangsspannung des Netzteils soll direkt der Ausgangswert Regler.y benutzt werden (entspricht in1 des Netzteils).
  • Durch Ändern des Verstärkungsfaktors G des Reglers kann man nun eine hinreichende Übereinstimmung zwischen Sollwert- und Istwert-Verlauf der Drehzahl erreichen.
  • Es ist günstig, beide Signal-Verläufe in einem Fenster darzustellen.
  • Die Verstärkung sollte man möglichst niedrig halten, weil hohe Verstärkungen zu instabilen Reglerverhalten führen.
  • Der dargestellte Drehzahlverlauf ergibt sich bei G=1:
Software SimX - Einfuehrung - DC-Motor - signale soll-ist.gif
  • Der Regler gewährleistet, dass durch die Motorspule zu jedem Zeitpunkt der erforderliche Strom fließt:
Software SimX - Einfuehrung - DC-Motor - signale geregelt.gif


Achtung!

Leider wird der Proportional-Regler in der Praxis nie so gut funktionieren wie hier im Modell:

  • Im Modell wurden Zeitverzögerungen im Antriebsstrang, z.B. infolge von Nachgiebigkeiten in der Antriebswelle, nicht berücksichtigt.
  • In der Praxis führt das zum Schwingen des Antriebssystems schon bei relativ kleinen Verstärkungen.
  • Mit den möglichen kleinen Verstärkungen kann man nur eine ziemlich große Regelabweichung realisieren. Deshalb ergänzt man in der Praxis den Regler z.B. um einen Integral-Anteil. Damit kann man im Idealfall die Regelabweichung stark reduzieren.
Speichern des Modells nicht vergessen!