Motor ruckelt bei niedrigen Drehzahlen

Gast #891684
Lesenswert?

Hallo Leute,

nicht ohne eure Unterstützung habe ich meinen Regler endlich fertig (na 
ja schön wär's wenn es so wäre). Der Regler regelt, allerdings nicht bei 
Drehzahlen unter  50 U/min. Die max. Drehzahl beträgt 3300U/min.
Manche von euch werden sagen, dass es auch unmöglich ist, einen 
Schnellläufer bei niedrigen Drehzahlen sauber zu regeln (möchte bei min. 
20U/min noch regeln), aber es ist mit Sicherheit nicht unmöglich.
Ein paar Angaben:
µC: XC167
Soft: Keil µVision

Abtastperiode Regler: 1,6 ms
Frequenz PWM: 1KHz (damit der Strom Zeit hat, anzusteigen)

Mit Last läuft der Motor sauberer als ohne.

WAs ich schon gemacht hab: ich hab für niedrige Drehzahlen andere 
Reglerparameter definiert, denn die können ja nicht über die ganze 
Bandbreite optimal sein. Da es mir aufgefallen ist (mit alten 
Reglerparametern), dass der Motor so große Sprünge macht, habe ich Kp 
niedriger gewählt, seit dem ist es ein bisschen besser, aber noch lange 
nicht optimal.

Habt ihr vllt. Ideen, was ich noch machen könnte?

Danke schön
Gast #891693
Lesenswert?

Ein DC Kollektormotor ? Der hat gegen den Stillstand hin eine 
Kollektorspannung, die Ueberwunden werden muss, sowie eine Reibung. 
Enthaelt das modell diese beiden Komponenten oder ueberlaesst man es dem 
I-Anteil ?
Gast #891699
Lesenswert?

Wie mißt Du denn die Drehzahl?

Bei den geforderten 20/min braucht das Teil fast 3 Sekunden für eine 
Umdrehung. Da wird ein Tachogenerator wohl nix gescheites liegern.

Also, erzähl mal!

guude
ts
Gast #891706
Lesenswert?

@ 3357:
Das ist ein DC Kollektormotor, ja.
Also ich überlasse es alles dem I-Anteil, hab nämlich einen ganz 
"normalen" PI-Regler programmiert.
Wie soll man die Komponenten, die du erwähnt hast, ins Modell 
übernehmen?
Gast #891708
Lesenswert?

@  klodeckel:
Die Drehzahl messe ich mittels Encoder, der am Motor dranhängt :).
Die Drehzahlmessung müsst schon passen. Hab die ausgegebenen Werte mit 
einem Drehzahlmessgerät überprüft, passt, sitzt, hat Luft!
Gast #891765
Lesenswert?

Je besser das Streckenmodell ist, desto besser ist das Regelverhalten. 
Wenn man dem I-Regler eine Nivhtlineare strecke anhaengt, ist das immer 
suboptimal. Man solle bei erhoehten Anforderungen daher linearisieren. 
Und ein Linearisierter Motor braucht zum Anlaufen eine Mindestspannung.
Gast #892053
Lesenswert?

> Der Regler regelt, allerdings nicht bei Drehzahlen unter  50 U/min.

Das sind typische Probleme.

Lies mal hier:

http://www.wescottdesign.com/articles/Friction/friction.html


> Mit Last läuft der Motor sauberer als ohne.

Mit Last hast du selbstverstaendlich eine andere Regelstrecke und
musst alle deine Parameter erneut anpassen. Und wenn die Last im
Betrieb wechselt wird es erneut interessanter.

> Die Drehzahl messe ich mittels Encoder, der am Motor dranhängt :).

Ich hoffe der hat genug Aufloesung. Die Frage nach der Art
der Drehzahlmessung war naemlich nicht dumm. Wenn deine Regelung 
ansonsten
sehr gut ist, was derzeit sicher nicht der Fall ist, dann haengt davon
in der tat die minimale Drehzahl ab.

> Man solle bei erhoehten Anforderungen daher linearisieren.

I second that. :-)
Aber er hat ja einen mordsmaessig ueberfetteten Controller fuer so
eine Anwendung, da ist das ja alles kein Problem.

Brauchst du eigentlich nur Drehzahlregelung oder auch Lageregler?
Wenn du nur ersteres brauchst so scheint mir ein Encoder etwas viel
Aufwand. Das geht auch einfacher indem man die BackEMF misst.

Olaf
Gast #892102
Lesenswert?

Zum Encoder: er hat 500 Impulse pro Umdrehung.
Drehzahlmessung: Periodendauermessung (Zeit zw. 2 Encoderimpulsen), ist 
ja für niedrige Umdrehungszahlen besser.
Ich brauche nur eine Drehzahlregelung, aber dass ich den Encoder nutze, 
das ist Vorgabe.
Die Drehzahlbestimmung ist scho fertig.

Schade, dass der Artikel auf Englisch ist, aber ich werd mich 
durchbeißen.

Ach ja: ich bin eine Sie!
Gast #892124
Lesenswert?

