Επισκέπτρια Επίκουρη Καθηγήτρια ΗΜΥ 100: Εισαγωγή στην Τεχνολογία Διάλεξη 12 Εισαγωγή Τεχνικού Εργαλείου MATLAB 16 Οκτωβρίου, 2003 Χρυσάνθη Πρέζα, D.Sc. Επισκέπτρια Επίκουρη Καθηγήτρια TΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ
Περίληψη Ανακοινώσεις Επανάληψη Χρονικά Μεταβαλλόμενα Σήματα Χρονικά Μεταβαλλόμενα Σήματα Εισαγωγή Τεχνικού Εργαλείου MATLAB
Ανακοινώσεις Η ιστοσελίδα μας! Εργαστήρια www.eng.ucy.ac.cy/preza/ECE100/ Δείτε εκεί και τις ιστοσελίδες των συμφοιτητών σας Εργαστήρια Αυτή είναι η τελευταία εβδομάδα για να συμπληρώσετε όλα τα πειράματα KO4 πρέπει να παραδοθεί σήμερα. Σεμινάριο απόψε 7 μ.μ., Αίθουσα Α008 “Προετοιμασία και παρουσίαση τεχνικής εργασίας” Υπενθύμιση: Η ενδιάμεση εξέταση θα γίνει την Δευτέρα, 27/10/03. Διαβάστε την ύλη αναφοράς για της διαλέξεις στα βιβλία του μαθήματος στην βιβλιοθήκη Στον περιορισμένο δανεισμό
Επανάληψη Ημιτονικό σήμα: Περιοδικό σήμα: v(t) είναι περιοδικό με περίοδο Τ αν v(t) = v(t + n T ) για κάθε χρόνο, t, και για όλους τους ακέραιους αριθμούς n Καθυστέρηση φάσης φ Χρονική μετατόπιση ν(t - Δt) , Δt > 0 Προήγηση φάσης φ Χρονική μετατόπιση ν(t + Δt) , Δt > 0 Παράμετροι Σήματος Τιμή κορυφής (Vp), Τιμή από Κορυφή σε Κορυφή (Vpp), Απόκλισης Μέση Τιμή (Vave), Ενεργός Τιμή ή Μέση Τετραγωνική Τιμή (Vrms)
Για περιοδικό σήμα με περίοδο Τ Για περιοδικό σήμα με περίοδο Τ Μέση Τιμή Ενεργός Τιμή ή Μέση Τετραγωνική Τιμή (RMS)
Ισχύς Η στιγμιαία ισχύς που καταναλώνει το στοιχείο σε κάποιο χρόνο t , είναι p(t) = ν(t) i(t) Για περιοδικά σήματα τάσης και ρεύματος με περίοδο Τ, η μέση τιμή της ισχύος είναι A B Σ + - v(t) i(t)
Επανάληψη Όταν σε μία ηλεκτρική λάμπα των 100 W βάλουμε μία εναλλασσόμενη τάση ν(t) τότε εναλλασσόμενο ρεύμα i(t) περνά μέσα από την λάμπα Η μέση τιμή της ισχύος που καταναλώνει η λάμπα είναι 100 W Η ενεργός τιμή της τάσης ν RMS είναι η τιμή της συνεχής τάσης που ενωμένη πάνω στην λάμπα προκαλεί την ίδια κατανάλωση ισχύος (100 W)
Συστήματα Υπολογισμού Ηλεκτρονικός Υπολογιστής (Η/Υ) Μηχανή που εκτελεί μαθηματικές πράξεις (operations) καθορισμένες από μια λίστα εντολών (set of instructions) που λέγεται πρόγραμμα (program) Βασικές λειτουργίες αποθήκευση πληροφοριών (data storage) ανάκληση πληροφοριών (data retrieval) ταχύτατη εκτέλεση μαθηματικών πράξεων
Βασικά Στοιχεία Η/Υ Υλικό (hardware): Λογισμικό(software): Βασική αρχιτεκτονική: Έξοδος αποτελεσμάτων (Output data) Eίσοδος δεδομένων (Input data) KME (CPU)* Επεξεργαστής (Processor) ΑΛΜ (ALU)** Μνήμη (Memory) Λογισμικό(software): Προγράμματα Η/Υ: Προγράμματα συστημάτων: λειτουργικά συστήματα (operating systems: Unix, MSDOS, Windows, Linux, κλπ), μεταγλωττιστές (compilers), κλπ. Προγράμματα εφαρμογών: π.χ. Notepad, Word, Excel, Powerpoint, Οutlook, Netscape, Internet Explorer, Matlab, Autocad, κλπ. Δεδομένα προγραμμάτων Η/Υ * Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Central Processing Unit (CPU) ** Αριθμητική και Λογική Μονάδα (ΑΛΜ) Arithmetic and Logic Unit (ALU)
Βασικά Λογισμικά Πακέτα Word Excel Powerpoint Internet Exporer/Netscape MATLAB: Εισαγωγή Bασικές λειτουργίες Πίνακες (μητρώα) Ταχύρυθμα μαθήματα Η/Υ: Δευτέρα: 8-10:00 π.μ. 22 Σεπτ. - 27 Οκτ. Κέντρο Η/Υ Αίθουσα Π103
Γλώσσες Η/Υ Καθορίζει τον τρόπο προγραμματισμού με τον Η/Υ Καθορίζει τον τρόπο προγραμματισμού με τον Η/Υ Διάφορα επίπεδα γλωσσών Χαμηλό επίπεδο / Γλώσσα μηχανής (Machine Language) Άμεσα σχετισμένη με το υλικό Εντολές σε δυαδικές στοιχειοσειρές Ψηλό επίπεδο Εντολές σε Αγγλικές λέξεις
Λογισμικό MATLAB Διαλογικό σύστημα και γλώσσα προγραμματισμού για γενικό επιστημονικό και τεχνικό υπολογισμό Αρχικά δημιουργήθηκε για την διαχείριση μητρώων / πινάκων (matrix manipulation) και διανυσμάτων (vectors) Διευκολύνει την ανάπτυξη προγραμμάτων για αριθμητικούς υπολογισμούς, γραφικές αναπαραστάσεις και απεικονίσεις Χρησιμοποιεί γλώσσα προγραμματισμού ψηλού επιπέδου Κατ’ Οίκον Εργασία Διαβάστε την εισαγωγή στο MATLAB (Matlab: An Introduction) και δοκιμάστε τις εντολές www.eng.ucy.cy.ac/preza/ECE100/ ΔΙΔΑΚΤΙΚΑ ΒΟΗΘΗΜΑΤΑ Σημιώσεις Το αρχείο “Plain text diary output from the tutorial” Δείχνει το αποτέλεσμα των εντολών σε απλό κείμενο
Διαλογικό Σύστημα MATLAB
Πληροφορίες/Βοήθεια Ιστοσελίδα κατασκευαστών: http://www.mathworks.com Εκκίνηση προγράμματος MATLAB >> help >> help matlab\general >> demos >> doc Χρήση σαν απλή υπολογιστική
Βασικές Λειτουργίες MATLAB Τελεστές: Προτεραιότητα τελεστών Αριθμητικές εκφράσεις Μεταβλητές: >> help ops >> help colon Βασικές Λειτουργίες MATLAB ( ) ^ * , / + , - < , <= , == , => , > & , | >> pi ans = 3.1416 >> r = 5 r =5 >> pi * r ^ 2 ans = 78.5398 >> a = ans; >> a a = 78.5398 >> a = pi * r ^ 2 (17+3)/2+6/3 17+3/2+6/3 >> who Your variables are: a ans r >> clear >> whos
Πίνακες και Διανύσματα Ο πίνακας / το μητρώο (matrix) είναι το μόνο αντικείμενο που έχει το MATLAB Βαθμωτός (scalar) Πίνακας 1x1 Διάνυσμα γραμμής (row vector) Πίνακας 1xN Είναι το default Διάνυσμα στήλης (column vector) Πίνακας Νx1
Διανύσματα και Πίνακες >> a(2) >> a(1) = 6; >> a >> c(2,3) >> c(1,1:2) >> c(2,2) = -5; >> c 2 6 2 3 11 6 7 6 7 8 9 -5 11
Διανύσματα και Πίνακες (συνεχ.) >> d = a * b >> e = c * a >> a’ >> c’ >> sum(a) >> sum(c,2) 4 5 8 10 12 15 44 62 1 2 3 6 9 7 10 8 11 6 30
Ενσωματωμένες Συναρτήσεις ΑΟ Built-in Functions Μαθηματικών και Τριγωνομετρίας: abs, sqrt, log, cos, sin, κτλ Ανάλυσης δεδομέμων: max, min, mean, sum, κτλ Γραφικές: plot, subplot, title, label, axis, κτλ Διαχειρίσεις Πινάκων: det, inv, κτλ Και πολλές άλλες
Γραφικές Παραστάσεις % Αυτόματος καθορισμός διανύσματος με τιμές γωνιών >> x = 0:0.25:15; (αρχή:βήμα:τέλος) % Αυτόματος υπολογισμός διανύσματος με τιμές ημιτόνων >> y = sin(x); % Σχεδιασμός σημείων (x,y) >> plot(x,y) % Προσθήκη γραμμών στο διάγραμμα >> grid on % Προσθήκη τίτλου >> title('Sxediash Hmitonoy') % Προσθήκη τίτλων στους άξονες >> xlabel('X') >> ylabel('Y')
Γραφικές παραστάσεις: Παράδειγμα Σχεδιάστε την γραφική παράσταση της εξίσωσης: όπου: 0 <= theta <= 100 >> clf >> clear >> theta = 0:0.5:100 >> z = 15*cos(theta/2) >> z = z + 7.5 * sin(theta/5); >> plot(theta,z) >> grid on >> title('Askhsh 2h') >> xlabel('Theta') >> ylabel('Z')
Πολλαπλές Γραφικές Παραστάσεις >> figure(1) >> clf >> x = 0:0.25:15; >> y = sin(x); >> plot(x,y,’r’) >> grid on >> title('Sxediash Hmitonoy') >> xlabel('X') >> ylabel(’Hmitono,Synhmitono‘) >> z = cos(x); >> hold on >> plot(x,z) >> plot(x,z,’or’) Eναλλακτικά: plot(x,y,'r‘, x,z,'or')
Πολλαπλά Γραφικά Σχήματα figure(2) subplot(3,2,1) plot(x,y,'-') title('X-Y Plot ') subplot(3,2,3) plot(x,y,'--') grid on title('X-Y Plot with grid') subplot(3,2,4) plot(x,z) title('X-Z Plot with grid') subplot(3,2,6) plot(x,z, 'o') title('X-Z Plot: o ') subplot(3,2,5) plot(x,z, '*') title('X-Z Plot: *')
Αρχεία Matlab: Αρχεία Μ (M-files) myMFile.m >> myMFile File Set Path
Αρχεία Δεδομένων MATLAB >> load w.dat >> w >> w(2,1) 4 5 6 7 8 9 7
Αρχεία MATLAB: load/save >> x = 1:2:11; >> y = [4 7 -3 2]; >> save C:\mySaved1 x >> save C:\mySaved2 >> clear all >> load C:\mySaved1 >> x >> y >> load C:\mySaved2 1 3 5 7 9 11 ??? Undefined function or variable ’y'. 4 7 -3 2
Αρχεία Συναρτήσεων MATLAB Απλές εντολές σε M-file: myMFile1.m a = 2.5; e = pi * a ^ 2; >> myMFile1 >> e e = 19.634954 Συναρτήσεις: >> e = myFunction1(10) e = 314.1593 >> myFunction1(0.5) ans = 0.7854 >> x=myFunction1(17.5) x = 962.1128 myFunction1.m function embado=myFunction1(x) embado = pi * x ^2; return
Συναρτήσεις Ορισμός συναρτήσεως: function apotelesma = synarthsh1(parametroi) >> clear all >> z=myFun1(8) >> y ??? Undefined function or variable 'y'. >> z z = 512 myFun1.m function y=myFun1(x) y = x*x*x; return Ορισμός συνάρτησης myFun2.m function myFun2(x,y) x + y return Σώμα συνάρτησης >> myFun2(8,7) ans = 15
Λογικά Τέστς Τελεστές: > < > = < = = = ~ = & | ~ > < > = < = = = ~ = & | ~ >> x = 5; >> y = 7; >> x < y >> x >= y - 3 >> x == y - 3 >> 0 < x & x+2 > y >> 0 < x | y > x >> ~ (x < 5) 1 1 1 1
Διακλαδώσεις if έκφραση1 εκτελείται μόνο αν η έκφραση1 είναι αληθής elseif έκφραση2 εκτελείται μόνο αν η έκφραση1 δεν είναι αληθής και η έκφραση2 είναι αληθής else εκτελείται αν καμία έκφραση δεν είναι αληθής end if έκφραση1 εκτελείται μόνο αν η έκφραση1 είναι αληθής end if έκφραση1 εκτελείται μόνο αν η έκφραση1 είναι αληθής else εκτελείται μόνο αν η έκφραση1 δεν είναι αληθής end
Παράδειγμα διακλαδώσεων rand1.m
Βρόγχοι (Loops) for μεταβλητή = αρχική τιμή : (προαιρετικό) βήμα : τελική τιμή εντολές end 1 4 9 16 25 for i=1:5 disp(i^2) end for i=5:-1:1 if i == 3 continue end disp(i^2) 25 16 4 1
Βρόγχοι (συνεχ.) while λογική έκφραση εντολές end i = 0; while 1 (μέσα στις οποίες πρέπει κάτι σχετικό με την λογική έκφραση να αλλάζει, ή να υπάρχει κάποιο break, ώστε να αποφεύγεται βρόγχος επ’άπειρον) while λογική έκφραση εντολές end i = 0; while 1 if i>=10 break end i = i + 2 disp(i) i = 2 i = 4 i = 6 i = 8 i = 10 10 i = 0; while i<10 i = i + 2 end disp(i) continue: συνέχεια με επόμενη εκτέλεση βρόγχου for ή while break: τερματισμός εκτέλεσης βρόγχων for και while
Άλλες Xρήσιμες Eντολές >> format long ; pi ans = 3.14159265358979 ans = 3.1416 >> format short ; pi >> disp(pi) 3.1416 >> t= 'Testing' ; disp(t) Testing >> s='2*3-5+3/2’ >> eval(s) ans =2.5000 >> realMax ans =1.7977e+308 >> realMin ans =2.2251e-308 >> help InF >> help NaN >> print >> help print