TIA Hydraulikregelung Prop Ventil S7-1200

seple

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

habe folgendes Problem und bin über jede Hilfe dankbar.

Aufgabenstellung:
Programmierung einer Spaltregelung mittels Hydraulikproportionalventilen.
Es handelt sich um eine Art Verdichteranlage, diese besteht aus einem feststehendem Außenring (Durchmesser circa 1500) in dem
ein Metallischer Innenring liegt. Dieser Innenring liegt an der Unterseite des Außenringes auf und wird mit Hydraulikzylindern bewegt.
Zu Beginn wird der Innenring auf dem Außenring gepresst, nach einer gewissen Zeit kommt Material in den Verdichter, wenn das Material erkannt wird
(Druckanstieg) soll auf einen gewissen Sollspalt geregelt werden. Linke und Rechte Seite werden getrennt angesteuert (sprich: 2x PropVentil, 2x Wegmessung)
Spalt wird zwischen 2 und 4mm eingestellt Toleranz +/- 0,15mm
Realisiert werden soll das ganze mit einer Siemens S7-1212 ist bereits Vorgabe.

Zusätzlich muss sich der Spalt links und rechts parallel öffnen. dh eine Art Schrägerkennung (Abweichung max 0,2mm).
Habe bereits eine grobe Regelung "zu Fuß" ohne PID Technologieobjekt programmiert, die den Spalt parallel auf Sollspalt öffnet, um ein
Gefühl für das Verhalten der Hydraulik zu bekommen, jedoch ohne Störgröße dh ohne Material im Verdichter.

Meine "Zu Fuß" Regelung überprüft nur den Istspalt zu Sollspalt ist dieser kleiner fährt der Zylinder auf, gleichzeitig wird die Abweichung zum
anderen Spalt hin überprüft ist die Abweichung über bzw. unter einem Grenzwert wird nachgeregelt.

Funktioniert ohne Störgröße natürlich optimal, will ich den Weg nun "zu Fuß" fortsetzen müsste ich eine Art Weg pro Zeit Funktion einbauen, dh
Ändert sich der Weg trotz Regelgröße nicht muss nachgeregelt werden.

Hier kann ich meiner Meinung gleich einen fertigen PID Regler nehmen, jedoch wie gehe ich mit der Schräglageerkennung um?
Zwei PID Regler (links, rechts) soll ich bei einer Schräglage einfach einen Offset zur Regelgröße addieren?
Zusätzlich sehe ich das größte Problem in der Bestimmung der PID Parameter? Wie würdet ihr hier vorgehen?

Danke für eure Hilfe!
 
Moin,

kannst du dazu einmal eine Zeichnung machen? Mir ist nicht ganz klar, was hier alles mechanisch verbunden ist und auch wie die Verkippung dann da rein spielen könnte.

Die Steuerung ist iO, wobei nicht mein Favorit (lieber die ET200SP, da vollwertiger, aber ist hier nicht Thema, deshalb egal).
Ich würde auch zwei PID-Regler nehmen, beide zusammen im OB31 mit 100ms Zyklus (ggf. schneller, muss man dann aber gucken) o.ä. aufrufen. Als PID Regler würd ich dann einfach den Standard Siemens Regler nehmen TCONT_CP FB58. Soll- und Istwerte verschalten und gut ist. Der Regler kann ein Autotuning machen und dann entsprechend Regelparameter selbstständig ermitteln, das funktioniert bei Heizungen ganz gut, bei deinem Fall würde ich davon allerdings abraten. Da wirst du keine brauchbaren Parameter erhalten, da zu viele Unbekannte. Fang einfach mal mit nem reinen P-Regler an, wenn der halbwegs läuft, versuch langsam den I-Anteil mit rein zu nehmen. Damit kannst du auf jeden Fall schon mal den Spalt regeln.
Interessant wird dann das Thema mit der Verkippung. Den Verkippungswert als Störung auf die Spaltregelung zu addieren / subtrahieren hört sich gar nicht so schlecht an, müsste man mal ausprobieren. Wie wirkt sich die Verkippung auf den Messwert vom Spalt aus? Deshalb bitte eine Zeichnung. Wie und wo misst du den Spalt? Wie und wo wirken die Hydraulikzylinder? Wie wird die Verkippung gemessen? Wenn alles nicht funktioniert, müsste man eine separate Verkippungsregelung machen. Vielleicht auch einen PID-Regler für die Verkippung machen und dessen Stellwert wird dann bei dem einem Spaltregler auf den Stellwert addiert und bei dem anderen subtrahiert?!
Guck auch das du vernünftige Sensoren für die Spaltmessung auswählst, wenn du schon nur eine Toleranz von 0,1mm hast, nimm den Ini mit einer Genauigkeit die im 0,01mm oder natürlich im 0,001mm Bereich liegt. Weil wenn dein Messwert Schrott ist kannst du mit der Regelung auch nix mehr reißen. Frag mal bei Keyence nach, die können so nen Kram ganz gut.

Gruß,
Dome
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe die Aufgabe so verstanden, dass die SpaltBreite auf der gesamten Länge des Spaltes gleich gehalten werden soll.
Zwei separate Regler, die die SpaltBreite an den beiden Enden des Spaltes regeln, sollten doch genau das Richtige sein.
Der Sollwert ist für beide Regler identisch und jeder Regler regelt seine RegelAbweichung - unabhängig von der jeweils anderen - aus.
Probleme ahne ich eigentlich nur bei der Inbetriebnahme bzw. beim Parametrieren/Testen der Regler.
Ist es mechanisch möglich, den Einfluss auf der einen Seite so totzulegen, dass die Aktionen der anderen Seite nur minimal gestört/behindert werden, damit man einen der beiden Regler allein betreiben kann?
 
Hallo Dome,

die Wegmessung hat eine Auflösung von 0,03mm reicht meiner Meinung nach. Ja da hast du recht, die Parameter muss ich dann sowiso empirisch ermitteln. Was mir eben mehr Kopfschmerzen bereitet ist die Schrägerkennung. Wenn das Material in den Verdichter befördert wird können zwischen der linken und rechten Seite Druckdifferenzen entstehen. Die Schrägerkennung wird einfach aus der Differenz Spalt Links und Spalt rechts ermittelt.

Hallo Heinileini,

exakt das ist die Aufgabenstellung. Habe ich mir auch gedacht deshalb zwei getrennte Spaltregelungen. Jedoch habe ich etwas bedenken das der Regler die sporadischen Druckschwankungen nicht schnell genug ausgleicht und damit eine Schräglage entsteht. Diese könnte ich eventuell durch die manuelle Erkennung irgendwie entgegenwirken? Wenn ich den Regler so einstelle damit er auf solche Schwankungen schnell reagiert wird er im Normalbetrieb wahrscheinlich nicht exakt Arbeiten.
 

Anhänge

Hi,
sind das zwei (lange) Rohre, also im Prinzip ein Walzwerk? Und du willst dann den Spalt von der linke und rechte Seite vom Innenrohr regeln? Und die Differenz ergibt die Verkippung? Wenn ja, dann zwei getrennte PID-Regler ohne irgendwelche Addition von Störgrößen, einfach nur den Spalt regeln und fertig. Die Verkippung sollte dann nahe NULL liegen.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
der sollwert ist ja gleich ... jeder regler erhält unterschiedliche istwerte von der wegmessung ....
wenn die regelparamter (für beide regler gleich) einmal eingestellt sind .. sollte bei differenzen die eine seite etwas langsamer werden und die andere etwas schneller ....
ich denke das wird funktionieren
 
Genau im Prinzip ein Walzwerk.
Dann werde ich das mit den beiden PID Regler und der empirischen Ermittlung der PID Parameter Versuchen.
Das mit der empirischen Ermittlung der PID Parametern wird in diesem Fall spannend, ist ja nicht so träge wie eine Heizungsregelung.
 
.. sollte bei differenzen die eine seite etwas langsamer werden und die andere etwas schneller ....
Langsamer? Schneller? Wie meinst Du das?
Ich finde, beide Regler sollten in der Lage sein, schnell zu reagieren, damit sich gar nicht erst grössere Unterschiede in der Spaltbreite bilden können.
I- und D-Anteil unwirksam machen und ProportionalVerstärkung erhöhen, bis Schwingen einsetzt.
SchwingungsDauer ermitteln. Verstärkung reduzieren, bis kein Schwingen mehr.
Als nächstes den D-Anteil einstellen entsprechend der SchwingungsDauer.
Versuchen, die ProportionalVerstärkung gerinfügig(!) zu erhöhen, ohne dass Schwingen auftritt.
Wenn verbleibende RegelAbweichung noch zu gross ist, dann "FeinJustage" mit I-Anteil. Hierbei mit grossen Werten anfangen (da sie einer langsamen Reaktion entsprechen) und verringern, bis brauchbar.
Wenn ich den Regler so einstelle damit er auf solche Schwankungen schnell reagiert wird er im Normalbetrieb wahrscheinlich nicht exakt Arbeiten.
Warum nicht exakt? Schnell heisst doch nicht, dass ungenau reagiert wird.
Die Angst kann sich doch nur darauf beziehen, dass die Stellglieder ununterbrochen auf und zu machen und daher unnötig verschleissen und Energie verbrauchen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit der empirischen Ermittlung der PID Parametern wird in diesem Fall spannend, ist ja nicht so träge wie eine Heizungsregelung.
Na, dann brauchst Du nicht so viele Kaffee- und Zigaretten-Pausen einzuplanen. Bist dann noch voll im Thema, wenn es mit dem nächsten Schritt weitergeht! ;)
 
... Als nächstes den D-Anteil einstellen entsprechend der SchwingungsDauer...
Zunächst der von Heinileini erwartete, obligatorische und kommentarlose Einspruch:
Als nächstes den I-Anteil entsprechend der Schwingungsdauer einstellen! Den D-Anteil kannst du hier vergessen! Siehe auch Einstellregeln von Ziegler & Nichols, selbst wenn diese hier vermutlich nicht zum Ziel führen.

@seple
Was für ein Proportionalventil wird verwendet? Oftmals haben diese eine mehr oder weniger große Totzone um den Nullpunkt herum. Das kann u.U. für eine schnelle und präzise Lage-Regelung kontraproduktiv sein. Insbesondere, wenn ein Überschwingen beim Ausregeln möglich sein soll oder sogar gewünscht ist, bzw. wenn sich die Bewegungsrichtung des Zylinders während des Regelvorgangs ändern kann. ODER du regelst nur mit positiven Regelsinn und stellst den Regler so träge ein, dass er nicht überschwingt.

Ich würde es zunächst auch mit zwei unabhängigen Reglern versuchen. Die Schieflage würde ich erst einmal nur überwachen.
 
Es wird ein 5/3 Wegeventil verwendet die Zylinder sind Doppelwirkend. Habe die Ventile bereits bei Hubzylindern testen können, die Totzone hält sich hier einigermaßen in Grenzen. Das Ventil wird über einen passenden Proportionalverstärker angesteuert, der Verstärker bekommt von mir 4-20mA, 4-<12mA Zylinder fährt ein, >12-20mA Zylinder fährt aus. Wobei 12mA theoretisch die Sperrstellung ist.
Den PID Regler Output habe ich auf -100 bis +100% Konfiguriert, danach noch eine Funktion drangehängt die mir das Signal auf 0 - 27648 skaliert.

Wie bereits erwähnt, bei optimal eingestellten Reglerwerten wird die Schieflage nahezu null betragen, jedoch bin ich mir da unsicher ob ich mich auf das verlassen soll. Die Schieflage kann ich ja ohne Probleme überwachen, die Frage ist nur wie Reagiere ich darauf?
Auf den nachlaufenden Zylinder, am PID Output kurzzeitig einen Offset addieren?
 
Wie bereits erwähnt, bei optimal eingestellten Reglerwerten wird die Schieflage nahezu null betragen, jedoch bin ich mir da unsicher ob ich mich auf das verlassen soll. Die Schieflage kann ich ja ohne Probleme überwachen, die Frage ist nur wie Reagiere ich darauf?
AlarmStufe rot ausrufen! Wie reagierst Du bzw. die Hydraulik denn, wenn Not-Aus betätigt wird?
Ich würde die Regler unabhängig voneinander ihren Job tun lassen und ihnen keinesfalls ins Handwerk pfuschen.
Störungen können sie ausregeln - wozu eine (oder mehrere) künstliche Störungen hinzufügen?
Sollte einer der beiden Regler oder sogar beide die Lage nicht in einer tolerierbaren Zeit in den Griff bekommen, so würde ich mich nicht darauf verlassen wollen, dass sie dazu in der Lage sind, wenn Du mit irgendwelchen "unterstützenden" Massnahmen eingreifst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... wie Reagiere ich darauf?
Was ist die Folge der Schieflage? Geht etwas zu Bruch oder verbiegt sich etwas? Dann würde ich abschalten!
Wie läuft es ab, wenn ein Regler überschwingt, der entsprechende Zylinder also zurück fahren muss? Das eingespritze Material folgt auch dann?

Wie zeitkritisch ist das Ganze? Hast du genügend Zeit um die Position schön entspannt zu regeln? Dann würde ich denn Sollwert von einer Startposition aus langsam entlang einer Rampe oder besser noch über eine e-Funktion (Dämpfung) anfahren. Die Regelung müsste dann stabiler funktionieren, da stets nur kleine Abweichungen ausgeregelt werden müssen. Eine Schieflage ist dadurch kaum noch denkbar, außer bei einem Defekt natürlich.
 
Zu Beginn wird der Innenring auf dem Außenring gepresst, nach einer gewissen Zeit kommt Material in den Verdichter, wenn das Material erkannt wird
(Druckanstieg) soll auf einen gewissen Sollspalt geregelt werden.
Dass ein DruckAnstieg stattfindet, wenn Material in den Spalt gerät, ist klar. Wie fein kannst Du den Druck auswerten?
Hast Du DruckSchalter, die bei einem voreingestellten Wert schalten oder misst Du die beiden Drücke analog?
Was reagiert bei Deiner Anordnung schneller? Die PositionsMessung oder eine Messung des DruckAnstiegs bzw. -Abfalls?
"Gefühlsmässig" würde ich erwarten, dass eine Änderung des Drucks recht schnell und heftig erfolgen dürfte.
Meine Erfahrungen aus der (längst vergangenen) Praxis sagen mir aber, dass eher das Gegenteil der Fall ist.

Wie läuft es ab, wenn ein Regler überschwingt, der entsprechende Zylinder also zurück fahren muss?
Hmmm, überschwingen? Das kommt davon, wenn man den D-Anteil kommentarlos bis obligatorisch beiseite schiebt. :sick:
 
Zuletzt bearbeitet:
Langsamer? Schneller? Wie meinst Du das?
naja beide regler bekommen ihren istwert von je einer wegmessung ...
der p-anteil wird bei größerer bzw kleinerer differnz dann mehr oder weniger aussteuern und das problem lösen ...
die abweichungen der prop-ventile und druckdifferenzen kommen als störgrößen noch hinzu ...
für die parametrierung würde ich dir jenfalls eine gute kaffemaschine empfehlen ;)

bei einem danfoss - prop- ventil hatte ich schon eine deadzone von +25% bis -25% als angabe im datenblatt ...
in der realität war das dann etwas anders ... bis alles schön rund und weich lief ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bei einem ... prop-ventil hatte ich schon eine deadzone von +25% bis -25% als angabe im datenblatt ...
in der realität war das dann etwas anders ...
Man könnte ja den vom Regler gelieferten Wert (die Verstärkung) ein wenig manipulieren, um die deadzone zu berücksichtigen/abzumildern.
Also in der deadzone eine höhere Verstärkung verwenden:
Code:
xkpv := MIN(ABS(xpv) / 100.0 * (100.0 - ord0) + ord0, ABS(xpv) * steig) * SIGN(xpv) ;

// xpv   : auf ±100 skalierte EingangsGrösse
// ord0  : >0..<100 (gedachter) Schnittpunkt des flacheren GeradenAbschnitts mit Ordinate
// steig : >1 Steigung der Kurve (Verstärkung) um den 0-Punkt herum
// xkpv  : auf ±100 skalierte AusgangsGrösse
Hier ein Beispiel mit ord0 = 25 und steig = 3:
geknickteVerstärkung.jpg
Hier (überflüssigerweise) noch "workarounds" für evtl fehlende Funktionen (ABS und MIN gibt es meines Wissens - aber SIGN?):
Code:
// SIGN:
IF x > 0.0 THEN
    sign := 1.0 ;
ELSIF x < 0.0 THEN
    sign := -1.0 ;
ELSE   
    sign := 0.0 ;
END_IF ;

// MIN:
IF xt1 > xt2 THEN
    min := xt2 ;
ELSE
    min := xt1 ;
END_IF ;

// ABS:
IF x < 0.0 THEN
    abs := -x ;
ELSE
    abs := x ;
END_IF ;
 
Wäre es nicht sinnvoller, die Totzone einfach auszuschneiden? Man überträgt die 0%..100% des Reglerausgangs auf den positiven Stellbereich des Ventils (z.Bsp. 14mA bis 20mA). Im negativen Fall entsprechend negativ (z.Bsp. 10mA bis 4mA). Und bei "Aus" gibt man den entsprechenden Nullwert aus, der im Fall von seple 12mA beträgt.

@seple, was machst du eigentlich beim Einschalten? Damit erst einmal nichts fährt, muss ja der Analogausgang zunächst auf 12mA gebracht werden. Hat das Ventil noch zusätzlich einen Freigabe-Eingang?
 
Wäre es nicht sinnvoller, die Totzone einfach auszuschneiden?
Das tut meine Formel aus #18 (fast), wenn man die Steigung "sehr" gross vorgibt. Ich wollte sie nicht auf diesen Sonderfall eingrenzen.

Ich halte es für unwahrscheinlich, dass die Totzone in der Praxis ganz mausetot ist, sondern eher mit einer grösseren Verstärkung zu überbrücken.
Das ist aber eine reine Spekulation eines Unwissenden. ;)

Sieh's mal einfach unter dem Aspekt der hochwohlgelobten "Hysterese", Dagobert. Ein Bisschen davon ist hilfreich, um das RegelVerhalten zu beruhigen und zu viel davon macht den Regler fast überflüssig. Irgendwo zwischen den Extremen ist die Lösung zu suchen.

Mich würde auch interessieren, wieviel Zeit für das "Durchschreiten" der Totzone benötigt wird.
 
Zurück
Oben