- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: Reglung für unendlich schnelle Systeme

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Zitat Zitat von makani Beitrag anzeigen
    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?
    Geändert von HaWe (05.09.2017 um 11:01 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    04.09.2017
    Beiträge
    9
    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 .

  3. #3
    HaWe
    Gast
    Zitat Zitat von makani Beitrag anzeigen
    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.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    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,...)?

  5. #5
    HaWe
    Gast
    Zitat Zitat von Holomino Beitrag anzeigen
    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.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    04.09.2017
    Beiträge
    9
    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.

  7. #7
    HaWe
    Gast
    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.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    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.

  9. #9
    HaWe
    Gast
    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.

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    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 Mikrosekundenbereich. Das gab dann erkleckliche Änderungen wenn ich nur die Beschaltung der LED gering geändert hatte.

    Siehe hier:
    Zitat Zitat von oberallgeier
    .. 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):

    ..........................Bild hier  Bild hier  

    Beachtlich, wie sich die Stromanstiegsgeschwindigkeit durch die LED´s damit verbessern ließ ..
    Ciao sagt der JoeamBerg

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Lenkgestänge für Kurvenradius von unendlich bis 0 (bei einem Radfahrzeug)
    Von vohopri im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 28
    Letzter Beitrag: 14.07.2014, 11:14
  2. for x:=1 to unendlich do x*mc
    Von drummer1591 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 8
    Letzter Beitrag: 20.02.2008, 07:25
  3. Intelligenz einfacher Systeme
    Von stochri im Forum Software, Algorithmen und KI
    Antworten: 11
    Letzter Beitrag: 05.10.2006, 18:23
  4. Regeländerung für komplette Systeme
    Von RobotLiga im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 31.08.2005, 09:04
  5. Wie programmiert man eine stetige Reglung in ANSI C?
    Von MicDen555 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 14.10.2004, 17:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests