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: > Ich habe doch ein ganz klassisches > Problem. Dafür würde ich gerne die klassische Methode nutzen. Hier eine andere 'klassische Klasse' zur Regelung: Beitrag "Drehzahlregler für DC-Motor, ATmega48-328"
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.