Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Όγκος υγρού σε οριζόντια κυλινδρική δεξαμενή (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/957-ogkos-ygroi-se-orizontia-kylindriki-deksameni.html)

kapetang 02-02-11 08:47

Όγκος υγρού σε οριζόντια κυλινδρική δεξαμενή
 
1 Συνημμένο(α)
Καλημέρα στην παρέα

Στο αρχείο, που επισυνάπτεται, υπολογίζεται ο όγκος του υγρού (πετρελαίου), συναρτήσει του ύψους, σε μία οριζόντια κυλινδρική δεξαμενή με πλευρικά πέρατα επίπεδα ή σφαιρικά.
Στο πρώτο φύλλο (Help) παρουσιάζεται η θεωρία στην οποία βασίζεται ο υπολογισμός. Όπως εξηγείται, για τον υπολογισμό του όγκου στα σφαιρικά τμήματα, χρησιμοποιείται μία προσεγγιστική μέθοδος που υλοποιήθηκε με VBA.
Αν και η εφαρμογή δημιουργήθηκε για να βοηθήσει ένα φίλο στην παραλαβή πετρελαίου, θεώρησα σκόπιμο να την παρουσιάσω στο φόρουμ:
  1. Για έλεγχο και βελτίωση. Στο φόρουμ υπάρχουν προικισμένα μέλη και ίσως θα μπορούσε να προταθεί ένας ακριβής τύπος, αντί της προσεγγιστικής μεθόδου.
  2. Πιθανόν να φανεί χρήσιμη και σε άλλους.
Για τη χρήση της εφαρμογής, επειδή χρησιμοποιείται κώδικας, θα πρέπει να είναι ενεργοποιημένες οι μακροεντολές.

Φιλικά/Γιώργος

Tasos 02-02-11 11:46

Καλημέρα Γιώργο μου!

Σε 3 κελιά ορίζω τα ονόματα:
  1. Ακτίνα κυλίνδρου (Rk) = "R_Cyl" (m)
  2. Μήκος κυλίνδρου (L) = "L_Cyl" (m)
  3. Ύψος περιεχόμενου υγρού (H) = "H_Cyl" (m)

Με τον παρακάτω τύπο νομίζω ότι φτάνω σε σωστό αποτέλεσμα:
Κώδικας:

=IF(H_Cyl=2*R_Cyl;PI()*R_Cyl^2*L_Cyl;IF(AND(H_Cyl<2*R_Cyl;H_Cyl>R_Cyl);PI()*R_Cyl^2*L_Cyl-(2*R_Cyl-H_Cyl)/(
12*SQRT(R_Cyl^2-(R_Cyl-(2*R_Cyl-H_Cyl))^2))*(3*(2*R_Cyl-H_Cyl)^2+4*(2*SQRT(R_Cyl^2-(R_Cyl-(2*R_Cyl-H_Cyl)
)^2))^2)*L_Cyl;IF(AND(H_Cyl<=R_Cyl;H_Cyl>0);H_Cyl/(12*SQRT(R_Cyl^2-(R_Cyl-H_Cyl)^2))*(3*H_Cyl^2+4*(2*
SQRT(R_Cyl^2-(R_Cyl-H_Cyl)^2))^2)*L_Cyl;"Έχουμε υπερχείλιση!")))

Τώρα όποιος θέλει μπορεί να προσθέσει και το Μήκος πλευρικού σφαιρικού τμήματος (P).:huh:

Δες το αν θέλεις κι εσύ γιατί λόγω φόρτου εργασίας δεν μπόρεσα να το τεστάρω αρκετά.

Τα λέμε..

Τάσος

kapetang 02-02-11 15:35

Καλημέρα στην παρέα

Τάσο μου, δοκίμασα τον τύπο με δεδομένα: R_Cyl=1, L_Cyl=3 και H_Cyl=1 και έδωσε αποτέλεσμα: 4,75.
Επειδή η διατομή του υγρού (μ’ αυτά τα δεδομένα) είναι ημικύκλιο με μοναδιαία ακτίνα, ο σωστός όγκος είναι: (Pi()/2)*3 = 4,71238898 ≠ 4,75.

Φιλικά/Γιώργος

gr8styl 02-02-11 22:00

Καλησπέρα σας,
φίλε Γιώργο οι τύποι που χρησιμοποιείς για τον υπολογισμό του κυλίνδρου για μένα είναι οι ΣΩΣΤΟΙ σε αντίθεση με τον Τάσο που μπερδεύτηκε.

Τώρα για τα σφαιρικά πλευρικά χρειάζεται σκέψη. γιατί μπορεί να μην είναι απολύτως σφαιρικά αλλά ελλειψοειδή, και εκεί τα πράγματα είναι πολύ δύσκολα .

Θα το δω μόλις μπορέσω και θα σου πω αν βρω κάτι.
Θανάσης.
ΥΓ. Μπράβο πολύ ενδιαφέρον το θέμα σου.

Tasos 03-02-11 00:51

1 Συνημμένο(α)
Καλημέρα φίλοι μου!
Πραγματικά μπερδεύτηκα και έκανα τα εύκολα δύσκολα!:pchit:


Αναθεώρησα λοιπόν και κατέληξα στο εξής:

Ονόματα κελιών:
  1. Ακτίνα κυλίνδρου (Rk) = "R_Cyl" (Εισαγωγή σε cm)
  2. Μήκος κυλίνδρου (L) = "L_Cyl" (Εισαγωγή σε cm)
  3. Ύψος περιεχόμενου υγρού (H) = "H_Cyl" (Εισαγωγή σε cm)

Κώδικας:

=IF(AND(h_Cyl<=R_Cyl;h_Cyl>0);POWER(R_Cyl;2)*L_Cyl*(ACOS((R_Cyl-h_Cyl)/R_Cyl)-
(R_Cyl-h_Cyl)*SQRT(2*R_Cyl)/POWER(R_Cyl;2))/1000;"Λάθος δεδομένα!!")

Μπορείτε να δείτε το αποτέλεσμα στο συνημμένο.

Φιλικά

Τάσος

kapetang 03-02-11 16:10

1 Συνημμένο(α)
Καλησπέρα στην παρέα
Φίλε Τάσο, δοκίμασα τον τύπο που δίνει τον όγκο του υγρού στον κύλινδρο και διαπίστωσα τα εξής:
  1. Ενώ το ύψος του υγρού (h_Cyl) μπορεί να κυμαίνεται από μηδέν (άδεια δεξαμενή) μέχρι το διπλάσιο της ακτίνας (γεμάτη δεξαμενή), ο τύπος δίνει αποτελέσματα μόνο όταν h_Cyl ≤ R_Cyl (μισογεμάτη δεξαμενή).
  2. Τα αποτελέσματα έχουν αποκλίσεις από τα σωστά.
Στο αρχείο που επισυνάπτω φαίνεται, πως κατά τη γνώμη μου, θα πρέπει να διαμορφωθεί ο τύπος.
Φίλε Θανάση σ’ ευχαριστώ και για τα καλά λόγια και τον έλεγχο των τύπων.
Περιμένω, όταν βρεθεί χρόνος και έμνευση, τις απόψεις σας και για τον όγκο στα σφαιρικά τμήματα.

Γιώργος

Tasos 03-02-11 17:06

Καλησπέρα σε όλους!

Γιώργο μου σ ευχαριστώ για τη διόρθωση!

Είναι τέλειο!

Νάσαι καλά και να μα βάζεις τακτικά τέτοιες... σπαζοκεφαλιές!


Φιλικά
Τάσος

gr8styl 05-02-11 15:47

1 Συνημμένο(α)
Καλημέρα καλησπέρα σας.

Στο συνημμένο και η δική μου προσέγγιση η οποία όσον αφορά την δεξαμενή με επίπεδα πλαϊνά είναι ίδια με τα δικά σας.

Δείτε το και σχολιάστε το.

Θανάσης

Tasos 05-02-11 16:42

1 Συνημμένο(α)
Καλησπέρα και πάλι!
Δείτε στο συνημμένο 2 προσεγγίσεις ( VBA και Excel) για την εύρεση όγκου σε οριζόντια κυλινδρική δεξαμενή με επίπεδες ή ελλειψοειδείς βάσεις.

Τα αποτελέσματα που επιστρέφουν, συμφωνούν μ αυτά της ιστοσελίδας: Horizontal Tank - Fluid Volume

Φιλικά

Τάσος

kapetang 05-02-11 21:25

Φίλε Θανάση Καλησπέρα

Σχετικά με την εφαρμογή σου:
1). Βρίσκω καταπληκτικό το περιβάλλον εργασίας (σχέδια, επεξηγήσεις, κλπ).
2). Οι τύποι που χρησιμοποιείς είναι σωστοί.
3). Ειδικά ο τύπος για τον προσδιορισμό του όγκου του σφαιρικού τμήματος και οι διαφορές που έδινε σε σχέση με την προσεγγιστική μέθοδο, με βοήθησαν να ανακαλύψω ότι στη συνάρτηση mesoL(R_Cyl, h_Cyl, P_Cyl) στη θέση της παραμέτρου h_Cyl περνούσε το L_Cyl.
Έκανα τη σχετική διόρθωση και αντικατέστησα το συνημμένο στο αρχικό μήνυμά μου.
4). Για την περίπτωση Rs>Rk θεώρησε ως δεδομένο ότι τα πλευρικά πέρατα της δεξαμενής είναι απολύτως σφαιρικά (χωρίς καμία προσαρμογή) ακτίνας Rs=(Rk^2+P^2)/(2P) και το κέντρο βρίσκεται στον άξονα του κυλίνδρου.
Προσπάθησα χρησιμοποιώντας και ολοκληρώματα (ότι θυμόμουνα) να βρω κάποιο τύπο που να δίνει τον ακριβή όγκο στα σφαιρικά τμήματα, αλλά δεν τα κατάφερα και έτσι κατέφυγα στην προσεγγιστική μέθοδο.
Σ’ ευχαριστώ για το χρόνο που διέθεσες και τη βοήθεια στην αποσφαλμάτωση των υπολογισμών.

Γιώργος
ΥΓ Φίλε Τάσο μόλις δω την εφαρμογή σου θα επανέλθω


Η ώρα είναι 22:10.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2