# Grundsätzliche Frage zu PID Regler



## Helix (26 März 2020)

Hallo alle zusammen.

Ich habe eine Pumpe, die den Inhalt eines Pumpensumpfes auf eine feste Hoehe halten soll.
Die Pumpe wird mit einem Frequenzumrichter gesteuert.

Der Programmierer hat mir 4 "Moeglichkeiten" zur Verfuegung gestellt, damit ich den Regler selber beeinflussen kann.
Den P, I und D Anteil sowie die Moeglichkeit, den D Anteil zu aktivieren bzw zu deaktivieren.


Was P,I und D machen ist mir einigermassen bewusst.
Habe dafuer X Seiten durchforstet, Diagramme geschaut und Simulatoren ausprobiert. 

Dazu habe ich jetzt einige Fragen, die ich so richtig nirgends erklaert bekommen habe.
Mitlerweile habe ich auch das Gefuehl, dass ich zu kompliziert denke bzw. mich verrant habe, mit "meinem gefaehrlichen Halbwissen".

Alle Erklaerungen zur Einstellungen eines PID Reglers werden ja immer mit einem schoenen Diagramm erweiert.
Da ist ein Sollwert eingezeichnet, ein IST Wert und dann eben, wie sich die Regelgroesse verhaellt.
Aber in diesem Beispielen ist immer ein fester IST Wert als Basis dargestellt.
Wie macht man denn eine Anpassung, wenn der IST Wert sich laufend ändert, weil z.B. Wasser zu laeuft. Und das mal mehr und mal weniger.
Ich meine, wenn ich einen konstanten Zulauf haette, dann kann ich die gesamte Theorie anwenden, wie man einen Regler einstellt. Aber so?
Wie geht ihr da vor? In der Praxis?

Dann noch eine Frage zum D Anteil.

So wie ich es verstanden habe, ist der D Anteil ja sowas wie ein Booster, der mal kurz Schub gibt.
Also IST Wert ist kleiner als der Sollwert. Also gibt der D Atnei mal etwas Gas, damit der IST Wert schneller beim Sollwert ist.
Aber wie verhaellt sich der D Anteil, wenn der IST Wert groesserer als der Sollwert ist?
Der Regler also zurueckregeln muss?
"Boostet" er dann mal kurz in die andere Richtung?

Und meine letzte Frage zum I Anteil
Wärend der P Anteil ja eigentlich nur einen proportionalen Wert zur Differenz von Soll und IST Wert macht, "zieht" der I Anteil ja immer weiter, solange eine Abweichung da ist.
Was würde aber passieren, wenn ich so viel Zulauf habe, dass meine Pumpen es eine laengere Zeit nicht schaffen das Wasser auf dem Sollwert zu halten?
Der I Anteil würde ja dann theroretisch ins unendliche laufen. Oder?
Wenn dann dieser grosse Wasserzulauf geringer wird, wuerde es dann ja ewig dauern bis der Regler wieder runter gekommen ist.


Danke fuer eure Hilfe.
Ich hoffe, dass ihr meine Fragen nicht als allzu naiv empfindet 

Gruss Helix


----------



## Fireman_Frank (26 März 2020)

Natürlich funktioniert ein Regler auch bei wechselndem Istwert, das ist ja praktisch immer der Fall. Der P-Anteil bezieht sich proportional auf die Soll-Ist-Abweichung, der I-Anteil integrierend darauf. Der D-Anteil bezieht sich auf die Änderungsgeschwindigkeit der Soll-Ist-Abweichung, und wirkt natürlich in beide Richtungen.
Das Problem mit dem ins unendliche laufenden I-Anteil gibt es tatsächlich bei einigen Reglern (Ich meine mich dunkel erinnern zu können daß mir das bei einer S5 mal passiert ist), bei z.B. einer S7-Steuerung wird aber die Summe aus P-, I- und D-Anteil durch die Stellwertgrenzen begrenzt.


----------



## MasterOhh (26 März 2020)

Du kannst den Wert des I-Anteils einfach begrenzen. Ist in der Regelungstechnik sehr üblich und nennt sich "Anti-Windup".


----------



## Helix (26 März 2020)

Fireman_Frank schrieb:


> Natürlich funktioniert ein Regler auch bei wechselndem Istwert, das ist ja praktisch immer der Fall.



Danke für die schnelle Antwort.
Klar regelt der Regler immer auf eintretenden Störungen. Deshalb ja ein Regler.

Meine Frage bezog sich auf die Inbetriebnahme und die Einstellung des PID Reglers.

Es gibt ja Einstellmöglichkeiten, indem man den Wendepunkt einer Kurve nimmt, eine Tangente anlegt usw. (z.B. Einstellung nach Ziegler/Nichols)
Aber das sind ja immer Berechnugen, Simulationen mit einem konstanten IST Wert.
Wie macht man es denn in der Praxis?

Ich stelle jetzt schon seit zwei Tagen an den Reglern rum und das Ergebnis wird zwar besser, bin aber weit davon entfernt das es zufriedenstellend ist.

Danke für eure Hilfe


----------



## MasterOhh (26 März 2020)

Du kannst deine Regler nach den gängigen Verfahren (Ziegler/Nichols  oder Chien, Hrones, Reswick) einstellen, oder einfach Pi mal Daumen, wenn du eine Vorstellung davon hast, wie sich die einzelnen Parameter auf den Regelkreis auswirken. Oft muss man nur am P-Anteil drehen, wenn man den I-Anteil und D-Anteil schon halbwegs passend festgelegt hat.

Immer nur einen Wert ändern und dann schauen wie der Regler reagiert. Am besten den Regeler mit Sprüngen etwas stressen um zu schauen, ob er anfängt zu schwingen.


----------



## Helix (26 März 2020)

Alles klar.
Also weiter so wie bisher 

Danke für die Info.


----------



## Heinileini (26 März 2020)

Moin Helix,

in Deinem Post #1 zeigst Du, dass Du eigentlich schon bei ca. 7/8-Wissen angekommen bist!
Deine Bedenken bezüglich des Anwachsens des I-Anteils und seiner lästigen bis störenden "NachWirkung" sind absolut berechtigt.
Deine Bedenken bezüglich einer einseitigen Wirkung des D-Anteils sind jedoch unbegründet. Alle drei Anteile (P, I und D) wirken gleichermassen in beiden "Richtungen". [SUP]1[/SUP])
Ja, der "Booster" D-Anteil gibt Gas bzw. nimmt Gas weg, umso heftiger, je schneller sich die Differenz SollWert - IstWert ändert. 
Das führt aber nicht einmalig zu einer Wirkung, wenn der Regler auf eine plötzlich festgestellte DifferenzVergrösserung reagiert, sondern ein zweites mal, wenn der Regler sieht, dass sein Ergebnis dazu führt, dass sich der IstWert zu schnell dem vorgegebenen SollWert annähert und deshalb überschwingen würde. Er lenkt rechtzeitig gegen. Diesen Aspekt seiner Wirkung halte ich für den eigentlich wesentlichen ... und das wird leider regelmässig übersehen bzw. unterschätzt bzw. verschwiegen.
Das Schöne an einem passend eingestellten D-Anteil ist: man kann den P-Anteil noch ein Bisschen erhöhen, ohne dass der RegelKreis wieder anfängt zu schwingen.
Du sagst, dass in Beispielen immer ein fester IstWert als Basis dargestellt wird?
Das scheint mir irgendwie eine FehlInterpretation zu sein. Wenn der SollWert fest vorgegeben ist und der Regler sehr gut arbeitet, dann ergibt sich daraus, dass der Regler es schafft, auch den Istwert konstant zu halten. Wenn der RegelKreis schnell ist - und das dürfte bei Deiner Anwendung so sein (praktisch keine Totzeiten und unmittelbar messbare Reaktion des Pegels auf zu schnelles Zufliessen oder Abfliessen) - sollte das auch gut funktionieren.
Natürlich kann es vorkommen, dass der RegelKreis an irgendeiner Stelle an seine Grenzen kommt und z.B. Deine Pumpe gar nicht so schnell das überschüssige Wasser abpumpen kann, wie es der Regler der Pumpe vorschreiben will. 
Wenn es daran scheitert, dass der SollWert plötzlich um einen erheblichen Betrag verändert wird, dann sollte man dafür sorgen, dass sich der SollWert nur langsam ändert und ihn an einer Rampe hoch- oder runterfahren. So erspart man dem Regler die Verlegenheit, Dinge zaubern zu sollen, die der RegelKreis gar nicht leisten kann. 

