-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: Reglung für unendlich schnelle Systeme

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.09.2017
    Beiträge
    9

    Reglung für unendlich schnelle Systeme

    Anzeige

    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?

  2. #2
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    64
    Beiträge
    12.412
    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?

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.616
    .. 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.
    Zitat Zitat von Datenblatt Atmel 2549Q, Abschnitt ADC
    .. 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.
    Ciao sagt der JoeamBerg

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

  5. #5
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    64
    Beiträge
    12.412
    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.


    Klicke auf die Grafik für eine größere Ansicht

Name:	Laserdiode .jpg
Hits:	14
Größe:	20,9 KB
ID:	32851

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

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.623
    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 12:01 Uhr)
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  8. #8
    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 .

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.623
    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.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.04.2015
    Beiträge
    209
    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,...)?

Seite 1 von 3 123 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, 12: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, 08:25
  3. Intelligenz einfacher Systeme
    Von stochri im Forum Software, Algorithmen und KI
    Antworten: 11
    Letzter Beitrag: 05.10.2006, 19:23
  4. Regeländerung für komplette Systeme
    Von RobotLiga im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 31.08.2005, 10: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, 18:25

Berechtigungen

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