PID Regler Problem

S7_Mich

Level-2
Beiträge
214
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

wir sind gerade dabei den Hardwareregler eines Flurförderfahrzeugs gegen einen Softwareregler auszutauschen. Jedoch gelingt uns das nicht so ohne weiteres.

Zur Anlage: Im Boden sind Leitdrähte verlegt, jeder Leitdraht hat seine eigene Frequenz und wird mit 30mA Strom gespeist. Das FTF wird mittels Lenkantenne entlang des Leitdrahtes geführt.

Hier die Beschreibung bzw. auch eine vereinfachte Skizze, wie das System aufgebaut ist.

http://www.goetting.biz/ftp/de/produkte/induktiv/datenblaetter/G_19330-A_D_datenblatt_R03_TD.pdf

Bisher ist eine Vorgängerversion dieser Lenkantenne an dem Hardwareregler angeschlossen. Die "alte" Lenkantenne besitzt keinen Schaltausgang für "Leitdraht vorhanden" und die Frequenzauswahl konnte nicht an der Antenne eingestellt werden, sondern erfolgt im Hardwareregler. Soweit so gut.

Die neue Version der Antenne hat folgende Anschlüsse:
24V
0V
Differenzspannung (Analogwert von 0-10V)
Summenspannung (Analogwert von 0-10V)
Schaltausgang Detektor (Dieser Ausgang liefert 1, wenn 20mA Summenspannung überschritten wird, --> Leitdraht vorhanden)

F1-F3 (über die Bits F1-F3 wird über ein Bitmuster festgelegt, welche Frequenz gewählt werden soll)

Der Ausgang der Antenne Differenzspannung und Summenspannung ist jeweils an einem Eingang der Analogkarte angeschlossen.

Als CPU ist die 314IFM im Einsatz. Der Softwareregler FB41 haben wir im OB35 aufgerufen und beschaltet. Als Cycletime sind 20ms eingestellt, ebenso wird auch der OB35 jede 20ms aufgerufen (eingestellt in der Hardwarekonfiguration).

Der FB41 ist folgendermaßen beschaltet:
PVPER_ON=TRUE
P_SEL=TRUE
Cycle=t#20ms
SP_INT=0.0 (Ist die Antenne genau parallel zum Leitdraht, gibt der Ausgang 0V aus, deswegen 0.0)
PV_PER=PEW 320 (Differenzspannung)
GAIN=0.5
LMN_HLM=100.0
LMN_LLM=-100.0
LMN_PER=PAW336 (Analogausgang 0-10V für den Umrichter)

Das FTF wird auf der geraden relativ schön geregelt. Jedoch in einigen Kurven, wird nicht schnell genug nachgeregelt und verliert dadurch den Leitdraht.

Stell ich nun den P-Anteil rauf, fängt er sofort an zu schwingen. Der Wert 0.5 ist soweit schon ok, fast kein Schwingen, aber eben nur auf der Geraden und in einigen weit gezogenen Kurven. Stell ich weniger ein, gehts dann in keiner einzigen Kurven mehr ;-)

Die grundlegende Frage ist es nun, ob es an irgendwelchen Einstellungen fehlt oder ob der Softwareregler nicht schnell genug reagiert. Ich bin am verzweifeln.

Hat jemand von euch einen Tipp??

Gruß
Michael
 
Zuletzt bearbeitet:
hallo,

wenn die Regelstrecke bei Erhöhung des P-Teils überschwingt würde ich in erster Linie den P-Teil so lassen und einen I-Teil hinzufügen.

Such mal im Forum nach PID Regelungen.

mfg mst
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Michael,

..Die grundlegende Frage ist es nun, ob es an irgendwelchen Einstellungen fehlt oder ob der Softwareregler nicht schnell genug reagiert...
Interessante Sache. Ich denke schon dass es mit einer Softwareregelung machbar ist, falls das Fahrzeug nicht mit 80km/h über den Hof rast. Du wirst mit allen Parametern etwas experimentieren müssen. Ein kleines bisschen I-Anteil, um das Lenkrad ruhig zu halten, und ein bisschen D-Anteil, um bei Richtungsänderung schnell genug reagieren zu können. Den P-Anteil würde ich erst einmal mal so lassen wie du ihn ermittelt hast.


Gruß, Onkel
 
Könnte es sein, das die Steilheit der Differenzspannung etwas zu stark eingestellt ist? Aus der Kennlinie ist ersichtlich, das bei starken Abweichung von der Soll-Lage (eben in starken Kurven -> Leitdraht nicht mehr unter Sensor) die Differenzspannung wieder weniger wird, statt mehr -> dann kriegt der Regler natürlich ein Problem, weil ihm ein falscher Istwert vorgetäuscht wird.

Mein Tip: Datenlogger anklemmen (oder Werte SW/IW/Stellgröße in DB schreiben) und mal angucken.

Viel Spaß!
 
wenn die Regelstrecke bei Erhöhung des P-Teils überschwingt würde ich in erster Linie den P-Teil so lassen und einen I-Teil hinzufügen.

Hallo,

das habe ich natürlich auch schon probiert. Ich weiss aber nicht, wie das zu verstehen ist, I-Anteil in Sekunden? Das FTF fährt max. 100cm/s, nicht in Kurven, da ist der Wert kleiner --> ca. 70cm/s. Ich bin der Meinung, der I-Anteil müßte ja irgendwas in ms sein, oder wie kann man sich das erklären. Genauso das mit dem D-Anteil. Wenn ich z. B. den P-Anteil auf 0.5 beibehalte, ist im Stillstand oder bei Fahrt kein Schwingen mehr zu erkennen. Allerdings bei Kurven zu träges Nachregeln. Nehm ich den I-Anteil dazu und stell ihn auf 0.5 Sekunden ein, schwingts am Anfang mehr und nach ca. 1 Sekunde dann nicht mehr. Allerdings beim D-Anteil hab ich noch keine Einstellungen gefunden, die passen würde.

Wie geh ich da am besten vor.

Gruß
Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Könnte es sein, das die Steilheit der Differenzspannung etwas zu stark eingestellt ist? Aus der Kennlinie ist ersichtlich, das bei starken Abweichung von der Soll-Lage (eben in starken Kurven -> Leitdraht nicht mehr unter Sensor) die Differenzspannung wieder weniger wird, statt mehr -> dann kriegt der Regler natürlich ein Problem, weil ihm ein falscher Istwert vorgetäuscht wird.

Mein Tip: Datenlogger anklemmen (oder Werte SW/IW/Stellgröße in DB schreiben) und mal angucken.

Viel Spaß!

Viel Spaß ist gut ;-) Könnte schon sein, das irgendwas mit der Differenzspannung nicht stimmt, da ja die Lenkantenne von Werk aus auf 35mA kalibiert ist und wir nur 25-30mA Leitstrom haben. Das ist natürlich auch die Frage, wie stellt man das richtig ein bzw. wo ist der Referenzpunkt.

Aber Datenlogger (wir haben SPS-Analyzer) ist eine gute Idee, aber ich glaub nicht, das es daran liegt, fährt ja in nicht so engen Kurven auch einwandfrei.

Vielen Dank an euch
Gruß
Michael
 
PID egler Problem

Hallo, hast du auch gute Reglereinstellung für die Kurven Fahrten gefunden.

Wenn ja versuche den P/I/D Anteile Umzuschalten. Das kann aber auch nach hinten loss gehen und der Regelkreis beginnt an zu Schwingen
 
Servus Franz,

bisher noch nicht, ich fahre immer mit den gleichen Einstellungen. Der vorher eingebaute Hardwareregler hatte auch nur "eine" Einstellung fürs Lenken. Müßte also mit einer Einstellung bzw. PID Werten auskommen. Wollte eh zuerst die PID-Werte aus dem Hardwareregler übernehmen, aber da komm ich nicht klar, weil dort Werte zwischen 1 und 255 eingetragen sind. Also nicht 1:1 umsetzbar.

Gruß
Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich weiß nicht genau, wie die Lenkung erfolgt, aber wahrscheinlich liegt hier eine Strecke ohne Ausgleich (I-Verhalten) vor. In diesem Fall kannst Du den I-Anteil des Reglers erstmal zu Null machen, PD reicht vorläufig völlig und zwei Parameter sind auch genug Unsicherheiten beim Probieren;) .
Die üblichen Einstellregeln für Regler sind für Strecken mit Ausgleich gedacht und daher hier nicht verwendbar.

Dann würd ich ein Meßgerät nehmen und die Differenzspannung messen und dann das Gerät um die Kurve fahren lassen (mit SPS-Analyzer kann ja schon fast nix mehr schief gehen). Evt. kann man nun schon erkennen, das ein wenig an RT1 gedreht werden sollte (Steilheit der Diff.-Sp.)?

Nächster Schritt ist das Zeitverhalten: wie groß ist die Änderungsgeschwindigkeit der Differenzspannung beim Kurvenfahren -> hängt von der Geschwindigkeit des Gerätes und der Kurve ab, dann kann man abschätzen ob die 20ms auch für die schärfste Kurve ausreichen.

Wie gesagt: Viel Spaß:p
 
Servus Peter,

hört sich gut an. Die Lenkung erfolgt über einen Drehkranz, der über einen Motor mit Planetengetriebe angetrieben wird.

Ich werd das morgen mal testen. Aber du hast recht, es ist zum verzweifeln, wenn man nicht weiß an welcher "Schraube" gedreht werden muß.

Vielen Dank
Gruß
Michael
 
mit 70cm/s bewegt das teil sich 1cm in 14ms.
dein zyklus ist 20ms, ob das funktioniert hängt jetzt noch vom radius der kurve ab.

wie schnell wandelt die 314ifm den analogwert?
wie schnell wandelt ihn der sensor?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Markus,

wenn man es so betrachtet hast du natürlich recht.

Rückmeldung:

Wir haben zuerst mal den Leitdrahtstrom gemessen. Ergebnis 28mA. Da aber die Antenne auf 35mA kalibriert wurde haben wir uns an die Potis gemacht.

Summenspannung einstellen ist ja noch ok. Antenne parallel mittig zum Draht. Hier muß ja das Maximum von 10V herschen. Hatten aber nur ungefähr 6 Volt. Haben den Wert durch Drehen des Potis für die Empfindlichkeit Summenspg. auf 10 Volt eingestellt. Durch Vergleichen mit der "alten" Antenne haben wir festgestellt, das nun auch der Bereich für "Leitdraht vorhanden" (das ist der Schaltausgang, der bei 20mA ein HIGH leifert) vergrößert worden ist. Das hat schonmal eine Besserung gebracht.

Ganz klar ist aber nicht wo das Maximum der Differenzspannung herschen muß. Parallel mittig zum Draht sind eindeutig 0 Volt. Somit haben wir es bei den werksseitigen Einstellungen belassen.

Fazit: FTF fährt mit den jetztigen PID-Anteilen auf der Geraden relativ ruhig. Auch in den nicht engen Kurven kein Problem. Bei engeren Kurven kann man feststellen, das anscheinend der Wert für die Stellgröße nicht ausreicht zum Gegenlenken. Zum Feierabend sind wir zum Entschluß gekommen, das aber auch eine zu niedrige Differenzspannung schuld sein kann. Angenommen bei gleichem horizontalem Versatz zum Leitdraht wird vielleicht jetzt zu eine geringe Differenzspannung aus der Antenne ausgegeben, das sie ja falsch kalibriert ist. Durch die zu geringe Differenzspannung wird wahrscheinlich auch die berechnete Stellgröße kleiner ausfallen. Stellt man aber nun die Differenzspannung etwas höher, müßte bei gleichem Versatz zum Leitdraht doch eine größere Stellgröße und somit ein schnelles Gegenlenken das Ergebnis sein.

Was meint ihr dazu?

Bisher haben wir uns ja immer nur mit der Differenzspannung befasst. Aber kann es sein, das man eigentlich beide Spannungen irgendwie auswerten muß. Ich meine es so: Der Abstand von Antenne zum Leitdraht im Boden kann ja nicht immer gleich sein. Dadurch ändert sich ja beim Fahren auch die Summenspannung und die Differenzspannung. Wenn man eine Momentaufnahme macht, ist zu einem die Summenspannung niedriger und dadurch die Differenzspannung auch, obwohl sich die Antenne genau über dem Leitdraht befindet. Die Stellgröße wird somit auch kleiner. Ist aber der Abstand von Antenne zum Leitdraht kleiner, ist die Summen- sowie die gemessene Differenzspannung wieder höher, und somit wird auch die Stellgröße wieder höher obwohl die Antenne immer noch genau auf dem Leitdraht ist. Hab mir schon den Kopf daran zerbrochen, aus diesen beiden Werten einen Wert zu bilden, der immer gleich ist.
Ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt. ;-)

Habt ihr dazu einen Tipp für mich.

Gruß
Michael
 
Guten Abend,
Ganz klar ist aber nicht wo das Maximum der Differenzspannung herschen muß.
Ich meine genau dann, die halbe Breite des Sensors vom Draht weg ist - so deute ich jedenfalls die schematische Darstellung der Kennlinien in der PDF-Datei.
Fazit: FTF fährt mit den jetztigen PID-Anteilen auf der Geraden relativ ruhig. Auch in den nicht engen Kurven kein Problem. Bei engeren Kurven kann man feststellen, das anscheinend der Wert für die Stellgröße nicht ausreicht zum Gegenlenken. Zum Feierabend sind wir zum Entschluß gekommen, das aber auch eine zu niedrige Differenzspannung schuld sein kann.
Bist Du sicher, das der Sensor die ganze Zeit über dem Draht ist, oder ist die Abtastzeit (20ms) zu kurz, so das die Abweichung in Kurven größer wird -> dann geht wie ich schon erwähnte nämlich die Differenzspannung zurück und es sollte das von Dir beschriebene Verhalten auftreten.

Angenommen bei gleichem horizontalem Versatz zum Leitdraht wird vielleicht jetzt zu eine geringe Differenzspannung aus der Antenne ausgegeben, das sie ja falsch kalibriert ist. Durch die zu geringe Differenzspannung wird wahrscheinlich auch die berechnete Stellgröße kleiner ausfallen. Stellt man aber nun die Differenzspannung etwas höher, müßte bei gleichem Versatz zum Leitdraht doch eine größere Stellgröße und somit ein schnelles Gegenlenken das Ergebnis sein.
Das ist richtig, so lange die maximale Stellgröße noch nicht erreicht ist. Was ist übrigens für ein Stellglied verbaut - eine Art Servo?

Bisher haben wir uns ja immer nur mit der Differenzspannung befasst. Aber kann es sein, das man eigentlich beide Spannungen irgendwie auswerten muß. Ich meine es so: Der Abstand von Antenne zum Leitdraht im Boden kann ja nicht immer gleich sein. Dadurch ändert sich ja beim Fahren auch die Summenspannung und die Differenzspannung. Wenn man eine Momentaufnahme macht, ist zu einem die Summenspannung niedriger und dadurch die Differenzspannung auch, obwohl sich die Antenne genau über dem Leitdraht befindet. Die Stellgröße wird somit auch kleiner. Ist aber der Abstand von Antenne zum Leitdraht kleiner, ist die Summen- sowie die gemessene Differenzspannung wieder höher, und somit wird auch die Stellgröße wieder höher obwohl die Antenne immer noch genau auf dem Leitdraht ist. Hab mir schon den Kopf daran zerbrochen, aus diesen beiden Werten einen Wert zu bilden, der immer gleich ist.

