www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Digitale Regler: konstanter Zeitabstand nötig?


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
ich frage mich grade, wie genau der zeitliche Abstand zwischen zwei 
Aufrufen eines digitalen Reglers (z.B. PI, PID, etc.) eingehalten werden 
muss.

Hintergrund: Ich habe eine Schaltung auf AVR Basis, die neben einem PWM 
gesteuerten Step-Down-Wandler ein Display und mehrere Tasten enthält. 
Der Step-Down-Wandler soll per PID-Regler gesteuert werden. Nun würde 
ich gerne, um einen Timer und Interrupt zu sparen, die Regelung einfach 
mit in die Hauptschleife integrieren. In dieser werden aber auch die 
Tasten abgefragt und das Display angesteurt. Wenn nun das Display 
aktualisiert wird, verzögert sich die Zeit zwischen zwei 
Reglerberechnungen, so dass ich keine konstanten Abstände zwischen den 
Berechnungen mehr habe. Ist sowas tolerierbar?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist dann nicht tolerierbar, wenn du die Resourcen frei hast um für 
den PID Regler ganz einfach eine Zeitbasis zu schaffen.

Und nein: Man kann durchaus mit einem Timer auch mehrere Dinge erledigen 
lassen, solange es sich nur zeitlich ausgeht, dass alles fertig ist, bis 
der nächste ISR Aufruf erfolgt.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sinnvollerweise verwendet man einen Timer um alle zB 10ms ein Flag zu 
setzen, aufgrund dessen man dann im main die Regelscheife ausfuehrt. Man 
kann so auch mit Subzyklen arbeiten. Wenn der Timer zB schneller wie der 
ADC ist, so ruft man eben nur alle 30 Ticks die Regelscheife auf und 
macht sonst was anderes. zB die Tasten, Display, usw.
Der PID ist uebrigens fuer Faule die minimales Interesse haben. Aber 
solange es damit geht, geht's.

Will damit sagen, man koennte auch mit ungleichen Zeitabstaenden 
arbeiten, das ist aber eher nichts fuer PID Leute. Die Berechnungen 
werden komplizierter und wenn man mehr rechnen muss dauert's noch 
laenger.

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heia Jetzt-aber schrieb:
> Will damit sagen, man koennte auch mit ungleichen Zeitabstaenden
> arbeiten, das ist aber eher nichts fuer PID Leute. Die Berechnungen
> werden komplizierter und wenn man mehr rechnen muss dauert's noch
> laenger.

Wenn man eh nebenher eine Zeitbass laufen hat und schön die Zeitabstände 
zwischen den Sollwert- und Istwertmessungen und der Berechnung/Ausgabe 
mitloggt, wirds wieder einfacher. Dann könnte man aber gleich die 
Berechnungen und die Ausgabe mit in die Zeitbasis packen.

Eine gute Sache ist es jedenfalls, ADC-Messungen anzustoßen und 
daraufhin nicht wie mans überall sieht, den Prozessor in einer 
Warteschleife hängen lassen, die prüft, ob das Bit wieder zurückgesetzt 
ist. Auch hier lohnt sichs, Interruptgetrieben zu arbeiten.
mf

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> Der Step-Down-Wandler soll per PID-Regler gesteuert werden.

Ist meines Erachtens nach unnötig. Eine einfache 2-Punkt-Regelung reicht 
aus. Schließlich soll der Regler einigermaßen schnell sein, damit es 
keine Überschwinger gibt. Dabei kann man 2 Ansätze wählen: Entweder die 
PWM anhand der gemessenen Ausgangsspannung nachregeln (mehr, weniger 
oder so lassen), was einer kontinuierlichen Ansteuerung des Konverters 
entspricht. Man kann auch mit einer festen PWM arbeiten, welche der Last 
angepasst wird und diese an der Schaltschwelle komplett abschalten und 
beim Unterschreiten wieder einschalten. Dies wäre dann eine 
diskontinierliche Ansteuerung des Konverters.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten.
Ich werd's dann wohl in der ISR, oder, wie hacky geschrieben hat, über 
Flags realisieren.
Die Idee von travelrec finde ich auch ganz ansprechend. Da müsste müsste 
ich mich dann nicht um den ganzen Kram für nen PID-Regler kümmern.

Autor: Havareii (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp schrieb:
> ich frage mich grade, wie genau der zeitliche Abstand zwischen zwei
> Aufrufen eines digitalen Reglers (z.B. PI, PID, etc.) eingehalten werden
> muss.

Allgemein: Das hängt von den Anforderungen an die Regelgüte ab.
Pauschal: Wenn sich die Regelfrequenz ändert bedeutet das eine andere 
Bewertung für die Zeitabhängigen Anteile I und D. Aber natürlich spielt 
das Zeitverhalten der Strecke auch rein, also P kann dann auch zuviel 
oder zuwenig des Guten sein. Also lieber f = const.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du verstehst das Grundproblem? Die PID Parameter sind Abhängig von der 
Abtastzeit.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups, Havareii war schneller...

Autor: Ulirch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es würde sich anbieten den Regler in den Interrupt vom AD-wandler zu 
verlegen. Die eigentliche Regelfunktion ist ja nicht so langwierig, wenn 
man da keine Fließkommazahlen benutzt.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es würde sich anbieten den Regler in den Interrupt vom AD-wandler zu
verlegen....

Eher nicht. Meist benoetigt man mehrere Werte, bevor man eine 
Entscheidung treffen kann. Und die Werte der verschiedenen Groessen 
kommen sequentiell an. Also erst alle Werte wandeln, dann die 
Regelroutine aufrufen. Falls es von Vorteil ist kann man zwischendurch 
pruefen ob von Sensorwerten Grenzwerte ueberschritten wurden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.