µέθοδοι υποβιβασµού τάξης µοντέλου σε κυκλώµατα µε µεγάλο αριθµο θυρών Διπλωματική εργασία Χατζηγεωργίου Χρυσόστομος Επιβλέποντες καθηγητές: Νέστορας Ευμορφόπουλος, Γεώργιος Σταμούλης 30 Σεπτεμβρίου 2015 Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
περιεχόµενα Εισαγωγή Μαθηματικό υπόβαθρο Μέθοδοι υποβιβασμού τάξης μοντέλου Υλοποίηση της προσομοίωσης Εκτίμηση της λύσης Μελλοντικές προεκτάσεις 1
εισαγωγή
ενδεικτική µορϕή mor Figure 1: Ενδεικτική μορφή MOR 3
διάρθρωση της διπλωµατικής εργασίας Στην παρούσα διπλωματική εργασία ασχοληθήκαμε με: Μαθηματικά μοντέλα (όπως χώρο κατάστασης, ΜΝΑ εξισώσεις) Μεθόδους υποβιβασμού τάξης μοντέλου Τα βήματα κατασκευής ενός προσομοιωτή Παρουσίαση ενδικτυκων αποτελεσμάτων σχετικά με την ορθότητα της δουλειάς μας 4
µαθηµατικό υπόβαθρο
χώρος κατάστασης Ως κατάσταση (state) ενός συστήματος τη χρονική στιγμή t 0 ορίζουμε το σύνολο της ελάχιστης πληροφορίας τη χρονική στιγμή t 0, η οποία μαζί με τη γνώση της εισόδου x(t), t [t 0, ), καθορίζει πλήρως τη συμπεριφορά του συστήματος για t t 0. Το σύνολο των μεταβλητών που καθορίζουν την κατάσταση ενός συστήματος είναι γνωστές σαν μεταβλητές κατάστασης. 6
δυναµικές εξισώσεις ẋ(t) = Ax(t) + bu(t) (1) V out (t) = c T x(t) + du(t) (2) Οι εξισώσεις που δείχνουν τη συσχέτιση μεταξύ εισόδου, εξόδου αλλά και μεταβλητών κατάστασης, ονομάζονται δυναμικές. 7
εξισώσεις mna (1/2) Εξισώσεις τοπολογίας +1, εαν ο κλάδος j εξέρχεται από τον κόμβο i A i,j = -1, εαν ο κλάδος j εισέρχεται στον κόμβο i 0, εαν ο κλάδος j δε συνδέεται με τον κόμβο i. Οι διαστάσεις του πίνακα Α είναι (n 1) m, όπου n αριθμός κόμβων και m αριθμός κλάδων. Νόμοι του Kirchhoff Νόμος τάσεων του Kirchhoff(Kirchhoff Voltage Law ή KVL): u(t) = A T V(t) (3) που μας λέει δηλαδή πως η τάση κατά μήκος κάθε κλάδου, είναι ίση με τη διαφορά δυναμικού των άκρων του κόμβου Νόμος ρευμάτων του Kirchhoff(Kirchhoff Current Law ή KCL): Ai(t) = 0 (4) που μας λέει δηλαδή πως το αλγεβρικό άθροισμα των ρευμάτων που προσπίπτουν είναι 0. 8
εξισώσεις mna (2/2) Γραμμικά κυκλωματικά στοιχεία αντίσταση πηνίο πυκνωτής Τροποποιημένη ανάλυση κόμβων Τα m στοιχεία του κυκλώματος χωρίζονται σε δυο ομάδες: [ du i k (t) = g k u(t) + C k (t) k + S dt k (t) Σε αυτή την κατηγορία περιλαμβάνονται αντιστάσεις, χωρητικότητες και πηγές ρεύματος. u 2 (t) = L di 2(t) + S dt 2 (t) Περιλαμβάνονται πηγές τάσης και αυτεπαγωγές. ] [ ] [ ] [ ] A 1 GA T 1 A 2 V(t) A 1 CA T dv(t) 1 0 A T + dt 2 0 i 2 (t) 0 L di 2 (t) dt = [ ] A 1 S 1 (t) S 2 (t) (5) 9
γραµµικά συστήµατα Στο σχήμα, η έξοδος του y(t) στη γενική της μορφή γράφεται ως y(t) = F[x(t)] Figure 2: Σύστημα με είσοδο και έξοδο Ένα σύστημα το οποίο είναι σε ηρεμία, θα λέμε πως είναι γραμμικό αν και μόνο αν δοθέντων δύο οποιονδήποτε σημάτων x 1 (t) και x 2 (t) ισχύει F[α 1 x 1 (t) + α 2 x 2 (t)] = α 1 F[x 1 (t)] + α 2 F[x 2 (t)] 10
ορθοκανονική βάση Ένα σύνολο διανυσμάτων, το οποίο είναι ταυτόχρονα γραμμικώς ανεξάρτητο αλλά και παράγει τον χώρο, ονομάζεται βάση του διανυσματικού χώρου. Δύο διανύσματα θα λέμε πως είναι κάθετα μεταξύ τους όταν το εσωτερικό τους γινόμενο είναι ίσο με μηδέν. Ορθογώνια βάση ενός διανυσματικού χώρου είναι μια βάση στην οποία κάθε διάνυσμά της είναι κάθετο σε κάθε άλλο διάνυσμα της βάσης. Ορίζουμε λοιπόν ως Ορθοκανονική βάση ενός διανυσματικού χώρου μια ορθογώνια βάση, της οποίας κάθε διάνυσμα έχει μέτρο 1. Από οποιαδήποτε βάση μπορούμε να κατασκευάσουμε μία ορθοκανονική, με κάποια διαδικασία ορθοκανονικοποίησης. 11
υπόχωροι krylov (1/2) Προκειμένου να δημιουργήσουμε μια βάση σε έναν πίνακα, χρησιμοποιούμε την ακολουθία Krylov. Όμως αυτή η ακολουθία δεν είναι ορθοκανονική. Για αυτό το λόγο υπάρχουν κατάλληλοι μέθοδοι οι οποίες κάνουν αυτές τις ακολουθίες ορθοκανονικές. Εμείς, στη δική μας υλοποίηση για τη δημιουργία υποχώρου Krylov, χρησιμοποιήσαμε την επαναληπτική μέθοδο Arnoldi, η οποία βασίζεται στην εξής σχέση: colsp(r, AR, A 2,..., A k R) = K r (A, R, q) Στη συνέχεια παραθέτουμε έναν ενδεικτικό ψευδό-κώδικα με την υλοποίηση της Arndoli. 12
υπόχωροι krylov (2/2) Arnoldi Algorithm 1: procedure Arnoldi(A, V, m) 2: q 1 = v v ; 3: for j = 0; j < m; j ++ do 4: z = Aq j ; 5: for i = 0; i < j; i ++ do 6: h i,j = q T i z; 7: z = z h i,j q i ; 8: end for 9: h j+1,j = z ; 10: if h j+1,j == 0 then 11: quit; 12: end if 13: q j+1 = z h j+1,j ; 14: end for 15: end procedure 13
arnoldi (1/6) Init: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14
arnoldi (2/6) j = 0: h 0,0 0 0 0 0 h 1,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 h 1,0 0 15
arnoldi (3/6) j = 1: h 0,0 h 0,1 0 0 0 h 1,0 h 1,1 0 0 0 0 h 2,1 0 0 0 0 0 0 0 0 0 0 0 0 0 h 2,1 0 16
arnoldi (4/6) j = 2: h 0,0 h 0,1 h 0,2 0 0 h 1,0 h 1,1 h 1,2 0 0 0 h 2,1 h 2,2 0 0 0 0 h 3,2 0 0 0 0 0 0 0 h 3,2 0 17
arnoldi (5/6) j = 3: h 0,0 h 0,1 h 0,2 h 0,3 0 h 1,0 h 1,1 h 1,2 h 1,3 0 0 h 2,1 h 2,2 h 3,2 0 0 0 h 3,2 h 3,3 0 0 0 0 h 4,3 0 h 4,3 == 0 18
arnoldi (6/6) h 0,0 h 0,1 h 0,2 h 0,3 0 h 1,0 h 1,1 h 1,2 h 1,3 0 H = 0 h 2,1 h 2,2 h 3,2 0 0 0 h 3,2 h 3,3 0 0 0 0 h 4,3 0 19
µέθοδοι υποβιβασµού τάξης µοντέλου
υλοποίηση της sprim (1/4) Αρχικά δίνουμε σαν είσοδο τους εξής πίνακες: [ ] G 1 G T 2 G = G 2 0 [ ] C 1 0 C = 0 C 2 [ ] B 1 B = 0 Στη συνέχεια δημιουργούμε τους πίνακες A και R ως εξής: (6) (7) (8) A (G + sc) 1 C (9) R (G + sc) 1 B (10) 21
υλοποίηση της sprim (2/4) Έπειτα, δημιουργούμε τον υπό-χώρο Krylov με όποια μέθοδο θέλουμε. Εμείς στην υλοποίησή μας χρησιμοποιήσαμε την Arnoldi. spanv n = K n (A, R) (11) όπου ελέγχουμε τον πίνακα από τα αριστερά προς τα δεξιά, διαγράφουμε τις γραμμικά εξαρτημένες στήλες του. Αμέσως μετά, σπάμε τον πίνακα V n σε block V n = [ V 1 V 2 ] (12) και σε μορφή padding έχουμε V n = [ ] V 1 0 0 V 2 22
υλοποίηση της sprim (3/4) Μετά απ όλα αυτά είμαστε έτοιμοι ώστε να υπολογίσουμε τους νέους μας πίνακες που έχουν δημιουργηθεί μετά την ελαχιστοποίηση. Έτσι έχουμε: G 1 = V T 1 G 1 V 1 (13) G 2 = V T 2 G 2 V 1 (14) C 1 = V T 1 C 1 V 1 (15) C 2 = V T 2 C 2 V 2 (16) B 1 = V T 1 B 1 (17) 23
υλοποίηση της sprim (4/4) και μέσω αυτών τους πίνακες: [ ] T G G1 G2 n = G T 2 0 [ ] C C1 0 n = 0 C2 B n = [ ] B1 0 (18) (19) (20) Τέλος, από τους νέους πίνακες υπολογίζουμε τη συνάρτηση μεταφοράς του συστήματος με τον εξής τρόπο: Z n (s) = B T n ( Gn + sc n ) 1 Bn (21) 24
υλοποίηση της προσοµοίωσης
κατασκευή ενός προσοµοιωτή Παρακάτω θα παρουσιάσουμε τα στάδια τα οποία απαιτούνται ώστε να πραγματοποιηθεί μια προσομοίωση: Αρχείο περιγραφής κυκλώματος ΜΝΑ σύστημα του κυκλώματος Χρήση μεθόδων υποβιβασμού τάξης μοντέλου 26
εκτίµηση της λύσης
εκτίµηση της λύσης Ανάλυση υλοποίησης C Programming Language Arnoldi SPRIM Z, Z size_b size_b (Ουσιαστικά το size_b καθορίζει τον αριθμό των Ports και το size καθορίζει τον αριθμο των states, δηλαδή node voltages) Ενδεικτικά αποτελέσματα προσομοίωσης Παρατηρήσεις 28
ενδεικτικά αποτελέσµατα προσοµοίωσης (1/4) Figure 3: Ενδεικτική μορφή απόκρισης εισόδου και εξόδου ως προς τη συχνότητα 29
ενδεικτικά αποτελέσµατα προσοµοίωσης (2/4) Figure 4: Ενδεικτική μορφή απόκρισης εισόδου και εξόδου ως προς τη συχνότητα με παραπάνω ακρίβεια 30
ενδεικτικά αποτελέσµατα προσοµοίωσης (3/4) Figure 5: Απόκρισης εισόδου και εξόδου ως προς τη συχνότητα 31
ενδεικτικά αποτελέσµατα προσοµοίωσης (4/4) Figure 6: Απόκρισης εισόδου και εξόδου ως προς τη συχνότητα με παραπάνω ακρίβεια 32
παρατηρήσεις Μέσα από τα πειράματα που τρέξαμε παρατηρήσαμε πως η συνάρτηση μεταφοράς που αρχικού κυκλώματος και του μετέπειτα ελαττωμένου κυκλώματος συμπίπτουν. Αυτό βέβαια, μέσα από τη μελέτη που έχουμε κάνει καταλαβαίνουμε πως είναι απόλυτα λογικό και σωστό, επειδή η συμπεριφορά του νέου ελαττωμένου κυκλώματος πρέπει να είναι η ίδια ή αρκετά όμοια με τη συμπεριφορά του αρχικού μας κυκλώματος. 33
µελλοντικές προεκτάσεις
µελλοντικές προεκτάσεις Πιθανές προεκτάσεις στην παρούσα εργασία θα μπορούσαν να ναι: Ολοκλήρωση του συστήματος έτσι ώστε να δημιουργήσουμε ένα νέο αρχείο περιγραφής κυκλώματος και λύση αυτού του νέου κυκλώματος. Μελέτη της ακρίβειας των δύο λύσεων, του αρχικού και του νέου κυκλώματος. Ίσως κάποια παραλληλοποίηση ορισμένων σταδίων της υλοποίησης προκειμένου να έχουμε και από εκεί γρηγορότερα αποτελέσματα. 35
Θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου κ.νέστορα Ευμορφόπουλο όπως επίσης και τον δεύτερο επιβλέποντα κ.γιώργο Σταμούλη. Επίσης τους φίλους Χαράλαμπο Αντωνιάδη και Ευάγγελο Νόνα καθώς και όλη την ομάδα του εργαστηρίου Ηλεκτρονικής, τους φιλούς και τους γονείς μου. 36
Ευχαριστώ πολύ για τον χρόνο σας 37
Ερωτήσεις; Απορίες; 38