Forum: Mikrocontroller und Digitale Elektronik PID Regler; umwandlung zu PWM


von regler (Gast)


Lesenswert?

Hallo Freunde der Regleungstechnik :D

Ich möchte die Drehzahl von einem Motor per Sotfware PID-Regler 
einstellen. Zum Steuern am Motor geht das durch PWM. Je größer das Duty 
wird, umso größer die Drehzahl. Mit Hilfe eines an der Welle 
befindlichen Generators wird die Drehzahl indirekt durch 
Spannungsmessung ermittelt.

Nun habe ich in Software einen PID-Regler geschrieben aber irgendwie 
scheitert es an der Umwandlung von Spannungswerten zu PWM. ich meine, 
der Algorithmus erwartet Initialwerte kp, kd, ki und in jedem zyklus 
messwert, sollwert und gibt stellwert aus.
Messwert, sollwert und stellwert sind aber Spannungswerte. jetzt muss 
ich mir ja noch irgendwie eine funktion popeln die Spannung in PWM 
umwandelt.

z.b:      duty = 100 * 1/(output);

Den Algorithmus habe ich von wiki
https://en.wikipedia.org/wiki/PID_controller
1
previous_error := 0
2
integral := 0
3
4
loop:
5
    error := setpoint − measured_value
6
    proportional := error;
7
    integral := integral + error × dt
8
    derivative := (error − previous_error) / dt
9
    output := Kp × proportional + Ki × integral + Kd × derivative
10
    previous_error := error
11
    wait(dt)
12
    goto loop

von Falk B. (falk)


Lesenswert?

regler schrieb:
> z.b:      duty = 100 * 1/(output);

Warum so kompliziert?

duty = Stellwert * Skalierung.

Skalierung ist ein konstanter Faktor. Kann man eigentlich weglassen, 
wenn man den in die PID-Koeffizienten reinrechnet.

Fertig.

von J. T. (chaoskind)


Lesenswert?

Du musst aus deiner Ausgangspannung eine entsprechende PWM machen. 
Nehmen wir an wäre es ein Spannungsausgang der 0-5 Volt kann. Wenn er 1V 
ausgibt, sind das 20% des Stellbereichs.

Genauso machst du das mit der PWM die Pulsweite in % entspricht etwa den 
Prozenten der MaxDrehzahl bei 100%PWM.

von Olaf (Gast)


Lesenswert?

> Je größer das Duty wird, umso größer die Drehzahl.

Das glaube ich dir erstmal so nicht. Wenn du die PWM korrekt machst dann
wirst du damit die bestenfalls die mittlere Spannung an deinem Motor 
einstellen koennen. Die Drehzahl wird aber davon nicht linear abhaengen, 
vermutlich eher so grob quadratisch. Und damit klappt deine Regelung 
dann nicht mehr.

Olaf

von J. T. (chaoskind)


Lesenswert?

Olaf schrieb:
> Das glaube ich dir erstmal so nicht

Gut dass der Motor sich nicht für Glaubensfragen interessiert. Wohl aber 
für die angelegte Spannung. Ob es nun die gemittelte PWM Spannung oder 
gleichspannung ist. Das Drehmoment hängt linear vom Strom, die Drehzahl 
linear von der Spannung ab.
Zumindest in ganz grauer Theorie

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.