Εργασία για το Σπίτι (2014-15-Ε1) Πρόβλημα: Προκαταρκτικός Σχεδιασμός Υπερηχητικού Αεροσκάφους Μέθοδος: Εξελικτικοί Αλγόριθμοι Καλείστε να σχεδιάσετε ένα δικινητήριο υπερηχητικό αεροσκάφος (Α/Φ) με σκοπό να επιλεγούν βασικές παράμετροι (αφενός μεν λειτουργικές, αφετέρου δε σχετικές με το σχήμα της κάτοψης της πτέρυγάς του) που να οδηγούν στη βέλτιστη ικανοποίηση του στόχου ή των στόχων και την ικανοποίηση των περιορισμών (όπου και αν υπάρχουν, διαβάστε παρακάτω κατά περίπτωση). Οτιδήποτε δεν αποτελεί μεταβλητή σχεδιασμού (ελεύθερη μεταβλητή του προβλήματος) θεωρείται σταθερό και αμετάβλητο. Δεν δίνονται αυτές οι τιμές, επιθυμώντας να κρατηθεί το πρόβλημα στο επίπεδο μιας γενικής άσκησης βελτιστοποίησης και να μην γίνει ένα εξειδικευμένο θέμα μόνο για αεροναυπηγούς. Ο σχεδιασμός βασίζεται σε εξισώσεις και εμπειρικές σχέσεις που διδάσκονται οι αεροναυπηγοί στα βασικά τους μαθήματα. Δεν χρειάζεται να είναι κάποιος αεροναυπηγός για να τη λύσει. Όσες από αυτές τις εξισώσεις χρειάζονται ώστε να μπορούν να ερμηνευθούν τα αποτελέσματα της βελτιστοποίησης αναφέρονται παρακάτω («αναφέρονται» σημαίνει ή ότι αναγράφονται και εξηγούνται ή απλά σχολιάζεται από το τι εξαρτώνται). Το Α/Φ σχεδιάζεται να πετά υπερατλαντικά, με αριθμό Mach ίσο με 1.8 (είναι προγραμματισμένο μέσα στον κώδικα, δεν το ελέγχετε εσείς). Οι τρεις ποσότητες που, όπως θα εξηγηθεί στο μάθημα, χρησιμοποιούνται άλλοτε ως στόχοι και άλλοτε ως περιορισμοί, είναι οι εξής: Το βεληνεκές (R) πτήσης του Α/Φ Το μήκος (L 1 ) του απαιτούμενου διαδρόμου απογείωσης Το μήκος (L 2 ) του απαιτούμενου διαδρόμου προσγείωσης R, σε km L1, σε m L2, σε m Οι έξι (6) ποσότητες που αποτελούν μεταβλητές του σχεδιασμού πινακοποιούνται στη συνέχεια: Το βάρος καυσίμου (W fuel ) κατά την απογείωση WFUEL, σε kg Το εμβαδόν της πτέρυγας (S wing, είναι το εμβαδόν της κάτοψης και των δύο τμημάτων της πτέρυγας μαζί) SWING, σε m 2 Η γωνία οπισθόκλισης (a LE ) στην ακμή πρόσπτωσης της (οπισθοκλινούς) πτέρυγας (βλέπε σχήμα) ALE, σε μοίρες Ο λόγος της χορδής στο ακροπτερύγιο (C tip ) προς τη χορδή στη «ρίζα» CTCR, καθαρός (επίπεδο συμμετρίας) (C root ) της πτέρυγας. αριθμός Η γωνία οπισθόκλισης (a TE ) στην ακμή εκφυγής της (οπισθοκλινούς) ΑTE, σε μοίρες πτέρυγας (βλέπε σχήμα) Ο λόγος του βάρους προσγείωσης προς το βάρος απογείωσης του Α/Φ RATWEI, καθαρός αριθμός ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 1/7
Επιλεγμένα Στοιχεία θεωρίας: Η εξίσωση του Breguet δίνει το βεληνεκές του Α/Φ. Αυτή γράφεται ως εξής: V C L W start R = ln g sfc C D W end όπου: R (m) είναι το βεληνεκές πτήσης V (m/s) είναι η ταχύτητα πτήσης που καθορίζεται από τον αριθμό Mach (εδώ 1.4) και το υψόμετρο της πτήσης (εδώ, αυτό είναι επίσης σταθερό και, προφανώς, καθορίζει την ταχύτητα του ήχου) g (m/s 2 ) είναι η επιτάχυνση της βαρύτητας sfc (kg/n/s) είναι η ειδική κατανάλωση καυσίμου που και αυτή καθορίζεται από τον αριθμό Mach και το υψόμετρο της πτήσης C L /C D είναι ο λόγος των συντελεστών άνωσης και οπισθέλκουσας που, μεταξύ άλλων, σχετίζεται με την (άγνωστη, εδώ) γεωμετρία της πτέρυγας. Η συσχέτιση είναι εμπειρική και προγραμματισμένη στο λογισμικό που σας δίνεται W start (kg) είναι το βάρος του Α/Φ κατά την έναρξη της ευθείας πτήσης, που είναι ένα σταθερό ποσοστό (λ.χ. 95%) του βάρους απογείωσης W end (kg) είναι το βάρος του Α/Φ κατά το τέλος της ευθείας πτήσης, που εξαρτάται, μεταξύ άλλων, από το βάρους καυσίμου κατά την απογείωση. Μεταξύ άλλων, το λογισμικό που δίνεται, περιέχει εμπειρικές σχέσεις για: Μοντέλο ατμόσφαιρας. Μοντέλο κινητήρα (ώση, βάρος, βασική γεωμετρία). Τρόπο υπολογισμού επιμέρους βαρών (πτέρυγας που συναρτάται της γεωμετρίας της, ουραίου τμήματος, ατράκτου, κλπ). Μοντέλο αεροδυναμικής ανάλυσης (εμπειρικές σχέσεις για τους συντελεστές άνωσης και οπισθέλκουσας, συναρτήσει της γεωμετρίας της πτέρυγας και της ταχύτητας πτήσης). Λάβετε υπόψη σας ότι στην παρούσα εφαρμογή: Η αεροτομή της πτέρυγας θεωρείται γνωστή και δεν μεταβάλλεται κατά τη βελτιστοποίηση. Το ουραίο πτερύγιο του Α/Φ είναι σταθερό. Η άτρακτος έχει απλό κυλινδρικό σχήμα, στο βασικό της μήκος, και έχει σταθερή διάμετρο. Το μήκος της όμως αυξομειώνεται όσο αυξομειώνεται το βάρος του καυσίμου (θεωρείται ότι το καύσιμο καταλαμβάνει τμήμα της ατράκτου). ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 2/7
Γεωμετρία της Οπισθοκλινούς Πτέρυγας: 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=30000 kg, SWING=120.0 m 2, ALE=65.0 ο, CTCR=0.05, ΑTE=20.0 ο, RATWEI=0.78 (βάρος προσγείωσης= 78% του βάρους απογείωσης του Α/Φ), τότε το αντίστοιχο αρχείο task.dat θα έχει τη μορφή που φαίνεται δίπλα. 6 30000. 120.0 65. 0.05 20 0.78 ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 3/7
Στη συνέχεια, ο EASY τρέχει ένα αρχείο εντολών που ο χρήστης έχει δημιουργήσει και που ονομάζεται task.bat. Το αρχείο αυτό, στο πρόβλημα @echo off μας, έχει τη δίπλα μορφή. erase results.dat Η πρώτη γραμμή αποτρέπει την «ενόχληση» της οθόνης supercraft.exe >nul μας με το αποτέλεσμα των κλήσεων που ακολουθούν. Η postprocessor.exe >nul δεύτερη γραμμή μπήκε για να σβήσει το προηγούμενο αρχείο results.dat που δημιούργησε το εκτελέσιμο supercraft.exe, την προηγούμενη φορά που εκτελέστηκε. Έτσι, αν τώρα αποτύχει, να μην χρησιμοποιήσει λάθος (προηγούμενο) αρχείο αποτελεσμάτων και μπερδευτούν λύσεις και αποτελέσματα. Είστε υποχρεωμένοι, πάντα, να σβήνετε τα αποτελέσματα-αρχεία που θα βγάλει ο κώδικας αξιολόγησης που ακολουθεί. Αν δεν το ξέρετε, η σύνταξη κώδικας.exe>nul σημαίνει να χρησιμοποιηθεί ως τυπική έξοδος του προγράμματος τα προσωρινό αρχείο nul (το οποίο σβήνεται με το τέλος της εντολής ενώ κατά την εκτέλεσή της δεν εμφανίζει αποτελέσματα στην οθόνη του χρήστη). Προσοχή: Το αρχείο supercraft.exe είναι έτοιμο για να το χρησιμοποιήσετε με τον EASY ως προς την είσοδο που λαμβάνει αλλά όχι ως προς την έξοδό του (εκεί μπορείτε να έχετε ευελιξία). Καταλαβαίνει δηλαδή το task.dat, αλλά δεν παράγει task.res ή task.cns. Συγκεκριμένα, ως δεδομένο χρησιμοποιεί ένα αρχείο task.dat όπως ορίσθηκε προηγουμένως. Το αποτέλεσμα της ανάλυσης είναι το αρχείο results.dat με την παρακάτω δομή: ============= Engine Characteristics ============= 3.137694190266056E-005 SFC [kg/n/s] 50462.0602604751 Thrust / engine [N] ==================== Geometry ==================== 30.3923332299324 Fuselage Length [m] 15.6175285534158 Wing span [m] 14.6355697567421 Wing root chord [m] ===================== Weights ==================== 30000.0000000000 Fuel Weight [kg] 6050.18244302916 Wing Weight [kg] 340.190440378274 Tail Weight [kg] 3680.41495914659 Fuselage Weight [kg] 2723.73343683065 Landing Gear Weight [kg] 5611.99977016462 Propulsion System Weight [kg] 14075.8671065302 Other Weights [kg] 38094.2892005671 Zero Fuel Weight [kg] 68094.2892005671 Take Off Weight [kg] =================== Performance ================== 5326.24159050316 Range [km] 2563.51481488581 L1: Take-off Length [m] 2299.56432967996 L2: Landing Length [m] (ξέρετε λ.χ. ότι αν χρειαστείτε το μήκος απογείωσης θα το διαβάσετε από την 20ή γραμμή του αρχείου). Το σημαντικό είναι ότι ο EASY «περιμένει» ως «επιστροφή» ένα αρχείο που λέγεται task.res (έχει τόσες γραμμές όσοι οι στόχοι, δεν έχει επικεφαλίδα με το ακέραιο πλήθος τους, δεν την χρειάζεται, ο EASY γνωρίζει πόσοι είναι οι στόχοι). Για παράδειγμα (είναι απλό παράδειγμα, δεν είναι -5326.24159050316 αυτό που εδώ ζητείται), αν είχαμε δύο στόχους, μέγιστο 68094.2892005671 βεληνεκές και ελάχιστο μήκος διαδρόμου απογείωσης, το task.res πιθανόν να είχε τη δίπλα ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 4/7
μορφή (είναι κατανοητό το «μείον» στον πρώτο στόχο; Ο EASY ελαχιστοποιεί, δεν μεγιστοποιεί, συναρτήσεις!!!). Επίσης, ο EASY χρειάζεται και ένα δεύτερο αρχείο, το task.cns (εκ του «constraints») μόνο όμως στην περίπτωση που το πρόβλημα έχει περιορισμούς. Αυτό το αρχείο έχει τόσες γραμμές όσοι είναι οι περιορισμοί, κάθε γραμμή έχει την τιμή της συνάρτησης περιορισμού (που πρέπει να κρατηθεί μικρότερη από ένα όριο που έδωσε ο χρήστης). Αν λ.χ. στο πρόβλημά μας, έχουμε δύο περιορισμούς (λ.χ. η ώση-thrust να είναι μικρότερη από ένα όριο και το μήκος του διαδρόμου προσγείωσης να είναι μικρότερο από ένα όριο) τότε το αρχείο task.cns θα είχε τη μορφή που δίνεται δίπλα. 50462.0602604751 2299.56432967996 Με βάση τα προηγούμενα, ο σπουδαστής οφείλει απλά να γράψει έναν κώδικα (postprocessor.for, ακολουθεί δείγμα σε Fortran 77- δείτε επίσης ότι αυτό καλείται μέσα από το task.bat ως τελευταία εντολή) που να δημιουργεί τα αρχεία task.res (υποχρεωτικά) και task.cns (αν χρειάζεται). Στο παραπάνω εικονικό παράδειγμα (δεν ζητείται αυτό στην περίπτωσή μας), ο κώδικας αυτός θα είχε τη δίπλα μορφή. Μπορείτε να τον αλλάξετε ώστε να επιλέξει εκείνες τις ποσότητες τις οποίες θέλετε να βελτιστοποιήσετε και τους κατά περίπτωση περιορισμούς. Δεν χρειάζεται να διαγράφετε τα αρχεία task.res και task.cns. Αυτό γίνεται αυτόματα από τον EASY. Παρόλα αυτά, είναι ακίνδυνο να προσθέσετε στο task.bat και αυτές τις εντολές διαγραφής. Σημειώστε τον παρακάτω υπολογισμό που δεν κάνει το αρχείο supercraft.exe αλλά πρέπει να τον υλοποιήσετε εσείς στον κώδικα μετεπεξεργασίας (τον κώδικα που ονομάσαμε postprocessor.for. Ισχύει ότι: 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,17 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 Load Weight = Other Weights 0.6 * [Wing Weight + Tail Weight + Fuselage Weight + Landing Gear Weight + Propulsion System Weight] όπου Load Weight είναι το βάρος των μεταφερόμενων επιβατών (συμπεριλαμβάνεται το πλήρωμα) και των μεταφερόμενων αποσκευών. ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 5/7
Όρια Μεταβολής των Μεταβλητών Σχεδιασμού: ΜΕΤΑΒΛΗΤΗ ΣΧΕΔΙΑΣΜΟΥ ΚΑΤΩ ΟΡΙΟ ΑΝΩ ΟΡΙΟ & Μονάδες WFUEL, σε kg 22000 35000 SWING, σε m 2 110 190 ALE, σε μοίρες 45 65 CTCR, καθαρός αριθμός 0.05 0.50 ΑTE, σε μοίρες 0 20 RATWEI, καθαρός αριθμός 0.65 0.83 Υπάρχουν συνδυασμοί τιμών (ακόμη και μέσα στα όρια που εδώ δίνονται) για τους οποίους ο κώδικας αξιολόγησης-ανάλυσης δεν βγάζει αποτελέσματα (π.χ. μπορεί να ζητά τη ρίζα αρνητικού αριθμού, κλπ). Σε κάθε τέτοια περίπτωση, ο κώδικας αξιολόγησης που σας δίνεται δεν ολοκληρώνεται, άρα δεν βγάζει αρχείο αποτελεσμάτων. Ο ΕΑ αντιλαμβάνεται ότι δεν υπάρχει νέο αρχείο αποτελεσμάτων (προσοχή: γι αυτό σβήνουμε υποχρεωτικά το παλαιό!!!) οπότε θεωρεί τη λύση μη-αποδεκτή και την τιμωρεί με μια πολύ μεγάλη τιμή (θεωρητικά άπειρη!) της συνάρτησης κόστους (για προβλήματα ελαχιστοποίησης). Τι προβλήματα πρέπει να λυθούν στο πρώτο Homework (1) Λύστε το πρόβλημα δύο στόχων για α) μεγιστοποίηση του RANGE και β) ελαχιστοποίηση του πηλίκου WFUEL/(Load Weight), δηλαδή της ειδικής κατανάλωσης καυσίμου στη μονάδα του μεταφερόμενου ωφέλιμου φορτίου, χωρίς οιονδήποτε περιορισμό. Σχεδιάστε το μέτωπο Pareto με τον οριζόντιο άξονα να είναι 1/RANGE. (2) Λύστε το πρόβλημα καθενός από τους προηγούμενους στόχους χωριστά (δυο προβλήματα μονοκριτηριακής βελτιστοποίησης) και απεικονίστε τα προκύπτοντα σημεία στο προηγούμενο διάγραμμα. Καταλάβετε γιατί χρειάζεται το (2) και σχολιάστε. (3) Επαναλάβετε το (1) με τους εξής (ταυτόχρονα εφαρμοζόμενους) περιορισμούς α) το ωφέλιμο φορτίο (Load Weight) να είναι μικρότερο ή ίσο του 3500 kg αλλά μεγαλύτερο ή ίσο των 2500 kg και β) το μήκος απογείωσης-προσγείωσης (το μεγαλύτερο των δύο) να είναι μικρότερο των 2500 m. Για καθένα από τα (1),(2),(3) πραγματοποιείστε ένα τρέξιμο χρησιμοποιώντας την ίδια αρχικοποίησης της γεννήτριας τυχαίων αριθμών. Τερματισμός στις 2000 αξιολογήσεις. Είστε ελεύθεροι να βάλετε κωδικοποίηση, πληθυσμούς (μ, λ) και σχήματα εξελικτικών τελεστών της επιλογής σας. (4) Επαναλάβετε το (3) πέντε φορές με διαφορετικές αρχικοποιήσεις της γεννήτριας τυχαίων αριθμών και συγκρίνετε τα πέντε μέτωπα. Σχολιάστε. (5) Για το πρόβλημα (3), διαλέξτε μια παράμετρο του ΕΑ (λ.χ. σχήμα διασταύρωσης ή σχήμα μετάλλαξης ή τιμές των (μ,λ) κλπ) και πραγματοποιήστε μια διερεύνηση. Θα χρειαστείτε διαφορετικές αρχικοποιήσεις της γεννήτριας τυχαίων αριθμών για να έχουν σημασία τα αποτελέσματά σας. Σχολιάστε δείχνοντας γραφικά τα αποτελέσματά σας. Συνεννοηθείτε μεταξύ σας ώστε να υπάρχουν ποικίλες διερευνήσεις. ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 6/7
Προθεσμία παράδοσης: 10 Νοεμβρίου 2014, πριν τις 12.30. Παραδώστε ηλεκτρονικό κείμενο, μικρού μήκους (με όνομα της μορφής Giannakoglou.pdf), με τις πρέπουσες έγχρωμες εικόνες (αν βρίσκετε Pareto) ή πίνακες (αν μονοκριτηριακή βελ/ση). Κάθε εικόνα να έχει επαρκή και αυτόνομη λεζάντα. Μην εκτυπώσετε και, επίσης, μην μας στείλετε το αρχείο με τη σύγκλιση (αν θέλετε να δείξετε σύγκλιση, βάλτε το γράφημα στο report σας. Προφανώς μην μας στείλετε και την database που δημιουργεί ο EASY. Ειδικά για το ερώτημα (3) παραδώστε ένα αρχείο ascii με το όνομά σας λχ. Giannakoglou.dat που να έχει 2 στήλες με τις τιμές των δύο στόχων (1/ RANGE και WFUEL/(Load Weight)) για όλα τα σημεία του μετώπου. ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ - Κ. ΓΙΑΝΝΑΚΟΓΛΟΥ 7/7