Βελτιστοποίηση Ενεργειακών Συστημάτων Eργαστήριο Matlab Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βελτιστοποίηση Ενεργειακών Συστημάτων Eργαστήριο Matlab Ενότητα 1: Εισαγωγή στο Matlab Μ. Σαμαράκου, Δ. Μητσούδης, Π. Πρεντάκης Τμήμα Μηχανικών Ενεργειακής Τεχνολογίας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Περιεχόμενα Εισαγωγή στο Matlab, Το περιβάλλον του Matlab, Μεταβλητές, Βασικές αλγεβρικές πράξεις, Συναρτήσεις, Ημερολόγιο (diary), Μορφοποίηση εμφάνισης αποτελεσμάτων (format), Γραφικές παραστάσεις.
Τι είναι το Matlab; Matlab Assembly Βασικά το Matlab είναι ένα high level language λογισμικό το οποίο έχει πολλά ειδικά εργαλεία (toolboxes) τα οποία μας διευκολύνουν Σχηματικά; Assembly High Level Languages such as C, Pascal etc. Matlab
Γιατί μας ενδιαφέρει; Το Matlab καλύπτει ποικιλοτρόπως τους στόχους του μαθήματός μας. Τα χαρακτηριστικά που θα δούμε είναι: Matlab Command Line m-files functions Υποσυστήματα Εκτέλεση εντολών όπως το DOS command window Εντολές και δομές του Matlab Προσομοίωση με το Simulink Fuzzy Logic Tool
Πως ξεκινάμε; πατάμε διπλό κλικ στο εικονίδιο του MATLAB που βρίσκεται στην επιφάνεια εργασίας. Εναλλακτικά ακολουθούμε τα βήματα: Έναρξη > Όλα τα προγράμματα > MATLAB 7.0.1 > MATLAB 7.0.1.
Το περιβάλλον του Matlab Command Window Πληκτρολόγηση εντολών Current Directory Βλ. folders και m-files Workspace Βλ. μεταβλητές προγρ/τος Με Double click πάνω σε μια μεταβλητή βλ. Array Editor Command History Βλ. προηγούμενες εντολές Αποθήκευση τρέχουσας συνόδου, με χρήση του diary
Μεταβλητές (Variables) Δεν απαιτείται δήλωση τύπου π.χ., Όλες οι μεταβλητές είναι πίνακες διπλής ακρίβειας εκτός άλλης ειδικής δήλωσης, Οι τελευταίες εντολές δημιουργούν πίνακες διάστασης 1x1 διπλής ακρίβειας. int a; double b; float c; Π.χ.: >>x=5; >>x1=2;
Παρατηρήσεις (1 από 4) Αν δεν ορισθεί μεταβλητή από τον χρήστη το Matlab αποθηκεύει το αποτέλεσμα της εντολής σε δεσμευμένη μεταβλητή με όνομα ans. Η ans μπορεί να χρησιμοποιηθεί στη συνέχεια όπως κάθε μεταβλητή.
αριστερά () - δεξιά () Παρατηρήσεις (2 από 4) ΠΑΝΩ () μπορούμε να ξανακαλέσουμε προηγούμενες εντολές που πληκτρολογήσαμε DELETE και BACKSPACE μπορούμε να πληκτρολογήσουμε νέα στοιχεία αμέσως μετά τον δρομέα ή να διαγράψουμε στοιχεία πριν τον δρομέα, αντίστοιχα. κaτω () μπορούμε να μετακινηθούμε προς τα κάτω στις μεταγενέστερες εντολές, αφού προηγουμένως έχουμε κινηθεί προς τα επάνω. αριστερά () - δεξιά () μπορούμε να μεταφέρουμε τον δρομέα σε κάποιο σημείο της γραμμής.
Παρατηρήσεις (3 από 4) Χρησιμοποιούμε σταθερές και μεταβλητές με ονόματα της επιλογής μας, όπως ακριβώς ορίζονται από τα μαθηματικά. Το σύμβολο % χρησιμοποιείται για την εισαγωγή σχολίων, δηλαδή δικές σας παρατηρήσεις που δεν λαμβάνονται υπ’ όψιν κατά την εκτέλεση των εντολών.
Παρατηρήσεις (4 από 4) Ο καθαρισμός του Command Window γίνεται με την εντολή clc. Ο καθαρισμός των μεταβλητών στο Workspace γίνεται με την εντολή: clear <μεταβλητή>, π.χ.: clear x clear a ενώ με την εντολή clear all διαγράφονται όλες οι μεταβλητές από το περιβάλλον.
Βασικές αλγεβρικές πράξεις ΠΡΑΞΗ ΤΕΛΕΣΤΗΣ ΣΥΝΤΑΞΗ Πρόσθεση + α + β Αφαίρεση - α – β Πολλαπλασιασμός * α * β Διαίρεση προς τα δεξιά / α / β Διαίρεση προς τ’ αριστερά \ α \ β Δύναμη ^ α ^ β Παρενθέσεις () ( α + β ) / γ
Παραδείγματα Στη συνέχεια πληκτρολογήστε στο παράθυρο εντολών τα παραδείγματα που ακολουθούν. Παρατηρήστε τα αποτελέσματα που θα εμφανιστούν . Υπενθυμίζουμε πως αποθηκεύονται στη μεταβλητή ans .
Πρόσθεση αριθμών Πληκτρολογήστε στο Command Window: >> 27+5 Το αποτέλεσμα που θα εμφανιστεί είναι: ans = 32
Αφαίρεση αριθμών Πληκτρολογήστε στο Command Window: >> 2011-1970 Το αποτέλεσμα που θα εμφανιστεί είναι: ans = 41
Πολλαπλασιασμός Πληκτρολογήστε στο Command Window: >> 7*5 Το αποτέλεσμα που θα εμφανιστεί είναι: ans = 35
Διαίρεση αριθμών Πληκτρολογήστε στο Command Window : >> 8/4 Το αποτέλεσμα που θα εμφανιστεί καλείται διαίρεση προς τα δεξιά και αντιστοιχεί στην μαθηματική πράξη 8:4 ans = 2 Η αντίστοιχη διαίρεση προς τ’ αριστερά δηλαδή 4:8 >> 8\4 Θα εμφανίσει: 0.5000
Δυνάμεις Η δύναμη α^β αντιστοιχεί στην μαθηματική πράξη αβ : Η δύναμη α^β αντιστοιχεί στην μαθηματική πράξη αβ : >> 2^10 ans = 1024 >> 2^1.2 2.2974 >> 2^(-1) 0.5000
Παρενθέσεις Σε περιπτώσεις πολύπλοκων εκφράσεων μπορεί να γίνει χρήση παρενθέσεων με βάση τη γνωστή προτεραιότητα πράξεων. >> 2*(2006-3.25-1/4+3^4)/14.3 ans = 291.3986
Συναρτήσεις Το MATLAB υποστηρίζει ένα σύνολο ενσωματωμένων συναρτήσεων π.χ. Περιγραφή Συνάρτηση Τετραγωνική Ρίζα sqrt() Εκθετική Συνάρτηση expr() Φυσικός Λογάριθμος log() Δεκαδικός Λογάριθμος log10() Συνάρτηση Ημίτονο sin() Συνάρτηση Συνημίτονο cos() Συνάρτηση Εφαπτομένη tan()
Παραδείγματα συναρτήσεων (1 από 3) Τετραγωνική ρίζα >> sqrt(81) ans = 9 >> sqrt(2) 1.4142 >> sqrt(3)^2 3.0000
Παραδείγματα συναρτήσεων (2 από 3) Εκθετική Συνάρτηση >> exp(1) ans = 2.7183 >> log(10) 2.3026 >> log(exp(1)) 1 >> log10(10) ans = 1 >> log10(100) 2 >> log10(1000) 3
Παραδείγματα συναρτήσεων (3 από 3) Τριγωνομετρικές Συναρτήσεις >> pi ans = 3.1416 >> sin(2*pi) -2.4493e-016 >> sin(pi) 1.2246e-016 >> cos(pi/3) ans = 0.5000 >> cos(0) 1 >> tan(3*pi/4) -1.0000 >> tan(pi/4) ans = 1.0000 >> asin(0.7071) 0.7854 >> atan(1)
Παρατηρήσεις Παραδείγματα συναρτήσεων (1 από 3) Αν η γωνία δίνεται σε μοίρες, τότε την μετατρέπουμε σε rad πολλαπλασιάζοντας με το π/180. Π.χ για γωνία 45ο : >> cos(45*pi/180) ans = 0.7071
Παρατηρήσεις Παραδείγματα συναρτήσεων (2 από 3) Παρότι μερικές φορές το αποτέλεσμα παρουσιάζει σφάλμα λόγω των αριθμητικών προσεγγίσεων των ψηφιακών Η/Υ, δεν πρέπει να θεωρούμε γενικώς όλους τους αριθμούς που προσεγγίζουν το μηδέν ως μηδέν, π.χ: >> cos(pi/2) ans = 6.1230e-017
Παρατηρήσεις Παραδείγματα συναρτήσεων (3 από 3) Για να δείτε όλες τις συναρτήσεις που υποστηρίζει το Matlab καθώς και να δείτε τον τρόπο με τον οποίο συντάσσονται δώστε την εντολή: >> help elfun
Ημερολόγιο (diary) (1 από 3) Έχουμε τη δυνατότητα να αποθηκεύσουμε μια σειρά εντολών σε ένα αρχείο κειμένου με την εντολή: >> diary <όνομα αρχείου> Αν δεν δοθεί όνομα, το αρχείο παίρνει εξ’ ορισμού όνομα diary.
Ημερολόγιο (diary) (2 από 3) Για παράδειγμα: >> diary ΤΕ_160311 >> a=1 a = 1 >> b=-2 b = -2 >> c=1 c = >> D=b^2-4*a*c D = >> diary off
Ημερολόγιο (diary) (3 από 3) Με την εντολή diary off τερματίζεται η καταγραφή των εντολών στο ημερολόγιο. Μπορείτε να δώσετε όποιον κατάλογο επιθυμείτε να αποθηκευτεί το ημερολόγιο σας, συμπληρώνοντας όταν το ενεργοποιείτε την πλήρη διαδρομή του. Εξ’ ορισμού το ημερολόγιο δημιουργείται στον τρέχοντα κατάλογο κλήσης του MATLAB.
Μορφοποίηση εμφάνισης αποτελεσμάτων (format) (1 από 3) Το MATLAB παρέχει τη δυνατότητα μορφοποίησης της εμφάνισης των αριθμών , με διαφορετικό πλήθος ψηφίων ανάλογα με την ακρίβεια που επιθυμούμε . ανεξάρτητα από την εσωτερική αναπαράσταση των αριθμών, αλλά και πολλές ακόμα δυνατότητες για την μορφή που μπορείτε να βρείτε πληκτρολογώντας: >>help format
Μορφοποίηση εμφάνισης αποτελεσμάτων (format) (2 από 3) Εξ’ ορισμού μορφή με την εντολή: >>format ή format short εμφανίζει μέχρι τέσσερα δεκαδικά ψηφία Προεπιλογή ως προς την απόσταση των γραμμών με την εντολή: >>format loose Για μεγαλύτερη ακρίβεια χρησιμοποιούμε τις εντολές: >>format long και >>format long e Για απαλοιφή των κενών γραμμών: >>format compact
Μορφοποίηση εμφάνισης αποτελεσμάτων (format) (3 από 3) Π.χ.: >> format compact >> pi ans = 3.1416 >> format long 3.14159265358979 >> format long e 3.141592653589793e+000 >> x = 2; % το ελληνικό ερωτηματικό στο τέλος μιας γραμμής αποτρέπει >> y = 3; % την εμφάνιση του αποτελέσματος >> z = x^2 + y^2 + x*y + x + y z = % εμφανίζεται επειδή δεν υπάρχει το ’;’ στο τέλος της γραμμής 24
Γραφικές παραστάσεις (1 από 5) Για δισδιάστατες απεικονίσεις η βασική συνάρτηση του MATLAB είναι η plot. Π.χ.: >> x = 0: pi/90: 4*pi; >> y = sin(x); >> plot(x,y)
Γραφικές παραστάσεις (2 από 5) Σχετικές συναρτήσεις: grid: για το σχεδιασμό του πλέγματος xlabel, ylabel: για κείμενο στους άξονες title: για τίτλο Π.χ.: >> grid >> xlabel(’x’) >> ylabel(’sin’)
Γραφικές παραστάσεις (3 από 5) Να σχεδιαστεί η γραφική παράσταση της συνάρτησης: e-x/3sin(x) με πεδίο ορισμού 0≤x≤4π. >>x=linspace(0,4*pi,100); % Δημιουργία πίνακα x, 100 τιμών από 0-4π >>y=sin(x); >>y1=exp(-x/3); >>y2=y*y1; >>y2=y.*y1; >>plot(y2)
Γραφικές παραστάσεις (4 από 5) plot(.) >>x=linspace(0,4*pi,100); >>y=sin(x); >>plot(y) >>plot(x,y) stem(.) >>stem(y) >>stem(x,y)
Γραφικές παραστάσεις (5 από 5) Με την εντολή hold on έχουμε τη δυνατότητα να δημιουργούμε πολλαπλές γραφικές παραστάσεις σε κοινούς άξονες. Π.χ.: >>x=-2:.1:2; >>plot(x,sin(x),’-r’); % solid red line >>hold on >>plot(x,sin(x.^2),’--b’); >>plot(x,cos(x.^2),’:g’); >>hold off
Τέλος Ενότητας
Σημειώματα
Σημείωμα Αναφοράς Copyright Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας, Μ. Σαμαράκου, Δ. Μητσούδης, Π. Πρεντάκης 2014. Μ. Σαμαράκου, Δ. Μητσούδης, Π. Πρεντάκης. «Βελτιστοποίηση Ενεργειακών Συστημάτων Eργαστήριο Matlab . Ενότητα 1: Εισαγωγή στο Matlab». Έκδοση: 1.0. Αθήνα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: ocp.teiath.gr.
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. © διαθέσιμο με άδεια CC-BY Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. διαθέσιμο με άδεια CC-BY-SA Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. διαθέσιμο με άδεια CC-BY-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. διαθέσιμο με άδεια CC-BY-NC Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. διαθέσιμο με άδεια CC0 Public Domain Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.