ÕÛÎÛ Το παρακάτω ηλεκτρικό κύκλωµα, διεγείρεται από παλµοσειρά περιόδου Τ s. Οι παράµετροι του κυκλώµατος είναι R = 0 ΚΩ και = 00 µf. Το κύκλωµα αρχικά (τη χρονική στιγµή 0) δεν έχει αποθηκευµένη ενέργεια. Προσδιορίστε την έξοδο του κυκλώµατος για δύο περιόδους του σήµατος εισόδου όταν (i) = 8.0 s, και (ii) =.0 s. Σχολιάστε τη φύση της εξόδου για τις ακόλουθες περιπτώσεις: (i) << τ, (ii) = τ, και (iii) >> τ όπου τ, η σταθερά χρόνου του συστήµατος. R V V V V 0 0 ( s) Û Η εξίσωση κατάστασης, προκύπτει άµεσα απ τον µοναδικό βρόχο του κυκλώµατος, ως: V() i () R V () = 0 s c V dv c s() R () = 0 d ή τελικά
dv d R V + R V = () Η σταθερά χρόνου είναι: = R = 0 KW 00 mf = s () Για 0 /, έχουµε τα εξής. Η δοσµένη αρχική συνθήκη είναι: Η οµογενής λύση είναι: V ( 0) = 0 (3) d d d R V V R d V = fi = fi ln( ) = + K fi = e R Μια µερική λύση βρίσκεται µηδενίζοντας την παράγωγο στη διαφορική εξίσωση, V = V = V ( ) P c όπου V c ( ) η τελική τιµή της τάσης του πυκνωτή, στη µόνιµη κατάσταση, όταν V s ()=V s. Οπότε η γενική λύση της () είναι: V () = e + V () Η σταθερά ολοκλήρωσης, βρίσκεται απ την () χρησιµοποιώντας την αρχική συνθήκη (3): Έτσι έχουµε V ( 0) = 0 + V = 0 = V Για Τ/, έχουµε: = Vs e Á, για 0 ( / ) (5) Αρχική συνθήκη ( / ) = ( / ) = V e Á (6) V () = e V (όπου V s = +0 V (σταθερά), και V c (_) = V s = 0 (V)). Θέτοντας =/ στην παραπάνω εξίσωση και εξισώνοντάς την µε την αρχική συνθήκη ( 6), προκύπτει: = V Áe
Χρησιµοποιώντας τη σταθερά αυτή, παίρνουµε τελικά: () = V e e Á, για ( / ) (7) Για Τ 3/, έχουµε την αρχική συνθήκη V e = = e 3 Á (8) V () = e + V 3 3 Θέτοντας = στην παραπάνω εξίσωση και εξισώνοντάς την µε την αρχική συνθήκη ( 8), προκύπτει: 3 = V Áe e Χρησιµοποιώντας τη σταθερά αυτή, παίρνουµε τελικά: () = V e e e + 3 Á, για ( 3 / ) (9) Για 3Τ/, έχουµε: Αρχική συνθήκη 3 ( 3 / ) = ( 3 / ) = V e e e + 3 Á (0) V () = e V Θέτοντας =3/ στην παραπάνω εξίσωση και εξισώνοντάς την µε την αρχική συνθήκη (0), προκύπτει: = V ( e e + e ) 3 Χρησιµοποιώντας τη σταθερά αυτή, παίρνουµε τελικά: 3 () = V e e e + e Á, για ( 3 / ) () Οι αρχικές συνθήκες για = 8 s και για = s, είναι: V = = Ï ( ) = 0 e 9. 8V, ( 8. 0s) ( / ) = Ì Ó ( ) = 0( e ) = 6. 3V, ( =. 0s) 3
V = = 8 Ï ( 8) = 0 e e 9. 6V, ( 8. 0s) ( ) = Ì Ó ( ) = 0( e e ) =. 00V, ( =. 0s) V 3 = 8 Ï ( ) = 0 e e e + 9. 6V, ( = 80. s) 3 ( 3 / ) = Ì 3 Ó ( 3) = 0( e e e + ) =. 85V, ( =. 0s) 3 Η έξοδος V c (), για τις δύο πρώτες περιόδους είναι: 0 / Τ/ Τ 3/ 3/ V () = 0 e, για =8 s και Τ= s () = 0 e e, για =8 s () = 0 e e, για = s 8 () = 0 e e e +, για =8 s 3 () = 0 e e e +, για = s 3 8 () = 0 e e e + e, για =8 s 3 () = 0 e e e + e, για = s Για =8 s, το διάγραµµα της εξόδου είναι: 0 Vc() for =8s 8 6 Vc (V) 0 6 8 0 0 6 8 0 6 ime (s) και για = s:
8 Vc() for =s 6 Vc (V) 0 6 0 0.5.5.5 3 3.5 ime (s) (i) <<τ: Η τάση του πυκνωτή δεν προλαβαίνει να φτάσει την τιµή V s =0 (V) στην πρώτη ηµιπερίοδο, ούτε την τιµή V s =0 (V) κατά την δεύτερη ηµιπερίοδο. Σε κάθε επόµενη ηµιπερίοδο, η αρχική του τάση είναι αυτή που έχει διαµορφωθεί κατά την προηγούµενη. Το φαινόµενο αυτό δεν είναι περιοδικό. Γίνεται όµως περιοδικό για > τ. Σ αυτή την κατάσταση ισορροπίας, η αρχική τάση του πυκνωτή σε κάθε κύκλο θα είναι η ίδια. Θα µελετήσουµε την περίπτωση αυτή προκειµένου να εκτιµήσουµε τη διακύµανση της τάσης στον πυκνωτή. Έστω λοιπόν ότι κάποια χρονική στιγµή πτώσης του παλµού (χρονική στιγµή 0), η τάση του πυκνωτή είναι V c (θετική σταθερά, υπό προσδιορισµό). Η απόκριση του δοσµένου κυκλώµατος, µπορεί να γραφεί γενικά ως εξής: V c () = { V c (0) V c (_) } e /τ + V c (_) ή V c () = V c (0) + { V c (_) V c (0) } ( e /τ ) () Για 0, (όπου το χρονικό διάστηµα απ την υπό συζήτηση χρονική στιγµή και = /), είναι: V s () = V s = 0 (V), και από τη () έχουµε δηλ. η V c () φθίνει, ξεκινώντας από την τιµή V c, και (η αρχική τάση του πυκνωτή για το νέο κύκλο). V c () = V c + (V s V c ) ( e /τ ) (3) V c ( ) = V c + (V s V c ) ( e Τ/τ ) () Για, ( : χρονική στιγµή ανόδου του σήµατος εισόδου, και ( ) = /) είναι: V s () = V s = 0 (V), και από τη () έχουµε V c () = V c ( ) + { V s V c ( ) } ( e ( )/τ ) (5) δηλ. η V c () αυξάνει, ξεκινώντας από την τιµή V c ( ). Είναι όµως (από υπόθεση) Ουσιαστικά πρόκειται για χρονικό διάστηµα που αντιστοιχεί σε αρνητική ηµιπερίοδο του σήµατος εισόδου 5
V c ( ) = V c (6) Από (5) και (6): V c = V c ( ) + { V s V c ( ) } ( e Τ/τ ) (7) Από () και (7), µε απαλοιφή της V c ( ), προκύπτει η άγνωστη V c : V = V e + e / / (8) Από () και (8), προκύπτει η V c ( ) τη στιγµή της ανόδου του παλµού εισόδου: V = V e + e / / = V (9) ηλαδή στη µόνιµη κατάσταση, η τάση εξόδου είναι πριονωτή, και κυµαίνεται από V c έως V c. (ii) = τ: Μελετήθηκε παραπάνω (όπου Τ = s = τ). Η τάση του πυκνωτή (και σ αυτή την περίπτωση) δεν αγγίζει τη µέγιστη δυνατή τιµή. Η µόνιµη κατάσταση έρχεται µετά το τέλος της δεύτερης περιόδου. (iii) >> τ: Στην περίπτωση αυτή, η τάση του πυκνωτή φθάνει στη µέγιστη δυνατή τιµή και το σύστηµα έρχεται στη µόνιµη κατάσταση από την πρώτη κιόλας περίοδο. Û ÌÂ Ù Ô ıâè ÙÔ Malab Οι επιθυµητές αποκρίσεις, µπορούν να ληφθούν χρησιµοποιώντας το IMULINK (στο περιβάλλον του MALAB). Για το σκοπό αυτό θα χρησιµοποιήσουµε το µοντέλο εξισώσεων κατάστασης του συστήµατος. Το δοσµένο κύκλωµα είναι πρώτης τάξης (το µόνο στοιχείο που αποθηκεύει ενέργεια είναι ο πυκνωτής). Θεωρώντας ως (µοναδική) µεταβλητή κατάστασης (x) την τάση του πυκνωτή (V c ), η () γράφεται: όπου τ η σταθερά χρόνου του συστήµατος. x«= ( / ) x + ( / ) u Θεωρώντας επίσης ως έξοδο (y) του συστήµατος την κατάστασή του, η εξίσωση εξόδου, είναι: y = x Οπότε το γενικό µοντέλο εξισώσεων κατάστασης «x = Ax + Bu y = x + Du όπου x(n x ), y(p x ), u(m x ), A(n x n), B(n x m), (p x n), D(p x m), είναι για το συγκεκριµένο κύκλωµα: 6
Α = /τ =, Β = /τ =, =, D = 0 (0) (όλα βαθµωτά µεγέθη αφού το σύστηµα είναι πρώτης τάξης µε µια είσοδο και µια έξοδο). Το αρχικό µπλοκ διάγραµµα του συστήµατος όπως υλοποιήθηκε στο IMULINK (mdl file), δίνεται παρακάτω. Σχήµα. Το µπλοκ διάγραµµα του κυκλώµατος, όπου γίνεται χρήση του αντίστοιχου aepace block του IMULINK. Το επιθυµητό σήµα εισόδου, προέκυψε από µια θετική παλµοσειρά (πλάτους V s, περιόδου Τ) µείον τη βηµατική συνάρτηση (πλάτους V s ). Χρησιµοποιήθηκε η µέθοδος επίλυσης ode3(), µεταβλητού βήµατος. Η επιλογή γίνεται από το µενού του IMULINK (imulaion imulaion parameers olver Opions). Οι αποκρίσεις για =8 s, = s και =0. s, δίνονται στα ακόλουθα διαγράµµατα. 7
Απ το τελευταίο διάγραµµα, παρατηρούµε ότι στη µόνιµη κατάσταση (για = 0. s), η τάση του πυκνωτή κυµαίνεται µεταξύ 0.5 V και 0.5 V (περίπου). Οι τιµές αυτές προκύπτουν και θεωρητικά, απ τις (8) και (9). Στις ίδιες αποκρίσεις καταλήγουµε, απ το ισοδύναµο µπλοκ διάγραµµα (Σχήµα ), στο οποίο γίνεται χρήση της ορισµένης απ τον χρήστη συνάρτησης MALAB, rc_f(). Σχήµα. Το µπλοκ διάγραµµα του κυκλώµατος, όπου γίνεται χρήση της συνάρτησης rc_f(). Επειδή η έξοδος της συνάρτησης είναι η παράγωγος της κατάστασης, απαιτείται επιπλέον ένας ολοκληρωτής. 8
Για το δοσµένο κύκλωµα, η συνάρτηση rc_f() που απαιτείται, ορίζεται µέσα στο αντίστοιχο rc_f.m αρχείο: funcion dx = rc_f (in) % in=[x u r]' x=in(); u=in(); r=in(3); dx = (/r) * x + (/r) * u; Οι παραπάνω αποκρίσεις µπορούν να ληφθούν και από το ακόλουθο mfile (scrip file που περιέχει εντολές του MALAB): rc.m =8; % period (of inpu signal) r=; % ime consan n=*; % sop ime Vs=0; % ampliude d=min(/0, r/0); % ime sep (for lsim() funcion) % iniial ime sep (if anoher solver, like ode3(), is used) N=floor(n/d)+; % ime samples =(0:d:n)'; u=vs*square(*pi*/); % square wave generaor (w=*pi/) A=[/r]; B=[/r]; =[]; D=[0]; % sae space model sys=ss(a,b,,d); % a srucure ha can be used by oher funcions of MALAB [ys,s]=lsim(sys,u,); % uses he specified sample ime (d) plo(s,ys); Παρατήρηση: Η συνάρτηση lsim(), δίνει τη χρονική απόκριση του συστήµατος sys (µε είσοδο u τη χρονική στιγµή ), χρησιµοποιώντας το προκαθορισµένο βήµα ολοκλήρωσης d. Αν το d είναι σχετικά µεγάλο, τα σφάλµατα ολοκλήρωσης συσσωρεύονται, µε αποτέλεσµα µεγάλο σφάλµα στην έξοδο (ιδιαίτερα στην περίπτωση µεγάλου χρονικού διαστήµατος προσοµοίωσης). Π.χ. για την περίπτωση όπου Τ=0. και n > s, η lsim() δε δίνει καλά αποτελέσµατα, ακόµη και για d = Τ/00. εδοµένου ότι το χρονικό βήµα ολοκλήρωσης είναι πολύ µικρότερο της σταθεράς χρόνου του κυκλώµατος (d<<τ), τα σφάλµατα οφείλονται κυρίως στο ότι η είσοδος του συστήµατος θεωρείται σταθερή στο χρονικό διάστηµα d, πράγµα που στη συγκεκριµένη περίπτωση οδηγεί σε µεγάλο λάθος, αφού γενικά στο d µπορεί να περιέχεται η στιγµή της µετάπτωσης του παλµού. Πολλές φορές λοιπόν είναι επιθυµητό να χρησιµοποιηθεί µια µέθοδος επίλυσης µεταβλητού βήµατος (π.χ. η ode5() ή η ode3()) η κάποια απ τις µεθόδους για δύσκαµπτα συστήµατα (π.χ. η ode3s()). (Αυτό γίνεται εύκολα µέσα απ το IMULINK, µε την επιλογή µεθόδου επίλυσης). Για να χρησιµοποιηθεί όµως κάποια απ αυτές τις µεθόδους (π.χ. η ode3()), απ τη γραµµή εντολών του MALAB, είναι απαραίτητη µια συνάρτηση ανάλογη της rc_f(). Η κλήση τέτοιων συναρτήσεων που επιλύουν διαφορικές εξισώσεις, έχει γενικά τη µορφή: 9
[, x] = solver ( F, span, x0, opions, p, p,...) όπου solver: η µέθοδος επίλυσης, π.χ. ode5 F: το όνοµα του αρχείου (ODE file) όπου περιγράφεται το προς επίλυση σύστηµα εξισώσεων, υπό τη µορφή dx/d = F(, x). Είναι ουσιαστικά µια συνάρτηση MALAB των, x µε συγκεκριµένη σύνταξη (λεπτοµέρειες απ το MALAB: help odefile). Η συνάρτηση αυτή καλείται άµεσα απ τη ρουτίνα επίλυσης (solver). span: ιάνυσµα που καθορίζει το χρονικό βήµα της ολοκλήρωσης [0 final]. Για να πάρουµε λύσεις σε συγκεκριµένες χρονικές στιγµές (κατ αύξουσα ή φθίνουσα τάξη), µπορούµε να χρησιµοποιήσουµε span=[0,,,, final]. x0: ιάνυσµα αρχικών συνθηκών. Opions: Προαιρετικό όρισµα. Καθορίζει τις παραµέτρους που θα χρησιµοποιηθούν απ τη ρουτίνα επίλυσης (π.χ. σχετικό σφάλµα, απόλυτο σφάλµα κ.λ.π.). Αν δε θέλουµε να περάσουµε τέτοιες παραµέτρους, χρησιµοποιούµε opions=[ ]. p, p, : Προαιρετικές παράµετροι, που θα πρέπει να περάσουν στην F (π.χ. οι σταθερές παράµετροι του συστήµατος)., x: Πίνακας λύσεων x, όπου κάθε γραµµή αντιστοιχεί σε χρόνο που επιστρέφεται στο διάνυσµα. (Για σύστηµα πρώτης τάξης, όπως στην περίπτωσή µας, το x είναι διάνυσµα). Στο ακόλουθο mfile, γίνεται χρήση της ode3(). rc_ode.m =8; % period (of inpu signal) r=; % ime consan n=*; % sop ime Vs=0; % ampliude d=r/; % iniial ime sep N=floor(n/d)+; % ime samples =(0:d:n)'; % ime vecor x=0; % iniial sae x=zeros(n,); % he soluion is o be saved here (memory allocaion) for i=:(n) % x: sae a he beginning of his cycle x(i)=x; % x (a he beginning of nex cycle) is calculaed... [r,xr] = ode3 ('rc_f_ode', [(i) (i+)], x, [], Vs,, r); % Vs, > u() % xr is he soluion vecor, where each row corresponds o a ime reurned in vecor r % r()=(i), r(las)=(i+), xr(las) == x, for =(i+) las=size(r); las=las(); x=xr(las); end x(n)=x; % i==n plo(,x); 0
όπου η ορισµένη απ το χρήστη συνάρτηση 'rc_f_ode', η οποία καλείται απ την ode3(), είναι: rc_f_ode.m % alled by he solver (invoked in rc_ode.m) % funcion varargou = rc_f_ode (,x,flag,vs,,r) swich flag case '' % Reurn dxd = f(,x). varargou{} = f(,x,vs,,r); oherwise error(['unknown flag ''' flag '''.']); end % funcion dxd = f (,x,vs,,r) % aepace Equaions of he ysem: dxd=f(,x,vs,,r) % x: he curren sae vecor % Vs,: o calculae u() (inpu applied) % r: model parameers (consan) % n (sysem's order) could be passed as anoher parameer / (here n=) dxd=zeros(,); % memory allocaion dxd = (/r) * x + (/r) * Vs * square(*pi*/); Το rc_ode.m, µπορεί να γραφεί συντοµότερα, αν η ode3() κληθεί µε όρισµα το διάνυσµα. rc_ode_v.m =8; % period (of inpu signal) r=; % ime consan n=*; % sop ime Vs=0; % ampliude d=r/; % iniial ime sep N=floor(n/d)+; % ime samples =(0:d:n)'; % ime vecor x=0; % iniial sae [r,xr] = ode3 ('rc_f_ode',, x, [], Vs,, r); % Vs, > u() % xr is he soluion vecor, where each row corresponds o a ime reurned in vecor r plo(r,xr);