Da wäre es an der Zeit:
1. mal einige statische und dynamische Kennwerte des Sensors und der Strecke zu erfassen (also Kennlinien für Summen- und Differenzspannung, Verstärkung+Verzögerung der Lenkung, Zusammenhang Abstand Sensor-Draht vertikal und Diff.-Spann., ....)

und 2. mal ein wenig das Zeitverhalten abzuschätzen: das Fahrzeug fährt mit v_max zum Zeitpunkt t_1 in eine Kurve und zwar stur geradeaus (es ist genau am Beginn der Kurve) und genau mittig über dem Draht. Welche Abweichung hat dann der Draht von der Mittellage des Sensors zum Zeitpunkt t_1 + 20ms??????

Gibt es eingetlich auch einen Geschwindigkeitsregler?
 
Vielen Dank für Deine Ausführungen.

Es könnte durchaus sein, das die Abtastzeit von 20ms noch zu kurz ist. Das hatten wir heute nicht mehr getestet. Vorallem könnte es dann auch schon knapp mit der Zykluszeit werden.

Ja du hast recht, als Stellglied wird ein Servo verwendet.

Zur Einstellung der Differenzspannung: Wenn man die halbe Breite der Antenne zum Draht versetzt, wird höchstens 20000 eingelesen, also keine 10V. Ich glaube wir sollten zunächst noch an dieser Schraube drehen. Ich habe mir auch gedacht, das wir vieleicht nicht die halbe Breite verwenden, sondern die Lenkung manuell soweit horizontal versetzen bis der Schaltpunkt "Lenkdraht vorhanden" auf LOW geht. Somit hätten wir den eigentlichen Bereich, der verwendet wird. Hier könnte man die Differenzspanung dann auf das Maximum stellen. Ich denke mit der Einstellung der Summenspannung sind wir richtig verfahren.

Kennlinien von Summen- und Differenzspannung haben wir mit dem SPS Analyzer aufgezeichnet.

Ja eine Geschwindigkeitsregelung gibts. Über Telegramm wird eine Geschwindigkeit vorgegeben. Die CPU wertet das Telegramm aus und gibt den entsprechenden Wert über die Analogkarte an den Fahrregler. Man muß aber auch dazusagen, das vorher dieses Analogsignal durch den Hardwareregler geschliffen worden ist. Da hier auch eine Regelung erfolgt ist. Da aber Rampeneinstellungen im Fahrregler vorhanden sind, haben wir uns gedacht, hier eine PID einzusparen. Rückmeldung über die gefahrene Geschwindigkeit erhält der Hardwareregler und die CPU von ein und dem selben Inkrementalgeber.

Man könnte natürlich jetzt darüber nachdenken, wenn er die Kurve nicht bei dieser Geschwindigkeit pakt, automatisch die Geschwindigkeit anzupassen;-) Aber das artet dann glaub ich aus.

Gruß
Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Man könnte natürlich jetzt darüber nachdenken, wenn er die Kurve nicht bei dieser Geschwindigkeit pakt, automatisch die Geschwindigkeit anzupassen;-) Aber das artet dann glaub ich aus.

Hi. also wenn ihr das selbe system habt wie wir, dann verhält sich das FTF
im Orginalen zustand genau so.
Ist das FTF (bei uns heissts FTS-> Führerloses Transport System ;) )
in der Kurve zu schnell, wird die geschwindigkeit reduziert.

Wenn wir mit einem FTF ein Spurproblem haben,nehem wir unsere Ersatz freqeunzsteuerung des Systems(Als schleife dient ein Stück Schweissdraht.) und simulieren das auf dem Bock.
Jetzt brauchen wir nur noch den Schweissdraht hin und her bewegen und simulieren so unsere Kurven ;)

Gruss Andy
 
ich will mich ja wirklich nicht wichtig machen...
aber bevor du dir überlegst wie du die abtastzeiten einstellst, oder sonst was veränderst solltest du dir wirklich im klaren sein was dein hardware überhaupt kann...

