Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Wert begrenzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Wert begrenzen (1412 mal gelesen)
stefan85r
Mitglied



Sehen Sie sich das Profil von stefan85r an!   Senden Sie eine Private Message an stefan85r  Schreiben Sie einen Gästebucheintrag für stefan85r

Beiträge: 25
Registriert: 24.11.2009

erstellt am: 06. Feb. 2013 11:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen!

ich schildere euch mal mein Problem... vielleicht kann mir ja Jemand weiterhelfen 

Es geht um Ventile, die sich bis zu einer maximalen Höhe (mechanischer Anschlag) öffnen lassen und ein Luftvolumen in Abhängigkeit vom Luftdruck und der öffnungshöhe ins freie lassen.
Dazu habe ich ein Makro geschrieben... funktioniert auch alles wunderbar.
Gegeben wird der Luftdruck und das zu entweichende Luftvolumen.
Jedoch kann ich die maximale öffnungshöhe nicht definieren. Sprich, es werden alle Werte berechnet (öffnungshöhe und austretendes Luftvolumen pro Ventil) für Höhen bis ins unendliche.

Besteht die Möglichkeit, dass man eine maximale Höhe (z.B. 100 mm) der Ventile setzen kann?

Beispiel:
- Alle Ventile können gleichweit öffnen
- Luftdrücke für die einzelnen Ventile sind gegeben (alle unterschiedlich)
- zu entweichendes Luftvolumen ist gegeben

- Wieviele Ventile brauche ich, um das gegebene Luftvolumen entweichen zu können

Kann man dies via VBA programmieren? Wenn ja, wie könnte sowas aussehen?

Vielen Dank 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

skyzem
Mitglied



Sehen Sie sich das Profil von skyzem an!   Senden Sie eine Private Message an skyzem  Schreiben Sie einen Gästebucheintrag für skyzem

Beiträge: 400
Registriert: 30.08.2006

Win 7 Enterprise x64
Cornerstone 5.3.0.5
Minitab 16.2.1.0
Excel 2010
Notepad++ 6.3.1
Putty 0.63
Calc.exe

erstellt am: 06. Feb. 2013 12:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für stefan85r 10 Unities + Antwort hilfreich

Hallo! :-)

Ohne deinen Code zu sehen ist es eher schwierig zu verstehen wo man ansetzen könnte.

if h_max > 100 then h_max = 100

Wäre z.B. ein Ansatz.

Gruss
skyzem

------------------
MfG skyzem

Wir mögen Menschen, die frisch heraus sagen, was sie denken - falls sie dasselbe denken wie wir.

[Diese Nachricht wurde von skyzem am 06. Feb. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 06. Feb. 2013 13:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für stefan85r 10 Unities + Antwort hilfreich

Hi,

kann man (bestimmt). Verstehe ich das richtig: Der Luftstrom, der je Ventil entweichen kann, hängt (u. a.) von der Öffnungshöhe des Ventils ab? Und weiter: Die Öffnungshöhe ist (auf z. B. 100) begrenzt?

Dann hast Du's doch fast schon: Wenn der Luftstrom durch Anzahl=n maximal geöffnete Ventile nicht entweichen kann, dann mach' n+1. Klingt nach 'ner Schleife. Da Du mindestens ein Ventil immer benötigen wirst, würde sich ein Do... While anbieten?

Ansonsten bitte Code - zumindest in Ausschnitten - posten :-).

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

stefan85r
Mitglied



Sehen Sie sich das Profil von stefan85r an!   Senden Sie eine Private Message an stefan85r  Schreiben Sie einen Gästebucheintrag für stefan85r

Beiträge: 25
Registriert: 24.11.2009

erstellt am: 06. Feb. 2013 16:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Schonmal vielen Dank für Eure Hilfe!

Hier ein kleiner Ausschnitt:

