Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Άσκηση 1 Άσκηση 1. Δίνεται το παρακάτω σύστημα

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Άσκηση 1 Άσκηση 1. Δίνεται το παρακάτω σύστημα"— Μεταγράφημα παρουσίασης:

1 Άσκηση 1 Άσκηση 1. Δίνεται το παρακάτω σύστημα
Με την βοήθεια των μετασχηματισμών Laplace, να βρεθεί η λύση του παραπάνω συστήματος με είσοδο u(t)=cos(t) και να σχεδιασθεί η γραφική παράσταση του ζεύγους (x1(t),x2(t)) για x=0,0.1,…,5.

2 Λύση άσκησης 1 subplot(1,2,1) a=[1 -2 ; -2 1]; plot(t1,y1) b=[0 ; 1];
x0=[-1 ; 1]; syms t x s; i1=eye(2) ut=cos(t); us=laplace(ut,t,s); xs=inv(s*i1-a)*(x0+b*us); x1=ilaplace(xs(1),s,t) x2=ilaplace(xs(2),s,t) t1=[0:0.1:10]; y1=subs(x1,t,t1); y2=subs(x2,t,t1); subplot(1,2,1) plot(t1,y1) xlabel('t') ylabel('x1') grid subplot(1,2,2) plot(t1,y2) ylabel('x2') ezplot(f) ezplot(f,[min,max]) ezplot(f,[xmin,xmax,ymin,ymax]) ezplot(x,y) ezplot(x,y,[tmin,tmax]) ezplot(...,figure)

3 Άσκηση 2 (για σπίτι) Άσκηση 2. Δίνεται το παρακάτω σύστημα
Με την βοήθεια του μετασχηματισμού Z, να βρεθεί η λύση του παραπάνω συστήματος με είσοδο u(k)=k.

4 Λύση άσκησης 2 a=[1 3 ; 1 -1]; b=[-1 ; 1]; x0=[-1 ; 1];
syms k z x1 x2; i1=eye(2); uk=k; uz=ztrans(uk,k,z); xz=inv(z*i1-a)*(z*x0+b*uz); x1=iztrans(xz(1),z,k) x2=iztrans(xz(2),z,k) k1=[0:1:20]; y1=subs(x1,k,k1); y2=subs(x2,k,k1); subplot(1,2,1) plot(t1,y1) % ezplot(x1,[0,10]) xlabel('t') ylabel('x1') grid subplot(1,2,2) plot(t1,y2) % ezplot(x2,[0,10]) ylabel('x2')

5 Άσκηση 3 (για σπίτι) Άσκηση 3. Δίνονται οι πίνακες
Να δημιουργήσετε τον πίνακα και να υπολογίσετε α) το χαρακτηριστικό του πολυώνυμο, β) τις ιδιοτιμές και ιδιοανύσματα του, γ) την Jordan μορφή του. Να δείξετε επίσης ότι sin(A)2 +cos(A)2=I

6 Λύση άσκησης 3 clear all a0=[1 3 ; 1 -1]; a1=[2 3 ; 4 0]; a2=eye(2);
z=zeros(2,2); a=[a2 z z ; z a2 z ; -a0 -a1 -a2] poly(a) [x,e]=eig(a) jordan(a) e=expm(i*a); c=real(e); s=imag(e); c^2+s^2 %

7 Προγραμματισμός στο MATLAB (Είσοδος-έξοδος)
clc : Καθαρίζει το command window (χρησιμοποιείται στα M-file για να αρχίζει η έξοδος των αποτελεσμάτων πάντα στο ίδιο σημείο. % : σχόλια π.χ. % Το πρόγραμμα αυτό … disp(μεταβλητές) : εμφανίζει κείμενο ή έναν πίνακα στην οθόνη π.χ. disp(‘Text’) ή disp(rand(3,3)). Η display(μεταβλητές) εμφανίζει το μήνυμα μεταβλητή=τιμή, ενώ η disp μόνο το περιεχόμενο των μεταβλητών. input(‘string’) : εμφανίζει στον χρήστη το μήνυμα ‘string’ και περιμένει την επιστροφή μιας τιμής π.χ. A=input(‘Δώσε μια τιμή για το Α :’). Είναι δυνατό να επιστρέψει string ως έξοδο αν συνταχθεί ως εξής : input(‘string’,’s’).

8 Παράδειγμα % % Example of input-output % Clear command window clc
% Input elements to the matrix A a=input('Give the elements of a 2 by 3 matrix :'); % Display the matrix display(a)

9 Διαχείριση αρχείων (είσοδος-έξοδος δεδομένων)
fopen(όνομα αρχείου) : ανοίγει ένα αρχείο π.χ. fid=fopen(‘nikos’) ανοίγει το αρχείο ‘nikos’ και επιστρέφεται ένας αριθμός που θα χρησιμοποιηθεί όταν αναφερόμαστε στο αρχείο αυτό με την fprintf και fscanf. Συνοδεύεται από έναν χαρακτήρα π.χ. ‘r’ ανοίγει ένα αρχείο για ανάγνωση, ‘w’ ανοίγει ένα αρχείο ή δημιουργεί ένα καινούριο, διαγράφοντας το περιεχόμενο του, ‘a’ ανοίγει ένα αρχείο με σκοπό την προσθήκη στοιχείων στο τέλος του αρχείου, ‘r+’ ανάγνωση και γραφή, ‘w+’ ανάγνωση και γραφή με διαγραφή τυχόν στοιχείων. fclose(fid) : κλείνει το αρχείο που αντιστοιχεί στο fid. fprintf(fid,format,μεταβλητές) : τοποθετεί το περιεχόμενο των μεταβλητών στο αρχείο που έχει δηλωθεί μέσω της open με το fid (1 αν τα αποτελέσματα παν στην οθόνη και 2 σε περίπτωση λάθους). Ο τρόπος που θα τυπωθούν οι μεταβλητές καθορίζεται από το format (μορφοποίηση). fscanf(fid, format, μεταβλητές) : Διαβάζει τα περιεχόμενα ενός αρχείου σε έναν πίνακα. Στο τέλος τοποθετούμε n το σύνολο των στοιχείων που θα τοποθετήσουμε σε ένα διάνυσμα στήλη, inf αν θέλουμε να τοποθετήσουμε όλα τα στοιχεία σε ένα διάνυσμα στήλη, και [n,m] αν θέλουμε να τοποθετήσουμε αρκετά στοιχεία για να γεμίσουμε έναν πίνακα nxm.

10 Μορφοποίηση για είσοδο-έξοδο δεδομένων
Μορφοποίηση εισόδου-εξόδου δεδομένων Χαρακτήρες ελέγχου (escape characters) Τύποι Μορφοποίησης (Conversion characters) \n Νέα γραμμή \t Στηλοθέτης (tab) \f Νέα σελίδα %e Εκθετικός %f Δεκαδικός %u Ακέραιος %s Αλυσίδα χαρακτήρων (string)

11 Παράδειγμα % Δημιουργία τριγωνομετρικού πίνακα clc;
% open file for writing fid=fopen('ex2.txt','w'); % calculate sin, cos and store into files t=linspace(0,90,360); for i=1:360 c=t(i)*pi/180; fprintf(fid,'%10.7f %10.7f %10.7f \n', t(i), sin(c), cos(c)); end % close file fclose(fid);

12 Παράδειγμα % Εμφάνιση των στοιχείων του τριγωνομετρικού πίνακα clc;
% open file for reading fid=fopen('ex2.txt','r'); % read file in a 3 row matrix x=fscanf(fid, '%10f %10f %10f', [3 inf]); % find the transpose of x x=transpose(x); % print the matrix fprintf(1,'%10.4f %10.4f %10.4f \n', x) % close file fclose(fid);

13 Δομές Ελέγχου (if-then-else)
if expression statements end if expression1 elseif expression2 else Εάν (συνθήκη) εκφράσεις Τέλος Εάν ισχύει η συνθήκη1 διαφορετικά αν ισχύει η συνθήκη2 διαφορετικά τέλος

14 Τελεστές σύγκρισης – Λογικοί τελεστές
& λογικό AND | λογικό OR ~ λογικό NOT Τελεστές σύγκρισης == ίσο <= μικρότερο ίσο >= μεγαλύτερο ίσο ~= άνισο < μικρότερο > μεγαλύτερο

15 Παράδειγμα clc; a=input('Give me two numbers (a(1),a(2)) in order to solve a(1)x+a(2)=0 : '); if (a(1)==0) if (a(2)==0) disp('Infinity number of solutions') else disp('Not compatible') end x=-a(2)/a(1); fprintf(1,'x= %10.4f', x)

16 Άσκηση Να γραφεί πρόγραμμα που θα δέχεται τα στοιχεία ενός πολυωνύμου και θα ελέγχει αν έχει όλες τις ρίζες του αρνητικές. x=input('Give me a polynomial :'); y=roots(x); if y<0 disp('stable'); else disp('unstable'); end;

17 Δομές Ελέγχου (switch)
switch switch_expr case case_expr statement,...,statement case {case_expr1,case_expr2,case_expr3,...} ... otherwise end

18 Παράδειγμα clc; grade=input('Grade='); switch grade(1)
case {0,1,2,3,4} disp('fail') case 5 disp('pass') case {6,7} disp('good') case {8,9} disp('very good') case 10 disp('excellent') otherwise disp('error') end

19 Άσκηση Να γραφεί πρόγραμμα που θα ζητάει δύο συναρτήσεις μεταφοράς G1 (αριθμητής n1, παρονομαστής d1) και G2 (αριθμητής n2, παρονομαστής d2). Στη συνέχεια θα ρωτάει αν θέλουμε την σύνδεση σε σειρά ή την παράλληλη σύνδεση και θα υπολογίζει αντίστοιχα την συνάρτηση μεταφοράς. n1=input('Numerator of G1 ='); d1=input('Denominator of G1 ='); n2=input('Numerator of G2 ='); d2=input('Denominator of G2 ='); disp('1. Series Connection') disp('2. Parallel Connection') n=input('Select :');

20 Άσκηση switch n case 1 ns=conv(n1,n2) ds=conv(d1,d2) case 2
n11=conv(n1,d2); n12=conv(n2,d1); if length(n11)>length(n12) ns=[zeros(1,length(n11)-length(n12)) n12]+n11 elseif length(n12)>length(n11) ns=[zeros(1,length(n12)-length(n11)) n11]+n12 else ns=n11+n12 end; otherwise disp('error') end

21 Δομές επανάληψης (for)
for variable = expression statement ... end όπου expression-> scalar : scalar n=input('dimension of the matrix (nxn) ='); a = zeros(n,n); % Preallocate matrix for i = 1:n for j = 1:n a(i,j) = 1/(i+j -1); end

22 Άσκηση Να υπολογίσετε την λύση του παρακάτω συστήματος για k=0,0.01,..,10 και στη συνέχεια να κάνετε την γραφική παράσταση της λύσης. με είσοδο u(k)=k. x=[-1 ; 1]; b=[-1 ; 1]; a=[1 3 ; 1 -1]; x=[x a*x+b*0]; for i=2:1000 k=i/100; x=[x a*x(:,i-1)+b*k]; end; k=[0:0.01:10]; plot(k,x);

23 Δομές επανάληψης (while)
while expression statements end n=input('which fibonacci number do you want (n) =') f=[1 1]; i=1; while i<=n-1; f(i+2)=f(i+1)+f(i); i=i+1; end; fprintf('f( %3u )= %10.4f', n,f(n+1))

24 Παράδειγμα Να υπολογισθεί ο παρακάτω πίνακας με ακρίβεια 10^(-6)
a=input('Give a matrix A :') i=1 s=eye(length(a)) oros=a pros=1e-6 while any(abs(oros))>pros s=s+oros i=i+1 oros=oros*a/i end s expm(a)

25 Διαφορά σε χρόνους εκτέλεσης
Save As ‘timing’ >> clear i a >> timing e1 = 1.9200 e2 = 0.0500 t1=clock; for i=1:10000 a(i)=log(i); end; e1=etime(clock,t1) t2=clock; ind=[1:10000]; a=log(ind); e2=etime(clock,t2)

26 Συναρτήσεις (functions)
έξοδος είσοδος function [out1,out2,..]=όνομα(in1, in2,…) % σχόλια εντολές MATLAB function [mean,stdev] = stat(x) % returns the mean and and the standard deviation of a vector x n = length(x); mean = sum(x)/n; stdev = sqrt(sum((x-mean).^2/(n-1))); * Αποθηκεύεται με το ίδιο όνομα της συνάρτησης.

27 Συναρτήσεις (εκτέλεση μιας συνάρτησης)
>> help stat returns the mean and and the standard deviation of a vector x >> x=[1 2 3]; >> [m,s]=stat(x) m = 2 s = 0.8165

28 Συναρτήσεις (1 ή παραπάνω ορίσματα)
function r = rank(A,tol) % RANK Matrix rank. % RANK(A) provides an estimate of the number of linearly % independent rows or columns of a matrix A. % RANK(A,tol) is the number of singular values of A % that are larger than tol. % RANK(A) uses the default tol = max(size(A)) * norm(A) * eps. s = svd(A); if nargin==1 tol = max(size(A)') * max(s) * eps; end r = sum(s > tol);

29 Άσκηση Να δημιουργηθεί συνάρτηση που θα δέχεται ως είσοδο α) τον αριθμητή και παρονομαστή (ng,dg) της συνάρτησης μεταφοράς G(s) και β) τον αριθμητή και παρονομαστή (nk,dk) της συνάρτησης μεταφοράς Κ(s) και θα επιστρέφει ως έξοδο τον αριθμητή και παρονομαστή (ngk,dgk) της συνάρτηση μεταφοράς του κλειστού συστήματος έστω H(s) * length(x) : Διάσταση ενός πίνακα x.

30 Απάντηση function [ngk,dgk] = cltf(ng,dg,nk,dk)
% Assume that G=ng/dg and K=nk/dk are in series % in a unity feedback configuation. % Given the ng,dg,nk,dk the function returns % the numerator ngk and denominator dgk of the closed % loop transfer function matrix ngk=conv(ng,nk); dgk1=conv(dg,dk); dgk2=conv(ng,nk); if (length(dgk1)>length(dgk2)) dgk2=[zeros(1,length(dgk1)-length(dgk2)) dgk2]; dgk=dgk1+dgk2; elseif (length(dgk1)<length(dgk2)) dgk1=[zeros(1,length(dgk2)-length(dgk1)) dgk1]; else end

31 Άσκηση 1 (για σπίτι) Να δημιουργηθεί συνάρτηση που θα δέχεται ως είσοδο α) τον αριθμητή και παρονομαστή (ng,dg) της συνάρτησης μεταφοράς G(s) και β) τον αριθμητή και παρονομαστή (nk,dk) της συνάρτησης μεταφοράς Κ(s) και θα επιστρέφει ως έξοδο τον αριθμητή και παρονομαστή (ngk,dgk) της συνάρτηση μεταφοράς του κλειστού συστήματος έστω H(s)

32 Άσκηση 2 (για σπίτι) Να δημιουργηθεί συνάρτηση που θα δέχεται ως είσοδο τους πίνακες A, B, C, D και εφόσον ελέγξει αν οι διαστάσεις τους είναι συμβατές για περιγραφή του παρακάτω συστήματος στη συνέχεια θα υπολογίζει την συνάρτηση μεταφοράς του συστήματος G(s)


Κατέβασμα ppt "Άσκηση 1 Άσκηση 1. Δίνεται το παρακάτω σύστημα"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google