Hallo zusammen Ich bin eine Drehzahlregelung am realisieren. Es ist ein BLDC Motor verbaut, zur Speedmessung werte ich die Geschwindigkeit des Encoders aus. (500 Impulse pro Spur und Umdrehung = 2000 Flanken pro Umdrehung über A+B gesehen) Die Anforderung ist, dass ich bei niedrigen Geschwindigkeiten sehr genau regeln muss im Vergleich zu den höheren Geschwindigkeiten. Bei einer Updaterate von 30ms bei der Messung der Zeit über 100 Flanken (A+B beide Flanken) habe ich mit einem 100kHz Timer bei 100rpm einen Timerwert von 3000. Bei 5rpm und einer Updaterate von 30ms ergibt das nur noch 5 Flanken für die Zeitmessung, was natürlich schlecht ist mit der Filterwirkung. Der Timerwert ist aber immer noch bei 3000. Wenn ich jetzt theoretisch mit 5rpm und 100 Flanken auswerte, erhalte ich einen Timerwert von 60000 jedoch bei einer Updaterate von 600ms, was sicher viel zu langsam ist. Somit habe ich ja bei kleinen Geschwindigkeiten immer eine schlechtere Auflösung. Um den PI Regler jetzt anzusteuern, habe ich den Kehrwert des Timerstandes genommen als Ist-Wert. Das heisst aber, dass ich wiederum bei kleinen Geschwindigkeiten einen kleinen Wert habe und somit an Genauigkeit verliere. Ich habe also eine schlechtere Filterwirkung (wegen der Messung über weniger Flanken) und auch eine kleinere Ist-Grösse wegen dem Kehrwert. Somit ist bei kleinen Geschwindigkeiten die Genauigkeit immer schlechter als bei grossen Geschwindigkeiten, korrekt? Wenn ich jetzt aber vom Timerstand nicht den Kehrwert als Ist-Signal verarbeite, sondern die Rohdaten, habe ich zumindest bei kleinen Geschwindigkeiten einen hohen Wert. Der Regler muss aber dann "gekehrt" werden. Ist dies überhaupt möglich? Ich hätte dann ja bei einer kleinen Geschwindigkeit ein sehr hoher Istwert, der abnimmt, wenn die Geschwindigkeit zunimmt. Der PI Regler müsste dann also "umgekehrt" regeln. Kann ich also den Reglerausgang, der dann ins negative läuft einfach invertieren oder ist dieser Lösungsansatz komplett falsch?
Suche hier im Forum nach "reziproke Frequenzmessung" Bei einem Drehgeber mit 500 Teilen/Spur erhält man bei 5 U/min 5*500/60=41,667 Impulse pro Sekunde, welche einem Intervall von 24ms entsprechen. Das ist doch ein guter Wert. Welchen µC Du verwendest, sagst Du leider nicht. Falls es ein AVR sein sollte, dann setze die Frequenz für den Timer1 mit 16-20MHz an. 100kHz ist zu langsam. Die Impulsmessung selbst wird dann über den Capture-Eingang ICP1 erledigt. Zum genauen Verständnis solltest Du die oben gefundenen Beiträge durchlesen.
Bei langsamen Drehzahlen zählst du nicht mehr die Impulse pro Sekunde oder pro x Millisekunden, sondern du ermittelst die Zeit zwischen zwei Impulsen.
Ich glaube zu wissen, das FUs für die n-Regelung typischerweise 1kHz Abtastfrequenz und für den i-Regler 8kHz verwenden..
Udo Schmitt schrieb: > Bei langsamen Drehzahlen zählst du nicht mehr die Impulse pro Sekunde > oder pro x Millisekunden, sondern du ermittelst die Zeit zwischen zwei > Impulsen. Ja das mache ich auch, jedoch nicht über 2 Flanken, sondern über 4, da die EncoderSpuren A+b nicht 0 Abweichung zueinander haben... Danke
Domi --- schrieb: > Ich hätte dann ja bei einer kleinen Geschwindigkeit ein sehr hoher > Istwert, der abnimmt, wenn die Geschwindigkeit zunimmt. Der PI Regler > müsste dann also "umgekehrt" regeln. Kann ich also den Reglerausgang, > der dann ins negative läuft einfach invertieren oder ist dieser > Lösungsansatz komplett falsch? Geht dies überhaupt, da bei Geschwindigkeit 0 der IstWert ja sehr gross ist und abnimmt je höher die Geschwindigkeit wird...
Hallo Matthias! > Ich glaube zu wissen, das FUs für die n-Regelung typischerweise 1kHz > Abtastfrequenz und für den i-Regler 8kHz verwenden.. Das ist so pauschal falsch. Für den Stromregler sind 16-32kHz üblich, für den Drehzahlregler 4-16kHz. Was aber nicht heißt, dass es nicht Geräte gibt, die abweichende Werte aufweisen. Mit freundlichen Grüßen Thorsten Ostermann
Hallo, ich finde nirgends eine Angabe über die Höchstdrehzahl. Wenn es hauptsächlich um niedrigste Drehzahlen geht, kann man das Problem auch mit einem Getriebe umgehen. Damit vereinfacht sich nicht nur die Erfassung der Drehzahl, sondern auch die Ansteuerung des Motors. Gruss Reinhard
Bei dieser Art Regelung brauchst Du die Angabe der Mindestdrehzahl und der Höchstdrehzahl. Dann kannst Du Frequenzen und Abtastzeiten ermitteln, um etwas brauchbares zu programmieren. Ganz wichtig ist eher die Mindestdrehzahl, weil hier die Torzeiten sehr lang werden. Schnell kann jeder !
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.