h_1, h_2,... sind die öffnungshöhen der Ventile, die berechnet werden (max. 100 mm)
Q_1, Q_2,... sind die Luftmengen, die bei der jeweiligen öffnungshöhe entweichen können

Druck je ventil und gesamtes Luftvolumen werden vorgegeben (Ergebnisse aus CFD-Rechnungen)
Das Ventil mit dem niedrigsten öffnungsdruck öffnet natürlich zuerst,...

VBA:
If Ventil = 1 Then
While erreur > 0.000001

    h_1_1 = (h_1_2 + h_1_0) / 2
    h_1 = (h_1_0 + h_1_2) / 2
    'h_2 = K * h_1
    'h_3 = (Delta_P3 / Delta_P1) * h_1 'neu
    'h_4 = (Delta_P4 / Delta_P1) * h_1 'neu
   
    rh_1 = h_1 * Sin(alpha) / d_ventil
    'rh_2 = h_2 * Sin(alpha) / d_ventil
    'rh_3 = h_3 * Sin(alpha) / d_ventil 'neu
    'rh_4 = h_4 * Sin(alpha) / d_ventil 'neu
   
      If rh_1 < 0.13 Then
      S_h1 = ...
        Else
        S_h1 = ...
        End If

'        If rh_2 < 0.13 Then
'        S_h2 = ...
'        Else
'        S_h2 = ...
'        End If

'      If rh_3 < 0.13 Then 'neu
'      S_h3 = ...
'        Else 'neu
'        S_h3 = ...
'        End If 'neu
     
'      If rh_4 < 0.13 Then 'neu
'      S_h4 = ...
'        Else 'neu
'        S_h4 = ...
'        End If 'neu
   
   
    rho_HF = ...
    P_0_HF_1_prim = P_max
'    P_0_HF_2_prim = P_max
'    P_0_HF_3_prim = P_max 'neu
'    P_0_HF_4_prim = P_max 'neu
    rho_0_HF_1 = rho_HF
'    rho_0_HF_2 = rho_HF
'    rho_0_HF_3 = rho_HF 'neu
'    rho_0_HF_4 = rho_HF 'neu


    erreur_1 = 1
'    erreur_2 = 1
'    erreur_3 = 1 'neu
'    erreur_4 = 1 'neu
    P_lim = ...

    While (erreur_1 > 0.000001)
        P_0_HF_1 = P_0_HF_1_prim

            If P_0_HF_1 < P_lim Then
            v_1 = ...Geschwindigkeit austretende Luft
            Else
            v_1 = ...Geschwindigkeit austretende Luft
            End If
       
                                         
        Q_1 = ...
        v_S_1 = ...
        T_0_HF_1 = ...
        P_0_HF_1_prim = ...
        rho_0_HF_1 = ...
        erreur_1 = ...
    Wend

  Q_tot = Q_1 '+ Q_2 + Q_3 + Q_4 'neu
    erreur = Abs((Q_0 - Q_tot) / Q_0)

    If Q_tot > Q_0 Then
    h_1_2 = h_1_1
    Else
    h_1_0 = h_1_1
    End If
Wend


Range("h_11").Value = 1000 * h_1
'Range("h_22").Value = 1000 * h_2
'Range("h_33").Value = 1000 * h_3 'neu
'Range("h_44").Value = 1000 * h_4 'neu
'h_3 = Delta_P3 / Delta_P1 * h_1
'h_4 = Delta_P4 / Delta_P1 * h_1
'Range("h_3").Value = h_3 * 1000
'Range("h_4").Value = h_4 * 1000
Range("Q_1").Value = Q_1
'Range("Q_2").Value = Q_2
'Range("Q_3").Value = Q_3 'neu
'Range("Q_4").Value = Q_4 'neu


ElseIf Ventil = 2 Then
...
...
...
Else Ventil = 4 Then
End If

Danke 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 11. Feb. 2013 12:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für stefan85r 10 Unities + Antwort hilfreich

Hi,

OT: Sorry, war unterwegs...

