Forum: Digitale Signalverarbeitung / DSP / Machine Learning Hydraulik-System Identifikation


von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Hallo Leute,
ich habe hier in diesem Forum schon sehr viel gelernt und gefunden was 
mir helfen konnte, jetzt hab ich aber selber mal eine Frage ;).

Im Zuge eines Praktikums soll ich ein Hydraulik-System einer 
Spritzgussmaschine Modellieren und Simulieren.

Wie ich von einer gegebenen Übertragungsfunktion einen Regler designe 
und das ganze dann Simuliere ist mir bekannt. Mir fehlt eig. nur das 
Verständnis von der Herangehensweise an ein unbekanntes System bis hin 
zur Übertragungsfunktion des Systems - G0(s).

Im kleinen hab ich so etwas schon gemacht (Temperaturregelung), einen 
Sprung an den Eingang eines Heizkörpers gelegt und die Temperatur 
aufgezeichnet, über Küpfmüller-Approximation T1 und T2 ausgerechnet und 
fertig.

Bei dem Hydraulik-System sind aber mehrere Komponenten (Pumpe, Leitung, 
Ventil, Zylinder, Last an Zylinder) und da hab ich meine Schwierigkeiten 
wie ich anfangen soll und was ich aufzeichnen soll, hauptsächlich geht 
es um die Pumpe und den Zylinder.
Interessant sind auf alle Fälle die Drücke für die Kraft des Zylinders 
und die Durchflussmenge wegen der Geschwindigkeit des Zylinders.
Diese 2 Werte (Druck und Durchflussmenge) sind auch einstellbar an der 
Maschine.

Jetzt ist meine Frage, wie würdet ihr hierbei herangehen?
Wo soll ich einen Sprung anlegen und was soll ich messen?
Und wie verknüpf ich die verschiedenen Systeme, oder ist es
besser ein gesamtes System zu erstellen so z.B.: ein PT5-Strecke?

Danke im Voraus!

Lg.
Dominik

von netseal (Gast)


Lesenswert?

Was willst du den Regeln? Was ist das für eine Pumpe, welche Ventile 
werden eingesetzt?

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Ah sry ganz vergessen!

Also die Pumpe wird mit einem Servomotor betrieben, das kann ich aber 
vernachlässigen, ich soll von einer ganz normalen Standard 
Hydraulikpumpe ausgehen die dauerhaft Öl fördert. Die max. 
Durchflussmenge ist Q=240[Liter/min] bei einer Umdrehung von 
n=2500[min^-1].

Der max. Druck des Systems betragt p=175[bar].

Das Ventil ist ein ganz normal standardmäßiges 4/3-Wege-Ventil mit einer 
Druckdifferenz von Δp=5[bar].

Der Zylinder ist mit einer Differenzialschaltung versehen was dazu führt 
das er beim Ausfahren schneller reagiert, die Abmaße sind 
dKolben=105[mm],dStange=70[mm] und der Hub h=408[mm].

Geregelt wird das Ganze auf Druck und als 2. Bedingung nach der Drehzahl 
des Motors(Pumpe).
Der Druck wird aber normalerweise höher priorisiert, dass soll heißen 
wenn der Druck schon erreicht ist aber die Drehzahl noch nicht soll der 
Motor bei der aktuellen Drehzahl bleiben, diese aktuelle Drehzahl wird 
auch ausgegebn.
Der andere und eher seltene Fall wäre, wenn die gegebene Drehzahl 
(Sollwert) schon erreicht ist aber der Druck noch nicht, würde es auch 
bei der Drehzahl bleiben die angegeben ist.

Wenn ich wieder was vergessen hab, bitte einfach melden!

Danke im Voraus!

Lg.
Dominik

von netseal (Gast)


Lesenswert?

So, und jetzt sollst du das Ventil elektromotorisch betätigen, ja?

von netseal (Gast)


Lesenswert?

Ich vermute mal, das es sich nicht um ein Proportionalventil handelt. So 
ist also nur die Drehzahl verstellbar. Um eine Sprungantwort aufzunehmen 
müsste man den Druck aufzeichnen. Die Pumpe läuft mit n1. Wenn der Druck 
stationär wird, wird der Motor auf n2 hochgeschaltet. Voila, da ist die 
Sprungantwort auf die Pumpendrehzal. Man könnte auch anstelle von der 
Drehzal die Frequenz von einem Umrichter umschalten.
Wie lange braucht der Zylinder bis er ganz ausgefahren ist?

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Ach sry, ne ist kein proportionalventil, es wird elektrisch mit z.B.:
-10V - 0V - 10V angesteuert (wegen den 3 Stellungsarten).