ich kenne analoge eingangskarten von siemens mit 80ms wandlungszeit (pro kanal!)...

was diese ifm kann weiß ich nicht, finde ich nicht im katalog.

dann kommt es auf die wandlungszeit vom sensor, vom analogausgang und vom servo an...
 
Hallo,

hab mir jetzt mal die Technische Daten meiner Analogbaugruppe angesehen und du hast wirklich recht Markus, pro Kanal Grundwandlungszeit 20ms + Integrationszeit 2ms = 22ms. So nun hat diese Baugruppe 4 Kanalgruppen mit jeweils 2 Kanäle = 8 Kanäle --> 22ms * 8 = 176ms. Das ist aber immer noch ohne Drahtbruchüberwachung Da kommt dann noch was dazu.

http://support.automation.siemens.com/WW/view/de/11820945

Hier auf der Seite 297 stehts.

Tja, vielen Dank für diesen Tipp. Ich habe mich eh schon gefragt, warum sich so absolut nix ändert, wenn man die Cycletime ändert. Ob 20ms oder runter bis zu 5ms. Keine Änderung. Jetzt ist es klar.

Aber bei Siemens gbits Abhilfe. Die Baugruppe Sm335 Schnelle Analogeingabe. ´

http://cache.automation.siemens.com/dnl/zYxNTI2MQAA_1398483_HB/SM335_d.pdf

Auf Seite 19 stehts: 1ms Grundwandlungszeit für 4 Kanäle. Das hört sich gut an. Werd mal sehen, was diese Baugruppe kostet.

Oder eine andere "normale" Analogeingabebaugruppe verwenden, vielleicht mit 2 oder 4 Kanäle, die man extra abschalten kann, um die Wandlungszeit so kurz wie möglich zu halten.

@Zefix:
Welche Antenne habt ihr im Einsatz bzw. wird das FTF (bei uns heißt ein FTF=Führerloses Transportfahrzeug, das ganze System wiederum wie bei euch FTS) über diesen Fahr- und Lenkregler von Götting geregelt? Oder habt ihr die Auswertung schon in der SPS?

Vielen Dank für euere Hilfe!
Schönes Wochenende
Gruß
Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
billiger als die schnelle analogeingabe von siemens wären buskopler und analoge klemmen von wago oder bekhof, wenn die cpu profibus hat. oder gleich die ifm raus und ein controller von denen rein...
 
Hallo,
wie sieht es mit deiner Regelung aus? Hast du eigentlich einmal deine ganze Regelstrecke analysiert! Wenn das verhalten der Stecke sowie des Reglers bekannt sind, gibt es Methoden den P,I,D Anteil zu berechnen.
Ich kann die hierzu ein Buch empfehlen: Regeln mit Simatic :ISBN 3-89578-248-3 aber suche doch erst einmal im Internet.

Franz
 
Hallo,

wir haben bisher immer nur versucht, durch probieren geeignete PID-Anteile zu finden. Bevor wir aber jetzt weiter probieren, möchte ich die Analogbaugruppe gegen eine sm355 austauschen, damit wir sicher sind, das der Analogwert auch schnell genug am FB41 wieder ankommt.

Wie geht man dazu vor, wenn man die Regelstrecke analysiert? Hab ein pdf von Siemens gefunden, indem beschrieben ist, wie man durch probieren geeignete Werte für den Regler findet. Das werd ich auch nochmal nächste Woche probieren.

Was ich mir auch schon gedacht habe, wir haben ja die PID-Anteile des Hardwarereglers. Nur sind die nicht in Sekunden angegeben, sondern sind einfach nur Werte zwischen 1 und 255. So sind zumindestens die Eingaben beschränkt. P-Anteil wäre hier 130. Gibts eine Möglichkeit diesen P-Anteil umzurechnen, sodaß ich diesen Wert dann am FB41 eingeben kann. I-Anteil weiß ich jetzt nicht auswendig, aber ich glaube der war so bei 40.

Gruß
Michael
 
Zurück
Oben