Drei Fragen zu Deiner Problemstellung:
- Wie genau soll's sein?
- Wie ist die Auflösung der DA/AD-Wandlungen?
- Wie groß sind die Fehler der DA/AD-Wandlungen (Quantisierung/Rauschen,...)?
Drei Fragen zu Deiner Problemstellung:
- Wie genau soll's sein?
- Wie ist die Auflösung der DA/AD-Wandlungen?
- Wie groß sind die Fehler der DA/AD-Wandlungen (Quantisierung/Rauschen,...)?
er schrieb, dass sein DAC 10 bit hat, sein ADC wird sicher auch 10 bit haben. Den Messfehler kann man mit Sicherheit vernachlässigen, im schlimmsten Falle wäre der Stellwert eben dann so groß wie die (Fehl-) Messung, und ein P-Regler macht die Regelung extrem schnell, eben exakt proportional. Ein Lowpassfilter (ggf. mit Schwellenwert) kann Oszillationen dabei glätten.
Sowohl mein DAC als auch mein ADC haben 10 bit.
Ich glaube das Problem an der ganzen Sache ist, dass ich nicht das System als solches Regeln will, sondern nur eine sehr träge Änderung meines Systems (Temperatur, Alterung) ausgleichen will. Mein Arbeitspunkt ist prinzipiell definiert. D.h. ich stelle eine spezielle Spannung ein und kenne dann den zugehören Strom durch meine Photodiode (bzw. die dazugehörige ADC Spannung). Und auf diesen Wert will ich einregeln.
Bei der Betrachtungsweise bin ich einfach davon ausgegangen, dass die ganzen Schaltvorgänge mich eigentlich nicht interessieren und ich meine Regelstrecke als "ideal" ("unendlich schnell",...) ansehen kann. Mein Regelinterval liegt bei 5 sekunden.
PS: An dieser Stelle mal danke für die rege Diskussion und euren Input.
du betrachtest bei einem Regler doch IMMER den Output des "gesamten Systems", vergleichst Ist-Output mit Soll-Output (Setpoint), und änderst dann den künftigen Ist-Output des Systems durch einen angepassten Input des Systems. Was ändert es also, dass das System relativ schnell reagiert, gerade wenn du nur alle 5 sec überhaupt misst? Die Reaktionsschnelligkeit wird nur dann interessant und ggf. kritisch, wenn deine Messintervalle in die Nähe der Reaktionsintervalle geraten, oder sogar kürzer sind. Grundsätzlich ist bei diesem Design also ein P-Regler genau so gut wie ein PD oder PID-Regler, nur dass du beim P-Regler keine Zeitintervalle messen und mit einberechnen musst.
Nee, das meine ich nicht.
Es ist schon wichtig zu wissen, wie viele AD-Steps die Regeldifferenz repräsentieren. Es ist z.B. sinnfrei, den I-Anteil des PID ohne Totzeit auf eine Regelabweichung von +/-1 Step kalibrieren zu wollen. Da wäre etwas mehr Hub wünschenswert.
Du kannst aber in der Regel den AD-Wert per Oversampling genauer machen (ein bisschen Rauschen ist ja immer da). Einerseits gewinnst Du dadurch die fehlende Totzeit ("Ringpuffer und Summe", ziehe ältesten Wert im Ringpuffer von Summe ab, addiere aktuellen Wert auf Summe und schreibe aktuellen Wert auf ältesten Wert-> Siehe da, die rechteckige Sprungantwort wird nun eine langsame Änderung), andererseits bekommst Du rein quantitativ mehr Hub in der Regeldifferenz (auch wenn die I-Konstante ein Double ist, die AD-Werte sind es nicht). Wenn Du also per Oversampling 2 Bits gewinnen kannst, regelst Du nicht mehr um eine Regeldifferenz von +/- 1 Step, sondern um +/- 4 Steps.
Abgesehen davon: Wie soll der Regler +/- 1 Step 100% ausgleichen? Ohne Abweichung keine Regelung, zumindest nicht in I und D.
sag ich doch:
beim PID I-Glied wird die Fehlersumme mit Δt (der Länge des verstrichenen Zeitintervalls zwischen den einzelen Messungen (!) ) multipliziert, damit geht I→0 für Δt→0, und beim D-Glied wird die Fehleränderung durch Δt dividiert, damit geht D→∞ für Δt→0, beides macht also für t=0 keinen Sinn.
Also braucht man definierte Messintervalle, aber die hat man doch: nämlich die 5 sec, und es ist völlig wurscht, wie schnell oder langsam das System dabei intern reagiert!
Oder lass I und D gleich komplett weg, dann macht dein P genau das was es soll.
Lesezeichen