Drehzahlregelung pulsiert

BFC92

Level-1
Beiträge
58
Reaktionspunkte
0
Hallo, also ich regle die Drehzahl eines Drehstrommotors über einen näherungssensor. Hab dafür ein einfaches Programm geschrieben, aber wie schon erwartet pulsiert jetzt die Drehzahl (wenn ich beispielsweise 1500 Umdrehungen einstelle, schwankt die Drehzahl zwischen 1200 und 1700 RPM). Hat jemand ne idee wie ich was dagegen tun kann?

1648990652407.png

1648990718856.png
Also Dec_SP ist halt Drehzahl reduzieren, und Inc_SP Drehzahl erhöhen, der rest ist eigentlich selbsterklärend...

wär voll cool wenn jemand ne Idee hat, vllt sollte ich das auch ganz anders angehen...
 
Also mir ist natürlich klar das das ein überschwingen der Regelung ist, ich hab nur leider keine Ahnung was ich dagegen tun kann.
 
Wie wird der Motor angesteuert? FU? Warum beschreibst du Eingänge? Von Regelung kann man hier ja fast nicht sprechen. Wie kommt der Drehzahlistwert zustande?
 
Jo klar über einen FU, ja ich weiß aber ich weiß halt nicht wie ich ne ordentliche Regelung mache, ja das sind halt die Eingänge für meinen FU. Hab das hingeschrieben um das Programm verständlich zu machen, auch wenn mir klar ist das das sehr einfach ist.
 
Wenn die Rampen im FU nicht zur Abtast-/ Stellgeschwindigkeit passen (zu lang sind) würde das schon ohne weitere Betrachtung des SPS-Reglers einiges erklären.
Mit welcher Häufigkeit werden die oben gezeigten Netzwerke abgearbeitet? Ich würde selbst mit kürzester Rampeneinstellung ein heftiges SChwingen vermuten. Wenn Du mit einem Näherungssensor die Istgeschwindigkeit abtastest, wäre ja eine Integration der Impulse über die Zeit erforderlich. Somit hast Du schon eine recht langsame Abtastung des Istwertes. Ist denn der DI schnell genug dafür?
 
Zuletzt bearbeitet von einem Moderator:
Also mir ist natürlich klar das das ein überschwingen der Regelung ist, ich hab nur leider keine Ahnung was ich dagegen tun kann.
Im ersten Ansatz die Rampen reduzieren und die Abarbeitungsintervalle des "Reglers" mit längeren Pausen versehen. Wie passiert denn die Sollwertgenerierung nach den beiden Netzwerken?
 
Also die Rampenzeit zu verlängern bringt nichts, aber dadurch wurde sichtbar was das Problem ist, der "Regler" ist schnell aber der FU Reagiert erst spät darauf. Also ich benutze das siemens Telegramm 352, das sieht dann ungefähr so aus:
1648994953019.png
 
Also die Rampenzeit zu verlängern bringt nichts
Sag ich doch.
Du musst die Abstände zwischen den Impuösen für "Dec_SP" bzw. "Inc_SP" so groß machen, dass der FU eine Chance hat zu folgen.
Du scheinst ja die Ausgänge der SR direkt zu übergeben - häng doch einfach jeweils mal einen langsamen Impulsgenerator dahinter, der mit den Ausgängen der SR verundet wird.

PS: In welchem Zyklus erfasst Du denn die Istgeschwindigkeit? Ich vermute, Du zählst über ein fixes Zeitintervall (Weck-OP?) die Counts.
PPS: Von der Struktur her versuchst Du einen I-Regler zu basteln.
 
Zuletzt bearbeitet von einem Moderator:
Oh ja hast recht, Rampe verkürzen war schlauer, Problem bleibt aber bestehn, ich versuch das mit den Impulsgenerator mal, danke für die Hilfe schonmal.

Ist Geschwindigkeit wird so erfasst (Sechs zählungen pro Umdrehung):
1648997711338.png
1648997761902.png
1648997822908.png
1648997865942.png
 
Kann ich theoretisch auch mit den fertigen Reglern von Tia arbeiten? Zum beispiel mit den CONT_C oder so? Ich weiß nur gar nicht wie ich das machen soll...
 
Selbstredend wären die fertigen Regler besser.

Deine Drehzahlerfassung läuft wie vermutet im normalen Zyklus. Ich hab das früher so gelöst, dass der Count-Baustein freilaufend unendlich gezählt hat und über einen Weck-OB in zeitlich konstanten Abständen eine Differenz gebildet wurde (Überlauf beachten ggf!).
Ein Reglerbaustein sollte ebnefalls in zeitlich konstanten Abständen aufgerufen werden.
Ich bin da schon zu lange raus, um Dir das konkret zu erklären, aber ich glaub der Grund für das gigabytegroße TIA ist auch die umfangreiche Hilfe ;)
Auch hier im Forum dürfte zum Cont-C einiges rumkommen via Forensuche.
 
Um das grundlegende Prinzip von Abtast- und Ausführungszyklen zu verstehen ist Dein Ansatz aber garnicht so verkehrt.
Nimm einen Impulsgeber mit ganz kurzer Ein-Zeit und variabler Auszeit. Den setzt Du an den Ausgang Deiner SR über ein UND auf Dein INC/DEC-Signal. Dann kannst Du über die Aus-Zeit den Abstand der INC/DEC-Signale an den FU steuern.

Dann kannst Du verfolgen im Umrichter, wie schnell der Sollwert sich verändert und ob der Umrichter noch folgen kann. Denn das selbe kann bei zu kurzen Abtastzyklen auch beim Cont-C passieren.
 
wär voll cool wenn jemand ne Idee hat, vllt sollte ich das auch ganz anders angehen...
Zunächst mal - unbhängig von Deinem Regelverhalten - könntest Du Netzwerk 1 und 2 stark vereinfachen.
Die Vergleiche < REAL bzw. > REAL liefern genau die Information, die auch die angeschlossenen SR Inc_SP und Dec_SP liefern.
Wozu also die SR und die Vergleiche == REAL, <= REAL und >= REAL, wozu Die ODER Verknüpfungen?
Übrigens ist es völlig überflüssig, einen Vergleich >= (oder <=) noch mit einem Vergleich == zu verodern.
Der Fall == ist in <= bzw. >= doch schon enthalten!

Wenn ich Deine Netzwerke 4 und 5 (DIV Real und MUL Real) richtig deute, dann erhältst Du alle 10 s ein Ergebnis aus Deiner ImpulsZählerei.
Dein ZeitTakt beträgt aber 1 s.
Wird Dein IEC-Zähler nach dem Auslesen wieder gelöscht?
Hat die Schwankung/das Schwingen der Drehzahl eine gleichbleibende Periode von 20 s? Wie lang ist die Periode?
 
Zuletzt bearbeitet:
Ja das mit der vereinfachung hab ich auch schon kurz nachdem ich das hier erstellt hab gemerkt, so funktioniert es mehr oder weniger wenn man mit den ein und ausschaltzeiten etwas spielt, danke nochmal für die hilfe, aber werd jetzt trotdem nochmal nen komplett anderen Ansatz versuchen:
1649009788453.png

Und nein ich erhalte jede Sekunde einen NEuen wert aus der Impulszählerei, und bekomme so die drehzahl, das funktioniert auch mit einer Abtastrate von 50ms... Aber auch an dich n dankeschön. :)
 
So schön. Ich freue mich, wenn Du das hingebogen bekommen hast.
Mit einem richtigen Regler bekommst Du aber ein vorhersagbares Verhalten. Du übertragst halt direkt den Sollwert an den FU und kannst die Änderungsgeschwindigkeit des Sollwerts (Rampe) selbst bestimmen. Außerdem wird der Regler schneller, wenn ein P-Anteil dazukommt.

In Deinem jetzigen Konstrukt macht ja das meiste der FU selbst, sodass Du ihm die Regelung eigentlich auch überlassen könntest. Viele FU können HTL-Signale direkt an ihren Digins verarbeiten und haben einen Drehzahlregler ohnehin integriert ;)
 
Joa ich weiß nur leider gar nicht wie ich einen Richtigen Regler verwende, und ich finde auch absolut gar nichts hilfreiches im Internet, zum beispiel Cont_C gibt ja kein BOOL aus, und ich hab ja nur schneller und langsamer.
 
?
Du kannst Doch in Deinem Telekgramm einen Setpoint übertragen?!
Was ist denn das für ein Umrichter, der keinen Sollwert frisst? Steuerwort+Sollwert ist eigentlich Standard.
 
Ja das ist ein G120 und das kann der sicher, aber welcher parameter ist den der Drehzahlsollwert. Ich bin mit FUs sowas von überfordert. Wenn ich einfach den Sollwert übergeben könnte und der dann nur noch koriegiert wird wäre das top. Aber ich kriegs nicht hin.
 
Zurück
Oben