Gruss, Heinileini

PS:
[SUP]1[/SUP]): Der Regler arbeitet immer in beiden "Richtungen", aber oft nicht der RegelKreis.
So wie bei Deiner Anwendung: Wenn Pegel zu hoch, wird abgepumpt. Wenn Pegel zu niedrig, was dann??? Der Regler kann nichts ausrichten. Er muss abwarten, bis der Pegel wieder zu hoch wird.


----------



## RGerlach (26 März 2020)

Die Wendetangente (Wendepunkt) wird an der Istwert-Kurve berechnet. Die konstante Kurve sollte die des Sollwertes sein.
Kann es sein, dass Istwert- und Sollwert-Kurve verwechselt wurden?


----------



## Helix (26 März 2020)

RGerlach schrieb:


> Die Wendetangente (Wendepunkt) wird an der Istwert-Kurve berechnet. Die konstante Kurve sollte die des Sollwertes sein.
> Kann es sein, dass Istwert- und Sollwert-Kurve verwechselt wurden?



Puh,
ich habe mich nie ernsthaft mit dieser Art der Einstellung beschäftigt. Habe es nie auf die Praxis anwenden können.

@Heinileini,

danke für deine Ausführungen. Das hilft mir tatsächlich weiter.
Tja, was passiert wenn der Pumpensumpf leer ist? 
Der Regler ist nimmt den Stellwert komplett zurück, bis der Pegel wieder über dem IST-Wert ist und fängt dann wieder an hoch zu ziehen.In einem Idealen System wird das ja nie funktionieren 

Aktuell ist mein Regler stark am schwingen.
Mir fehlt total die Erfahrung, welche Strategie ich in meinem schnellen System einstellen soll.
Ŵelche Zahlen sind klein und welche groß.

P um 1 oder 2 zu erhöhen macht sich stark bemerkbar. Aktuell liege ich bei 0,4
Bei I Anteil habe ich alles durch. Von 5 bis 300. Nichts war so richtig zufriedenstellend.
Beim D Anteil fehlt mir jegliche Erfahrung. 1 oder 1000?

Gibt es heutzutage eigentlich nicht irgendwelche Programme, Hardware, Software, Funktionsbausteine usw, die den Regler automatisch einstellen?

 Gruß Helix


----------



## Onkel Dagobert (26 März 2020)

*Der Regelsinn muss natürlich negativ sein!*

Hallo Helix,

ich verrate dir mal ein ganz großes Geheimnis  .

Eine Füllstandsregelung, wie von dir beschrieben, realisiert man am einfachsten mit einem simplen P-Regler. Ich nehme an, eine Regelabweichung von wenigen Zentimetern kann man bei einem Pumpensumpf in Kauf nehmen? Die Verstärkung GAIN bzw. der P-Faktor ergibt, multipliziert mit der Regelabweichung, den Stellgrad für den FU. Wenn dir Soll- und Istwert z.Bsp. in Zentimetern vorliegen, dann hättest du bei einem GAIN von 20 eine maximale Regelabweichung von 5cm. Oder anders ausgedrückt, der Stellgrad von 0% bis 100% ergibt sich durch Überschreitung des Sollwertes um 0cm bis 5cm. Der Regelsinn muss natürlich negativ sein (Entleeren)! Möglicherweise ist ein positiver Regelsinn auch schon die Hauptursache für deine mißglückten Versuche.


In der Literatur wird für solche Fälle oftmals das Beispiel "Spülkasten" verwendet. Das ist nichts anderes, als ein simpler P-Regler. In dem Fall jedoch mit positivem Regelsinn (Befüllen).


----------



## Heinileini (26 März 2020)

In welcher GrössenOrdnung liegen denn überhaupt Deine Zahlen für Istwert, Sollwert und die AusgangsWerte des Reglers?
Wenn Du mit INT-Zahlen arbeitest, können sie im Bereich -32768 .. +32767 liegen. Wenn Du mit Siemens AnalogKarten arbeitest, stehen -27648 (bzw. 0) .. +27648 zur Verfügung.
Was liefert Dein PegelMesser für Werte? Für den MinimalWert ("leer")? Für den üblicherweise zu regelnden Istwert? Für den MaximalWert ("voll")?
Man kann hier den Fehler machen, die Werte ungünstig zu skalieren. D.h. man könnte sich Werte ausgucken, die einerseits gut zu den darzustellenden Grössen (MassEinheiten) passen, aber andererseits zu einer zu groben Abstufung der darstellbaren Werte führen. Will ich z.B. im Bereich von -10°C bis +40°C arbeiten, sollte ich als Einheit nicht °C, sondern mindestens 1/10 °C oder noch besser 1/100 °C wählen. Kann man auf eine einigermassen lesbare interne Darstellung verzichten, so kann man den zur Verfügung stehenden ZahlenBereich meistens noch besser "ausknautschen", um die zur Verfügung stehende Anzahl Stufen zu nutzen. REAL-Zahlen sind in dieser Beziehung natürlich angenehmer und "sorgloser" zu handhaben.
Vermutlich war die obige "Ausscheifung" überflüssig - ich war auf dieses Thema gekommen, weil mich die Bemerkung "P um 1 oder 2 zu erhöhen macht sich stark bemerkbar. Aktuell liege ich bei 0,4" darauf gebracht hatte. Na klar, wenn der optimale Wert für die P-Verstärkung nahe bei 0,4 liegt, dann ist 1 mehr schon mehr als dreimal soviel, um nicht zu sagen dreimal zuviel.

Den I-Anteil kannst Du nicht unwirksam machen, aber den D-Anteil?
Andersherum wäre mir lieber. Und für den Anfang natürlich beide unwirksam machen, um die P-Verstärkung und die SchwingungsDauer zu ermitteln.

"Welche Zahlen sind klein und welche groß." Damit habe ich auch zu kämpfen. Sehr wenig Erfahrung mit einem (selbst gebastelten) digitalen PID und lang, lang ist's her.
Beim I-Anteil ist vermutlich eine grosse Zahl diejenige, die wenig Wirkung produziert (lange IntegrationsZeit mit langsamem Anstieg)? Aber ganz unwirksam machen wäre noch schöner.
Du hast nämlich bei Deinem RegelKreis das Problem, dass der Regler lange Zeit nichts bewirken kann, wenn der Pegel zu niedrig ist. Dann wirkt der I-Anteil kontraproduktiv.
Hast Du wirklich nur die 4 "Moeglichkeiten", die Dir der Programmierer zur Verfuegung gestellt hat?
Kannst Du evtl den Regler komplett abschalten, wenn der IstWert den SollWert unterschreitet?


----------



## Heinileini (26 März 2020)

Onkel Dagobert schrieb:


> Möglicherweise ist ein positiver Regelsinn auch schon die Hauptursache für deine mißglückten Versuche.


 Wenn zu geringer Pegel, dann munter noch heftiger abpumpen, wenn zu hoher Pegel, dann nichts tun und tatenlos Pegel weiter steigen lassen?
Das wäre doch die Wirkung bei einem falschen Regelsinn! Das hätte der TE sicherlich bemerkt und zum Schwingen kriegt er den RegelKreis damit auch nicht.


----------



## Onkel Dagobert (26 März 2020)

Heinileini,

wenn die Regelgröße den Sollwert überschreitet, dann muss zum Entleeren die Stellgröße größer werden. Das ist wie bei einer Temperaturregelung der Kühlbetrieb. Das bedeutet negativer Regelsinn!
Siehst du das tatsächlich anders?


----------



## Heinileini (26 März 2020)

Onkel Dagobert schrieb:


> wenn die Regelgröße den Sollwert überschreitet, dann muss zum Entleeren die Stellgröße größer werden. Das ist wie bei einer Temperaturregelung der Kühlbetrieb. Das bedeutet negativer Regelsinn!
> Siehst du das tatsächlich anders?


Nein, das sehe ich nicht anders, Dagobert! Ich wollte doch nur sagen, wenn der TE sich für den falschen Regelsinn entschieden hätte, dann würde sich seine "Regelung" in dem einen oder anderen Extrem festfressen (Pumpe pumpt bis Becken leer und hört selbst dann nicht auf zu pumpen oder Pumpe denkt nicht daran, etwas gegen den steigenden Pegel zu tun und lässt das Becken überlaufen).
Der TE beklagt jedoch das Schwingen seines RegelKreises. Daraus schliesse ich, dass er sich nicht mit dem Regelsinn vertan hat.


----------



## Helix (27 März 2020)

Guten Morgen alle zusammen.

erstmal Danke an jeden hier, der sich beteiligt.
Ich habe einige wertvolle Tips bekommen.

Gestern Abend hatte ich DEN Durchbruch.
Meine Frau war BigBrother am gucken und mir war langweillig. Also habe ich mir den blöden Regler nochmals angeschaut. Der nervt mich nämlich 
Bin dann auf folgenden Lösungsansatz gekommen.

Zur Erinnerung. Aus Mangel an Erfahrung habe ich wild hin und her probiert, dabei nur auf das Verhalten des FU und den Höhenstand im Pumpensumpf geschaut.
4 Tage verschenkt.

Meine Idee war, daß ich mir NUR den P Regler anschaue. Da dieser ja eigentlich nichts selber macht, außer sich proportional zur Differnez von IST und SOLL - Wert zu verhalten, sollte sich dieser sich ja möglichst nie verändern.
Dabei lasse ich jetzt mal komplett außer acht, daß ich meinen Sollwert vllt. nie richtig erreiche.
Ich habe also in meinem Prozessleitsystem eine Variable angelegt die folgenden Wert berechnet (ich glaube man nennt das die Regelabweichung, oder???):
(IST-Wert - SOLL-Wert) * P-Anteil

Mit dem P Anteil spiele ich dann rum und beobachte, wie sich die berechnete Variable verhällt.

Um es besser beurteilen zu können, habe ich mir noch einen Graphen angelegt.
10 Minuten Darstellung, Sekündliche Abtastrate.
Kurve A Soll-Wert (ändert sich nicht, dient nur als Referenzlinie)
Kurve B IST Wert
Kurve C Regelabweichung (also der berechnete Wert)

Dann habe ich mit P=5 angefangen.
Die Regelabweichung bildete Sinuskurven. 
War also nix.
P verkleinert
Sinus Kurve wurde flacher (Flattering the Curve )
Bei einem P Anteil von 0,35 war die Regelabweichung ein gerader Strich.
Das war erstmal ein Voller erfolg für mich.
Heute Morgen habe ich dann von Onkel Dagoberts Geheimnis gelesen *ROFL*

Allerdings, wenn ich mir jetzt die Fördermenge bzw. das Verhalten des FUs anschaue.....:sm14:
Der Höhenstand hällt sich wie ein Strich. Die Fördermenge geht allerdings wirklich extrem hoch und runter.
Da hatte ich im Vorfeld ganz andere Vorstellungen.
Ich hatte eine schöne sanfte Regelung im Kopf, wo der Umrichter mal ein paar Hz hoch oder runter fährt.
So ist es definitiv nicht. Dafür ist der Zufluss wirklich zu unkonstant.

Trotz Onkel Dagoberts Tip, das man wahrscheinlich nur den P Anteil benötigt, werde ich mit der o.g. "Apperatur" dennoch mit I und D rumspielen, um zu lernen wie diese Parameter sich auswirken.

Ich muß auch sagen, daß ich im Netz eine tolle Darstellung gefunden habe, die mir beim interpretieren des Regelverhaltens geholfen hat:
Leider habe ich nur einen undefinierten Link zur Hand, der eine pdf anzeigt.
https://www.belektronig.de/web/content/1292?unique=dce691b6283fa7a3c9bce3b0347aeab35a8f4049

Der Link ist sauber, jedoch kann ich verstehen wen ihr ihn nicht anklicken wollt.
Ich habe aber drei Screenshots davon gemacht. 
Diese kann ich aber wegen fehlender Berechtigungen nicht hochladen.
Wenn ihr diese haben wollt, dann lasst mir eine PN zukommen.

Gruß Helix


----------



## Fireman_Frank (27 März 2020)

Dann mach doch noch mal eine Kurve D Stellwert, schreibe für jeden Wert auch den Wertebereich dazu (Alles 0..100%?), und poste mal ein Bild von deinen Kurven.

Es gibt auch Systeme die sich nicht oder kaum regeln lassen. Wenn in deinem Fall z.B. der Zulauf ein Feuerwehrschlauch und der Pumpensumpf ein Eimer wäre


----------



## Onkel Dagobert (27 März 2020)

Ist ja auch viel interessanter als BigBrother. Wusste gar nicht, dass das wieder läuft.




Helix schrieb:


> .. (ich glaube man nennt das die Regelabweichung, oder???):
> (IST-Wert - SOLL-Wert) * P-Anteil ..


Fast richtig. Die Regelabweichung wäre regulär SOLL-Wert - IST-Wert. Durch das Vertauschen der beiden Werte ergibt sich bei dir der negative Regelsinn. Multipliziert mit dem Faktor "P-Anteil" ergibt sich der P-Anteil des Stellgrades.




Helix schrieb:


> Bei einem P Anteil von 0,35 war die Regelabweichung ein gerader Strich...


Nur interessehalber, welche Einheit verwendest du als Messwert für den Füllstand? Das muss wohl eine sehr kleine Einheit sein?




Helix schrieb:


> Heute Morgen habe ich dann von Onkel Dagoberts Geheimnis gelesen *ROFL*


Du lachst mich aus  ?​


----------



## Helix (27 März 2020)

Fireman_Frank schrieb:


> Dann mach doch noch mal eine Kurve D Stellwert, schreibe für jeden Wert auch den Wertebereich dazu (Alles 0..100%?), und poste mal ein Bild von deinen Kurven.
> 
> Es gibt auch Systeme die sich nicht oder kaum regeln lassen. Wenn in deinem Fall z.B. der Zulauf ein Feuerwehrschlauch und der Pumpensumpf ein Eimer wäre



Ähm, dafür muss ich mir nochmal genau die Formel für den D Wert anschauen.
Bin aber jetzt eine Woche lang im Homeoffice und kann nur per Remote auf die Steuerung zugreifen. Das geht zwar, aber der Laptopmonitor ist mir etwas zu klein, um im Prozessleitsystem rum zu machen.
Aber es juckt in den Fingern 

Eine Regelung nur mit D Anteil, also P = 0) oder eine Kurve von einem PD Regler?

@Dagobert,
natürlich lache ich dich nicht aus. War nur lustig, das ich fast zeitgleich die selbe Idee hatte.

Generell regel ich auf REAL Werte. Also in meinem Fall für den Pegel als Meter.

Messbereich 0-4,50m 
Sollwert 1m

Zwei Pumpen regeln parallel (jeder mit eigenen FU), zwischen 40 und 55Hz macht ca. 60m³/h - 240m³/h pro Pumpe!
Der Pumpensumpf hat zwei Zuläufe.
Einer bringt ziemlich gleichmäßig konstanterń Zulauf von ca. 350 m³/h. Das ist übrigens der Hauptkanal von einer Kläranlage.
Ein Nebenkanal bringt allerdings intervallmäßig 50 -100 m³. Das macht dann die Probleme.


----------



## Fireman_Frank (27 März 2020)

Helix schrieb:


> Ähm, dafür muss ich mir nochmal genau die Formel für den D Wert anschauen.
> Eine Regelung nur mit D Anteil, also P = 0) oder eine Kurve von einem PD Regler?




Das 'D' meinte ich als Erweiterung zu deinen Kurven. Also zusätzlich zu den von dir schon eingerichteten:

Kurve A Soll-Wert (Ã¤ndert sich nicht, dient nur als Referenzlinie)
Kurve B IST Wert
Kurve C Regelabweichung (also der berechnete Wert)

noch eine vierte Kurve:

Kurve D Stellwert


----------



## Thomas_v2.1 (27 März 2020)

@Helix
Wie setzt du denn die Reglerstellgröße in eine entsprechende Pumpendrehzahl um? Und was machst du beim Zu- und Abschalten der zweiten Pumpe?

Wenn du schreibst du hast einen konstanten Zulauf von 350 m³/h und eine Pumpe fördert max. 240 m³/h, dann musst du eigentlich immer mit 2 Pumpen fahren.

So eine Regelstrecke kann man auch relativ einfach einmal simulieren. Füllvolumen = Qzufluss - Qabfluss, und Höhenstand ist dann Füllvolumen / Grundfläche.
Das reicht für eine ideale Simulation eigentlich schon aus. Näher an der Realität ist dann eine leichte Totzeit beim Qabfluss z.B. über Rampenzeiten am FU.


----------



## sunny22 (28 März 2020)

