Hallo Epoxy,
die PID-Einstellungen sind Erfahrungswerte. Man muß tatsächlich jeweils am Objekt testen.
Mit der Skaslierung der Drehzahl gibst Du an, dass der Messwert 4..20mA entspricht 0..10000 U/min ist. Am 500 Ohm Wiederstand liegen somit 2..10V entspricht 200..1000.
Somit ist 200 = O U/min und 1000 = 10000 U/Min.
Gruß
Bruno
Hallo Bruno, ganz herzlichen Dank für Deine Unterstützung zum Verständnis des PID-Reglers durch Dein Programm und die zusätzlichen Erläuterungen, die Du mir in der privaten Mail noch gegeben hast.
Damit habe ich glaube ich die Arbeitsweise im wesentlichen begriffen (so hoffe ich wenigstens).
Eines ist natürlich in Deinem Fall etwas anders, Deine Steuerung ist drehzahlgeführt.
Meine Regelung soll sich an der
Motorbelastung orientieren.
Ich hatte es wohl nicht so deutlich hingeschrieben. Mein Analogsensor 4-20 mA mißt keine Drehzahlen, sondern die Motorbelastung (explizit: die Stromstärke des Motors/Generators. Durch den Analogsensor wird der Easy eine Eingangsspannung von 0,00 Volt bis ca. 3,50 Volt am Analogeingang übergeben)
Die Drehzahl ist nur das Medium, durch das sich letzlich die Stromstärke im Motor/Generator irgendwie ergibt.
Es gibt aber keinen direkten Zusammenhang zwischen Strom und Drehzahl, da noch andere von Außen einwirkende Größen Einfluss auf den Strom haben. (Z.B. die Außentemperatur)
Verstellt werden kann von mir nur die Drehzahl (und zwar indirekt via Stellmotor für das Gaspedal = Relaisausgänge Q01 und Q02), hier gemessen vom zykluszeitunabhängigem Frequenzzählereingang.
Der Regelvorgang ist etwa so, als wenn ich mit dem Auto an der Ampel losfahre (Start, Frequenz = 0 Hz), und irgendwann (z.B. nach t = 56 Sekunden) kommt ein Berg auf der Autobahn. Auf dieser Autobahn gibt es eine Mindestgeschwindigkeit z.B. auf der linken Spur der Autobahnsteigung Frequenz = 3300 Hz. Mein Auto kann aber auch schneller, aber der Kühler ist recht klein dimensioniert.
Jetzt schaue ich aus Angst ständig auf das Kühlwassertermometer ( =Analogeingangswert), und sobald der Motor eine bestimmte Kühlwassertemperatur (= Max. zul Spannung am Analogeingang ca. 3,10 Volt ) überschreitet, gehe ich vom Gaspedal, wodurch die Geschwindigkeit ( bei mir Frequenz) sinkt.
Normalerweise aber nie unter 3300 Hz.
Ist der Berg vorbei, kann ich bei gleicher Kühlwassertemperatur wieder schneller fahren.
Und wenn mir irgendwann eine Raststätte (=Fehlermeldung1) angezeigt wird, oder meine Mindestgeschwindigkeit für die linke Autobahnspur aus irgendeinem Grund unterschritten wird (= Fehlermeldung2), will ich dort anhalten (Stopp).
Mein Kühlwassertermometer ist übrigens so genau, daß ich schon Temperaturunterschiede von 0,1 bis 0,2 Grad ( entsprechend 0,01 Volt am Analogeingang) angezeigt bekomme.
Leider ist die Simulation schlecht möglich, da die Easy 819 DC-RC den Frequenzzähler nicht simulieren kann..
Für andere Interessierte zum Thema PID-Regler oder teilformen davon habe ich noch folgenden Link ganz hilfreich gefunden.
http://www.roboternetz.de/wissen/index.php/RegelungstechnikFreue mich über weitere Anregungen zum Problem.
Das Problem dieses Anwendungsfalles ist, daß die Reaktionszeit auf Drehzahländerungen lange braucht, einmal Gaspedal durchtreten wären 30 Sekunden, Gaspedal loslassen, um dann die Bremse zu berühren braucht auch ca. 30 Sekunden.
Am Berg bremst die Steigung oberhalb von 3300 Hz allerdings automatisch mit/und geht von 3600 Hz auf 3300 Hz sehr schnell (geschätzt ca. 0,5 - 2 Sekunden), unterhalb von 3300 bis auf 0Hz relativ langsam (ca. 30 Sekunden). Diese Zeiten können kaum weiter verkürzt werden. Technisch machbar wär ggf. noch eine Halbierung dieser Zeiten, ist aber vielleicht auch nicht erforderlich.
Solche differntiell kleine Änderungen (Zeit ON/OFF) an den Stellmotoren der Gaspedalstellung (Zeitdauer am Ausgang Q01 oder Q02) brauche ich nach meiner Einschätzung gar nicht.
An dieser Stelle stellt sich für mich die Frage, ob ich nicht vom Analogeingang den Wert über eine gewisse Zeit mittele ( z.B. 0,5 Sekunden) und dann schaue, wie er sich verändert hat ( >, <,=)
Ich möchte die Relaisausgänge nicht durch ständiges Kontaktprellen aufräuchern, wo es eigentlich garnichts zu verstellen gibt. Eine Mindestzeit für Ausgang Q01 oder Q02 im Zustand ON oder OFF von 0,5 Sekunden halte ich auch aus diesem Grund für erforderlich.
Gibt es da was geeigneteres als den PID-Baustein ?
Grüße Epoxy (Ich were mich demnächst kurz fassen - versprochen)