Εργασία για το Σπίτι (2019-20-Ε1) Προκαταρκτικός Σχεδιασμός Υπερηχητικού Αεροσκάφους Μέθοδος: Εξελικτικοί Αλγόριθμοι Καλείστε να σχεδιάσετε ένα δικινητήριο υπερηχητικό αεροσκάφος (Α/Φ) με σκοπό να επιλεγούν βασικές παράμετροι (αφενός λειτουργικές και αφετέρου γεωμετρικές) που να οδηγούν στην επίτευξη ενός ή περισσοτέρων (κατά περίπτωση) στόχων με την ταυτόχρονη ικανοποίηση των περιορισμών (όπου και αν υπάρχουν). Οτιδήποτε δεν αποτελεί μεταβλητή σχεδιασμού (ελεύθερη μεταβλητή του προβλήματος) θεωρείται σταθερό και αμετάβλητο. Δεν δίνονται αυτές οι τιμές, επιθυμώντας να κρατηθεί το πρόβλημα στο επίπεδο μιας γενικής άσκησης βελτιστοποίησης και να μην γίνει ένα εξειδικευμένο θέμα μόνο για αεροναυπηγούς. Ο σχεδιασμός βασίζεται σε εξισώσεις και εμπειρικές σχέσεις που διδάσκονται οι Μηχανολόγοι στα βασικά τους μαθήματα. Όσες από αυτές τις εξισώσεις χρειάζονται ώστε να μπορούν να ερμηνευθούν τα αποτελέσματα της βελτιστοποίησης αναφέρονται αναγράφονται και εξηγούνται ή απλά σχολιάζεται από το τι εξαρτώνται, στα επόμενα. Οι έξι (6) ποσότητες που χρησιμοποιούνται άλλοτε ως στόχοι και άλλοτε ως περιορισμοί, είναι οι εξής: Το βεληνεκές (R) πτήσης του Α/Φ Ο συντελεστής οπισθέλκουσας (C D ) του Α/Φ Το μήκος (L 1 ) του απαιτούμενου διαδρόμου απογείωσης Το μήκος (L 2 ) του απαιτούμενου διαδρόμου προσγείωσης Το βάρος ατράκτου (W fus ) Το βάρος απογείωσης (TOW) R, σε km CD, καθαρός αριθμός L1, σε m L2, σε m WFUS, σε kg TOW, σε kg Οι επτά (7) ποσότητες που αποτελούν μεταβλητές του σχεδιασμού (άρα, κάθε βέλτιστη λύση που θα προτείνετε πρέπει να συνοδεύεται από έναν πίνακα με τις αντίστοιχες τιμές αυτών των 7 ποσοτήτων) παρατίθενται στη συνέχεια: Το βάρος καυσίμου (W fuel ) κατά την απογείωση WFUEL, σε kg Η διάμετρος της ατράκτου (D fus ) DFUS, σε m Το εμβαδόν της πτέρυγας (S wing, είναι το εμβαδόν της κάτοψης και των δύο τμημάτων της πτέρυγας μαζί) SWING, σε m 2 Η γωνία οπισθόκλισης (a LE ) στην ακμή πρόσπτωσης της (οπισθοκλινούς) πτέρυγας (βλέπε σχήμα) ALE, σε μοίρες Ο λόγος της χορδής στο ακροπτερύγιο (C tip ) προς τη χορδή στη «ρίζα» CTCR, καθαρός (επίπεδο συμμετρίας) (C root ) της πτέρυγας. αριθμός Η γωνία οπισθόκλισης (a TE ) στην ακμή εκφυγής της (οπισθοκλινούς) ΑTE, σε μοίρες πτέρυγας (βλέπε σχήμα) Ο λόγος του βάρους προσγείωσης προς το βάρος απογείωσης του Α/Φ RATWEI, καθαρός αριθμός ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 1/6
Επιλεγμένα Στοιχεία θεωρίας: Η εξίσωση του Breguet που δίνει το βεληνεκές ενός Α/Φ γράφεται ως εξής: V C L W start R ln g sfc C D W end όπου: R (m) είναι το βεληνεκές πτήσης V (m/s) είναι η ταχύτητα πτήσης που καθορίζεται από τον αριθμό Mach (εδώ 1.3) και το υψόμετρο της πτήσης (εδώ, αυτό είναι επίσης σταθερό και, προφανώς, καθορίζει την ταχύτητα του ήχου) g (m/s 2 ) είναι η επιτάχυνση της βαρύτητας sfc (kg/n/s) είναι η ειδική κατανάλωση καυσίμου που και αυτή καθορίζεται από τον αριθμό Mach και το υψόμετρο της πτήσης C L /C D είναι ο λόγος των συντελεστών άνωσης και οπισθέλκουσας που, μεταξύ άλλων, σχετίζεται με την (άγνωστη, εδώ) γεωμετρία της πτέρυγας. Η συσχέτιση είναι εμπειρική και προγραμματισμένη στο λογισμικό που σας δίνεται W start (kg) είναι το βάρος του Α/Φ κατά την έναρξη της ευθείας πτήσης, που είναι ένα σταθερό ποσοστό (λ.χ. 95%) του βάρους απογείωσης W end (kg) είναι το βάρος του Α/Φ κατά το τέλος της ευθείας πτήσης, που εξαρτάται, μεταξύ άλλων, από το βάρους καυσίμου κατά την απογείωση. Μεταξύ άλλων, το λογισμικό που δίνεται, περιέχει εμπειρικές σχέσεις για: Μοντέλο ατμόσφαιρας. Μοντέλο κινητήρα (ώση, βάρος, βασική γεωμετρία). Τρόπο υπολογισμού επιμέρους βαρών (πτέρυγας που συναρτάται της γεωμετρίας της, ουραίου τμήματος, ατράκτου, κλπ). Μοντέλο αεροδυναμικής ανάλυσης (εμπειρικές σχέσεις για τους συντελεστές άνωσης και οπισθέλκουσας, συναρτήσει της γεωμετρίας της πτέρυγας και της ταχύτητας πτήσης). Λάβετε υπόψη σας ότι στην παρούσα εφαρμογή: Η αεροτομή της πτέρυγας θεωρείται γνωστή και δεν μεταβάλλεται κατά τη βελτιστοποίηση. Το ουραίο πτερύγιο του Α/Φ είναι σταθερό. Η άτρακτος έχει απλό κυλινδρικό σχήμα, στο βασικό της μήκος. Το μήκος της αυξομειώνεται όσο αυξομειώνεται το βάρος του καυσίμου (θεωρείται ότι το καύσιμο καταλαμβάνει τμήμα της ατράκτου). ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 2/6
Γεωμετρία της Οπισθοκλινούς Πτέρυγας: C tip a LE a TE C root Συνεργασία του Εξελικτικού Αλγορίθμου με το Λογισμικό Αξιολόγησης: Αποκτάτε πρόσβαση στο λογισμικό EASY (Evolutionary Algorithm SYstem) που έχει αναπτυχθεί από τη Μονάδα Παράλληλης Υπολογιστικής Ρευστοδυναμικής & Βελτιστοποίησης του ΕΜΠ. Στο αρχείο δεδομένων καθορίζετε τις παραμέτρους του ΕΑ, τα όρια των μεταβλητών σχεδιασμού και τον τρόπο κωδικοποίησης (λ.χ. δυαδική κωδικοποίηση, αριθμό bits για την κάθε μεταβλητή, κλπ). Η επικοινωνία του EA με το λογισμικό αξιολόγησης (κώδικας supercraft.exe, μεταφρασμένος για Windows) είναι απλή. Για κάθε υποψήφια λύση που πρέπει να αξιολογηθεί (σε οποιαδήποτε γενιά), ο EASY δημιουργεί το αρχείο task.dat. Αυτό έχει στην πρώτη γραμμή του το πλήθος των μεταβλητών σχεδιασμού και ακολουθούν τόσες γραμμές όσες ο ακέραιος αυτός, καθεμιά με την τιμή της αντίστοιχης μεταβλητής (εννοείται με τη σειρά που αυτές δόθηκαν στο αρχείο δεδομένων του EASY). Αν εκεί κάποια μεταβλητή δόθηκε με μηδενικό αριθμό bits (αυτό σημαίνει ότι έχει σταθερή τιμή, αυτήν του κάτω ορίου της που ορίσθηκε από το χρήστη) τότε η τιμή αυτή προφανώς περιέχεται και στο αρχείο task.dat, γιατί αναγκαστικά πρέπει να την πληροφορηθεί και να τη χρησιμοποιήσει το λογισμικό αξιολόγησης. Για παράδειγμα, αν έχει σχηματισθεί (μέσω εφαρμογής των εξελικτικών τελεστών), σε κάποια γενιά, η λύση που περιγράφεται από τις τιμές WFUEL=31000 kg, DFUS=2.0 m, SWING=110.0 m 2, ALE=65.0 ο, CTCR=0.056, ΑTE=22.0 ο, RATWEI=0.79, τότε το αντίστοιχο αρχείο task.dat θα έχει τη μορφή που φαίνεται δίπλα. 7 31000. 2.0 110.0 65. 0.056 22 0.79 ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 3/6
Στη συνέχεια, ο EASY τρέχει ένα αρχείο εντολών που ο χρήστης έχει δημιουργήσει και που ονομάζεται task.bat. Το αρχείο αυτό, στο πρόβλημα @echo off μας, έχει τη δίπλα μορφή. erase results.dat Η πρώτη γραμμή αποτρέπει την «ενόχληση» της οθόνης supercraft.exe >nul μας με το αποτέλεσμα των κλήσεων που ακολουθούν. Η postprocessor.exe >nul δεύτερη γραμμή μπήκε για να σβήσει το προηγούμενο αρχείο results.dat που δημιούργησε το εκτελέσιμο supercraft.exe, την προηγούμενη φορά που εκτελέστηκε. Έτσι, αν τώρα αποτύχει, να μην χρησιμοποιήσει λάθος (προηγούμενο) αρχείο αποτελεσμάτων και μπερδευτούν λύσεις και αποτελέσματα. Είστε υποχρεωμένοι, πάντα, να σβήνετε τα αποτελέσματα-αρχεία που θα βγάλει ο κώδικας αξιολόγησης που ακολουθεί. Η σύνταξη κώδικας.exe>nul σημαίνει να χρησιμοποιηθεί ως τυπική έξοδος του προγράμματος τα προσωρινό αρχείο nul (το οποίο σβήνεται με το τέλος της εντολής ενώ κατά την εκτέλεσή της δεν εμφανίζει αποτελέσματα στην οθόνη του χρήστη. Προσοχή: Το αρχείο supercraft.exe είναι έτοιμο για να το χρησιμοποιήσετε ως προς την είσοδο που λαμβάνει αλλά όχι ως προς την έξοδό του (εκεί μπορείτε να έχετε ευελιξία). Συγκεκριμένα, ως δεδομένο χρησιμοποιεί ένα αρχείο task.dat όπως ορίσθηκε προηγουμένως. Το αποτέλεσμα της ανάλυσης είναι το αρχείο results.dat με την παρακάτω δομή: ============= Engine Characteristics ============= 2.80082518210865731E-005 SFC [kg/n/s] 37133.652352545629 Thrust / engine [N] ==================== Geometry ==================== 28.905179279621805 Fuselage Length [m] 15.033003932030260 Wing span [m] 13.858396783190170 Wing root chord [m] ===================== Weights ==================== 31000.000000000000 Fuel Weight [kg] 5539.5454051414972 Wing Weight [kg] 311.94800705026807 Tail Weight [kg] 3361.1299741849280 Fuselage Weight [kg] 2599.8532351261101 Landing Gear Weight [kg] 4317.6305777284642 Propulsion System Weight [kg] 13549.376249285968 Other Weights [kg] 33996.330878152752 Zero Fuel Weight [kg] 64997.046280645991 Take Off Weight [kg] =================== Performance ================== 6287.5590900816351 Range [km] 3231.0122872803086 L1: Take-off Length [m] 2348.9285703588325 L2: Landing Length [m] 5.54826697328848900E-002 Cd: Drag Coefficient Ξέρετε λ.χ. ότι αν χρειαστείτε το μήκος απογείωσης θα το διαβάσετε από την 20ή γραμμή του αρχείου. Το σημαντικό είναι ότι ο EASY «περιμένει» ως «επιστροφή» ένα αρχείο που λέγεται task.res (έχει τόσες γραμμές όσοι οι στόχοι, δεν έχει επικεφαλίδα με το ακέραιο πλήθος τους, δεν την χρειάζεται, ο EASY γνωρίζει πόσοι είναι οι στόχοι). Για παράδειγμα, αν είχαμε δύο στόχους, μέγιστο βεληνεκές και ελάχιστο μήκος διαδρόμου απογείωσης, το -6287.5590900816351 3231.0122872803086 task.res πιθανόν να είχε τη δίπλα μορφή (το «μείον» στον πρώτο στόχο τίθεται γιατί ο EASY ελαχιστοποιεί, δεν μεγιστοποιεί, συναρτήσεις!!!). ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 4/6
Επίσης, ο EASY χρειάζεται και ένα δεύτερο αρχείο, το task.cns (εκ του «constraints») μόνο όμως στην περίπτωση που το πρόβλημα έχει περιορισμούς. Αυτό το αρχείο έχει τόσες γραμμές όσοι είναι οι περιορισμοί, κάθε γραμμή έχει την τιμή της συνάρτησης περιορισμού (που πρέπει να κρατηθεί μικρότερη από ένα όριο που έδωσε ο χρήστης). Αν λ.χ. στο πρόβλημά μας, έχουμε δύο περιορισμούς (λ.χ. η ώση-thrust να είναι μικρότερη από ένα όριο και το μήκος του διαδρόμου προσγείωσης να είναι μικρότερο από ένα όριο) τότε το αρχείο task.cns θα είχε τη μορφή που δίνεται δίπλα. 37133.652352545629 2348.9285703588325 Με βάση τα προηγούμενα, ο σπουδαστής οφείλει απλά να γράψει έναν κώδικα (postprocessor.for, ακολουθεί δείγμα σε Fortran 77 - δείτε επίσης ότι αυτό καλείται μέσα από το task.bat ως τελευταία εντολή) που να δημιουργεί τα αρχεία task.res (υποχρεωτικά) και task.cns (αν χρειάζεται). Στο παραπάνω εικονικό παράδειγμα, ο κώδικας αυτός θα είχε τη δίπλα μορφή. Μπορείτε να τον αλλάξετε ώστε να επιλέξει εκείνες τις ποσότητες τις οποίες θέλετε να βελτιστοποιήσετε και τους κατά περίπτωση περιορισμούς. Δεν χρειάζεται να διαγράφετε τα αρχεία task.res και task.cns. Αυτό γίνεται αυτόματα από τον EASY. Παρόλα αυτά, είναι ακίνδυνο να προσθέσετε στο task.bat και αυτές τις εντολές διαγραφής. program postprocessor implicit double precision(a-h,o-z) dimension f(20) open(1,file='results.dat') do 1 i=1,2 1 read(1,*)f(i) do 2 i=3,5 2 read(1,*)f(i) do 3 i=6,14 3 read(1,*)f(i) do 4 i=15,18 4 read(1,*)f(i) close(1) open(1,file='task.res') write(1,*)-f(15)! max -> min write(1,*)f(16) close(1) open(1,file='task.cns') write(1,*)f(2) write(1,*)f(17) close(1) end Όρια Μεταβολής των Μεταβλητών Σχεδιασμού: ΜΕΤΑΒΛΗΤΗ ΣΧΕΔΙΑΣΜΟΥ & Μονάδες ΚΑΤΩ ΟΡΙΟ ΑΝΩ ΟΡΙΟ WFUEL, σε kg 20000 40000 DFUS, σε m 1.7 2.5 SWING, σε m 2 100 200 ALE, σε μοίρες 30 70 CTCR, καθαρός αριθμός 0.05 0.50 ΑTE, σε μοίρες 0 30 RATWEI, καθαρός αριθμός 0.6 0.9 ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 5/6
Είναι προφανές ότι υπάρχουν συνδυασμοί τιμών (ακόμη και μέσα στα όρια που εδώ δίνονται) για τους οποίους ο κώδικας αξιολόγησης-ανάλυσης δεν βγάζει αποτελέσματα (π.χ. μπορεί να ζητά τη ρίζα αρνητικού αριθμού, κλπ). Σε κάθε τέτοια περίπτωση, ο κώδικας αξιολόγησης που σας δίνεται δεν ολοκληρώνεται, άρα δεν βγάζει αρχείο αποτελεσμάτων. Ο ΕΑ αντιλαμβάνεται ότι δεν υπάρχει νέο αρχείο αποτελεσμάτων (προσοχή: γι αυτό σβήνουμε υποχρεωτικά το παλιό!!!) οπότε θεωρεί τη λύση μη-αποδεκτή και την τιμωρεί δίνοντας μια πολύ μεγάλη τιμή (θεωρητικά άπειρη!) στη συνάρτηση κόστους (για προβλήματα ελαχιστοποίησης). Κατάλογος Προβλημάτων που καλείστε να λύσετε: (Π1) Λύστε το πρόβλημα ελαχιστοποίησης του βάρους απογείωσης χωρίς περιορισμούς. Τo τρέξιμο να γίνει με κλασικό ΕΑ, δοκιμάζοντας 3 συνδυασμούς πληθυσμών (τιμές των μ και λ). Κάθε τρέξιμο να γίνει 3 φορές με διαφορετική γεννήτρια τυχαίων αριθμών. Παρουσιάστε συνολικά 3x3 συγκλίσεις και σχολιάστε. Κριτήριο τερματισμού, για κάθε τρέξιμο, οι 3000 αξιολογήσεις. Ένα όμως από αυτά τα τρεξίματα, αφήστε το να κάνει 10000 αξιολογήσεις. Σχολιάστε τα αποτελέσματά σας ως προς την ποιότητα των λύσεων και την ταχύτητα σύγκλισης (συγκριτικά σχόλια). (Π2) Λύστε το πρόβλημα ελαχιστοποίησης του βάρους ατράκτου χωρίς περιορισμούς. Ίδιες ενέργειες με το (Π1). Επιπλέον τρέξτε την ίδια περίπτωση με δυαδική, πραγματική και δυαδική Gray κωδικοποίηση. (Π3) Λύστε το πρόβλημα μεγιστοποίησης του βεληνεκούς πτήσης χωρίς περιορισμούς. Ίδιες ενέργειες με το (Π1). Επιπλέον, πραγματοποιήστε μια σειρά δοκιμών με διάφορα σχήματα διασταύρωσης και αποτιμήστε τα. (Π4) Πάρτε τις «καλύτερες των καλύτερων» λύσεις που βρήκατε στα (Π1), (Π2) και (Π3) και σχολιάστε τες συγκριτικά. Σχεδιάστε τις κατόψεις της πτέρυγας στις τρεις βέλτιστες λύσεις, αυτές δηλαδή που σχολιάζετε εδώ. Ο σχεδιασμός μπορεί να γίνει εύκολα με οποιοδήποτε πακέτο γραφικών αφού η πτέρυγα έχει απλή μορφή κάτοψης. (Π5) Λύστε ξανά το πρόβλημα (Π3) βάζοντας ως περιορισμό, αυτή τη φορά, το βάρος απογείωσης να μην υπερβαίνει το 115% του βέλτιστου (του καλύτερου των 9 τρεξιμάτων) που βρήκατε στο (Π1). (Π6) Λύστε το πρόβλημα ελαχιστοποίησης του βάρους απογείωσης με ταυτόχρονη ελαχιστοποίηση του βάρους ατράκτου και μεγιστοποίηση του βεληνεκούς πτήσης (πρόβλημα με τρείς στόχους) με περιορισμό το μεγαλύτερο των μηκών απογείωσης και προσγείωσης να είναι μικρότερο από 2500 m. Βρείτε ωραίους τρόπους να παρουσιάσετε τα 3Δ μέτωπο Pareto και να σχολιάσετε τα αποτελέσματα αυτά σε σχέση με εκείνα των (Π1), (Π2) και (Π3). (Π7) Λύστε τα (Π3) και (Π5), ξανά, με χρήση Προσεγγιστικής Προ-Αξιολόγησης (IPE=Inexact Pre-Evaluation) και αποτιμήστε την μείωση σε αριθμό αξιολογήσεων ώστε να βρεθεί λύση της ίδιας ποιότητας. Διάφορα: Παραδώστε ηλεκτρονικό κείμενο, λογικού μήκους, με αρκετές έγχρωμες εικόνες. Να φαίνεται κυρίως η «ιστορία» την οποία ακολουθήσατε!!!! Σε κάθε τρέξιμο τα αποτελέσματα του οποίου σχεδιάζετε, γράψτε το μέγεθος κάθε πληθυσμού αλλά και, κυρίως, τον αριθμό αξιολογήσεων που χρειάστηκαν. Επιπλέον, για κάθε αποτέλεσμα, δώστε τη βέλτιστη λύση και το διάνυσμα των μεταβλητών σχεδιασμού που αντιστοιχεί σε αυτή. Κάθε σχήμα να έχει υποχρεωτικά τη λεζάντα του για να καταλαβαίνει ο αναγνώστης ποια περίπτωση αφορά. Προθεσμία Παράδοσης: Παρασκευή 22 Νοεμβρίου 2019 Η παράδοση θα γίνει στον διδάσκοντα με επιτόπου εξέταση-συζήτηση επί της εργασίας (σε ημέρες και ώρες που θα ανακοινωθούν). ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 6/6