PID Aufrufsfrequenz teilweise höher als Datenrate

Hallo,

ich habe folgendes Problem: F=FCr eine Geschwindigkeitsmessung per Encoder =FCber einen gro=DFen Drehzahlbereich ist die Datenrate teilweise niedriger als die PID Aufrufsfrequenz. Der PID l=E4uft mit 1KHz. Im Worst case bekomme ich bei bestimmten Drehzahlen jedoch nur mit 500 Hz die Regelgr=F6=DFe aktualisiert. Der PID rechnet dann einmal mit der aktuellen Regelgr=F6=DFe und danach nochmals mit demselben Wert. Ganz optimal ist das sicher nicht. Was empfehlen die Regelungstechniker?

Gru=DF Wolf

Reply to
Wolfgang Weinmann
Loading thread data ...

Kommt mir bekannt vor. Seufz.

Ich aendere die PID Koeffizienten in Abhaengigkeit von der Drehzahl.

Olaf

Reply to
Olaf Kaluza

Wolfgang Weinmannschrieb: "

Hängt wie immer von den genauen Umständen ab. Stell dir eine Heizungsregelung vor. Da ändert sich die Temp. auch langsamer als die Samplefreqenz des Reglers.

Falls die Regelung dadurch zu träge wird, kann man noch versuchen z.B. mit dem Gradienten in die Zukunft zu schätzen.

Dirk

Reply to
Dirk Ruth

Am 28.12.2009 16:32, schrieb Wolfgang Weinmann:

Ich hatte mal einen Regler synchron zu den Drehzahlimpulsen laufen lassen. Unterhalb einer bestimmten Drehzahl habe ich dann in konstante Frequenz umgestellt, das war aber nur für Anlauf und Ausschalten von Bedeutung.

Hat gut geklappt.

Was von der Theorie her optimal ist, kann ich nicht sagen.

Michael

Reply to
Michael Rübig

Moin,

Am 28.12.09 17.51, schrieb Michael Rübig:

Das ist die "Standardstrategie". Man sollte nur auch _oberhalb_ einer bestimmten Drehzahl mit konstanter Abtastrate fahren - der PID-Algorithmus braucht ja ein bisschen Zeit. Also hier im Bereich 500Hz bis 1kHz den PID synchron zur Datenrate fahren.

Volker.

Reply to
Volker Staben

Am 31.12.2009 08:15, schrieb Volker Staben:

In meinem Fall hat der zu regelnde Drehzahlbereich so Faktor 2-3. Von daher reichte eine untere Grenze aus.

Aber klar, wenn man die Drehzahl in einem viel größeren Bereich regeln will, muss man auch nach oben hin begrenzen.

Michael

Reply to
Michael Rübig

Hi Michael,

Am 01.01.10 14.02, schrieb Michael Rübig:

Das Kriterium ist _nicht_ der Drehzahlbereich.

Wenn der PID-Algorithmus eine längere Rechenzeit benötigt als zwischen zwei Aufrufen ur Verfügung steht, _dann_ tritt ein Problem auf...

Volker.

Reply to
Volker Staben

Am 01.01.2010 14:30, schrieb Volker Staben:

Ist mir bekannt. Ich bin zwar kein Regelungstechniker, aber ich denke, wenn man meinen Ansatz über einen weiten Drehzahlbereich einsetzen würde, wäre es schwierig, den Regler über den ganzen Bereich stabil zu halten. Man könnte natürlich mit drehzahlabhängigen Koeffizienten arbeiten ...

Und irgendwann setzt einem die verfügbare Rechenleistung Grenzen. Ich wollte damals noch den 100Hz-Rippel aus dem Zwischenkreis (Messwerte standen zur Verfügung) in den Regler als Störgrößenaufschaltung einfüttern. Das wäre ne Division gewesen, welche der kleine 8-Bitter leider nicht mehr in der gewünschten Geschwindigkeit gepackt hat.

Michael

Reply to
Michael Rübig

Hallo Michael,

Am 01.01.10 14.52, schrieb Michael Rübig:

"von daher" ist falsch argumentiert.

Grundsätzlich erst einmal nicht - jedenfalls nicht, solange die Eigenschaften der Regelstrecke hinreichend konstant (also unabhängig vom Arbeitspunkt = Drehzahl) sind. Dann können auch die Reglerparameter konstant sein, selbst über einen Drehzahlfaktor hundert oder tausend.

In die Berechnung der Stellgröße geht - neben den insoweit konstanten - Reglerparametern auch die Abtastzeit des Algorithmus ein. Das ist aber etwas anderes als arbeitspuktabhängige Reglerparameter und sollte nicht velwechsert werden.

Volker.

Reply to
Volker Staben

