Step 7 Geschwindigkeitsregelung für Gleichstrommotor (Achse) -> SFB41?

N0body

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

Für ein Privatprojekt habe ich mir eine "Selfmade Achse" gebaut.
Sie funktioniert mit einem Gleichstrommotor den ich mit einem Drehzahlsteller (Fertigbausatz) ansteuere
Das ganze funktioniert soweit auch ganz gut.
Der Drehzahlsteller macht mir aus 0..10V aus meinem Analogausgang ein PWM Signal für den Motor.
Die Position erfasse ich über einen OB40, der getriggert durch die Impulse des im Motor eingebauten Hall-IC's Je nach Laufrichtung addiert bzw. subtrahiert.
So komme ich auf ca. 2000 Inkremente auf einen Meter Laufrichtung (das ist nicht sehr viel aber für meine Zwecke genau genug..)

Jetzt würde ich gerne die Motorgeschwindigkeit abhängig von der Ist Position zur Sollposition Regeln.
Bzw. Ich hätte ich gern eine Start und eine Bremsrampe damit das Ding schön sanft hin und her flitzt.

Ich hab mich auch schon ein bisschen Informiert und bin auf den SFB41 gestoßen.


Jetzt mal ein paar Grundfragen:

1. Reicht mir ein Regler oder brauche ich 2 also für jede Rampe einen.

2. Gibt es einen Fertigbaustein zum Umrechnen meiner Sollposition in die gewünschten 0..100% die der Regler gern Hätte oder muss ich da selber was basteln?
theoretisch geht das ja mit n paar einfachen Rechenfunktionen..
Kann mir einer ungefähr sagen wie ich den Regler Parametrieren/Beschalten muss?
Also soo ganz grob.. :)


Bin über jede Hilfe Dankbar da ich mich Regelungstechnisch nicht gut auskenne...
aber bitte keine Antworten wie "Nimm doch ne Fertigachse mit Controller" oder "warum nimmst du keinen Steppermotor für eine solche Anwendung"



Vielen Dank schonmal für eure Hilfe:)
 
Zuletzt bearbeitet:
Würd ich zu Fuss machen.

Deine Ist Position nach in REAL umrechnen.
Soll Position ebenfalls REAL.