Ich würde ganz pragmatisch an die Sache ran gehen und mir zuerst die Frage stellen was mir wichtig ist. Ein möglichst gleichmäßiger Pumpenlauf oder ein möglichst genau eingehaltener Füllstand? Beide Faktoren stehen nämlich im Gegensatz. Einen möglichst genauen Füllstand kann ich nur mit einer schnellen Reaktion der Pumpen auf Änderungen erreichen. Ich vermute mal dass es bei deiner Anwendung ziemlich egal ist ob in dem Sumpf 1m oder 2m Wasser stehen. Ich würde den Sollwert auf 1,5m setzen, den Regler als P-Regler konfigurieren und KP so einstellen dass die Pumpen bei 1m Füllstand mit der minimalen und bei 2m mit der maximalen Leistung laufen. Das schont auch die Pumpen als wenn sie permanent beschleunigen und abbremsen müssen und bei hohen Drehzahlen vll. sogar anfangen zu kavitieren.


----------



## milli13 (5 Juni 2020)

Hallo Leute,

da dieses Thema hier noch relativ aktuell ist habe ich mir gedacht, dass ich mein Problem hier auch einfach mal hereinstelle.
Auch ich möchte gerne einen PID-Regler nutzen, um damit die Aus und Einfahrgeschwindigkeit eines pneumatischen Zylinders zu regeln. Hierzu wird die Zeit des Aufahrens und Einfahrens durch 2 Endlagenschalter ermittelt. Über 2 Proportionalventile an den Ausgängen des Zylinders soll der Volumenstrom der Druckluft geregelt werden, um so auch die Geschwindigkeit zu beeinflussen. Die Proportionalventile werden dabei je nach Stromstärke (mA) weiter geöffnet oder geschlossen.
Ich habe mir hierfür die OSCAT.lib heruntergeladen und die beiden Regler CTRL_PID und FT_PID entdeckt. Ähnlich wie MasterOhh es erwähnt hatte dachte ich auch, dass ich die KP TN und TV Werte durch 'testen' grob abschätzen kann.Bei OSCAT habe ich dann aber auch den control_setr Block entdeckt mit dem man die Parameter bestimmen kann. Richtig verstehen tue ich das Vorgehen aber nicht. Es gibt außerdem bei den PID Reglern deutlich mehr Eingänge bei denen ich nicht genau weiß, was eigentlich gefordert ist. 
Falls jemand Erfahrung mit den Reglern hat wäre ich über etwas Hilfe sehr dankbar.

Schöne Grüße


----------



## Heinileini (5 Juni 2020)

milli13 schrieb:


> Hierzu wird die Zeit des Aufahrens und Einfahrens durch 2 Endlagenschalter ermittelt. Über 2 Proportionalventile an den Ausgängen des Zylinders soll der Volumenstrom der Druckluft geregelt werden, um so auch die Geschwindigkeit zu beeinflussen. Die Proportionalventile werden dabei je nach Stromstärke (mA) weiter geöffnet oder geschlossen.


Durch die beiden EndlagenSchalter erhältst Du nicht den GeschwindigkeitsVerlauf beim Einfahren bzw. Ausfahren des Zylinders, sondern nur die DurchschnittsGeschwindigkeiten für den gesamten Weg.
Was Du wirklich Regeln willst, ist mir nicht so ganz klar. Einen Wert, den Du auswerten kannst, erhältst Du ja erst, wenn die Bewegung bereits abgeschlossen ist, also zu spät um noch auf die aktuelle Bewegung Einfluss nehmen zu können. Mit Regelung im eigentlichen Sinn hat das nicht viel zu tun.
Die Verhältnisse für beide Richtungen dürften unterschiedlich sein, zumindest die beim Ein- bzw. Ausfahren ausströmenden Luftvolumina sind unterschiedlich, wenn man nichts dagegen tut.
Daher gehe ich davon aus, dass die ProportionalVentile für beide Richtungen unterschiedlich eingestellt werden müssen. Ein "Regler", der sich um beide Richtungen kümmern soll, müsste Richtungs-abhängig immer wieder zwischen zwei ParameterSätzen umgeschaltet werden.
LuftZylinder sind hervorragende FederElemente und (je nach Anwendung) nicht so ganz einfach zu beherrschen. Probleme mit stick/slip werden gerne mal unterschätzt.
Da Du eine Regelung eingeplant hast, vermute ich, dass Du mit grösseren Variationen bei den zu bewegenden Massen rechnest. Genügt es denn dann, wenn Du erst bei der nächsten oder übernächsten Bewegung auf Deine neuesten "Messdaten" reagieren kannst?


----------



## milli13 (5 Juni 2020)

Das die Volumenströme unterschiedlich hoch sind ist definitiv richtig.
Es geht mir darum, dass ich regeln kann mit welcher Frequenz der Zylinder sich bewegt. Ich möchte zB angeben können, dass der Hinweg 500ms dauert und der Rückweg dann ebenfalls 500ms. Die Propventile sollen diese Zeiten dann als Sollwert nehmen und darauf möglichst schnell reagieren. Es geht hier um sehr kleine Hübe. Die zu bewegende Last soll sich im Idealfall nicht verändern. Es geht eher darum mit dem Auf und Ab des Zylinders eine Flüssigkeit in Bewegung zu versetzen. 
Dabei sollen dann symmetrische Profile (500ms 500ms) aber auch asymmetrische Profile (200ms 800ms) gefahren werden können. 
Ist ein PID Regler da echt der falsche Ansatz?


----------



## Heinileini (5 Juni 2020)

Hmmm, Du sagst, die PropVentile sollen diese Zeiten dann als Sollwert nehmen und darauf möglichst schnell reagieren. Das klingt so, als sei ein PID-Regler nicht die schlechteste Wahl.
Aber, wie schon gesagt, Du misst immer erst im Nachhinein, wie schnell die Anordnung war und sobald der Regler etwas daraus machen könnte, ist er mit dem passenden ParameterSatz gar nicht an der Reihe, sondern muss sich erstmal um die GegenRichtung kümmern u.s.w. ... 
Ich denke schon, dass sich mit einem oder besser 2 PID-Reglern etwas tricksen liesse, aber, ob dabei ein leicht nachzuvollziehender Lösungsweg herauskommt?
Mit welchen StörEinflüssen müssen wir denn rechnen, die der Regler ausregeln müsste? Ich vermute mal, dass es StörEinflüsse in diesem Sinne gar nicht gibt bzw., dass diese eher langsamer Natur sind und nicht schnell ausgeregelt werden müssen. Eigentlich willst Du doch nur, dass auf Veränderungen der Sollwerte schnell reagiert wird?

Mein Ansatz wäre eine Steuerung über eine DatenTabelle, wobei das Programm selbst diese Tabelle mit Daten füllt (und später noch verfeinert bzw. an sich ändernde Gegebenheiten anpasst?).
Welche Sollwerte das Programm an die PropVentile ausgibt, das weiss es und welche Zeiten für Hin- und Rückwege daraus resultieren, das misst es. Welche Zeiten und insbesondere Kombinationen von Zeiten dem Programm abverlangt werden, das lernt das Programm ebenfalls im Laufe seiner Anwendung.
Ich weiss nicht, welche Abhängigkeiten zwischen Zeit für Hinweg und Zeit für Rückweg bestehen. Ob sich eine simple oder zumindest überschaubare Formel ableiten lässt oder ob sich per Interpolation bzw. Extrapolation der Umfang der Tabelle im Rahmen halten lässt. Da müsste man mal etwas herumexperimentieren.

Wie schnell sind überhaupt die PropVentile? Wie müssen sie angesteuert werden? Gibt es eine RückMeldung der VentilStellung?


----------



## milli13 (5 Juni 2020)

Genau großartige Störungen sollte es nicht geben
Was aber ein Problem sein könnte ist die Hysterese der Propventile.. Der Durchfluss beim weiteren Öffnen des Ventils ist ein anderer als beim Schließen.
Meinst du da gibt es eine simplere Lösung?
Vielen Dank erstmal


----------



## Heinileini (5 Juni 2020)

milli13 schrieb:


> Was aber ein Problem sein könnte ist die Hysterese der Propventile.


