Εισαγωγή στο MATLAB (συνέχεια)
6. Διαγράμματα
Εντολές clf Διαγράφει το ενεργό σχήμα. Εισαγωγή στο MATLAB: Δ13-3 figure(h) Καθιστά το h ως το ενεργό παράθυρο και το εμφανίζει στην οθόνη μπροστά από όλα τα άλλα παράθυρα. plot(xvalues, yvalues, color_linestyle_marketstyle ) Δημιουργεί ένα 2 D διάγραμμα με συντεταγμένες x και y που καθορίζονται από τα διανύσματα xvalues και yvalues. Προαιρετικά μπορούν να καθοριστούν το χρώμα και το είδος της γραμμής του διαγράμματος όπως και ο τρόπος απεικόνισης των σημείων του διαγράμματος. Χρώμα (color) Γραμμή (linestyle) b. g o r : x c. + m * y k Σημεία (marketstyle)
Εντολές subplot (m,n,p) ή subplot (mnp) Εισαγωγή στο MATLAB: Δ13-4 Χωρίζει το παράθυρο των σχημάτων σε mxn υποπαράθυρα και τοποθετεί το επόμενο διάγραμμα που θα σχεδιαστεί στο p υποπαράθυρο. Τα υποπαράθυρα μετρώνται κατά μήκος της πρώτης γραμμής, ακολούθως της δεύτερης κ.ο.κ. title(ʹtextʹ,ʹproperty1ʹ,propertyvalue1,ʹproperty2ʹ,propertyvalue2,...) Καθορίζει τον τίτλο του διαγράμματος και προαιρετικά δίνει τιμές στις ιδιότητες του. xlabel(ʹtextʹ,ʹproperty1ʹ,propertyvalue1,ʹproperty2ʹ,propertyvalue2,...) Καθορίζει το όνομα του άξονα x και προαιρετικά δίνει τιμές στις ιδιότητες του. ylabel(ʹtextʹ,ʹproperty1ʹ,propertyvalue1,ʹproperty2ʹ,propertyvalue2,...) Καθορίζει το όνομα του άξονα y και προαιρετικά δίνει τιμές στις ιδιότητες του. text(x,y,ʹstringʹ) Προσθέτει το κείμενο string στη θέση (x,y) του διαγράμματος. axis([xmin xmax ymin ymax]) Αλλάζει τα όρια των αξόνων με βάσει τις νέες τιμές xmin και xmax για τον άξονα x και ymin και ymax για τον άξονα y.
Εντολές Εισαγωγή στο MATLAB: Δ13-5 semilogx Ο άξονας x σχεδιάζεται σε λογαριθμική κλίμακα με βάση το 10. semilogy Ο άξονας y σχεδιάζεται σε λογαριθμική κλίμακα με βάση το 10. loglog Οι άξονες x και y σχεδιάζονται σε λογαριθμική κλίμακα με βάση το 10. grid on Προσθέτει τον κύριο κάνναβο στους ενεργούς άξονες. grid off Αφαιρεί τον κύριο και το δευτερεύον κάνναβο των ενεργών αξόνων. legend( string1, string2, string3,...) Τοποθετεί πινακάκι επεξηγήσεων στο ενεργό διάγραμμα χρησιμοποιώντας περιγραφές σε μορφή string που αφορούν κάθε διάγραμμα.
Παράδειγμα 2D Εισαγωγή στο MATLAB: Δ13-6 Σύνταξη:
Παράδειγμα 2D Εισαγωγή στο MATLAB: Δ13-7 Title Legend Ylabel Grid Xlabel
Παράδειγμα subplot Εισαγωγή στο MATLAB: Δ13-8 Σύνταξη: subplot (rows, cols, index)
Παράδειγμα 3D Σύνταξη: Εισαγωγή στο MATLAB: Δ13-9
Παραδείγματα 3D Εισαγωγή στο MATLAB:Δ13-10 Contourf plot3 waterfall Contour3 mesh surf
Παραδείγματα διαγραμμάτων Εισαγωγή στο MATLAB:Δ13-11 bar bar3h hist area pie3 rose
7. Εφαρμογές
Γραμμική Άλγεβρα (Linear Algebra) Εισαγωγή στο MATLAB:Δ13-13 Επίλυση γραμμικού συστήματος εξισώσεων (Solving a linear system) {x} Διάνυσμα το οποίο περιέχει τους αγνώστους [A] Πίνακας ο οποίος περιέχει τους συντελεστές των αγνώστων που αντιστοιχούν στο διάνυσμα {x} {b} Διάνυσμα το οποίο περιέχει τις σταθερές των δεξιών πλευρών των εξισώσεων x=a\b Επιλύνει το γραμμικό σύστημα διαφορικών εξισώσεων [A]{x}={b} (Αριστερή διαίρεση) Υπολογισμός ιδιοτιμών και ιδιοδιανυσμάτων (Eigenvalues and eigenvectors) Το πρόβλημα ιδιοτιμών έχει τη μορφή: A v= λ v Για την επίλυση του πρέπει να βρεθούν τα λ και v. V Πίνακας οι στήλες του οποίου αντιστοιχούν στα ιδιοδυανύσματα του Α D Πίνακας τα στοιχεία της διαγωνίου του οποίου αντιστοιχούν στις ιδιοτιμές του Α [V,D]=eig(A) Υπολογίζει τα ιδιοδυανύσματα και τις ιδιοτιμές του πίνακα Α έτσι ώστε Α*V = V*D.
Ανάλυση Δεδομένων και Στατιστική Εισαγωγή στο MATLAB:Δ13-14 Εντολή Λειτουργία Εντολής mean(x) Για διανύσματα δίνει το μέσο όρο των στοιχείων του Χ. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τους μέσους όρους των στοιχείων κάθε στήλης. mean(x,dim) Δίνει τους μέσους όρους των στοιχείων κατά μήκος της διάστασης dim (dim=1 στήλες, dim=2 γραμμές). median(x) Για διανύσματα δίνει το διάμεσο των στοιχείων του Χ. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τους διάμεσους των στοιχείων κάθε στήλης. median(x,dim) Δίνει τους διάμεσους των στοιχείων κατά μήκος της διάστασης dim (dim=1 στήλες, dim=2 γραμμές). std(x) Για διανύσματα δίνει την τυπική απόκλιση των στοιχείων του Χ. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τις τυπικές αποκλίσεις των στοιχείων κάθε στήλης. var(x) Για διανύσματα δίνει τη διασπορά των στοιχείων του Χ. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τις διασπορές των στοιχείων κάθε στήλης.
Ανάλυση Δεδομένων και Στατιστική Εισαγωγή στο MATLAB:Δ13-15 Εντολή Λειτουργία Εντολής min(x) Για διανύσματα δίνει τo στοιχείο του Χ με τη μικρότερη τιμή. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τα στοιχεία κάθε στήλης με τη μικρότερη τιμή. max(x) Για διανύσματα δίνει τo στοιχείο του Χ με τη μεγαλύτερη τιμή. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τα στοιχεία κάθε στήλης με τη μεγαλύτερη τιμή. sum(x) Για διανύσματα δίνει το άθροισμα των στοιχείων του Χ. Για πίνακες δίνει ένα διάνυσμα που αποτελείται από τα αθροίσματα των στοιχείων κάθε στήλης. sum(x,dim) Δίνει το άθροισμα των στοιχείων κατά μήκος της διάστασης dim του πίνακα Χ (dim=1 στήλες, dim=2 γραμμές). trapz(x) Υπολογίζει το ολοκλήρωμα των στοιχείων του Χ (εμβαδόν κάτω από την καμπύλη που ορίζεται από τα στοιχεία) χρησιμοποιώντας τον κανόνα του τραπεζίου. cumtrapz(x) Υπολογίζει το αθροιστικό ολοκλήρωμα των στοιχείων του Χ.
Συνήθεις Διαφορικές Εξισώσεις (ODE) Εισαγωγή στο MATLAB:Δ13-16 Διαφορικές Εξισώσεις 1ης Τάξης (Single first order differential equations) Εντολή [t,y] = ode45(ʹyprimeʹ,[t0,tf],y0); Λειτουργία Εντολής Επιλύνει τη διαφορική εξίσωση y =yprime(t,y), με αρχικές συνθήκες y(t0)=y0, στο διάστημα t0 t tf. H yprime ορίζεται σε μια συνάρτηση M file η οποία αποθηκεύεται ως yprime.m Παράδειγμα [t,y]=ode45(ʹexample1ʹ,[0,2*pi],3); όπου example1.m είναι ένα M file το οποίο περιέχει τον ορισμό της διαφορικής εξίσωσης example1 function dy= example1(t,y) dy=cos(t)/(2*(y 1)) ;
Συνήθεις Διαφορικές Εξισώσεις (ODE) Εισαγωγή στο MATLAB:Δ13-17 Σύστημα Διαφορικών Εξισώσεων 1ης Τάξης (System of first order differential equations) Εντολή Λειτουργία Εντολής [t,y] = ode45(ʹyprimeʹ,[t0 tf],[y1 y2]); Επιλύνει το σύστημα διαφορικών εξισώσεων y1 =yprime(t,y) και y2 =yprime(t,y), με αρχικές συνθήκες y1(t0)=y1 και y2(t0)=y2, στο διάστημα t0 t tf. H yprime ορίζεται σε μια συνάρτηση M file η οποία αποθηκεύεται ως yprime.m Παράδειγμα [t,y]=ode45(ʹexample2ʹ,[0 20],[2 0]); όπου example2.m είναι ένα M file το οποίο περιέχει τον ορισμό του συστήματος διαφορικών εξισώσεων example2 function dy= example2(t,y); dy=zeros(2,1); dy(1)=y(2) y(1)^2; dy(2)= y(1) 2*y(1)* y(2);
Συνήθεις Διαφορικές Εξισώσεις (ODE) Εισαγωγή στο MATLAB:Δ13-18 Διαφορικές Εξισώσεις 2ης Τάξης (Second order differential equations) Για την επίλυση μιας διαφορικής εξίσωσης 2ης τάξης, y =f(t,y,y ), είναι αναγκαίο αυτή να αντικατασταθεί από μια ισοδύναμη διαφορική εξίσωση 1ης τάξης θέτοντας y1=y και y2=y. Έτσι y=(y1,y2) είναι η λύση του συστήματος διαφορικών εξισώσεων 1ης τάξης: y1 =y2, y2 =f(t,y1,y2). Εντολή [t,y] = ode45( y, [t0 tf], [t1 t2]) ; Λειτουργία Εντολής Επιλύνει το σύστημα διαφορικών εξισώσεων y1 =yprime(t,y), με αρχικές συνθήκες y(t0)=y0, στο διάστημα t0 t tf. H yprime ορίζεται σε μια συνάρτηση M file η οποία αποθηκεύεται ως yprime.m
Συνήθεις Διαφορικές Εξισώσεις (ODE) Εισαγωγή στο MATLAB:Δ13-19 Διαφορικές Εξισώσεις 2ης Τάξης (Second order differential equations) Παράδειγμα [t,y]=ode45(ʹexample3ʹ,[0 10],[0 1]); όπου example3.m είναι ένα M file το οποίο περιέχει τον ορισμό του συστήματος διαφορικών εξισώσεων example3 function dy= example3(t,y); dy=zeros(2,1); dy(1)=y(2); dy(2)= y(1)*y(2) y(1);
Εισαγωγή στο MATLAB:Δ13-20 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών Παράδειγμα Να υπολογιστεί η απόκριση μονοβάθμιου συστήματος σε ελεύθερη ταλάντωση και να δημιουργηθούν τα διαγράμματα απόκρισης συναρτήσει του χρόνου. Στοιχεία που απαιτούνται για τη σύνταξη του προγράμματος Ο χρήστης καλείται να δώσει: τα χαρακτηριστικά του ταλαντωτή: μάζα δυσκαμψία λόγος απόσβεσης τις αρχικές συνθήκες: αρχική μετατόπιση αρχική ταχύτητα και στοιχεία που αφορούν τους υπολογισμούς: χρονικό βήμα υπολογισμών τελικός χρόνος υπολογισμών. Με βάση τις αρχικές συνθήκες υπολογίζεται η απόκριση του συστήματος χωρίς απόσβεση σε ελεύθερη ταλάντωση με χαρακτηριστικά που έχει καθορίσει ο χρήστης. Η μετατόπιση του συστήματος σχεδιάζεται συναρτήσει του χρόνου.
Εισαγωγή στο MATLAB:Δ13-21 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών Παράδειγμα( ) Καλείται συνάρτηση (τόσο για το λόγο απόσβεσης που καθορίζει ο χρήστης όσο και για κρίσιμη απόσβεση) η οποία: ελέγχει κατά πόσο η απόσβεση είναι υποκρίσιμη, κρίσιμη ή υπερκρίσιμη χρησιμοποιώντας τις ανάλογες σχέσεις υπολογίζει την απόκριση του συστήματος με απόσβεση σε ελεύθερη ταλάντωση και σχεδιάζει το διάγραμμα της μετατόπισης συναρτήσει του χρόνου. Τελικά, δημιουργείται ένα διάγραμμα (plot) το οποίο έχει δυο υποδιαγράμματα (subplot): Στο πρώτο υποδιάγραμμα σχεδιάζεται η μετατόπιση του συστήματος χωρίς απόσβεση σε ελεύθερη ταλάντωση. Στο δεύτερο υποδιάγραμμα σχεδιάζεται η μετατόπιση του συστήματος με απόσβεση για δύο περιπτώσεις: (α) για λόγο απόσβεσης που έχει καθορίσει ο χρήστης και (β) για λόγο απόσβεσης ζ = 1 (κρίσιμη απόσβεση).
Εισαγωγή στο MATLAB:Δ13-22 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών %Script file: sdof_freevibration %Purpose: Calculation of the response of the single-degree-of-freedom system %in free vibration and plot of response of the system against time %Variables: %m: Mass of the system in kg %k: Stiffness f the systemin N/m %z_fraction: Damping ratio of the system as a percent %z: Damping ratio of the system as a number %init_displ: Initial displacement in m %init_vel: Initial velocity in m/sec %dt: Time-step of the calculations in sec %t_final: Final time for the calculations in sec %cyclic_freq: Cyclic frequency of the undamped system %period: Period of the system %u: Response of the system %t: Vector of time %i: Length of vector t clear clf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fprintf('\nfree Vibration') fprintf('\n---------------------') %The user gives the characteristics of the system fprintf('\ncharacteristics of the system\n') m=input('\ngive the mass in kg: '); k=input('\ngive the stiffness in N/m: '); z_fraction=input('\ngive the damping ratio as a %: '); z=z_fraction/100;
Εισαγωγή στο MATLAB:Δ13-23 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών init_displ=input('\ngive the initial displacement in m: '); init_vel=input('\ngive the initial velocity in m/sec: '); dt=input('\ngive the time-step in sec: '); t_final=input('\ngive the final time for the calculations in sec: '); %Cyclic frequency of the system cyclic_freq=sqrt(k/m); %Period of the system period=2*pi/cyclic_freq; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Undamped Vibration %Vector of time t=0:dt:t_final; %Calculation of the response of the undamped system for each time-step for i=1:length(t) u(i)=init_displ*cos(cyclic_freq*t(i))+init_vel/cyclic_freq*sin(cyclic_freq*t(i)); end %Plot of the response of the undamped system against time subplot(2,1,1) title('u-t Plot for Free Undamped Vibration') xlabel('t (sec)') ylabel('u (m)') grid on hold on plot(t,u) hold on
Εισαγωγή στο MATLAB:Δ13-24 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Damped Vibration %Plot of the response of the damped system against time subplot(2,1,2) title('u-t Plot for Free Damped Vibration') xlabel('t (sec)') ylabel('u (m)') grid on hold on %Call the fuction sdof_damped sdof_damped(t,1,cyclic_freq,init_displ,init_vel) %Critically damped system sdof_damped(t,z,cyclic_freq,init_displ,init_vel) %Damped system
Εισαγωγή στο MATLAB:Δ13-25 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών function sdof_damped(t,z,wn,u0,v0) %sdof_damped calculates the free-vibration response of a damped SDOF system %Purpose: Calculates and plots the free-vibration response of a damped SDOF %system depending on the amount of damping in the system %Variables: %wn:cyclic frequency of the undamped system %wd:cyclic frequency of the damped system %period: Period of the system %z: Damping ratio of the structure as a number %u0: Initial displacement in m %v0: Initial velocity in m/sec %u: Response of the system %t: Vector of time %t_final: Final time for the calculations in sec %i: Length of vector t %c1,c1: Variables for easiest calculation of the response %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if z<1 %Underdamped System for i=1:length(t) wd=wn*sqrt(1-z^2); u(i)=exp(-z*wn*t(i))*(u0*cos(wd*t(i))+(v0+z*wn*u0)/wd*sin(wd*t(i))); end plot(t,u,'-g') legend('critically Damped System', 'Underdamped System') hold on
Εισαγωγή στο MATLAB:Δ13-26 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών elseif z==1 %Critically Damped System for i=1:length(t) u(i)=exp(-wn*t(i))*(u0+(v0+wn*u0)*t(i)); end plot(t,u,'--r') legend('critically Damped System') hold on else %Overdamped System for i=1:length(t) c1=(u0*wn*(z+sqrt(z^2-1))+v0)/(2*wn*sqrt(z^2-1)); c2=(-u0*wn*(z-sqrt(z^2-1))-v0)/(2*wn*sqrt(z^2-1)); u(i)=c1*exp((-z+sqrt(z^2-1))*wn*t(i))+c2*exp((-z-sqrt(z^2-1))*wn*t(i)); end plot(t,u,'-.m') legend('critically Damped System','Overdamped System') hold on end
Εισαγωγή στο MATLAB:Δ13-27 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών >> sdof_freevibration Free Vibration Characteristics of the structure Give the mass in kg: 100 Give the stiffness in N/m: 8800 Give the damping ratio as a %: 10 Give the initial displacement in m: 0.5 Give the initial velocity in m/sec: 0.5 Give the time step in sec: 0.02 Give the final time for the calculation in sec: 5
Εισαγωγή στο MATLAB:Δ13-28 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών >> sdof_freevibration Free Vibration Characteristics of the structure Give the mass in kg: 100 Give the stiffness in N/m: 8800 Give the damping ratio as a %: 100 Give the initial displacement in m: 0.5 Give the initial velocity in m/sec: 0.5 Give the time step in sec: 0.02 Give the final time for the calculation in sec: 5
Εισαγωγή στο MATLAB:Δ13-29 Εφαρμογή στη Δυναμική Ανάλυση των Κατασκευών >> sdof_freevibration Free Vibration Characteristics of the structure Give the mass in kg: 100 Give the stiffness in N/m: 8800 Give the damping ratio as a %: 200 Give the initial displacement in m: 0.5 Give the initial velocity in m/sec: 0.5 Give the time step in sec: 0.02 Give the final time for the calculation in sec: 5