Soll - Ist = Differenz
Differenz x f (Faktor musst du ein bisschen ausprobieren was du so brauchst) = Ausgangswert roh
Ausgangswert roh nach oben und unten begrenzen (würde ich so machen, dass du diese Werte verändern kannst (damit kann dann zB begrenzte Geschwindigkeit zum einrichten realisert werden) = Ausgangswert

Edith meint: eventuell einen Totbandbereich vorsehen falls von der Genauigkeit möglich und der Regler um die erreichte Position schwingen anfängt. (lässt sich aber normalerweise mit dem anpassen von f in den Griff bekommen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo NObody,

Du bist ja schon recht weit gekommen, was die Bremsfunktionalität betrifft, so hätte ich folgenden Vorschlag:
Man benötigt zwei lineare Umrechnungen (oder Stützkurven, wenn man es akademische machen will), die erste kriegt als X-Eingangswert den Vorschub-Geschwindigkeits-Sollwert, da man, wie beim Motorradfahren, um so früher bremsen muss, je schneller man ist.
Die X-Anfangs- und Endwerte sind die Grenzen des wählbaren Vorschubgeschwindigkeits-Sollwertbereiches.
Als Y-Ausgangswert liefert dieser Umrechnungsbaustein einen Sollwert für eine Positions-Soll-Ist-Differenz, ab welcher der der Bremsvorgang eingeleitet werden soll. (Die Y-Anfangs- und Endwerte ab welcher Differenz bei welcher Vorschubgeschwindigkeit gebremst werden soll, müssen empirisch ermittelt werden).

Nun wird es noch komplizierter, die zweite lineare Umrechnung kriegt als X-Eingangswert den Absolutwert der Positions-Soll-Ist-Differenz.
Als X-Anfangswert kriegt sie 0 (Zielposition erreicht).
Als X-Endwert kriegt sie den Ausgang der 1. Umrechnungsfunktion (also wenn der Bremsvorgang starten soll).
Als Y-Anfangswert (bezüglich auf den X-Anfangswert) kriegt sie die kleinste Vorschubgeschwindigkeit zum sicheren Erreichen des Bremspunktes, bzw. des Zeilfensters.
Als Y-Endwert (bezüglich auf den X-Endwert) kriegt sie die vorgewählte Vorschubgeschwindigkeit (oder den Ausgang des Anfahr-Integrators, siehe unten), da der Bremsvorgang hier erst beginnt.

Den Ausgang der 2. Umrechnung gibst Du auf einen Eingang einer Minimum-Auswahl (der kleinere der beiden Werte kommt hier am Ausgang durch).
Auf den andern Eingang der MIN-Auswahl schaltest Du Deinen vorgewählten Vorschub-Sollwert aus der Anfahrrampe (siehe weiter unten).
Der Ausgang der MIN-Auswahl geht dann über eine entsprechende Skalierung auf den Analogausgang zur PWM.

So lange die Achse nicht im "Bremsbereich" ist sind die beiden Eingänge der MIN-Auswahl gleich groß.
Wenn die entsprechend SW/IW-Differenz unterschritten wird, übernimmt die "Bremsfunktion" den Ausgang der MIN-Auswahl und der Analogausgang wird heruntergefahren.
Wenn eine neue Sollposition vorgegeben wird, wird die SW/IW-Differenz wieder groß, und die "Bremsfunktion" ist erst mal nicht mehr aktiv.

Was das Anfahren betrifft, so benötigst Du z.B. einen Integrator.
Normalerweise programmiert man die über eine Addition auf ein Datenregister (M oder DB).
Es gibt einen Eingangswert (I), ein Zeitnormal (Tn) und einen Ausgangswert (Q), oder so ähnlich.
Wenn der Eingangswert positiv ist, erhöht sich Ausgangswert innerhalb der Tn um den Betrag des Eingangswertes, bei negativem Eingangswert verringert er sich entsprechend.
Damit der Ausgangswert nicht unendlich läuft, braucht er natürlich Grenzen.
Man muss nun berechnen, wie viel sich der Ausgang des Integrators innerhalb eines Zyklus ändern muss. (in Abhänigkeit von I, Tn und der SPS-Zykluszeit) (am besten in einem 30er OB abarbeiten)
Bei "guten" Integratoren kann der Ausgang auch mit einem Binäreingang auf einen "Initialwert" gesetzt werden.
Bei Deiner Anwendung könnten der Eingangswert und Obergrenze des Integrators der gewünschten Vorschub-Geschwindigkeit entsprechen, die Untergrenze des Ausgangwertes wäre Null.
Wenn die Zielposition erreicht ist, wird der Ausgangswert auf einen Initialwert von Null gesetzt, wenn eine neue Sollposition vorgegeben wird, wird der Initalwert abgeschaltet und der Ausgang des Integrators läuft innerhalb der Tn bis zur gewünschten Vorschubgeschwindigkeit hoch.
Der Ausgangswert des Integrator kann den 2. Eingang der MIN-Auswahl bilden, den 1. Eingang bildet der Ausgangwert der „Bremsfunktion“.
Vielleicht habe ich auch noch einen Denkfehler drin, am besten zeichnet man sich so was erst mal als Logikplan auf.

Ich hoffe Dir einige Anregungen gegeben zu haben.

Gruß
odi
 
Wenn Du die Drehzahl richtig regeln willst, also auch unterschiedliche mechanische Belastungszustände berücksichtigen willst, kannst Du den Ausgang der MIN-Auswahl auch als Sollwert für einen PID-Drehzahlregler verwenden, dann dürfte die Optimierung aber etwas aufwändiger sein. Außerdem brauchst Du eine Drehzahlerfassung z.B. über die Hallgeber und FM350.

Gruß
Odi
 
Zurück
Oben