Aber die Hysterese dürfte reproduzierbar bzw. vorhersehbar sein. 
- Man könnte eine VentilStellung immer aus derselben Richtung anfahren - notfalls vorher eine Schleife fahren. Das Anfahren/Nachjustieren der VentilPosition kann ja schon in der Zeit passieren, wenn der Zylinder noch in der Gegenrichtung unterwegs ist.
- Man könnte die AnfahrRichtung in der Tabelle mit berücksichtigen.
Eine wirklich simple Lösung sehe ich nicht, aber vielleicht habe ich einfach nur zu viele, unnötige Bedenken?
Einfach mal ein Bisschen experimentieren und versuchen zu ergründen, welche Unwägbarkeiten noch lauern? Wenn ich Dich richtig verstanden habe, birgt das Experimentieren keine Gefahren, die man abfangen müsste.


----------



## LargoD (6 Juni 2020)

milli13 schrieb:


> Genau großartige Störungen sollte es nicht geben...


z. B. Schwankungen in der Druckluftversorgung?
Gruß
Erich


----------



## milli13 (6 Juni 2020)

Ok Druckschwankungen sind natürlich möglich. Durch einen Druckminderer vor dem Zylinder wird dies aber versucht zu verhindern.

Die Hystetese Tabelle der Ventile habe ich natürlich. Ich würde dann für jedes Ventil einen eigenen PID Regler verwenden und im Idealfall das Ventil immer erst einmal schließen, damit die Stellung immer auf der gleichen Richtung angefahren wird. 
Was ich aber noch nicht genau verstehe ist, wie ich genau vorgehen muss. Verwende ich die fertigen Blöcke aus der OSCAT Bibliothek? Und wenn ja wie genau muss ich dann vorgehen? Oder baue ich mir die PID Regler selbst in FUP zusammen?


----------



## LargoD (6 Juni 2020)

Da Du ja die benötigte Zeit für die Bewegung immer erst dann kennst, wenn die Bewegung zuende ist, kannst Du Korrekturen an der Ventilstellung erst für die nächste Fahrt in die gleiche Richtung durchführen. Dafür halte ich einen PID-Regler für ungeeignet.
Ich würde die gemessene Zeit - getrennt für beide Richtungen - abspeichern, und vor dem nächsten Start in die gleiche Richtung (also dem übernächsten Start) aus der Differenz zwischen Soll- und Istzeit eine Korrektur für die Ventilansteuerung berechnen (Korrektur = P-Faktor * Zeitdifferenz). Den P-Faktor kannst Du durch probieren ermitteln: groß genug, dass die Abweichung der Fahrzeit möglichst klein ist, klein genug dass nicht durch Überkorrektur das System schwingt.
Gruß
Erich


----------



## Onkel Dagobert (6 Juni 2020)

LargoD schrieb:


> Da Du ja die benötigte Zeit für die Bewegung immer erst dann kennst, wenn die Bewegung zuende ist, kannst Du Korrekturen an der Ventilstellung erst für die nächste Fahrt in die gleiche Richtung durchführen. Dafür halte ich einen PID-Regler für ungeeignet...



Ich sehe es im Prinzip genau so wie Erich, halte einen PID-Regler inzwischen jedoch für geeignet. Da ursprünglich von der Regelung der Geschwindigkeit die Rede war, und da es keinen Wegaufnehmer gibt, erschien mir eine stetige Geschwindigkeitsregelung zunächst als völlig unrealistisch. Und das auch noch mit einem pneumatischem Zylinder? Nach weiteren Informationen (kleiner Hub, kleine Laufzeiten, kaum Störgrößen) und nach der daraus resultierenden Erkenntnis, dass man die Gesamt-Laufzeit als Regelgröße verwenden kann, wird es mit stetiger Regelung tatsächlich wieder interessant. Mein Gedanke wäre, für jeweils eine Bewegungsrichtung einen PI-Regler zu verwenden, dessen Abtastzeit nicht konstant ist, sondern der aktuellen Laufzeit entspricht. Das bedeutet, der Algorithmus wird jeweils zum Zeitpunkt des Erreichens der Ziel-Endlage einmal neu berechnet, wobei die zur Berechnung des I-Anteils verwendete Abtastzeit der gerade ermittelten Laufzeit entsprechen muss. In der Gegenrichtung pausiert der Regler. Nach erneuter Richtungsumkehr wird die Messung der Laufzeit neu gestartet. Der Stellgrad wird somit mit jedem Hub etwas korrigiert. In der Gegenrichtung werkelt ein zweiter Regler analog zu dem ersten. Die beiden berechneten Stellgrade werden je nach Richtung auf das Prop-Ventil ausgegeben, bzw. auf das jeweilige für jede Richtung.

Ich würde erwarten, dass die Regelgröße (Laufzeit Pneumatikzylinder) selbst mit der besten Regelung immer wieder etwas abweichen wird. Von daher könnte es mit einem P-Regler schwierig werden. Damit der Regler nicht jedes mal voll gegensteuert, würde ich den Prozesswert unbedingt etwas dämpfen.

Mit was für einer Steuerung soll das denn laufen?


----------



## Heinileini (6 Juni 2020)

Moin milli13,
erzähl uns doch mal was über Deine PropVentile. Wie kannst/musst Du sie ansteuern?
Gibst Du einen AnalogWert aus und das Ventil setzt diesen in eine VentilStellung um, oder sagst Du dem Ventil auffahren, zufahren oder nix verändern und Du musst hoffen, dass Du die erreichte VentilStellung über die Zeiten abschätzen kannst, die es mit Auffahren bzw. Zufahren beschäftigt war? Erhältst Du eine Rückmeldung über die erreichte Ventilstellung oder besitzt das Ventil einen eingebauten Regler, der die Iststellung der Sollstellung anpasst? Vielleicht hast Du ja an dieser Stelle ein Betätigungsfeld für Deine PID-Regler, auf die Du anscheinend nicht so gerne verzichten möchtest?


----------



## milli13 (7 Juni 2020)

Ok, ich habe das am Anfang vermutlich doof formuliert. Es geht nicht darum die Geschwindigkeit des Kolbens steuern zu können, sondern nur darum die Zeit für den jeweiligen Hub kontrollieren zu können
Ich höre also bei euren Meinungen raus, dass ein PID Regler gar nicht wirklich nötig ist? Stattdessen ist die Idee nun zwei PI-Regler für die jeweiligen Richtungen zu entwickeln. Gibt es für PI-Regler auch vorgefertigte Blöcke? Oder kann mir da jemand eine kleine Einführung in das Thema geben? 
Ich nutze eine WAGO SPS und arbeite daher mit e!cockpit.

Zu den Propventilen:
Es handelt sich um Proportional-Magnetventile. Sobald die Magnetspule stromdurchflossen ist öffnet sich das Ventil proportional zum Nennstrom. Ich gehe also davon aus, dass ich einen AnalogWert vorgeben kann und das Ventil dann die entsprechende Stellung anfährt.
Ich habe für das Ventil ein Durchflussdiagramm, welches mir den Zusammenhang zwischen mA und Durchfluss genau angibt. Dort ist natürlich auch die Hysterese zu erkennen.
Falls das hilft könnte ich dieses Diagramm natürlich mal hochladen. Genauso wie das Schaltschema für die Ansteuerung der Ventile.

Vielen Dank nochmal für die vielen weiterhelfenden Antworten


----------



## Onkel Dagobert (7 Juni 2020)

milli13 schrieb:


> .. Gibt es für PI-Regler auch vorgefertigte Blöcke? Oder kann mir da jemand eine kleine Einführung in das Thema geben? ..


Ein PI-Regler ist z.Bsp. ein PID-Regler, an dem der D-Anteil abgeschaltet bzw. nicht parametriert ist. Zum Thema PID-Regler gibt es unzählige Literatur. Ich glaube kaum, dass sich jemand die Mühe macht, dieses Thema exclusiv für dich noch einmal aufzubereiten. Außer Heinileini vielleicht, der ist hier der Netteste :wink: .

Falls du beim Programmieren konkrete Fragen hast, dann gerne.


----------



## milli13 (7 Juni 2020)

Ja schon klar 
Das ganze Thema brauche ich natürlich nicht erklärt bekommen. Es geht eher darum Hilfe bei manchen Eingängen der PiD Blöcke zu bekommen. Ich bin mir nicht immer sicher wofür manche Eingänge sind oder wie ich sie bezeichnen muss bzw ob ich Sie überhaupt brauche.. 
Könnte mir denn jemand sagen ob sich die Blöcke von Oscat dafür eignen? Oder welchen Vorteil welcher Block genau hat? (Ctrl oder Tf)


----------



## Heinileini (7 Juni 2020)

Onkel Dagobert schrieb:


> Außer Heinileini vielleicht, ...