Am 01.01.2010 17:45, schrieb Volker Staben:

... in diesem Fall ...

Für den P-Anteil ist das in der Tat egal. Der Integrator-Wert würde aber mit zunehmender Drehzahl immer schneller wachsen, bis der Regler bei hohen Drehzahlen anfängt zu schwingen.

Man muss also nicht die Koeffizienten drehzahlabhängig anpassen sondern die Eingangswerte für den I-Regler und P-Regler drehzahlabhängig skalieren.

Habe ich damals nicht gemacht, war in dem kleinen Drehzahlbereich wohl auch unkritisch.

Du hast Recht, s.o.

Michael

Reply to
Michael Rübig

Ich denke nicht dass das Problem sich mit variabler Abtastrate lösen lässt.

Das Hauptproblem ist ja dass das Eingangsiganl im unteren Bereich nur noch als manchmal 1 und manchmal 0 erfasst wird.

Besser währe es im Bereich bis zu ca. 5 Ereignissen/Abtastung den Abstand zwischen zwei Eingangssignalen zu vermessen. Daraus lässt sich leicht eine Pulsfrequenz auch weit unter 1 mit hoher Auflösung errechnen.

Gernot

--
MFG Gernot
Reply to
Gernot Fink

Dann hast du aber doch eine zeitliche Verzoegerung von fuenf Abtastungen in deinem System. Damit duerfte sich deine Strecke doch nun anders verhalten oder?

Olaf

Reply to
Olaf Kaluza

Moin,

Am 01.01.10 21.18, schrieb Gernot Fink:

das macht man bei niedrigen Drehzahlen ja generell so. Problem dabei ist: die Abtastrate der Drehzahlinformation ist bei niedrigen Drehzahlen sehr gering. Also wird man nicht an jeder 5. Flanke, sondern an jeder messen.

Beim Problem des OP - Variation der Abtastrate über einen Faktor 2 - geht des mit dem Synchronfahren des Regelalgorithmus durchaus. Bei gaanz niedrigen Drehzahlen allerdings nicht mehr, da dann die Totzeit (mittlere Totzeit ist halbe Abtastrate) dominiert. Dann muss man diese signifikanten Änderungen der Streckeneigenschaften berücksichtigen.

Volker.

Reply to
Volker Staben

Nein, eben kaum. Sobald ein Impuls eingetoffen ist hat man einen neuen aktuellen wert den man sofort an die Pid übergeben kann. Irgendwann kommen aber die Impulse so schnell dass einfache zählen der Impulse besser ist. Ich hab mal geschätze 5 für diesen Zeitpunkt gesagt weil hier die beiden verfahren recht problemlos umgeschaltet werden können.

--
MFG Gernot
Reply to
Gernot Fink

Moin,

Am 02.01.10 17.12, schrieb Wolfgang Allinger:

aber das macht man ja anyway!

Das Problem dabei ist, dass mit digitalen Winkelgebern die Periodendauer erst nach einer ganzen, halben oder Viertelperiode zur Verfügung steht. Bei sehr niedrigen Drehzahlen ist damit 1. die Abtastrate der Drehzahlinformation niedrig, so dass man besser wieder mit einer festen Abtastfrequenz des Regelalgorithmus arbeitet. Und 2. muss man berücksichtigen, dass bei niedrigen Drehzahlen eine mittlere Totzeit in Höhe der halben Periodendauer der Drehzahlimpulse auftritt. Sobald diese Totzeit nicht mehr vernachlässigt werden kann, muss sie beim Reglerdesign berücksichtigt werden. Eine Alternative bietet dann nur noch die höher auflösende Bestimmung des Drehwinkels aus einer Interpolation der quasisinusförmigen Quadratursignale analoger Winkelgeber.

Wie beim OP eine um den Faktor 2 schwankende Zykluszeit des Reglers zu implementieren, um in einem relativ kleinen Drehzahlbereich das beschriebene Problem zu lösen, sollte aber funktionieren - jedenfalls solange, wie die maximale Zykluszeit des Regelalgorithmus noch hinreichend kurz ist.

Volker.

Reply to
Volker Staben

Genau so sehe ich das auch! Falls das nur ein Problem der Drehzahlerfassung durch Impulszählung ist, warum dann nicht unterhalb einer gewissen Drehzahl auf Periodendauermessung zwischen 2 Pulsen umschalten und daraus die Drehzahl ausmessen?

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Hi!

Einen besseren Encoder verwenden.

Ansonsten bekommt man das Problem nicht weg -- man könnte natürlich den PID-Regler seltener aufrufen, oder ein Digitales Filter vorschalten. In beiden Fällen erhöht sich die Reaktionszeit.

Reply to
Thomas Kindler

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.