digitaler PID Regler

Gast #354212
Lesenswert?

Ich versuche gerade einen universellen, digitalen PID Regler zu
programmiern.
PI funktionieren schon wunderbar, aber der D Regler scheitert am
Quantisierungsfehler des ADCs: Je nachdem ob gerade wiedermal ein Bit
kippt, kommen eigentlich nur die Werte -1, 0 und +1 vor. Da diese Werte
mit einem Faktor von einigen 10 verstärkt wird, "rauscht" die
Stellgröße extrem.
Mit dem theoretischen Ansatz komme ich nicht weiter, hat jemand einen
Praxistaugliche Routine zur Berechnung des differenziellen Anteils ?
Gast #354213
Lesenswert?

Mach den D-Teil einfach so, dass er erst bei einer Abweichung von 2
(oder viellicht sogar nochmehr) anspringt und sonst so tut als wär' er
nicht da.
Alternativ könnte man das Signal auch für den ganze Regler oder nur den
D-Teil etwas glätten (über 2 oder mehr Samples mitteln) - kommt halt auf
die Samplingrate und die gewünschte Reaktionsgeschwindigkeit an.


Gruß
Konrad
Gast #354215
Lesenswert?

Die Idee mit der Regressionsgerade ist echt gut.
Die kann man ja optimieren, wenn man alle konstanten Werte im voraus
berechnet und mit Festkomma rechnet. Dann hält sich der Rechenaufwand
in Grenzen.

Damit reichen etwa 20 Werte um das Rauschen fast komplett
wegzubekommen.
Ich denke besser werde ich es nicht hinbekommen und 20 Werte sind ein
guter Kompromiss zwischen Verzögerung und Rauschen.
Gast #354217
Lesenswert?

Hallo Benedikt

Du könntest auch das Differenzieren analog machen und bei
entsprechender Verstärkung und dem Einlesen des Signals über einen
weiteren ADC-Kanal ein optimales Signal für den D-Anteil bekommen. Du
müstes allerdings einen Operationsverstärker einbauen.

Michael
Gast #354218
Lesenswert?

du kannst auch eine Art gleidenden mittelwert über die messwerte zu
legen und dann die gemittelten werte für deine berechnung nehmen.
oder du machst supersampling und rechnest mit ein paar mehr stellen
das verringert zwar die bandbreite das reglers aber dämpft die sprünge.
Gast #354219
Lesenswert?

Der Mittelwert ist der bestmögliche Schätzwert unter der Annahme dass
die Messgrösse KONSTANT ist und sonst keine weiteren Informationen über
die Fehlerverteilung vorliegen.

Ist die Messgrösse jedoch veränderlich, so ist (wieder wenn keinen
weiteren Zusatzinformationen vorliegen) die Annahme einer lineraren
Beziehung die nächst bessere Approximation.
Die Regressionsgerade liefert dann den bestmöglichen Schätzwert für die
Messgrösse und deren Ableitung/Steigung.

Die Mittelwertbildung und nachfolgende Steigungsberechnung ist so
gesehen etwas widerspüchlich und verschenkt unötig Bandbreite ohne
genauer zu sein (ist aber verständlicherweise wegen des geringeren
Rechen/Implementierungsaufwand beliebt).

Liegen mehr Informationen über Kurvenart oder Verteilung der Messfehler
vor so kann man dann natürlich ein Kurvenfitting höherer Ordnung
betreiben.

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