da ist ja schon reichlich Hirnschmalz eingeflossen  - wobei ich die Schnipsel doch ein wenig unübersichtlich finde...

Zurück zur Eingangsfrage: Wo genau hakt es, und was hast Du vor?

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

stefan85r
Mitglied



Sehen Sie sich das Profil von stefan85r an!   Senden Sie eine Private Message an stefan85r  Schreiben Sie einen Gästebucheintrag für stefan85r

Beiträge: 25
Registriert: 24.11.2009

erstellt am: 11. Feb. 2013 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Kein Problem.

Leider jedoch kein Hirnschmalz von mir :-D

Also es handelt sich hierbei um grosse Sicherheitsventile 
Bis zu vier Stück können installiert werden.

Vorgegeben werden die Drücke, bei denen die Ventile im Notfall öffnen sollen (z.B.: p1=3bar, p2=3.2bar, p3=3.4bar, p4=3.6bar)
Ausserdem auch noch das Luftvolumen, was im Notfall entweichen muss (z.B.: Q_tot=400000 m^3/h)

Das Programm soll jetzt ausspucken, wie viele Ventile ich denn midestens brauche, um das gesamte Luftvolumen abzulassen.
Die Ventile haben einen mechanischen Anschlag und können nur bis zu einer gewissen Höhe h öffnen.

In diesem Fall hier ist klar, das Ventil 1 zuerst öffnen wird (niedrigster Druck).. Das Programm rechnet schon den Druckverlust usw mit ein..

Es fehlt lediglich nur, dass man die öffnungshöhe begrenzen kann... und das Programm weitergibt, wie viel Luftvolumen bei der maximalen höhe ausgeben kann
und den "Rest-Wert" auf die anderen Ventile verteilen muss.
Das auch wieder in Abhängigkeit des öffnungsdruckes...

Ich hoffe , ich konnte das jetzt etwas verständlich beschreiben?! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 12. Feb. 2013 16:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für stefan85r 10 Unities + Antwort hilfreich

Zitat:
Leider jedoch kein Hirnschmalz von mir :-D
Na, dann frag' Deinen Kollegen, der's geschrieben hat  - fertig bauen werde ich Dir das Programm sicher nicht.

Die Logik raffe ich noch nicht so ganz. Einige Beispiele:
Druck = 2,5 bar --> V1 öffnet
Druck = 3,5 bar --> mehrere Möglichkeiten, nämlich
a) V1 öffnet und entlässt 3 bar, verbleiben 0,5 bar --> V2 öffnet -ODER-
b) V4 öffnet?

Wenn Du die Öffnungshöhe begrenzen willst, dann ist das (je Ventil) ein Eingabeparameter in die Routine, á la Hoehe_V_1 = Range("H_V_1"), wobei sich der Text innerhalb der "" in der Klammer auf einen benannten Bereich in Excel bezieht. In Excel helfen F3 und Strg+F3.

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

stefan85r
Mitglied



Sehen Sie sich das Profil von stefan85r an!   Senden Sie eine Private Message an stefan85r  Schreiben Sie einen Gästebucheintrag für stefan85r

Beiträge: 25
Registriert: 24.11.2009

erstellt am: 13. Feb. 2013 07:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Wenn ich die Möglichkeit hätte, würde ich diese fragen...

Ausserdem erwarte ich hier nicht, dass jemand das Programm zuende schreibt.

Das ist alles miteinander verknüpft. Alle Ventile sind an einem Behälter installiet.
Ergebnisse aus numerischen Analysen (Kräfte und Durchfluss bei verschiedenen öffnungshöhen und Drücken) wurden in Tabellen erfasst..
Aus diesen Werten werden die Ergebnisse zu den Eingabewerten ermittelt.

Es geht lediglich darum, die öffnungshöhe bei einer gewissen höhe abzuriegeln.

Ich werde es mal mit deinem Tipp versuchen, danke!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz