PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Reglung für unendlich schnelle Systeme



makani
04.09.2017, 17:13
Hallo zusammen,

eigentlich stehe ich vor einem banalen Problem aber scheinbar habe ich ein Brett vor dem Kopf (oder ich habe doch prinzipiell etwas nicht richtig verstanden). Ich habe schon mehrere PID-Regler ausgelegt und geschrieben (Heizung,...).

Dieses mal möchte ich die Sendeleistung einer LED ausregeln. Dazu habe ich einen DAC, über den ich die LED-Spannung einstellen kann. Die Sendeleisten messe ich über eine Photodiode, der schräg vor der LED angebracht ist.

D.h. meine Stellgröße ist der 10-Bit DAC-Ausgang und meine Regelgröße ist der Strom meiner Photodiode (über einen ADC eingelesen). Der DAC-Ausgang wird jetzt über Software-Timer geregelt, wobei ich immer eine voreingestellte Spannung an meinem ADC erreichen möchte.

Im Prinzip ist dieses System ja vernachlässigbar schnell - die Änderung des DAC-Ausgangs kann ich unmittelbar an der Photodiode messen. Die einzige Verzögerung kommt durch meine Abtastung, die momentan mit 5 Sekunden läuft. Also habe ich Tu einfach mal gleichgesetzt mit meiner Abtastrate und Tg auf 0,001. Leider funktioniert das aber nur sehr leidlich. Es schwingt auch mit den Koefizienten nach Chien/Hrones/Reswick zu stark über und wird nie richtig stabil. Wenn ich die Abtastrate sogar noch höher drehe, fängt es richtig an zu schwingen.

Meine Frage ist also: Wie lege ich einen Regler aus, bei dem die Regelstecke der Führungsgröße direkt folgt und ich nur langsame Änderungen (Temperaturgänge, Bauteilalterung) ausregeln will?

Manf
04.09.2017, 17:56
Dieses mal möchte ich die Sendeleistung einer LED ausregeln.Dazu habe ich einen DAC, über den ich die LED-Spannung einstellen kann.
Nur mal so nebenbei, wäre es nicht einfacher den Strom der LED einzustellen?

oberallgeier
04.09.2017, 18:56
.. der Strom meiner Photodiode (über einen ADC eingelesen) .. Im Prinzip ist dieses System ja vernachlässigbar schnell ..Sorry, Du schreibst ja nix über Controller, Controllertakt, ADC-Wandlerzeit und so. Ausserdem verstehe ich nicht was ".. im Prinzip .. vernachlässigbar schnell .." heissen soll. Vermutlich (!) meinst Du damit "unglaublich" schnell, in Bayern würden wir s..schnell dazu sagen.

WENN Du als Controller nen üblichen Atmel-8Bitter nimmst, mit 20 MHz, dann sagt das Datenblatt z.B.
.. the successive approximation circuitry requires an input clock frequency between 50kHz and 200kHz ..Wenn Du mit diesen Atmels arbeitest und nur 8 Bit Auflösung brauchst, dann kannst Du laut Datenblatt bis 1000 kHz - gehen. Nun sind 1000 kHz in unserem Zeitalter von "vernachlässigbar schnell" wohl eher entfernt, zumal ja bei Dir noch die Ansprechzeit der Photodiode dazukommt und so. Ich meine einmal mit Manf, dass die Lösung ziemlich hochgestochen ist - weniger high tech/sophisticated wäre hier sicher mehr. Andersrum vermute ich, dass bei den vielen Tot- und Hochfahrzeiten in dieser optoelektronischen Trickkiste doch einige regelungstechnische Fallstricke liegen.

makani
04.09.2017, 20:54
Das hatte ich anfänglich probiert. Das ist aber er leider noch zu ungenau. Speziell wenn die Temperatur steigt ist die Lichtausbeute trotz gleichbleibendem Strom wesentlich geringer.

- - - Aktualisiert - - -

Mit vernachlässigbar schnell meine ich, dass ich davon ausgehe, dass die ganzen elektronischen Schaltzeiten und Verzögerungen weit unter den temperatur-bedingten Schwankungen die ich eigentlich ausregeln will sind.
Mein controller ist ein bisschen was größeres (cortex a9). Die Regelung läuft in einem einem Linux thread.

Ich weiß dass meine DAC Spannung bei Zimmertemperatur bei 1,32V liegen muss, damit meine photodiode exakt 1V an meinem ADC anliegen. Diese 1V will ich über die komplette Laufzeit halten. Nach etwa 10 Minuten Laufzeit liegt die Photodioden-Spannung nur noch bei 0.98V.

Manf
05.09.2017, 06:02
Ich meine schon eine Regelung, aber mit der Stellgröße Strom, das Verhalten ist dann eher linear und die Regelung bleibt über einen größeren Bereich der Einflussgrößen (Temperatur und Alterung) stabil.

Zum Vergleich eine einfache analoge Schaltung zur Regelung der Leistung einer Laserdiode.


32851

makani
05.09.2017, 06:47
Mhh, das wäre vielleicht auch ein Idee gewesen. Den Strom mess ich nach wie vor und könnte ihn auch in meine Regelung einfließen lassen. Leider habe ich zum jetzigen Zeitpunkt aber keine Möglichkeit mehr das Design zu ändern.

- - - Aktualisiert - - -

Meine Frage ist viel mehr, wie ich einen Regler auslege, der nahezu keine Anstiegszeit und Totzeit hat. Die einzige Totzeit wird durch meine langsame Abtastung erzeugt.

Ein 2-Punkt-Regler wäre sicher auch eine Lösung, aber mir erscheint das PID-Problem irgendwie banal. Eigentlich ist das doch der "Idealfall".

HaWe
05.09.2017, 09:48
Hallo zusammen,

eigentlich stehe ich vor einem banalen Problem aber scheinbar habe ich ein Brett vor dem Kopf (oder ich habe doch prinzipiell etwas nicht richtig verstanden). Ich habe schon mehrere PID-Regler ausgelegt und geschrieben (Heizung,...).

Dieses mal möchte ich die Sendeleistung einer LED ausregeln. Dazu habe ich einen DAC, über den ich die LED-Spannung einstellen kann. Die Sendeleisten messe ich über eine Photodiode, der schräg vor der LED angebracht ist.

D.h. meine Stellgröße ist der 10-Bit DAC-Ausgang und meine Regelgröße ist der Strom meiner Photodiode (über einen ADC eingelesen). Der DAC-Ausgang wird jetzt über Software-Timer geregelt, wobei ich immer eine voreingestellte Spannung an meinem ADC erreichen möchte.

Im Prinzip ist dieses System ja vernachlässigbar schnell - die Änderung des DAC-Ausgangs kann ich unmittelbar an der Photodiode messen. Die einzige Verzögerung kommt durch meine Abtastung, die momentan mit 5 Sekunden läuft. Also habe ich Tu einfach mal gleichgesetzt mit meiner Abtastrate und Tg auf 0,001. Leider funktioniert das aber nur sehr leidlich. Es schwingt auch mit den Koefizienten nach Chien/Hrones/Reswick zu stark über und wird nie richtig stabil. Wenn ich die Abtastrate sogar noch höher drehe, fängt es richtig an zu schwingen.

Meine Frage ist also: Wie lege ich einen Regler aus, bei dem die Regelstecke der Führungsgröße direkt folgt und ich nur langsame Änderungen (Temperaturgänge, Bauteilalterung) ausregeln will?

ich verstehe ehrlich gesagt deine Ausgangsfrage nicht mit "unendlich schnell" ("vernachlässigbar schnell" ist sicher nicht korrekt ausgedrückt):
der PID Algorithmus integriert doch keine infinitesimal kleinen Operanden mithilfe von Differenzialen (unendlich kleine dt), sondern addiert kleine diskrete Terme in einem zeitlichen definierten, messbaren Abstand (ähnlich wie Riemann-Summen im Gegensatz zur (infinitesimalen) Integralrechnung). Also brauchst du eine diskrete Abtasthäufigkeit von 10ms oder 1ms oder 10µs oder 100ns (oder was immer deine MCU hergibt), um die ebenfalls diskreten Änderungen zum vorherigen Zustand zu erfassen, genau so, wie man es auch sonst macht, z.B. um Motoren nach Sensor- oder Encoderwerten per PID zu regeln.
Die Berechnung der PID-Formel für die Stellgröße muss natürlich mit der Abtastgeschwindigkeit mitkommen (welche daher hinreichend lang sein muss), und die Dauer der Abtastintervalle muss exakt gemessen werden, denn sie geht ja in die PID-Formel mit ein.

ps,
das eben gesagte zum PID Regler gilt natürlich in gleicher Weise auch für jeden anderen Regler, der Zeit benötigt zum Messen, Berechnen, Stellen und Regeln, und natürlich muss dieses Zeitintervall in ähnlicher Weise wie beim PID Regler berücksichtigt werden, egal wie die "Formel" dafür lautet, denn "unendlich kurz oder schnell" gibt es im wirklichen Leben natürlich nicht.

Oder was meinst du, wo habe ich dich missverstanden?

makani
05.09.2017, 10:05
Mein System hat einfach keine messbare Totzeit bzw. Anstiegszeit. Wenn ich den DAC einstelle, kann ich die entsprechende Spannung an meiner Photodiode über den ADC direkt auslesen. Die Sprungantwort von meinem System entspricht also praktisch einem Rechteck-Signal. Die einzige Verzögerung die ich habe, ist die Totzeit die durch meine Abtastrate entsteht.

Das meine ich mit "unendlich schnell". Mag sein, dass der Ausdruck verwirrend ist oder ich ihn an dieser Stelle falsch verwende :(.

HaWe
05.09.2017, 11:12
Mein System hat einfach keine messbare Totzeit bzw. Anstiegszeit. Wenn ich den DAC einstelle, kann ich die entsprechende Spannung an meiner Photodiode über den ADC direkt auslesen. Die Sprungantwort von meinem System entspricht also praktisch einem Rechteck-Signal. Die einzige Verzögerung die ich habe, ist die Totzeit die durch meine Abtastrate entsteht.

Das meine ich mit "unendlich schnell". Mag sein, dass der Ausdruck verwirrend ist oder ich ihn an dieser Stelle falsch verwende :(.
Es mag zwar sein, dass es "unheimlich " schnell geht, aber fürs Messen muss dennoch eine diskrete Zeit vergehen, damit du überhaupt eine Änderung feststellen kannst, wonach dann deine Regelung eingreift. Unendlich kurze Zeit bedeutet ja auch eine unendlich kleine Änderung der Messwerte, und unendlich klein heißt nichts anderes als Null - es sei denn, du begibst dich ins Reich der Infinitesimalrechnung mt ihren Differentialen, Ableitungen und Stammfunktionen. Ohne diskrete (digital darstellbare) Zeitintervalle kann also keine digitale Regelung funktionieren, und tatsächlich ist es ja auch nicht unmessbar oder gar unendlich klein, sondern sicher mehr als 1 cpu Takt lang - und genau das ist ja bereits ein messbares Intervall, welches von deinem digitalen Regler berücksichtigt werden muss

- - - Aktualisiert - - -

ps,
da es sicher richtig ist, dass dein System sehr schnell reagiert und auch keine "intrinsische" Neigung zu Reaktions-Trägheit und Überschwingen hat, wäre ein einfacher P-Regler möglicherweise das einfachste, genaueste und schnellste, was du wohl überhaupt erreichen kannst, und hier fließen zeitliche Differentiale wie bei Integral- oder Differenzialanteil des PID-Reglers ja auch nicht mit ein, auch wenn an sich diese Zeitintervalle natürlich ebenso existieren.

Holomino
05.09.2017, 11:17
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,...)?

HaWe
05.09.2017, 11:41
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.

makani
05.09.2017, 11:47
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.

HaWe
05.09.2017, 12:02
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.

oberallgeier
05.09.2017, 12:08
Mein System hat einfach keine messbare Totzeit bzw. Anstiegszeit ..Das ist schwer zu glauben. In einem andern Fachgebiet wurde was ähnliches gepredigt; als ich dann Dynamiken mit schnellen Messgeräten erfasste die keiner kannte, wurde mir vorgeworfen ".. hat falsch gemessen .." (und das waren Bereiche die wirklich nicht "ultraschnell" - nach heutigen Begriffen - waren. Heute forschen mehrere Institute daran, was die von mir aufgedeckte Dynamik auslöst/begründet ...


Mein System hat einfach keine messbare Totzeit bzw. Anstiegszeit ..Ich habe weder Deine Elektronik und auch nicht Deine LED bw. Photodiode. Aber für meine Ausrüstungen hatte ich mal ähnliches gemessen (mit nem Uralt-Analog-Oskar), Anstiegs- bzw. Abfallzeiten von Spannungen im unter(st)en Mikrosekunden (https://www.roboternetz.de/community/threads/36992-Bitte-um-Hilfe-bei-Widerstandsberechnung?p=353737&viewfull=1#post353737)bereich. Das gab dann erkleckliche Änderungen wenn ich nur die Beschaltung der LED gering geändert hatte.

Siehe hier:

.. dieses Ergebnis gefunden für die Ansteuerung der irLED-PWM mit OCR1A = 5 bis 1 - links ohne, rechts mit KerKo 100nF (0,5 µs/DIV, 2V/DIV):

..........................https://dl.dropbox.com/s/3yy9hv0u7kj8c2m/ohC%2BmC100nF.jpg?dl=0http://oberallgeier.ob.funpic.de/ohC+mC100nF.jpg (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=385343#385343)

Beachtlich, wie sich die Stromanstiegsgeschwindigkeit durch die LED´s damit verbessern ließ ..

Holomino
05.09.2017, 12:16
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.

HaWe
05.09.2017, 12:37
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.

PICture
05.09.2017, 21:07
Hallo!


Mein System hat einfach keine messbare Totzeit bzw. Anstiegszeit.

Ich kann dir nur Realismus empfehlen, weil reine D Regler nicht gibt. Siehe dazu: http://rn-wissen.de/wiki/index.php?title=Regelungstechnik . :(

makani
06.09.2017, 07:00
Die Abtastrate rechne ich natürlich über den I Anteil auch direkt mit ein. Ein P Regler hat das Problem, dass durch eine bleibende Abweichung vorhanden bleibt und genau das will ich ja nicht

Mir ist auch klar, dass mein System beim schalten des DAC eine Totzeit und Anstiegszeit hat. Die liegen aber weit über dem was ich mit meiner langsamen 5 Sekunden-Abtastung messen kann und auch will. Der Zusammenhang zwischen dem DAC Steller und meiner eingelesenenen Spannung ist linear. Ich will wirklich nur sehr langsame Störeinflüsse ausregeln. Da würde auch ne Regelung im Minuten-Bereich ausreichen. Bestimmt fällt mir auch eine andere Möglichkeit ein das auszuregeln, aber ich fand die Idee einen pi Regler zu verwenden nicht verkehrt.

Übrigends lade ich den I-Anteil beim Einschalten mittlerweile schon vor so dass ich nahzu kein Einschwingen mehr habe. Wie gesagt, weiß ich ja "ungefähr" wie ich meinem DAC einstellen muss.

HaWe
06.09.2017, 09:54
Die Abtastrate rechne ich natürlich über den I Anteil auch direkt mit ein. Ein P Regler hat das Problem, dass durch eine bleibende Abweichung vorhanden bleibt und genau das will ich ja nicht

Mir ist auch klar, dass mein System beim schalten des DAC eine Totzeit und Anstiegszeit hat. Die liegen aber weit über dem was ich mit meiner langsamen 5 Sekunden-Abtastung messen kann und auch will. Der Zusammenhang zwischen dem DAC Steller und meiner eingelesenenen Spannung ist linear. Ich will wirklich nur sehr langsame Störeinflüsse ausregeln. Da würde auch ne Regelung im Minuten-Bereich ausreichen. Bestimmt fällt mir auch eine andere Möglichkeit ein das auszuregeln, aber ich fand die Idee einen pi Regler zu verwenden nicht verkehrt.

Übrigends lade ich den I-Anteil beim Einschalten mittlerweile schon vor so dass ich nahzu kein Einschwingen mehr habe. Wie gesagt, weiß ich ja "ungefähr" wie ich meinem DAC einstellen muss.

ich kapiers immer noch nicht, wo dein Problem ist.
Ein PID oder P oder PI oder PD Regler regelt so oft und so genau bzw. um so genauer, je öfter man mit ihm misst und dann auch sofort nachregelt.
Wenn für jede Einzel-Regelung ein 5sec Takt reicht, muss sogar auch ein einfacher richtig getuneter P Regler ausreichen, oder meinetwegen ansonsten auch ein PD oder PI Regler.
Wenn ein 5sec Takt für die einzelnen Mess/Regelungs-Schleifen zu lang ist, musst du eben doch öfter messen.
An sich lässt sich ein P Regler aber durchaus so einstellen, dass er ohne bleibende Abweichung arbeitet, und sei es dadurch, dass man für große Abweichungen ein anderes Kp definiert als für kleine Abweichungen.

makani
06.09.2017, 11:09
Meine Problem ist die Frage wie ich so einen extrem trägen Regler richtig dimensioniere. Bei dieser Betrachtungsweise folgt die Regelstrecke meiner Änderung "unendlich schnell" (tut mir leid, dass ich den Begriff wieder verwende).

Das ist nicht der erste Regler, den ich dimensioniere und implementiere. Nur wie bestimme ich meine Regelparameter sinnvoll, wenn ich nur extrem langsame Störungen ausregeln will und meine Regelstrecke quasi ideal ist?

HaWe
06.09.2017, 14:24
Meine Problem ist die Frage wie ich so einen extrem trägen Regler richtig dimensioniere. Bei dieser Betrachtungsweise folgt die Regelstrecke meiner Änderung "unendlich schnell" (tut mir leid, dass ich den Begriff wieder verwende).

Das ist nicht der erste Regler, den ich dimensioniere und implementiere. Nur wie bestimme ich meine Regelparameter sinnvoll, wenn ich nur extrem langsame Störungen ausregeln will und meine Regelstrecke quasi ideal ist?

wie bereits öfter betont:
genau so, als wenn auch deine Regelstrecke/System-Reaktionszeit weniger schnell wäre. Entscheidend ist nur die Abtastrate, denn nur die reguliert, wie oft der Regler aktiv wird, und damit, wie schnell und wie exakt er letztendlich den Setpoint approximiert.

makani
07.09.2017, 07:49
Ok, dann mal etwas konkreter:

Ks = MONmax/DACmax = 1,7V/1023
Ta = 5s

-> Tu = Ta/2 = 2,5s
-> Tg = ??? (testweise auf 0,1s eingestellt)


Kp = (0,35*Tg)/(Ks*Tu) = 0,0056
Ki = Kp/(Tg*1,2) = 0,046667

Damit läuft es mittlerweile stabil. Da ich den Arbeitspunkt ja fest eingestellt habe, habe ich gut Erfahrungen damit gemacht, den I-Anteil gleich vorzuintialiseren. Damit gibt es nahezu kein Einschwingen mehr.
Ki[0] = (DACap * Ks) / (Ki * Ta)

Meine ursprüngliche Frage war, wie ich Tg für diesen Fall richtig bestimmen kann. Es wird weit unter meiner Abtastrate liegen und ich habe etwas mit dem Wert herum gespielt und bin bei aktuell bei 0,1.

HaWe
07.09.2017, 08:24
Ok, dann mal etwas konkreter:

Ks = MONmax/DACmax = 1,7V/1023
Ta = 5s

-> Tu = Ta/2 = 2,5s
-> Tg = ??? (testweise auf 0,1s eingestellt)


Kp = (0,35*Tg)/(Ks*Tu) = 0,0056
Ki = Kp/(Tg*1,2) = 0,046667

Damit läuft es mittlerweile stabil. Da ich den Arbeitspunkt ja fest eingestellt habe, habe ich gut Erfahrungen damit gemacht, den I-Anteil gleich vorzuintialiseren. Damit gibt es nahezu kein Einschwingen mehr.
Ki[0] = (DACap * Ks) / (Ki * Ta)

Meine ursprüngliche Frage war, wie ich Tg für diesen Fall richtig bestimmen kann. Es wird weit unter meiner Abtastrate liegen und ich habe etwas mit dem Wert herum gespielt und bin bei aktuell bei 0,1.

in die P(ID)-Regelung geht laut Formel nur die Abtastrate ein, daher ist immer Ta=Tg=5 sec einzusetzen.
Oder Ta=Tg=0,1s,
oder was auch immer.
aber niemals verschiedene Werte!

https://wikimedia.org/api/rest_v1/media/math/render/svg/14b8569ef4dd4ea1c5a5611765ea74cc273e3abd


oder als Algorithmus:



double pid_ctrl(double e) {
static double esum;
static double ealt;
double y;

esum = esum + e;
y = Kp * e + Ki * Ta * esum + Kd * (e – ealt)/Ta;
ealt = e;

return y;
}

mit e = Zielwert-IstWert
und Ta = Zeitabstand zum vorherigen Durchlauf, also in Arduinisch: millis()-oldmillis

makani
07.09.2017, 08:25
in http://rn-wissen.de/wiki/index.php/Regelungstechnik (Kapitle Digitaler Regler) steht, dass die Abtastrate sich mit dem Faktor 1/2 als Totzeit auswirkt.

HaWe
07.09.2017, 08:31
vergiss das, denn es geht weder in die Formel noch in den Algorithmus mit ein!