Hallo mal eine kurze Frage zur PWM. Ich will einen GM Motor so ansteuern, dass er unabhängig von der Last mit einer Konstanten Geschwindigkeit arbeitet. Mir stehen max. 16V zur Verfügung, also dachte ich im unbelasteten Zustand gebe ich ihm ca.13V und je nach Belastung wird das Verhältniss der PWM geändert. Meine Frage wie programmiert man das? Kann ich einen Variable in meine PWM einfügen und diese Werte verändern? Vielen Dank
> Kann ich einen Variable in meine PWM einfügen und diese Werte verändern?
Wieso ne Variable einfügen? Was Du brauchst, ist im Prinzip eine Art
(P)I-Regler. Du musst die Motordrehzahl messen und entsprechend das
Tastverhältnis der PWM anpassen (also Drehzahl zu niedrig ->
Tastverhältnis erhöhen, Drehzahl zu hoch -> runter mit dem
Tastverhältnis). Die Nachstellzeit des I-Reglers muss dabei an die
Systemzeitkonstanten angepasst sein (der Motor braucht ja Zeit zum
Beschleunigen), damit die Regelung nicht übers Ziel hinausschießt.
...Wenn Du die PWM über einen Timer im Mikrocontroller erzeugst, hast Du ja irgendein Register, dessen Wert dem Tastverhältnis entspricht. Und genau dieses musst Du ändern. Bei den AVRs wäre das z.B. ein Compare-Register.
UNd wie würde man das in der Praxis am einfachsten realisieren? mit mehreren if abfragen? Oder einfach den Regelalortihmus eines PI Reglers implementieren? Wie siehts aus mit Spiecherbedarf?
Ein einfacher (P)I-Algorithmus besteht nur aus Additionen. Da brauchts nicht viel Speicher. Das sollte jeder µC mit links machen können. Du bildest einfach die Regeldifferenz (also Sollwert - Istwert) und addierst die auf. Wenn Du noch zusätzlich mehr Dynamik brauchst, dann kann noch ein P-Anteil dazu, der dann auch einfach dazuaddiert wird (mit der Verstärkung multipliziert). Das ganze muss dann nur noch auf den Wertebereich der PWM (also des Wertes in dem Register das das Tastverhältnis bestimmt) skaliert werden.
Was die Regelung betrifft solltest du dich wohl besser nicht von johnny.m beraten lassen. Wie man es richtig macht steht hier: Beitrag "PID- Regler"
@Thomas: Mit ein bisschen Probiererei geht das durchaus so, wenn es nur darum geht, die Drehzahl anzugleichen. Klar, wenn man erhöhte Anforderungen stellt, dann wirds natürlich komplexer... (s. von Dir zitierter Beitrag).
Also ich kriege meine Geschwindigkeitssignal mittels Hall-Sensor. Ist ja schon Digital also nur noch an einne Timer und Flanken messen. Meinetwegen gebe ich Geschwindigkeit x vor und will diese Konstant halten. Zu deinem PID Regler, ich denke dieser kommt nicht in Frage, da man immer PI Regler verwendet(Motoren-Drehzahl-Regelung) oder? Ich habe AHnung von Regelungstechnik, aber nur im Zusammenhang WINFACT und automatischen C-Code generieren, nun müsste ich das aber selber programmieren. Wie würde man da vorgehen? PWM kann ich programmieren das ist kein Problem.Aber wie beinflusse ich mit meinem Regelalgorithmus das Verhältniss? Und wieviel Zeit geht flöten wenn ich den Timer neu setze?
@johnny.m Mein Problem ist dein (P)I-Regler. Wenn da überhaupt was in Klammern stehen muss, dann ist das das I. Ich habe noch nie eine Situation gesehen, wo ein reiner I-Regler Sinn macht. Das einzige, was ich hier noch gelten lassen würde, ist wenn sich die Drehzahl im Arbeitspunkt lastbedingt nur noch langsam und kontinuierlich ändert. Denn obwohl MrDeeds1981 hier einen Offset draufgeben will gelten in diesem Arbeitspunkt natürlich auch wieder die Gesetzte der linearen Regelungstechnik. Allerdings habe ich keine Ahnung, wozu solch ein "Hybridregler" überhaupt gut sein soll...
Upsala, ich sehe gerade, dass mein WG-Genosse (Marc) hier in letzter Zeit was von unserem Rechner aus gepostet haben muss. Autor von 20:38 bin natürlich ich (Thomas).
@Thomas-Marc:
> Wenn da überhaupt was in Klammern stehen muss, dann ist das das I.
Den I-Anteil brauchst Du für die stationäre Genauigkeit. Ohne I-Anteil
kriegst Du bei einer Drehzahlregelung immer eine bleibende
Regeldifferenz! Der P-Anteil ist "nur" für die Dynamik. Ein reiner
P-Regler gibt bei Regeldifferenz=0 keine Stellgröße aus. Es stellt sich
damit ein Arbeitspunkt irgendwo unterhalb des Sollwertes ein.
Ein D-Anteil ist bei einer "normalen" Drehzahlregelung i.d.R. nicht
empfehlenswert, da er meist mehr Probleme als Vorteile bringt.
Ich muss allerdings zugeben, dass meine Beschreibung oben nicht ganz
vollständig war. Das kommt davon, wenn man beim Schreiben ständig
unterbrochen wird...
Gruß
Johnny
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.