Software: SimX - Einfuehrung - DC-Motor - Regelkreis: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
Zeile 13: | Zeile 13: | ||
* Wir finden in der Bibliothek das Element '''Impulsgenerator''' unter "Signalglieder - Signalquellen". | * 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:<div align="center">[[Bild:Software_SimX_-_Einfuehrung_-_DC-Motor_-_sinusgenerator.gif]]</div> | * Nach dem Einfügen in unser Antriebsmodell konfigurieren wir diesen Generator als Sinusgenerator mit einer Impulslänge von 1 s:<div align="center">[[Bild:Software_SimX_-_Einfuehrung_-_DC-Motor_-_sinusgenerator.gif]]</div> | ||
* '''Hinweis:''' Der Name '''''self''''' bezeichnet das eigene Element. Im Beispiel ist der Folgeabstand '''''S''''' also immer so groß wie die Impuls-Breite '''''W'''''. | * '''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:<div align="center">[[Bild:Software_SimX_-_Einfuehrung_-_DC-Motor_-_sinusimpuls.gif]]</div> | * Wenn wir die Simulationszeit für das Modell auf 2 s erhöhen, erhalten wir folgendes Ausgangssignal vom Sinusgenerators:<div align="center">[[Bild:Software_SimX_-_Einfuehrung_-_DC-Motor_-_sinusimpuls.gif]]</div> | ||
* 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:<div align="center">[[Bild:Software_SimX_-_Einfuehrung_-_DC-Motor_-_sinusquadrat_elemente.gif]]</div> | * 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:<div align="center">[[Bild:Software_SimX_-_Einfuehrung_-_DC-Motor_-_sinusquadrat_elemente.gif]]</div> | ||
Zeile 32: | Zeile 33: | ||
** 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! | ** 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. | ** 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 Quadratfunktion um diesen Faktor ergänzen | * Als Amplitude für unseren Sollwert-Verlauf wollen wir '''100 rad/s''' vorgeben. Dazu müssen wir die Quadratfunktion um diesen Faktor ergänzen):<div align="center">F: '''sign(self.x)*self.x*self.x*100'''</div> | ||
* '''Hinweise zu Maßeinheiten:''' | * '''Hinweise zu Maßeinheiten:''' | ||
** Die Modellberechnung in SimulationX erfolgt grundsätzlich mit den SI-Einheiten! | ** Die Modellberechnung in SimulationX erfolgt grundsätzlich mit den SI-Einheiten! |
Version vom 25. August 2008, 14:42 Uhr
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:
- 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:
- 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:
- 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:
- 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):
- Die Zusammenschaltung beider Signalglieder liefert nun eine sanfte Bewegungssollkurve:
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:
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):
- 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 Quadratfunktion 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.
- 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.
- 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!