Ach Dagobert - schnüff - danke für die Blumen!
Ich glaube, ich bin hier eher der starrsinnigste, wenn es darum geht, den m.E. unterbewerteten D-Anteil ganz gewaltig in den Vordergrund zu rücken auf Kosten des m.E. überbewerteten I-Anteils.
Zugegeben, digitale Regler versauen oft die Möglichkeiten, die man sich vom D-Anteil erhoffen kann. Die Bearbeitung des Reglers im Takt des SPS-Zyklus oder noch langsamer und die Digitalisierung von analogen Messwerten in 10 oder 13 oder 15 Bit sind nicht gerade hilfreich, um den D-Anteil wunschgemäss nutzen zu können.


----------



## milli13 (8 Juni 2020)

Ok, also jetzt bin ich etwas durcheinander.
Heinileini würde mir also doch eher zu einem PID als zu einem PI-Regler raten?
Ich habe mir sowohl einen PID als auch einen PI Block nochmal genauer angeschaut. Die meisten Ein- und Ausgänge sind doch relativ gut verständlich. Wenn ich hier jeden Ein und Ausgang für meinen Fall einmal etwas genauer benennen würde, könntet Ihr mir dann sagen ob ich damit auf dem richtigen Weg bin?
Probleme habe ich leider immer noch bei der Ermittlung der Kp usw. Werte. Diese kann ich doch am besten durch einfache Test ermitteln oder irre ich mich gerade?
Leider habe ich noch nicht alle Bauteile da und kann somit noch gar nicht richtig loslegen...


----------



## Heinileini (8 Juni 2020)

milli13 schrieb:


> Heinileini würde mir also doch eher zu einem PID als zu einem PI-Regler raten?


Ein PID-Regler als "Basis" (bei Deiner Anwendung *zwei* PID-Regler) ist schonmal super, denn dann hast Du alle Möglichkeiten noch offen gelassen:
Du kannst ihn zum P-Regler oder zum PD-Regler oder zum PI-Regler "abspecken" (D-Regler bzw. I-Regler ohne P-Anteil kann man getrost ignorieren). 
1. D-Anteil und I-Anteil unwirksam machen und den P-Anteil einstellen. D.h. die "Verstärkung" experimentell so weit erhöhen, bis der Regelkreis schwingt und festhalten, mit welcher Frequenz bzw. PeriodenDauer er schwingt. Dann die Verstärkung wieder verringern, bis das Schwingen aufhört.
2. Aus der Frequenz bzw. PeriodenDauer den D-Anteil ermitteln und den D-Anteil aktivieren (PD-Regler). Jetzt sollte es möglich sein, die ProportionalVerstärkung wieder ein wenig zu erhöhen, ohne dass die Schwingungen wieder einsetzen.
3. Aus der Frequenz bzw. der PeriodenDauer den I-Anteil ermitteln und den I-Anteil aktivieren (PID-Regler). Achtung: ein grosser ZahlenWert bedeutet beim I-Anteil eine kleine Wirkung und umgekehrt!
Falls die Verbesserung des ReglerVerhaltens durch den I-Anteil nicht wirklich nennenswert ist, im Zweifelsfall den I-Anteil lieber totlegen. Die Wirkung des I-Anteils ist oft nicht so gut, wie man es erhofft. Aber die Nebenwirkungen sind eigentlich immer so, wie man es auch seinem besten Feind nicht wünscht.
Meine ganz persönliche Meinung: von vornherein zu beschliessen, "den D-Anteil brauche ich nicht", ist schlecht. Denn der D-Anteil sorgt dafür, dass das FineTuning des Reglers mit dem I-Anteil überhaupt erst sinnvoll funktionieren kann. Ist die Einstellung des Reglers durch den fehlenden D-Anteil schlecht, so kann von FineTuning mit dem I-Anteil nicht die Rede sein. Man mutet dem Regler zu, mit dem I-Anteil etwas zu zaubern, was er gar nicht leisten kann … und man sorgt so dafür, dass man umso mehr gegen die Nebenwirkungen ankämpfen muss.


----------



## milli13 (8 Juni 2020)

Vielen Dank Heinileini.
Habe mich gerade auf dem Gebiet etwas weiter eingelesen und bin froh, dass das was du gerade beschrieben hast ungefähr mit meinem Verständnis übereinstimmt. Ich habe im Netz eine Berechnungsmethode gefunden die sich in etwa so beschreiben lässt:
Ich nutze die PID-Regler, setze aber den I und D Anteil erstmal auf 0. Anschließend spiele ich mit dem P Wert so lange herum, bis ich eine gleichförmige Schwingung am Ausgang bekomme. Diesen kritischen P-Wert, sowie die kritische Schwingungsdauer , benötige ich um meine Werte berechnen zu können. Über Ziegler&Nichols lassen sich dann die entsprechenden Werte für den P,I und D-Regler berechnen. 
Soweit so gut... Leider stoße ich hier gerade auf mein nächstes Problem, welches vermutlich ein ziemliches Anfänger Problem darstellt:
Wie kann ich meine analogen Ausgangswerte abspeichern um diese dann in einem Graph aufzutragen und die Schwingungen sowie die Schwingdauer zu erkennen?
In meinem Fall müsste ja die Stromstärke (mA) in Schwingungen versetzt werden. Im Idealfall würde ich gerne jeden mA-Wert abspeichern und diese dann in Excel oÄ über die Zeit auftragen. Dann ändere ich den P-Wert und gehe erneut so vor.
Ich habe zwar zB den Wago Datalogger entdeckt, der jede Sekunde einen Wert abspeichern kann. Ich befürchte aber das mir diese Messwerte nur bedingt helfen können, wenn meine Hub Zeiten sich im ms Bereich abspielen.


----------



## Onkel Dagobert (8 Juni 2020)

milli13 schrieb:


> .. Wie kann ich meine analogen Ausgangswerte abspeichern um diese dann in einem Graph aufzutragen und die Schwingungen sowie die Schwingdauer zu erkennen? ..


Milli, die Einstellregeln von Ziegler & Nichols liefern nur grobe Richtwerte, und das auch nur bei gewöhnlichen Regelstrecken wie z.Bsp. bei Temperatur- oder Druckregelungen. Das was du regeln möchtest, ist hingegen schon etwas außergewöhnlich. Natürlich kannst du es nach diversen Einstellregeln probieren, aber viel Hoffnung auf brauchbare Ergebnisse würde ich mir nicht machen. Die Vorgehensweise, wie von Ziegler & Nichols & Heinileini beschrieben, ist dennoch praktikabel. Den Aufwand für wissenschaftlichen Aufzeichnungen würde ich vermeiden, es sei denn, du hast so wie so eine Visualisierung, auf der du entsprechende Kurven darstellen kannst. Wenn deine Laufzeit-Regelung schwingt, dann ist es die Hub-Dauer, die sich sinusartig ändert. Beträgt diese z.Bsp. um die 500ms in jeder Richtung, dann bekommst du ca. 1x pro Sekunde einen aktuellen Prozesswert je Richtung, den du aufzeichnet bzw. visualisieren müsstest. Ein Timing-Problem wäre es also nicht.

Den D-Anteil hätte ich im Zusammenhang mit deiner speziellen Regelung niemals erwähnt. Ich bin daher völlig überrascht, dass Heinileini ihn hier so sehr favorisiert. Vielleicht sollte man den höchst unwahrscheinlichen Fall, dass Heinileini den D-Anteil mit dem I-Anteil verwechselt, nicht gänzlich außer Acht lassen  .


----------



## Heinileini (8 Juni 2020)

Onkel Dagobert schrieb:


> 1. Das was du regeln möchtest, ist hingegen schon etwas außergewöhnlich.
> 
> 2. Den D-Anteil hätte ich im Zusammenhang mit deiner speziellen Regelung niemals erwähnt. Ich bin daher völlig überrascht, dass Heinileini ihn hier so sehr favorisiert. Vielleicht sollte man den höchst unwahrscheinlichen Fall, dass Heinileini den D-Anteil mit dem I-Anteil verwechselt, nicht gänzlich außer Acht lassen  .