Der Zylinder braucht max. 1 sek. bei voller Leistung der Pumpe.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Aja und der Zylinder hat auch einen Positionsgeber.
Dies kann man sich auch aufzeichnen lassen wo sich der Zylinder gerade 
befindet.
Die Drücke können Pumpen-Seitig und Zylinder-Seitig (beidseitig) 
aufgezeichnet werden.

von netseal (Gast)


Lesenswert?

Also, ehrlich gesagt, würde ich da nur ein Überdruckventil zu 
Druckbegrenzung einsetzen, dann eine Pumpe mit dem richtigen Volumen. Da 
gibt es nichts zu regeln. Wenns besonders energiesparend sein soll, so 
müsste man hier eine verstellbare Pumpe einsetzen. Ich bin zwar kein 
Hydraulikspezialist, aber nach allem was ich kenne, macht man soetwas 
nicht.
Haben deine Auftraggeber eine Vorstellung von Hydraulik?

von Dominik Z. (Firma: B&R) (dominikz)


Angehängte Dateien:

Lesenswert?

Ich hab mal versucht das Überblickhalber nachzuzeichnen -> Anhang.

Lg.
Dominik

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Die Regelung ist nur wegen Energieeffizienz und der Stabilisation des 
Systems, da durch die Kräfte was auftreten ziemliche Vibrationen 
entstehen.

Mir geht es aber eh nicht um die Regelung sondern um das Model des 
Systems, da ich das nachbilden soll in z.B.: Simulink/SciLab/WinMOD.

Und dabei hab ich Probleme wie ich das machen soll, wie kann ich die 
Strecke am besten identifizieren? Und was soll ich alles identifizieren, 
sprich wo soll ich einen Sprung anlegen und welchen Wert ich aufnehmen 
soll um auf das Ergebnis zu kommen.
Der Anfang fehlt mir das ich auf meine Übertragunsfunktion des Systems 
komme.

Danke.

Lg.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

PS.: die Pumpe ist verstellbar, aber das muss ich in meinem Modell nicht 
berücksichtigen.

von netseal (Gast)


Lesenswert?

Wie schnell soll der Zylinder denn fahren?

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Die Geschwindigkeit ergibt sich doch durch die eingestellte Drehzahl 
(Fördermenge) der Pumpe. Aber laut messungen ist die max. 
Geschwindigkeit des Zylinders ca. 0,5m/s.
Für was ist das so wichtig?

Danke, lg.

von netseal (Gast)


Lesenswert?

Naja,
Wenn du eine Sprungantwort aufzeichnen willst, brauchst du etwas mehr 
Zeit. Ich denke, bei Aufschaltung des Sprunges wird das System ein wenig 
Zeit brauchen um auszupendeln. 1s ist ein bisschen wenig.

Du kannst die Zeitkonstante (fin -> p) aus der Rotationsmasse 
herausziehen (in guter Näherung).
Die Verstärkung (fin -> p) müsstest du in zwei Durchläufen ermitteln.
Also, welcher Druck stellt sich bei fin ein wenn der Zylinder fährt.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Zur Erklärung:

Dieses System gibt es bereits, meine Aufgabe besteht aber derin ein 
Virtuelle-Nachbildung (vereinfacht) zu erstellen.
Um das aber zu können muss ich das verhalten des System zuerst 
identifizieren und dabei hab ich meine Probleme.

lg.
Dominik

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

netseal schrieb:
> Naja,
> Wenn du eine Sprungantwort aufzeichnen willst, brauchst du etwas mehr
> Zeit. Ich denke, bei Aufschaltung des Sprunges wird das System ein wenig
> Zeit brauchen um auszupendeln. 1s ist ein bisschen wenig.
>
> Du kannst die Zeitkonstante (fin -> p) aus der Rotationsmasse
> herausziehen (in guter Näherung).
> Die Verstärkung (fin -> p) müsstest du in zwei Durchläufen ermitteln.
> Also, welcher Druck stellt sich bei fin ein wenn der Zylinder fährt.

Ok das ist kein Problem weil die Drehzahl und Druck einstellbar sind,
das heißt ich kann den Zylinder auch z.B.: 30sek. auch fahren lassen.
Würde das dann mit einem Sprung (Drehzahl erhöhen) funktionieren?

Wie meinst du das mit der Zeitkonstante (fin) ?

Ich kann die Versuche auch mehrmals durchführen da mir eine Maschine zur 
verfügungen gestellt ist mit der ich Testen kann.

Danke!

von netseal (Gast)


Lesenswert?

