Hallo,
ich habe die Aufgabe eine digitale Drehzahlregelung mit einem µC zu
realisieren.
Und zwar handelt es sich um einen Getriebemotor(Gleichstrommotor, 12V,
3A, 0-70Upm), der auf einer Maschine montiert ist. Das Lastmoment
verändert sich mit jeder Umdrehung (winkelabhängig), so dass ich bei
einer konstanter Motorspannung, einen annähernd sinusförmigen Strom
messe. Im Mittel ist es über den gesamten Drehzahlverlauf nahezu
konstant, kann aber von Maschine zu Maschine schwanken. Die Drehzahl
messe ich über 28 Impulse/Umdrehung. Den Motorstrom über einen Shunt.
Der Motor wird per PWM angesteuert.
Die klassische Variante wäre jetzt ein Kaskadenregler. Ein
Drehzahlregler, der dem unterlagerten Stromregler ein Sollmoment bzw.
einen Sollstrom vorgibt.
Bei einer Erhöhung des Lastmomentes müsste ich ja logischerweise meine
PWM so weit erhöhen, dass das Motormoment wieder gleich dem Lastmoment
ist.
Um den Strom bzw. das Motormoment gleich zu halten würde der Stromregler
aber in diesem Fall genau das Gegenteil machen. Er würde feststellen,
dass der Ist-Strom größer als der Sollstrom ist und folglich die PWM
reduzieren. So damit die Regelabweichung zu Null wird. Dadurch würde die
Differenz der Momente aber noch weiter steigen und die Drehzahl weiter
abfallen.
Genau das verstehe ich nicht. Ich habe doch ein ganz klassisches
Problem. Dafür würde ich gerne die klassische Methode nutzen. Die macht
aber genau das Gegenteil. Irgendwas muss ich da noch nicht richtig
verstanden haben.
Ich hoffe Ihr könnt mir weiterhelfen.
Warum sollte deine Regelung den Strom regeln, also die Kraft, wenn du in
Wirklichkeit die Drehzahl, also Geschwindigkeit halten willst ? Nimm
doch die mittlere Motorspannung als Regelwert.
Ingesamt stellt sich die Frage, ob 28 Impulse pro Umdrehung reichen,
wenn die Last schon von Impuls zu Impuls so schwankt, daß auch die
Drehzahl schwankt.
Man könnte es mit einer Prediction probieren, also deine sinusförmige
Belastung als Modell annehmen, und nur die Sinusphasenlage und Amplitude
versuchen so zu regeln, daß deine 28 Impulse zeitlich aquidistant
kommen.
Ich habe mich nur mit dem Stromregler beschäftigt, weil das anscheinend
die Standardlösung für diese Aufgabenstellung ist.
Mein derzeitiger Ansatz ist ein normaler Drehzahlregler mit einer
Lastmomentkompensation. Dabei ermittle ich mit dem PI(D) Drehzahlregler
eine PWM. Anschließend gebe ich den gemessenen Strom auf ein P-Glied,
invertiere das Signal und erhalte somit eine dem Strom entgegengesetzte
PWM, welche ich wiederum vom Ausgang des Drehzahlreglers abziehe. Klappt
gar nicht mal so schlecht. Aber im unteren Drehzahlbereich (<5Upm)
bekomme ich zu wenig Drehzahlimpulse.
Im besten Fall muss der Drehzahlregler dann gar keine Störungen mehr
ausgleichen.
Legt man das Drehzahl- und das Stromsignal übereinander sind sehr
ähnlich. Sie unterscheiden sich nur noch in der Amplitude und dem
Mittelwert. Ich könnte mein Drehzahlsignal auch mithilfe des Stromes
interpolieren.
Mit deinem Vorschlag mit der Prediction verbinde ich sehr viel
Einarbeitung und Aufwand. Ich bin leider kein Regelungstechniker.
Die Regelung muss nicht perfekt sein, aber der Motor darf bei sehr
geringen Drehzahlen auch nicht stottern oder sogar anhalten.
Thorsten schrieb:> Die klassische Variante wäre jetzt ein Kaskadenregler.
Klassische Lösung klingt gut - aber wie lautet das klassische
Problem?
> Ein Drehzahlregler, der dem unterlagerten Stromregler ein> Sollmoment bzw. einen Sollstrom vorgibt.
Hmm. Schön.
> Bei einer Erhöhung des Lastmomentes müsste ich ja> logischerweise meine PWM so weit erhöhen, dass das> Motormoment wieder gleich dem Lastmoment ist.>> Um den Strom bzw. das Motormoment gleich zu halten würde> der Stromregler aber in diesem Fall genau das Gegenteil> machen.
???
> Er würde feststellen, dass der Ist-Strom größer als der> Sollstrom ist und folglich die PWM reduzieren.
Nein.
Der Stromregler regelt, wie der Name sagt, den Strom. Anders
ausgedrückt: Es handelt sich um eine steuerbare Konstant-
stromquelle. Der Strom bleibt einfach konstant.
> So damit die Regelabweichung zu Null wird. Dadurch würde> die Differenz der Momente aber noch weiter steigen und> die Drehzahl weiter abfallen.
Nein, auch nicht.
Bei konstanten Motorstrom bleibt das Motormoment auch
konstant. - Bei konstantem Motormoment und steigendem
Lastmoment sackt die Drehzahl ab.
Das registriert der Drehzahlregler und hebt den Sollwert für
den Motorstrom an. Jetzt reagiert auch der Stromregler und
spielt so mit der Spannung, dass der höhere geforderte Strom
erreicht wird. Damit steigt das Motormoment und auch die
Drehzahl.
Die Kaskadenregelung funktioniert; der unterlagerte
Stromregler bringt aber meiner Meinung nach keinen Nutzen.
> Genau das verstehe ich nicht. Ich habe doch ein ganz> klassisches Problem. Dafür würde ich gerne die klassische> Methode nutzen.
Nun, ich glaube, ein unterlagerter Stromregler ist für
einen DC-Permanentmagnetmotor (=Nebenschlusskennlinie =
steife Drehzahl) nicht sinnvoll. Die Drehzahl geht mit
der Spannung; der Strom pendelt sich je nach gefordertem
Lastmoment selbsttätig ein. Wozu ein Stromregler?
Bei "Drehstrommotoren" (Asynchron-, Synchron-, Schrittmotor,
BLDC) mag das anders aussehen. Hier geht die Drehzahl mit
der Frequenz; die Spannung muss aber in jedem Augenblick so
gewählt sein, dass einerseits der Strom für das geforderte
Moment vorhanden ist, andererseits der Motor nicht elektrisch
überlastet wird. Die Aufgabe übernimmt der unterlagerte
Stromregler.
Ok! Ein Stromregler scheint dann in diesem Fall wirklich nicht geeignet
zu sein.
Ich habe das Problem, dass bei niedrigen Drehzahlen das Drehzahlsignal
zu selten aktualisiert. Außerdem ist die Zeitverzögerung des Signals zu
groß.
Ich bekomme aber alle 10ms einen bereits gemittelten Strom. Zudem
erhalte ich es schon wesentlich früher. Aus diesem Grund muss ich
versuchen die Last weitestgehend mit dem Strom zu kompensieren. Wie ich
das derzeit mache habe ich ja bereits weiter oben schon beschrieben. Die
Drehzahl schwank im unteren Drehzahlbereich aber immer noch zu sehr.
Das mit der Prediction (Sinus annähern) habe ich mir überlegt. Ist
prinzipiell ein guter Vorschlag, aber was würde passieren, wenn ich auf
einer anderen Maschine pro Umdrehung plötzlich mehrere
Lastmomenterhöhungen habe. Dann würde das wohl scheitern. Diesen Fall
kann ich nach weiteren Überlegungen nicht mehr ausschließen.
Hat jemand einen Ansatz? Wie könnte man das Problem angehen?
Wenn ich die Impulse zähle, dann könnte ich die Last einem Drehwinkel
zuordnen. Vielleicht könnte man damit was anstellen?
Thorsten schrieb:> Hat jemand einen Ansatz? Wie könnte man das Problem angehen?
Ich glaube, Du bist garnicht in der Lage, eine Lösung auch als solche zu
begreifen.