Zu 1.: 
Ja, definitiv recht aussergewöhnlich. Aber irgendwie habe ich mich im Laufe dieses Thread immer mehr mit dem Gedanken angefreundet, zwei voneinander unabhängige PID-Regler wirken zu lassen.
Allerdings, bei der Suche nach der ProportionalVerstärkung, bei der das Schwingen auftritt und nach der Resonanzfrequenz eines RegelKreises, würde ich dazu tendieren, den jeweils anderen RegelKreis irgendwie stillzulegen, z.B. einen festen Wert an das PropVentil auszugeben.
Bei langsamen Schwingungen, wie sie hier zu erwarten sind, kommt man recht gut mit einer Stoppuhr zu Potte. Auch eine "normale" Armbanduhr mit SekundenAnzeige sollte genügen.
Hilfreich kann es sein, wenn man sich die Aufgabe mit einer zweiten Person teilt. Einer beobachtet die Schwingung und zählt laut mit und der andere behält die Uhr im Auge. Es sollte auch einfach genug sein, die Zeit für z.B. 10 Perioden zu ermitteln und dann durch 10 zu dividieren.
Für schnellere Schwingungen dürfte ein Oszilloskop gut geeignet sein.

Zu 2.:
Völlig überrascht kann ich Dich nicht wirklich haben mit meiner Favorisierung des D-Anteils. Zugegeben, ich habe mir dieses Merkmal noch nicht unter "unveränderliche Kennzeichen" im Pass eintragen lassen. Aber im Rahmen dieses Forums wäre eine entsprechende Massnahme vielleicht überlegenswert. 
Zur nachträglichen Rechtfertigung: immerhin war in diesem Thread von der Regelung gefordert, dass die Ansteuerung der PropVentile möglichst schnell angepasst werden soll.


----------



## milli13 (10 Juni 2020)

Vielen Dank wieder einmal für die neuen Anregungen und Ideen. Ein einfaches Ziegler&Nichols führt mich also wohl leider nicht um Ziel.
Es wäre schön wenn ich die Aufzeichnungen auch hin bekommen würde, da ich dieses Projekt im Zuge einer Abschlussarbeit durchführe. 
Die Zeiten für den Hub lasse ich mir in der Wago eh schon im ms Bereich anzeigen. Eine Stoppuhr brauche ich daher wohl nicht. Aber die Werte werden halt leider nicht gespeichert sondern nach jedem Hub überschrieben. 
Ich bin immerhin schon mal zu dem Ergebnis gekommen, dass ich 2 unabhängige PI(D) Regler für die beiden Richtungen benötige.. Ich hoffe, dass ich mit der Umsetzung dann auch irgendwann voran komme sobald die Teile alle angekommen sind.


----------



## Mrtain (13 Juni 2020)

milli13 schrieb:


> Die Zeiten für den Hub lasse ich mir in der Wago eh schon im ms Bereich anzeigen. Eine Stoppuhr brauche ich daher wohl nicht. Aber die Werte werden halt leider nicht gespeichert sondern nach jedem Hub überschrieben.



Speicher die Werte doch in einem Array, das wäre zwar auch temporär, aber zumindest hättest du ein paar Werte mehr zur Verfügung.


----------



## milli13 (18 Juni 2020)

Hallo Leute,
ich habe in der letzten Woche mal mit einem Professor an meiner Uni gesprochen. Er meinte, dass ich mir da viel zu viel Gedanken um die Steuerung machen würde. Laut ihm gibt es in diesem System überhaupt keine Störungen, es sei denn der Druck ändert sich.. Das sollte meiner Meinung nach nicht passieren.. Jetzt stellt sich natürlich die Frage was ich dann überhaupt brauche.. Ist das dann ein einfacher P-Regler? Für den ich einfach verschiedene Betriebspunkte kalibriere? Nach dem Motto: Ok um 0,5sec pro Hub zu benötigen muss ich den Nennstrom durchgehend auf 75mA stellen und das erst wieder ändern wenn ich eine andere Zeit vorgeben möchte?
Vermutlich stelle ich mich da wieder etwas blöde an, aber ich habe echt leider keinerlei Erfahrungen mit solchen Problemstellungen


----------



## Onkel Dagobert (18 Juni 2020)

milli13 schrieb:


> .. aber ich habe echt leider keinerlei Erfahrungen mit solchen Problemstellungen


Zu dumm aber auch! Du bist hier nämlich der Einzige, der deine Problemstellung kennt. 
Erwartest du jetzt weitere Eventuallösungen? Ich glaube kaum, dass noch jemand darüber nachdenkt.


----------



## milli13 (18 Juni 2020)

Ouh Entschuldigung Onkel Dagobert.. Also ich dachte ich hätte mein Problem relativ gut erklärt und es kamen ja auch viele sinnvolle Antworten. Meinem Professor ist dies aber scheinbar einfach zu weit gedacht.. Was ja wahrscheinlich auch stimmt. Auch hier kam ja schon der Einwurf dass ich ja keine Störfaktoren habe. Ich erwarte und möchte hier keine perfekte Antwort bekommen. Ich hatte lediglich gehofft herauszufinden ob ich auf einem guten Weg bin, wenn ich jetzt davon ausgehe dass ich nur proportional regeln muss /will. Und dafür einfach eine Kalibrierung machen muss um mir den Zusammenhang zwischen Druck Nennstrom und Zeit deutlich zu machen


----------



## Onkel Dagobert (18 Juni 2020)

milli13 schrieb:


> Ouh Entschuldigung Onkel Dagobert.. Also ich dachte ich hätte mein Problem relativ gut erklärt und es kamen ja auch viele sinnvolle Antworten. ..


Sehr sinnvoll, nur haben alle über PID-Regler nachgedacht, und über möglichst genaue Laufzeiten etc. Das ging scheinbar völlig am Thema vorbei. Es wäre besser gewesen, du hättest ganz einfach beschrieben, worum es eigentlich geht. Was bewirkt die Zylinderbewegung? Wozu ist das Ganze gut? Um weiteren Irrführung zu verhindern, solltest du auch möglichst genaue Angaben zu dem Proportionalventil machen. Womöglich ist es gar keins. Eine Skizze ist die Sprache der Ingenieure, hat mal jemand gesagt.​
Wie bist du überhaupt auf die Idee gekommen, eine Regelung zu benötigen?


----------



## milli13 (18 Juni 2020)

Ok das war vermutlich mein Fehler. Ich hab am Anfang gedacht dass der PID Regler für dieses System notwendig wäre.. Habe aber ja zwischendurch auch schon mal nachgefragt ob da jemand anderer Meinung ist
Zu meinem Vorhaben :
Ich möchte einfach durch den Zylinder eine Flüssigkeit zum pulsieren bringen.. Und das Symmetrisch und auch asymmetrisch.. Heißt ich möchte es schnell ansteigen lassen können und langsam wieder sinken lassen können.. Außerdem will ich die Frequenz erhöhen können. Das alles geschieht ja über die Volumenströme am Zylinder.. Je mehr ich durch lasse desto schneller fährt der zylinder. 
Die Proportionalventile sind von SMC und nennen sich PVQ13.. Ich habe meinen Schaltplan leider erst Montag wieder zur Hand. Kann ihn dann aber auch gerne noch ins Forum senden


----------



## Heinileini (18 Juni 2020)

milli13 schrieb:


> ... die Frage, was ich dann überhaupt brauche..
> 1. Ist das dann ein einfacher P-Regler?
> 2. Für den ich einfach verschiedene Betriebspunkte kalibriere? Nach dem Motto: Ok um 0,5sec pro Hub zu benötigen muss ich den Nennstrom durchgehend auf 75mA stellen ...
> 3. ... und das erst wieder ändern wenn ich eine andere Zeit vorgeben möchte?


Zu 1.:
Das ist eine einfache Lösung, wie Du schon sagst. Ob diese einfache Lösung den Anforderungen (Deinen eigenen, denen Deines Professors, denen eines Kunden, denen irgendwelcher SicherheitsRichtlinien, ...) genügen wird, das können wir nicht beurteilen.

Zu 2.:
Das kann man tun - war ja auch mein erster Ansatz bei dieser Aufgabenstellung - das ist aber ein Ansatz, der keine Regelung darstellt, sondern eine Steuerung.

Zu 3.:
Man führt Messreihen durch und bastelt sich Tabellen, aus denen man ablesen bzw. errechnen (Interpolation oder Extrapolation) kann, welchen Strom man ausgeben muss, um die jeweils geforderte Zeit zu erreichen. Oder man versucht, eine Formel zu finden, die den Zusammenhang zwischen Zeit und Strom (entsprechend den Messungen) darstellt und die Tabelle überflüssig macht.

