Transcript Document

ΗΜΥ 100: Εισαγωγή στην Τεχνολογία
Διάλεξη 12
Εισαγωγή Τεχνικού Εργαλείου
MATLAB
16 Οκτωβρίου, 2003
Χρυσάνθη Πρέζα, D.Sc.
Επισκέπτρια Επίκουρη Καθηγήτρια
TΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ
Περίληψη
• Ανακοινώσεις
• Επανάληψη
– Χρονικά Μεταβαλλόμενα Σήματα
• Εισαγωγή Τεχνικού Εργαλείου MATLAB
Ανακοινώσεις
• Η ιστοσελίδα μας!
www.eng.ucy.ac.cy/preza/ECE100/
Δείτε εκεί και τις ιστοσελίδες των συμφοιτητών σας
• Εργαστήρια
– Αυτή είναι η τελευταία εβδομάδα για να συμπληρώσετε όλα τα
πειράματα
• KO4 πρέπει να παραδοθεί σήμερα.
• Σεμινάριο απόψε 7 μ.μ., Αίθουσα Α008
– “Προετοιμασία και παρουσίαση τεχνικής εργασίας”
• Υπενθύμιση: Η ενδιάμεση εξέταση θα γίνει την Δευτέρα,
27/10/03.
• Διαβάστε την ύλη αναφοράς για της διαλέξεις στα βιβλία του
μαθήματος στην βιβλιοθήκη
– Στον περιορισμένο δανεισμό
Επανάληψη
• Ημιτονικό σήμα:
v(t )  A cos(2  f t   )  B
• Περιοδικό σήμα: v(t) είναι περιοδικό με περίοδο Τ αν
v(t) = v(t + n T ) για κάθε χρόνο, t, και για όλους τους
ακέραιους αριθμούς n
• Καθυστέρηση φάσης φ
– Χρονική μετατόπιση ν(t - Δt) , Δt > 0
• Προήγηση φάσης φ
– Χρονική μετατόπιση ν(t + Δt) , Δt > 0
• Παράμετροι Σήματος
– Τιμή κορυφής (Vp), Τιμή από Κορυφή σε Κορυφή (Vpp),
Απόκλισης Μέση Τιμή (Vave), Ενεργός Τιμή ή Μέση
Τετραγωνική Τιμή (Vrms)
Για περιοδικό σήμα με περίοδο Τ
• Μέση Τιμή
T
vave
1
  v(t ) dt
T 0
• Ενεργός Τιμή ή Μέση Τετραγωνική Τιμή (RMS)
T
vrms
1 2

v
(
t
)
dt

T 0
Ισχύς
• Η στιγμιαία ισχύς που
καταναλώνει το στοιχείο σε
κάποιο χρόνο t , είναι
p(t) = ν(t) i(t)
• Για περιοδικά σήματα τάσης
και ρεύματος με περίοδο Τ, η
μέση τιμή της ισχύος είναι
1
P 
T
T
 p (t ) dt
0
i(t)
A
+
v(t)
B
Σ
Επανάληψη
• Όταν σε μία ηλεκτρική λάμπα των 100 W
βάλουμε μία εναλλασσόμενη τάση ν(t) τότε
εναλλασσόμενο ρεύμα i(t) περνά μέσα από
την λάμπα
• Η μέση τιμή της ισχύος που καταναλώνει η
λάμπα είναι 100 W
• Η ενεργός τιμή της τάσης ν RMS είναι η τιμή
της συνεχής τάσης που ενωμένη πάνω στην
λάμπα προκαλεί την ίδια κατανάλωση ισχύος
(100 W)
Συστήματα Υπολογισμού
Ηλεκτρονικός Υπολογιστής (Η/Υ)
• Μηχανή που εκτελεί μαθηματικές πράξεις
(operations) καθορισμένες από μια λίστα εντολών
(set of instructions) που λέγεται πρόγραμμα
(program)
• Βασικές λειτουργίες
– αποθήκευση πληροφοριών (data storage)
– ανάκληση πληροφοριών (data retrieval)
– ταχύτατη εκτέλεση μαθηματικών πράξεων
Βασικά Στοιχεία Η/Υ
• Υλικό (hardware):
KME (CPU)*
– Βασική αρχιτεκτονική:
Eίσοδος δεδομένων
(Input data)
Επεξεργαστής
(Processor)
• Λογισμικό(software):
ΑΛΜ (ALU)**
Έξοδος αποτελεσμάτων
(Output data)
Μνήμη
– Προγράμματα Η/Υ:
(Memory)
• Προγράμματα συστημάτων: λειτουργικά συστήματα (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
• Τελεστές:
()
>> pi
^
>> help ops
>> help colon
• Προτεραιότητα τελεστών
*, /
+,< , <= , == , => , >
&,|
(17+3)/2+6/3
ans = 3.1416
>> r = 5
r =5
>> pi * r ^ 2
ans = 78.5398
• Αριθμητικές εκφράσεις
• Μεταβλητές:
17+3/2+6/3
>> who
Your variables are:
a ans r
>> clear
>> whos
>> a = ans;
>> a
a = 78.5398
>> a = pi * r ^ 2
a = 78.5398
Πίνακες και Διανύσματα
• Ο πίνακας / το μητρώο (matrix) είναι το μόνο
αντικείμενο που έχει το MATLAB
• Βαθμωτός (scalar)
– Πίνακας 1x1
• Διάνυσμα γραμμής (row vector)
– Πίνακας 1xN
– Είναι το default
• Διάνυσμα στήλης (column vector)
– Πίνακας Νx1
Διανύσματα και Πίνακες
>> a(2)
2
6
2
3
>> a(1) = 6;
>> a
>> c(2,3)
>> c(1,1:2)
>> c(2,2) = -5;
>> c
11
6 7
6
9
7 8
-5 11
Διανύσματα και Πίνακες (συνεχ.)
>> d = a * b
4 5
8 10
12 15
44
62
>> e = c * a
>> a’
1 2 3
6
7
8
>> c’
>> sum(a)
>> sum(c,2)
6
30
9
10
11
Ενσωματωμένες Συναρτήσεις
• ΑΟ 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)
grid on
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)
456
789
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
1
3
5
7
9
11
??? Undefined function or variable ’y'.
>> load C:\mySaved2
>> y
4
7
-3
2
Αρχεία Συναρτήσεων MATLAB
• Απλές εντολές σε M-file:
myMFile1.m
a = 2.5;
>> e
e = pi * a ^ 2;
e = 19.634954
• Συναρτήσεις:
myFunction1.m
function embado=myFunction1(x)
embado = pi * x ^2;
return
>> myMFile1
>> e = myFunction1(10)
e = 314.1593
>> myFunction1(0.5)
ans = 0.7854
>> x=myFunction1(17.5)
x = 962.1128
Συναρτήσεις
• Ορισμός συναρτήσεως:
function apotelesma = synarthsh1(parametroi)
myFun1.m
function y=myFun1(x)
y = x*x*x;
return
>> clear all
>> z=myFun1(8)
>> y
??? Undefined function or variable 'y'.
>> z
z = 512
Ορισμός
συνάρτησης
Σώμα
συνάρτησης
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
0
0
1
1
Διακλαδώσεις
if έκφραση1
if έκφραση1
εκτελείται μόνο
εκτελείται μόνο
αν η έκφραση1
αν η έκφραση1
είναι αληθής
είναι αληθής
end
else
εκτελείται μόνο
αν η έκφραση1
δεν είναι
αληθής
end
if έκφραση1
εκτελείται μόνο
αν η έκφραση1
είναι αληθής
elseif έκφραση2
εκτελείται μόνο
αν η έκφραση1
δεν είναι
αληθής και η
έκφραση2 είναι
αληθής
else
εκτελείται αν
καμία έκφραση
δεν είναι
αληθής
end
Παράδειγμα διακλαδώσεων
rand1.m
Βρόγχοι (Loops)
for μεταβλητή = αρχική τιμή : (προαιρετικό) βήμα : τελική τιμή
εντολές
end
for i=1:5
disp(i^2)
end
for i=5:-1:1
if i == 3
continue
end
disp(i^2)
end
1
4
9
16
25
25
16
4
1
Βρόγχοι (συνεχ.)
while λογική έκφραση
εντολές
end
i = 0;
while i<10
i=i+2
end
disp(i)
(μέσα στις οποίες πρέπει κάτι σχετικό με την
λογική έκφραση να αλλάζει, ή να υπάρχει κάποιο
break, ώστε να αποφεύγεται βρόγχος επ’άπειρον)
i=2
i=4
i=6
i=8
i = 10
10
i = 0;
while 1
if i>=10
break
end
i=i+2
end
disp(i)
• continue: συνέχεια με επόμενη εκτέλεση βρόγχου for ή while
• break: τερματισμός εκτέλεσης βρόγχων for και while
Άλλες Xρήσιμες Eντολές
>> format long ; pi
ans = 3.14159265358979
>> format short ; pi
ans = 3.1416
>> disp(pi)
3.1416
>> t= 'Testing' ; disp(t)
Testing
>> s='2*3-5+3/2’
>> eval(s)
>> realMax
ans =1.7977e+308
>> realMin
ans =2.2251e-308
>> help InF
>> print
>> help NaN
>> help print
ans =2.5000