Forum: Mikrocontroller und Digitale Elektronik Regelung PWM


von MrDeeds1981 (Gast)


Lesenswert?

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

von johnny.m (Gast)


Lesenswert?

> 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.

von johnny.m (Gast)


Lesenswert?

...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.

von MrDeeds1981 (Gast)


Lesenswert?

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?

von johnny.m (Gast)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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"

von johnny.m (Gast)


Lesenswert?

@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).

von MrDeeds1981 (Gast)


Lesenswert?

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?

von Marc (Gast)


Lesenswert?

@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...

von Thomas (Gast)


Lesenswert?

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).

von johnny.m (Gast)


Lesenswert?

@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
Noch kein Account? Hier anmelden.