Apropos "für den ich einfach verschiedene Betriebspunkte kalibriere":
Das hört sich so an, als ob Du dann beim Kalibrieren die Rolle des Reglers übernimmst. Tust Du auch, aber eben nur zum Zeitpunkt des Kalibrierens. Später, wenn Deine Messwerte ausgewertet bzw. angewendet werden, haben wir es "nur" mit einer Steuerung zu tun, nicht mit einer Regelung.

Es sei denn, Dein Programm benutzt die Tabelle (oder Formel) nur, um einen guten Startwert für die jeweils angewählte Zeit zu haben, und das Programm würde dann die tatsächlich resultierenden Zeiten überwachen und versuchen, Abweichungen zu verringern (auszuregeln). Man könnte in Erwägung ziehen, die Tabelle mit den "neuesten Erkenntnissen" vom Programm aktualisieren (überschreiben) zu lassen.

Eine reine Steuerung kann natürlich nicht auf aktuelle StörEinflüsse reagieren, aber sie liefert eine schnelle Reaktion auf eine plötzliche Änderung des Sollwertes. Eine Regelung muss immerhin eine RegelAbweichung abwarten, um reagieren zu können. 
Ob mit einer reinen Steuerung eine ausreichende Genauigkeit erreicht werden kann: keine Ahnung.

Eine Regelung wird vermutlich erst nach einigen ZylinderHüben auf einen brauchbaren Wert kommen, insbesondere, falls der Zusammenhang zwischen Zeit und Strom nicht linear sein sollte.
Ob mit zwei P-Reglern eine ausreichende Genauigkeit erreicht werden kann: keine Ahnung. PID-Regler kann man jedenfalls stattdessen einsetzen und zunächst D- und I-Anteil deaktivieren ... und ggfs später mit D- und I-Anteil noch optimieren.


----------



## Heinileini (18 Juni 2020)

milli13 schrieb:


> Ich hatte lediglich gehofft herauszufinden ob ich auf einem guten Weg bin, wenn ich jetzt davon ausgehe dass ich nur proportional regeln muss /will. Und dafür einfach eine Kalibrierung machen muss um mir den Zusammenhang zwischen Druck Nennstrom und Zeit deutlich zu machen


Wenn Du davon ausgehst, dass Du nur (proportional) regeln musst, brauchst Du eigentlich gar nichts zu kalibrieren - nur die ProportionalVerstärkung musst Du experimentell ermitteln. So gross wie möglich, ohne dass der Regelkreis schwingt.
Der Regler sorgt dann - so gut er kann - dafür, dass die RegelAbweichung möglichst klein wird bzw. bleibt.
Es kann nicht schaden, wenn Du für die verschiedenen Zeiten die entsprechenden Ströme misst und aufschreibst (besagte Tabelle anlegst) und die WertePaare als Diagramm aufzeichnest. Damit Du weisst, womit Du es zu tun hast.
Der Regler benötigt die Kalibrierung nicht - er vergleicht die Sollzeit mit der Istzeit und nicht etwa die Sollzeit mit dem Iststrom oder so.


----------



## milli13 (19 Juni 2020)

Ok also so wie ich das jetzt verstehe habe ich im Grunde 2 verschiedene Möglichkeiten :
-Ich regle nicht sondern steuere nur. Dafür würde ich eine Kalibrierung durchführen( für verschiedene Nennstrome schreibe ich mir die Zeiten auf) und mir eventuell die Funktion für den Zusammenhang herleiten. Im Idealfall wäre dieser einfach linear. Dann könnte ich verschiedene Ströme aus der Tabelle einfach einstellen und die gewünschten Zeiten erhalten
-Ich regele einfach nur Proportional. Dafür kann ich einfach den Propbaustein verwenden und die I&D Teile auf 0 setzen. Falls ich sie später doch gebrauchen könnte wäre der Aufwand kleiner. Ich brauche hier dann für den P Teil keine Kalibrierung sondern nur den Verstärkungsteil.. Im Grunde wäre das ja dann die einfache y=e*Kp Gleichung..Wobei e die Diff zwischen Sollwert und Istwert angibt. 
Alles richtig verstanden ?


----------



## LargoD (19 Juni 2020)

milli13 schrieb:


> Im Grunde wäre das ja dann die einfache y=e*Kp Gleichung..Wobei e die Diff zwischen Sollwert und Istwert angibt.
> Alles richtig verstanden ?


Wenn Du den y-Wert als Ansteuersignal für Dein Regelventil verwenden willst, wird das nicht klappen, weil Du dann eine Soll-Ist-Differnz brauchst, damit überhaupt ein von Null verschiedenes Signal vom Regler ausgegeben wird.
Es gibt drei Möglichkeiten:

1. Den Regler-Ausgang als Korrektursignal für die Ventilansteuerung benutzen. Also immer vor dem Start "neue Ventilansteuerung = alte Ventilansteuerung + y-Wert"

2. Einen I-Regler benutzen, dann kannst Du den y-Wert direkt zur Ventilansteuerung benutzen, musst aber dafür sorgen, dass der Regler dann erst dann wieder arbeitet, wenn eine neue Zeitmessung vorliegt.

3. Meinen Vorschlag aus Beitrag #30 realisieren.

Gruß
Erich


----------



## Heinileini (19 Juni 2020)

milli13 schrieb:


> 1. Dann könnte ich verschiedene Ströme aus der Tabelle einfach einstellen und die gewünschten Zeiten erhalten
> 2. Alles richtig verstanden?


Zu 2.:
Ich glaube ja. Ausser vielleicht ...
Zu 1.:
Die Anforderung ist eigentlich genau umgekehrt. Du würdest die gewünschte Zeit vorgeben und mittels der Tabelle den dazu passenden Strom ermitteln.
Die Tabelle sollte deshalb möglichst nach der Spalte Zeit sortiert sein, um den gesuchten Wert bzw. die beiden nächstliegenden Werte schnell ("binäres Suchen") finden zu können.

Ich würde mit den beiden ProportionalReglern anfangen und schauen, ob sich damit bereits ein genügend gutes Ergebnis (was immer das sein mag - kenne die Erwartungen nicht) erzielen lässt.
Du könntest in dieser Phase bereits das Programm für Dich arbeiten lassen, in der Form, dass es (für beide Richtungen getrennt) zu den ausgegebenen StromWerten die gemessenen Zeiten in Arrays (oder umgekehrt?) hinterlegt. Das wäre etwas, das eigentlich den Rahmen der Aufgabenstellung sprengt, aber Dir schon "nebenbei" die DatenTabellen für die Variante 'Steuern statt Regeln' (bzw. Steuern kombiniert mit Regeln) liefern würde. 

Ich könnte mir vorstellen, dass die ReglerVariante beim Umknippsen des Sollwertes genügend schnell reagiert, aber der Skeptiker in mir sagt, dass hier das HauptProblem lauern könnte. Das ist der eigentliche Grund, warum ich die SteuerVariante in Erwägung gezogen habe. Eigentlich schwebte mir ein Mix aus Steuern und Regeln vor. Das Steuern nur, sobald ein neuer Zeitwert vorgegeben wird und nach wenigen HubZyklen dann den Rest der Aufgabe an einen Regler übergeben, der dann auf einer "ziemlich guten" aber auf jeden Fall schnellen Vorlage aufbauen kann. Ob dieser Aufwand überhaupt nötig ist ... wer weiss. Ich vermute mal, je unlinearer der Zusammenhang zwischen Zeit und Strom ist, desto sinnvoller wird die KombiLösung.

PS:


LargoD schrieb:


> Wenn Du den y-Wert als Ansteuersignal für Dein Regelventil verwenden willst, wird das nicht klappen, weil Du dann eine Soll-Ist-Differnz brauchst, damit überhaupt ein von Null verschiedenes Signal vom Regler ausgegeben wird.


Diesen Satz habe ich nicht verstanden. Klar, wenn die Differenz 0 ist, kann weder vom P- noch mehr als 1 ReglerZyklus lang vom D-Anteil ein Beitrag zum AusgangsWert kommen.
Aber "Im Grunde wäre das ja dann die einfache y=e*Kp Gleichung..Wobei e die Diff zwischen Sollwert und Istwert angibt." enthält doch die Differenz. Und wenn die ungleich 0 ist oder ein I-Anteil abzubauen ist, hat der Regler Beschäftigung ...


----------



## milli13 (26 Juni 2020)

Vielen Dank nochmal LargoD und Heinileini  
Ihr habt mir vorallem mit den letzten Antworten nochmal sehr weiter geholfen. Jetzt liegt es wohl an mir, dies entsprechend umzusetzen


----------

