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, 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 aufbauen:

Software SimX - Einfuehrung - DC-Motor - impulsgenerator.gif
  • Es bietet sich an, für diesen Bewegungsvorgang eine komplette Sinus-Schwingung (=1 Sinus-Impuls) als Grundlage zu nehmen.
  • Wir finden in der Bibliothek das Element Impulsgenerator unter "Signalglieder - Signalquellen".
  • Nach dem Einfügen in unser Antriebsmodell 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 Sensor findet man in der Bibliothek im Ordner "Rotatorische Mechanik". 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
  • Toolbars "Element" und "Anzeige" einschalten:
    • 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. Die Beschriftung sollte man dann wieder ausschalten, weil sie meist stört!
  • Hinweise zum Lastelement:
    • Freie Anschlüsse eines Kraftelement (z.B. Feder, Dämpfer, Reibung) sind im Modell "automatisch" fest eingespannt.
    • Um Fehler zu vermeiden, sollte man unbedingt (wie gezeigt) die in der Realität vorhandene Einspannung als Element ergänzen (Rotatorische Mechanik - Element "Vorgabe" - konfiguriert als "Einspannung").
    • Ein sehr "gemeiner" Modellierungsfehler wäre z.B. die Verbindung des Drehzahlsensors mit dem "freien" Anschluss 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.ctr2 entspricht dem Motorgehäuse, das praktisch auch fest eingespannt ist. Wegen der Übersichtlichkeit wurde hier mit der Verbindung eines Einspann-Elements 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 Paramter 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.
  • Für die Darstellung des Sensor-Signals sollte im Beispiel ebenfalls die SI-Einheit benutzt werden:


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:
    Software SimX - Einfuehrung - DC-Motor - modell mit regler.gif
  • Ein P-Regler verstärkt mit dem Faktor G die eingespeiste Regelabweichung (Proportional-Regler).


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 kleinen Verstärkungen kann man nur eine ziemlich große Regelabweichung realisieren. Deshalb ergänzt man den Regler um einen Integral-Anteil. Damit kann man im Idealfall die Regelabweichung stark reduzieren.






.. Fortsetzung folgt bald!