Um eine Sprungantwort aufzunehmen
müsste man den Druck aufzeichnen. Die Pumpe läuft mit n1. Wenn der Druck
stationär wird, wird der Motor auf n2 hochgeschaltet. Voila, da ist die
Sprungantwort auf die Pumpendrehzal. Man könnte auch anstelle von der
Drehzal die Frequenz von einem Umrichter umschalten. Dies muss alles 
passieren während der Zylinder Kunststoff fördert(also in Bewegung ist).



>> Du kannst die Zeitkonstante (fin -> p) aus der Rotationsmasse
>> herausziehen (in guter Näherung).

Mit (fin -> p) meine ich die Transferfunktion Umrichterfrequenz nach 
Druck.
Diese Zeitkonstante hängt meiner Einschätzung nach hauptsächlich von der 
Rotationsmasse (Pumpe+Rotor) ab. Dies könnte man auf jeden Fall zu 
Verifizierung des gemessenen Modells verwenden.

Also Fu mit Frequenz 1 einstellen, Motor starten. Wenn der Druck 
ausgependelt ist wird auf Frequenz 2 umgeschaltet.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Ok danke das bekomm ich hin, somit hab ich dann das Verhalten von dem 
Druckaufbau im System, ich werd das über den FU machen.
Und über den Druckverlauf hab ich auch die Kraftentwicklung des 
Zylinders, weil die Abmaße des Zylinders sind ja Konstant.

Aber brauch ich nicht noch ein 2. System für die Geschwindigkeit des 
Zylinders das ich den auch abbilden kann?
Wie soll das gehn?
Und wie verbind ich dann die 2 Systeme am besten das Sie dann als ein 
Gesamtes-System arbeitet?

Danke!

lg.

von netseal (Gast)


Lesenswert?

Na, ich denke bei der Geschwindigkeit handelt es sich ja nur um eine 
Begrenzung auf einen maximalen Wert, also keine Regelung. Und du hast ja 
auch keine Möglichkeit die Drehzahl zu messen. Das kannst du in Matlab 
mit einem Begrenzer simulieren und im echten System durch Begrenzung 
(näherungsweise) des FU.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Moin und danke für deine Hilfe!

Jetzt hab ich nur noch 1 Problem... Ok die Geschwindigkeit ist keine 
Regelung jedoch beeinflusst die Durchflussmenge die Geschwindigkeit des 
Zylinders, wie soll ich das dann in meiner Simulation integrieren?

Weil für die Aufgabe sind meine Startbedingungen ein Sollwert für Druck 
und Drehzahl der Pumpe, am ende soll der Zylinder ausfahren mit der 
entsprechenden Geschwindigkeit.

Da müsst ich vielleicht einen Geschwindigkeits-Sprung erzeugen und die 
Position des Zylinders mit verschiedenen Geschwindigkeiten aufzeichnen 
um dieses Verhalten nachzubilden oder lieg ich da falsch?

Danke!

Lg.

von netseal (Gast)


Lesenswert?

Garnicht, du hast einfach eine Frequenzbegrenzung am FU. Was du nicht 
messen kannst, kannst du auch nicht regeln.

von netseal (Gast)


Lesenswert?

Du hast ja die dann die Transferfunktion (f->p), jetzt setzt du in 
Matlab davor noch einen Saturation-Block mit den Grenzen 0 und fmax.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Ok sorry mein Fehler, ich glaub wir reden gerade bisschen überkreuz.

1.Die Pumpe wird hauptsächlich durch den Druck geregelt, also ich weiß 
immer den aktuellen Druck im System.

2.Die Drehzahl der Pumpe wird auch geregelt, d.h. ich weiß auch immer 
die aktuelle Drehzahl der Pumpe und somit die Durchflussmenge durch eine 
Berechnung.

Also es gibt 3 Fallunterscheidungen:

1. Eingestellt z.B.: p=100bar, n=25%
   Ergebnis: pSoll == pIst und nSoll == nIst

2. Eingestellt z.B.: p=100bar, n=50%
   Ergebnis: pSoll == pIst und nSoll != nIst

3. Eingestellt z.B.: p=100bar, n=10%
   Ergebnis: pSoll != pIst und nSoll == nIst

Der 3. Fall ist eher selten da der Maschinenbediener ungefähr weiß was 
er einzustellen hat um auf den Druck zu kommen.

Der 2. Fall ist mehr zutreffend da durch Umschalten des Ventils 
(Richtungswechsel des Zylinders) die Pumpe noch mehr nachfahren kann um 
die Durchflussmenge/den Druck aufrecht zu halten.

D.h. meistens tritt Fall 1 und 2 ein.

Danke!

Lg.

von netseal (Gast)


Lesenswert?

Ich denke nicht, das das so möglich ist.