> Drehzahlmessung: Periodendauermessung (Zeit zw. 2 Encoderimpulsen), ist
> ja für niedrige Umdrehungszahlen besser.

Gut, kann man machen wenn man nicht zu schnell drehen will.

> aber dass ich den Encoder nutze, das ist Vorgabe.

Ist ja auch keine schlechte Loesung wenn Geld keine Rolle spielt.

> Schade, dass der Artikel auf Englisch ist, aber ich werd mich
> durchbeißen.

Ist ab einem bestimmten Level aber normal. Ausserdem habe ich schon
Regelungstechnikbuecher gesehen die auf Deutsch schwerer zu
verstehen waren. Und wer will schon "Losbrechkraft" lesen. :-)

> Ach ja: ich bin eine Sie!

Suesskartoffel?
Das ist keine Variable der Regelstrecke und daher fuer den Regler
vollkommen irrelevant. :-P

Olaf
Gast #892130
Lesenswert?

@Olaf:
ich mein ja nur, du hast geschrieben :"Aber er hat ja einen mordsmaessig 
ueberfetteten Controller fuer so eine Anwendung, da ist das ja alles 
kein Problem."
Ich wollt's ja nur berichtigen, nichts persönliches :-)
Gast #892133
Lesenswert?

Zur Linearisierung des Motors ... Du misst den Motor aus als Graph 
rpm(U), mit dem Drehmoment als Parameter. Angefangen mit Drehmoment 
Null. Die Funktion rpm vs volt ist eine Gerade, die aber nicht durch 
Null geht. Die verbleibende Spannung muss man hinzuzaehlen. Wichtig in 
dieser Hinsicht ist ein U(Null+) und ein U(Null-) je nachdem man von 
Positiv oder von Negativ kommt. Die beiden Werte muessen nicht gleich 
sein. Heisst die Kollektorspannung fuer Null Drehzahl kann von der 
Drehrichtung abhaengen.
Gast #892248
Lesenswert?

@3357:
ich hab ja sogar eine Motorkennlinie vom Hersteller.
Hab da nur einen Strom als Achse.
Nach deinem Vorschlag könnte ich schon vorgehen, aber ich kann kein 
Drehmoment messen, hab nix dafür.
Aber ich könnte ja nach der Spannung im Datenblatt schauen, die 
überwunden werden muss.
Ja, das mach ich.
Angehängte Dateien:
Gast #892568
Lesenswert?

> Hab da nur einen Strom als Achse.

Und? Kommt das aus dem Regler als Stellgroesse raus?
Nein? Sieht nach einer guten Chance aus noch mehr zu linearisieren. .-)

> Nach deinem Vorschlag könnte ich schon vorgehen, aber ich kann kein
> Drehmoment messen, hab nix dafür.

Notfalls bau irgendeinen Stab an die Achse und lass den auf eine Waage 
druecken.

Olaf
Gast #893060
Lesenswert?

Also ich hab da ein paar andere Berechnungen gemacht:

Meine niedrigste Solldrehzahl beträgt 20 U/min. Das entspricht 166 
Imp/s.
Das wiederum heißt, ich habe alle 6 ms einen Impuls. Und somit die 
Drehzahlberechnung. Und abfragen tue ich alle 1,6 ms. Der Regler braucht 
die Istdrehzahl als Übergabeparameter.
Das heißt: bei 20 U/min regel ich ja trotzdem alle 1,6ms, obwohl eine 
Drehzahlberechnung alle 6ms stattfindet (wenn man auf 1/4 der Umdrehung 
mittelt), dann steht mir eine frisch ermittelte Drehzahl alle 
6*125=750ms zur Verfügung.

Bei Änderungen kann der Regler natürlich nicht schnell reagieren, denn 
der arbeitet die meiste Zeit mit einem eingefrohrenen Wert der Drehzahl. 
Daher könnte das Schwingen kommen. Verletzung des Abtasttheorems!
Der Regler kann NICHT LANGSAMER gemacht werden, ganz sicher!!!! Ich hab 
dazu noch in ein paar Büchern was gefunden. Tabtast = 1/10 der 
Streckenzeitkonstanten!

Was mir geraten wurde: den P-Anteil viel kleiner machen und den I-Anteil 
viel langsamer. Dann bräucht der Regler länger und würde sich nicht über 
den Sollwert hinaus intergrieren.
Was hält ihr davon????
Gibt es da noch ne andere Möglichkeit?
Gast #893290
Lesenswert?

@tom:
das würde ja die Sache noch mehr verschlechtern, weil ich dann noch 
länger für die Drehzahlberechnung brauchen würde. Heißt, mein Regler 
würde denken: 20 U/min -> Gas geben, oh immer noch 20 -> noch mehr Gas, 
das führt dann zu Schwingungen!
Gast #893333
Lesenswert?

> ich habe einen Encoder, keinen Tachogenerator.

Das bleibt sich ja gleich.

> Einen anderen bekomme ich leider nicht für dieses Projekt :-(

Dann musst du halt schneller drehen. Ich sehe keine Moeglichkeit einen 
Regler laufen zu haben wenn du keine Eingangsignale hast.

BTW: Was soll das eigentlich werden?

Olaf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren