Ανάλυση συστημάτων με χρήση μετασχηματισμού Laplace. Ο Μετασχηματισμός Laplace Ο μετασχηματισμός Laplace μιας συνάρτησης f(t) δίνεται από τη σχέση: st L[ f ( t)] = F( = f ( t) e dt Η χρήση του μετασχηματισμού Laplace απλοποιεί τη διαδικασία επίλυσης διαφορικών εξισώσεων - το πρόβλημα ανάγεται σε επίλυση αλγεβρικής εξίσωσης: Διαφορική εξίσωση Μετασχηματισμός Laplace Αλγεβρική εξίσωση Επίλυση αλγεβρικής εξίσωσης Αντίστροφος μετασχηματισμός Laplace Επίλυση διαφορικής εξίσωσης. Ο αντίστροφος μετασχηματισμός Laplace Αν F( είναι ο μετασχηματισμός Laplace μιας συνάρτησης, η συνάρτηση f(t) μπορεί να υπολογισθεί από τον αντίστροφο μετασχηματισμό Laplace με τη βοήθεια του ολοκληρώματος: c+ j L [ F( ] = f ( t) = F( e st ds πj c j 3. Υπολογισμοί χρήση πινάκων Ο υπολογισμός τόσο του ολοκληρώματος του ευθύ, όσο και του αντίστροφου μετασχηματισμού Laplace είναι δυσχερής και συνήθως παρακάμπτεται με τη χρήση γνωστών ζευγών του μετασχηματισμού Laplace τα οποία είναι διαθέσιμα σε πίνακες. 4. Ανάλυση σε μερικά κλάσματα Αν ο μετασχηματισμός Laplace F( μιας συνάρτησης f(t) έχει τη μορφή m b( bms + F( = = n a( s + a κλάσματα ως εξής: m bm s n ns + b( c c F( = =... a( s +... + b s + b... + a s + a c, τότε η συνάρτηση F( αναλύεται σε μερικά n + + +, όπου λ λ... λ n οι ρίζες του πολυωνύμου a(. λ s λ s λn Τότε, ο αντίστροφος μετασχηματισμός Laplace της F( είναι: L F( ] = c e λ t + c e λ t [ +... + c e n λ t n Οι υπολογισμοί αυτοί διευκολύνονται σημαντικά με τη χρήση του matlab.
5. Πολυώνυμα και matlab Στο matlab, ένα πολυώνυμο παριστάνεται με ένα διάνυσμα. Οι συντελεστές του πολυωνύμου εισάγονται στο διάνυσμα σε φθίνουσα σειρά. Για παράδειγμα το πολυώνυμο 4 3 s s s s + 3 5 + 9 εισάγεται ως διάνυσμα x = [ 3-5 - 9] Το Matlab αναπαριστά ένα διάνυσμα μήκους (n+) σαν πολυώνυμο n βαθμού. Έτσι, αν κάποιες δυνάμεις δεν υπάρχουν στο πολυώνυμο, στο διάνυσμα που θα χρησιμοποιηθεί για την παράσταση του εισάγονται στις αντίστοιχες θέσεις μηδενικά. Το πολυώνυμο s 4 + λοιπόν θα πρέπει να εισαχθεί ως y = [ ] Η συνάρτηση polyval( ) επιτρέπει τον υπολογισμό της τιμής του πολυωνύμου. Για παράδειγμα, η τιμή του s 4 + για s= μπορεί να υπολογισθεί ως εξής: z = polyval([ ], ) z = 7 Η συνάρτηση roots( ) επιτρέπει τον υπολογισμό των ριζών ενός πολυωνύμου. Για παράδειγμα οι ρίζες του πολυωνύμου roots([ 3-5 - 9]) ans = -5.5745.5836 -.795.786 4 3 s s s s + 3 5 + 9 υπολογίζονται με χρήση της εντολής: Η συνάρτηση poly( ) συνθέτει ένα πολυώνυμο από τις ρίζες του: r = [-, -]; p = poly(r); ans = 3 που αντιστοιχεί στο s + 3s + Η ανάλυση σε μερικά κλάσματα στο matlab πραγματοποιείται με τη βοήθεια της συνάρτησης residue( ), η οποία χρησιμοποιείται ως εξής: [r, p, k] = residue(num, den) r είναι οι συντελεστές p είναι οι πόλοι k είναι το διάνυσμα των σταθερών όρων 3
6. Παραδείγματα υπολογισμού αντίστροφου μετασχηματισμού Laplace Παράδειγμα Να υπολογισθεί ο αντίστροφος μετασχηματισμός Laplace της συνάρτησης: s Y ( = s + s + + 3s + Κώδικας Matlab nom=[ ]; den=[ 3 ]; [r p k]=residue(nom,den) r = - p = - - k = Οπότε: s + s + r r Y ( = = r + + = + s + 3s + s + s + s + s + t t και επομένως η συνάρτηση y(t) είναι y( t) = L [ Y ( ] = δ ( t) + e e. Παράδειγμα Να υπολογισθεί ο αντίστροφος μετασχηματισμός Laplace της συνάρτησης Y ( = s 3 + 4s + 5s + Κώδικας Matlab nom=[]; den=[ 4 5 ]; [r p k]=residue(nom,den) r =. -.. p = -. 4
-. -. k = [] Οπότε: Y() s = = + + 3 s + 4s + 5s+ s+ ( s+ ) s+ και επομένως η συνάρτηση y(t) είναι Παράδειγμα y( t) = L [ Y ( ] = e Να υπολογισθεί ο αντίστροφος μετασχηματισμός Laplace της συνάρτησης Y() s = 4 + 5 + 9 + 5 3 s s s Κώδικας Matlab nom=[4]; den=[ 5 9 5]; [r p k]=residue(nom,den) r = -. +.i -. -.i. p = -. +.i -. -.i -. k = [] Να υπολογιστεί η y(t). Λύση Μετά από χρήση της συνάρτησης roots της Matlab προκύπτει ότι οι ρίζες του πολυωνύμου a( είναι -, -+j, --j. Άρα το Y( γράφεται ως: t + te i + i Y() s = = = + + = + 5 + 9 + 5 ( + 4 + 5)( + ) + + + + t + e 3 s s s s s s s s i s i s 6 ( s + ) = + = s+ s+ + s+ s+ + s+ + ( ) ( ) ( ) t t και επομένως η συνάρτηση y(t) είναι y( t) = L [ Y ( ] = e e (cost + sint) t 5
7. Χρονική απόκριση Θεωρήστε τη συνάρτηση μεταφοράς G( = num(/den(. Με την εντολή sys = tf(num,den) δημιουργείται ένα γραμμικό σύστημα που έχει ως συνάρτηση μεταφοράς την G(. Το matlab διαθέτει μια σειρά εντολών με τις οποίες είναι δυνατός ο υπολογισμός της απόκρισης του συστήματος σε διάφορες μορφές διέγερσης. ) κρουστική απόκριση yi = impulse(sys,t) ) βηματική απόκριση ys = step(sys,t) 3) απόκριση σε τυχαία είσοδο yg = lsim(sys,u,t) η μεταβλητή t παριστάνει το διάνυσμα του χρόνου (διάνυσμα στήλης), το διάνυσμα στήλης u περιέχει την είσοδο και τα yi, ys και yg είναι διανύσματα στήλης στα οποία καταχωρείται η έξοδος του συστήματος. Παράδειγμα Υπολογίστε την κρουστική και βηματική απόκριση του συστήματος με την ακόλουθη συνάρτηση μεταφοράς G = s στο χρονικό διάστημα t = έως t =. Κώδικας matlab t=[:.:]'; % διάνυσμα χρόνου ( + s + num=; % αριθμητής συνάρτησης μεταφοράς den=[ ]; % παρονομαστής συνάρτησης μεταφοράς sys = tf(num,den); y_i = impulse(sys,t); % υπολογισμός κρουστικής απόκρισης y_s = step(sys,t); % υπολογισμός βηματικής απόκρισης subplot(,,), plot(t,y_i), ylabel('impulse response') subplot(,,), plot(t,y_, ylabel('step response') xlabel('time in seconds') Με τον κώδικα αυτό παράγονται τα ακόλουθα σχήματα: 6
Με τον κώδικα που ακολουθεί μπορεί να υπολογισθεί και να παρασταθεί γραφικά η απόκριση του συστήματος σε γραμμική διέγερση και τυχαίο θόρυβο. ramp=t; % δημιουργία γραμμικής εισόδου noise=rand(,); % δημιουργία τυχαίου διανύσματος x y_g = lsim(sys,ramp,t); % υπολογισμός απόκρισης σε γραμμική διέγερση y_n = lsim(sys,noise,t); % υπολογισμός απόκρισης σε τυχαίο θόρυβο figure subplot(,,), plot(t,y_g), ylabel('ramp response') subplot(,,), plot(t,y_n), ylabel('noise response') xlabel('time in seconds') 7
Παράδειγμα Η συνάρτηση μεταφοράς ενός παράλληλου RLC κυκλώματος υπολογίσθηκε ότι είναι η ακόλουθη: H ( = I I L S ( ( = s.6 + 64,s + 6 9 8 () Υπολογίστε την κρουστική και βηματική απόκριση του κυκλώματος από t = έως t =.5ms. Κώδικας matlab t=[:.*^(-6):.5*^(-3)]'; % διάνυσμα χρόνου num=[.6*^9]; % αριθμητής συνάρτησης μεταφοράς den=[ 64 6*^8]; % παρονομαστής συνάρτησης μεταφοράς mysys = tf(num,den); y_i = impulse(mysys,t); % υπολογισμός κρουστικής απόκρισης y_s = step(mysys,t); % υπολογισμός βηματικής απόκρισης figure subplot(,,), plot(t,y_i), ylabel('impulse response') subplot(,,), plot(t,y_, ylabel('unit step response') xlabel('time in seconds') 8
Ο κώδικας παράγει τα ακόλουθα διαγράμματα: Impulse response 5 5-5.5.5.5 3 3.5 4 4.5 5 x -4.5 Unit step response.5.5.5.5 3 3.5 4 4.5 5 time in seconds x -4 () Υπολογίστε την απόκριση του κυκλώματος σε εισόδους u ( t). 4 u ( t) =.4 cos(4, ) [A], από t = έως t =.5 ms. t = [A] και Κώδικας matlab u =.4*ones(5,); y = lsim(mysys,u,t); u =.4*cos(4*t); y = lsim(mysys,u,t); figure subplot(,,), plot(t,y), ylabel('step response') subplot(,,), plot(t,y), ylabel('sinusoidal response') xlabel('time in seconds') 9
Step response.5..5..5.5.5.5 3 3.5 4 4.5 5 x -4. Sinusoidal response. -. -..5.5.5 3 3.5 4 4.5 5 time in seconds x -4 8. Εντολές matlab () Προβολή συνάρτησης μεταφοράς printsys(num,den) () Κατασκευή πολυωνύμου από τις ρίζες του den = poly([root root root3]) (3) εύρεση πόλων και μηδενικών της συνάρτησης μεταφοράς [z,p,k] = tfzp(num,den) οπου z (μηδενικά) και p(πόλοι) είναι διανύσματα στήλης και k είναι το κέρδος (4) κατασκευή διαγράμματος πόλων - μηδενικών pzmap(num,den) ή pzmap(sy (5) κατασκευή συνάρτησης μεταφοράς από γνωστούς πόλους και μηδενικά [num, den] = zptf(z,p,k) όπου num και den είναι διανύσματα γραμμής.
9. Στοιχεία κυκλωμάτων και μετασχηματισμός Laplace Για μια αντίσταση R, vt () = R it () [ ()] = L[ R it ()] Lvt Vs () = R Is () Για αυτεπαγωγή L, di() t vt () = L dt Vs () = L s Is () i() = s L Is () L i() i( ) ή Is ( ) = Vs ( ) + s L s Για Πυκνωτή C, dv() t it () = C dt I() s = C s V() s v() = s C V() s C v() v( ) ή Vs ( ) = Is ( ) + s C s
. Ισοδύναμα κυκλώματα στοιχείων στο πεδίο s. Παράδειγμα: Ανάλυση κυκλώματος RLC σειράς Στο κύκλωμα του σχήματος, οι αρχικές συνθήκες του ρεύματος στο πηνίο και της τάσης στα άκρα του πυκνωτή είναι IL() = I = A και VC() = V = V, ενώ η τάση εισόδου είναι V() t = ut (). Να υπολογίσετε το ρεύμα που i διαρρέει το κύκλωμα και τις τάσεις στο πηνίο και τον πυκνωτή για R =.5Ω, L =.5 H και C =F.
Χρησιμοποιώντας την αναπαράσταση των στοιχείων στο επίπεδο s, το κύκλωμα παίρνει τη μορφή του διπλανού σχήματος, οπότε για το ρεύμα που διαρρέει το κύκλωμα ισχύει η ακόλουθη σχέση: V V Vs i() = VR() s+ VL() s+ VC() s= IsR () LI + IssL () + Is () + = Is ()[ R+ sl+ ] LI + sc s sc s V Vi () s + LI [ svi ( V]/ L Is 3 s Is () s + + = = = R + sl + s + sr / L + /( LC) s + 3s + sc Η τάση στα άκρα του πηνίου δίνεται από τη σχέση: s(3 + VL () s = sli() s LI = = ( s + 3s+ ) s + 3s+ Και η τάση στα άκρα του πυκνωτή υπολογίζεται από τη σχέση: V C 5 3 3 + s+ s + s+ s + s+ = + = + = = sc s + 3s+ s s( s + 3s+ ) s s + 3s + s s + 3s + s + s V + s 3 ( 3 ) 4 3 3 Με χρήση του παρακάτω κώδικα αναλύονται σε μερικά κλάσματα οι παραπάνω σχέσεις προκειμένου να υπολογισθούν οι αντίστροφοι μετασχηματισμοί Laplace: nomis=[ 3]; denis=[ 3 ]; [ris pis kis]=residue(nomis,deni numvl=[-]; denvl=[ 3 ]; [rvl pvl kvl]=residue(numvl,denvl) numvc=[.5.5 4]; denvc=[ 3 ]; [rvc pvc kvc]=residue(numvc,denvc) 3
Τα αποτελέσματα του κώδικα είναι τα ακόλουθα: ris = - pis = - - kis = [] rvl = - pvl = - - kvl = [] rvc =.5 -.. pvc = - - kvc = [] 4
Με βάση τα αποτελέσματα αυτά, Is () = s+ s+.5 VC () s = + s s+ s+ VL () s = s+ s+ Οπότε, t It () = e e t t V ( t) = e +.5e C t V () t = e + e L t t 5