Möglicherweise erreicht die Pumpe nicht den Solldruck, da der Zylinder 
keinen Widerstand erfährt.

Du könntest eine Kaskadenregelung bauen.



Psoll--|P-Regler|-|MaxN|--|N-Regler|----|Frequenz|--|Drehzahl|---|Druck| 
--
     |                   |                                     | 
|
     |                    ------------------------------------- 
|
     |------------------------------------------------------------------|

Das würde aber bedeuten, das dein Modell schon den inneren Regler 
beinhaltet.

So müsstest du den Step-Response von einem Frequenzwechsel nach der 
Drehzahl aufnehmen, dann den N-Regler implementieren und dann den 
P-Regler(Druckregler).

von netseal (Gast)


Lesenswert?

Ich denke nicht, das das so möglich ist.

Möglicherweise erreicht die Pumpe nicht den Solldruck, da der Zylinder 
keinen Widerstand erfährt.

Du könntest eine Kaskadenregelung bauen.



Psoll--|P-Regler|-|MaxN|--|N-Regler|----|Frequenz|--|Drehzahl|-|Druck|-
     |                   |                                    |       |
     |                    ------------------------------------        |
     |----------------------------------------------------------------|

Das würde aber bedeuten, das dein Modell schon den inneren Regler 
beinhaltet.

So müsstest du den Step-Response von einem Frequenzwechsel nach der 
Drehzahl aufnehmen, dann den N-Regler implementieren und dann den 
P-Regler(Druckregler).

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Ok ja versteh ich, dann danke für die Hilfe, das hat mir viel geholfen!

Schönen Tag noch!

von Entsetzter (Gast)


Lesenswert?

> Dominik Ziller (Firma: B&R)
                        ~~~~~

Sag mal, weiß das Dein Chef, dass Du hier Deine Aufgabe lösen lässt? 
Oder ist das etwa ein Kundenproblem? Na dann gute Nacht...

von amateur (Gast)


Lesenswert?

Wie vollständig soll eigentlich Deine Simulation ausfallen?
Allein zu Deinem Zylinder gehört ein ganzer Sack voll Untersysteme.
In vielen Fällen ist Dein Zylinder auch kein Zylinder sondern eine 
Mischung aus einer, von einer Heizung umgebenen, Schnecke, die aber auch 
die Funktion eines Hubzylinders übernimmt. Dieses recht komplexe System 
ist seinerseits auf einem Schlitten montiert um von der eigentlichen 
Form gelöst werden zu können. Usw. usw.

von amateur (Gast)


Lesenswert?

Bevor ich‘s noch vergesse:
In all den Spritzgussmaschinen, die ich gesehen habe wurde sehr wenig 
geregelt.
Die Hydraulik bestand aus einem Elektromotor mit angeflanschter Pumpe, 
die einen relativ großen Druckspeicher bediente. Die Druckregelung 
erfolgte durch ein einfaches Überdruckventil, welches einfach das 
überflüssige Öl in den Tank zurückleitete.
Aus Sicht der Steuerung war das ganze System eine in allen Schritten 
(zeitlich) einstellbare Ablaufsteuerung. Die Programmierkunst bestand in 
Grunde genommen darin, dem Bediener bzw. Einsteller eine möglichst 
komfortable Möglichkeit zu geben an allen Ecken und Enden Ventile zur 
Verfügung zu stellen (jedes Produkt ist anders) und diese in den Ablauf, 
vor allem zeitlich, zu integrieren.
Natürlich sind auch ein ganzer Sack voll Sicherheitsmaßnamen zu 
implementieren, da die verwendeten Drücke so groß sind, dass die 
Maschine sich selbst zerstören kann. Kochend heißes Öl soll auch dem 
Bediener nicht so gut bekommen.
Geregelt wurden nur die Heizung, die Kühlung (Form und Öl) und ein paar 
den Materialfluss betreffende Parameter. Also erstaunlich wenig.

von Dominik Z. (Firma: B&R) (dominikz)


Lesenswert?

Entsetzter schrieb:
> Sag mal, weiß das Dein Chef, dass Du hier Deine Aufgabe lösen lässt?
> Oder ist das etwa ein Kundenproblem? Na dann gute Nacht...

Moin.

Nein weiß er nicht, aber meine Aufgabe wurde auch nicht gelöst, ich habe 
lediglich einen Denkanstoß bekommen wie ich das System richtig 
betrachten soll. Und das war auch der Sinn der sache warum ich hier 
gefragt hab.
Nur als Beispiel, aber dann dürfte ich meinen Professor auch nichts 
Fragen.

Danke nochmal und lg.

PS.: für mich ist das Thema geschlossen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.