Δυναμική Μηχανών Ι Διδάσκων: Αντωνιάδης Ιωάννης Προσομoίωση Απόκρισης Συστήματος στο MATLAB
Άδεια Χρήσης Το παρόν υλικό βασίζεται στην παρουσίαση Προσομoίωση Απόκρισης Συστήματος στο MATLAB του καθ. Ιωάννη Αντωνιάδη και υπόκειται σε άδεια χρήσης Creative Commons. Για υλικό όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.
Προσομοίωση σε Η/Υ Πριν την αριθμητική ολοκλήρωση, ένα μοντέλο πρέπει να εκραστεί σε μορφή μεταβλητών κατάστασης Γενική περίπτωση: Μη-Γραμμικές δυναμικές εξισώσεις Μ-Κ ΜΜ qq = ff qq, qq, ξξ Βαθμοί ελευθερίας Εξισώσεις μεταβλητών κατάστασης xx = dd qq qq dddd qq = MM 1 ff qq, qq, ξξ = φφ xx, ξξ Μεταβλητές κατάστασης 3
Παράδειγμα: μετατροπή σε εξισώσεις κατάστασης Παράδειγμα: Οι εξισώσεις κίνησης για εκκρεμές μάζας m που κινείται μέσω αβαρούς ράβδου μήκους L γύρω από άρθρωση (απόσβεση cc TT ) στην οποία ασκείται ροπή τ(t): cc TT τ(tt) L θθ m g mm LL 2 θθ + cc TT θθ + mm gg LL sin θθ = ττ(tt) Οι μεταβλητές κατάστασης είναι: xx = θθ θθ Οι αντίστοιχες εξισώσεις μεταβλητών κατάστασης είναι: dd dddd θθ θθ = θθ 1 mm LL 2 (ττ(tt) cc TT θθ mm gg LL sin θθ ) = φφ θθ, θθ, τ 5 4
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta Η συνάρτηση ode45 χρησιμοποιεί μέθοδο Runge-Kutta για την αριθμητική επίλυση του προβλήματος αρχικών τιμών xx = φφ xx, ξξ xx 0 = xx 0 Έστω ότι το διάνυσμα κατάστασης έχει n στοιχεία Σύνταξη εντολής στο MATLAB: Res = ode45(@(t,x) gfun(t,x), Tspan, x0) Συνάρτηση matlab που παρέχει το n 1 διάνυσμα φφ xx, ξξ Διάνυσμα [0 tmax]. Παρέχει τα χρονικά όρια 0, tt mmmmmm μέσα στα οποία θα υπολογιστεί η απόκριση n 1 διάνυσμα. Παρέχει διάνυσμα της αρχικής κατάστασης xx 0 6 5
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta 1. Δημιουργία μιας συνάρτησης MATLAB, η οποία υπολογίζει το n 1 διάνυσμα της παραγώγου του διανύσματος κατάστασης xx = φφ xx, ξξ 6
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta 2. Δημιουργία του διανύσματος X0 της αρχικής συνθήκης 3. Δημιουργία του διανύσματος Tspan των χρονικών ορίων προσομοίωσης 4. Κάλεσμα της συνάρτησης ode45 με τις κατάλληλες εισόδους. Τα αποτελέσματα αποθηκεύονται στην δομή δεδομένων Res 8 7
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta 5. Το πεδίο x της Res περιέχει τον χρόνο t. Το πεδίο y της Res περιέχει την απόκριση των μεταβλητών κατάστασης xx. Η εντολή plot(t,x) δημιουργεί την γραφική παράσταση x(t) 0.2 0.15 0.1 [rad] 0.05 0-0.05-0.1-0.15 0 20 40 60 80 100 time [sec] 9 8
Παραλλαγή 1: Απόκριση μόνο σε αρχικές συνθήκες θθ 0 = ππ 3 θθ 0 = 1 τ(t) = 0 1.5 1 [rad] 0.5 0-0.5-1 0 10 20 30 40 50 time [sec] 10 9
Παραλλαγή 2: Απόκριση σε βηματική & αρχικές συνθήκες θθ 0 = ππ 3 θθ 0 = 1 τ(t) = uu ss 1.5 1 [rad] 0.5 0-0.5 0 10 20 30 40 50 time [sec] 11 10
Παρατηρήσεις Η ode45 μπορεί να χρησιμοποιηθεί για να προσομοιώσει ένα μεγάλο εύρος εξίσώσεων κίνησης (γραμμικής ή μη, μικρής ή μεγάλης τάξης n) εκφρασμένων στην μορφή: xx = φφ xx, ξξ Οι παράμετροι της αριθμητικής λύσης της ode45 μπορούν να επιλεγούν μέσω της συνάρτησης odeset Παρόμοιες συναρτήσεις: ode23, ode15s και ode23s Διαφορετικές μορφές της Runge-Kutta Η ode45 είναι συνάρτηση γενικής χρήσης. Πρώτη επιλογή! Οι συναρτήσεις ode15s και ode23s χρησιμοποιούνται σε «δύσκαμπτα» προβλήματα (το μέτρο των ιδιοτημών τους διαφέρει αρκετές τάξεις μεγέθους) 11
Προσομοίωση απόκρισης γραμμικού συστήματος στο MATLAB μέσω των συναρτήσεων ss,lsim, step 12
Γραμμικά Δυναμικά Συστήματα Γραμμικές δυναμικές εξισώσεις Μ-Κ ΜΜ qq + CC qq + KK qq = ξξ Εξισώσεις μεταβλητών κατάστασης xx = AA xx + ΒΒ uu yy = CC xx + DD uu AA = OO II MM 1 KK MM 1 CC ΒΒ = xx = qq qq Μεταβλητές κατάστασης yy Μεταβλητές ενδιαφέροντος uu = ξξ Εξωτερικές διεγέρσεις OO MM 1 14 13
Γραμμικά Δυναμικά Συστήματα Παράδειγμα: Εξισώσεις κίνησης εκρεμμούς Όταν η γωνία θ είναι μικρή, τότε sin θθ θθ οπότε οι εξισώσεις κίνησης γίνονται: mm LL 2 θθ + cc TT θθ + mm gg LL θθ = ττ(tt) Διάνυσμα μεταβλητών κατάστασης Εξισώσεις κατάστασης xx = θθ θθ dd dddd θθ θθ = OO 1 mm gg LL mm LL 2 cc TT mm LL 2 θθ θθ + OO 1 mm LL 2 ττ(tt) AA = OO 1 gg LL cc TT mm LL 2 BB = OO 1 mm LL 2 15 14
Γραμμικά Δυναμικά Συστήματα Παράδειγμα: Εξισώσεις κίνησης εκρεμμούς Έστω ότι μας ενδιαφέρει η γωνία του εκκρεμούς yy = θθ = 1 0 θθ θθ + 0 ττ(tt) Το σύστημα εξισώσεων κατάστασης που περιγράφει την απόκριση της εξόδου yy = θθ είναι: xx = AA xx + ΒΒ uu yy = CC xx + DD uu AA = OO 1 gg LL cc TT mm LL 2 BB = OO 1 mm LL 2 CC = 1 0 DD = 0 16 15
Ορίζοντας το Μοντέλο ενός Γραμμικού Δυναμικού Συστήματος στο MATLAB (συνάρτηση ss) 1. Ορίζουμε τις παραμέτρους του προβλήματος 2. Ορίζουμε τα μητρώα AA, BB, CC και DD 3. Η εντολή ss δημιουργεί το «μοντέλο» (είδος κλάσης) sys που αντιστοιχεί στο δυναμικό σύστημα xx = AA xx + ΒΒ uu yy = CC xx + DD uu 17 16
Προσομοίωση Απόκρισης ΓραμμικούΔυναμικού Συστήματος σε Βηματική Διέγερση στο MATLAB (συνάρτηση step) 1. Υπολογίσμός της απόκριση του μοντέλου sys σε βηματική είσοδο για διάρκεια 10 sec μέσω της συνάρτησης step 2. Δημιουργία της γραφικής παράστασης y(t) μέσω της συνάρτηση plot 0.2 0.15 [rad] 0.1 0.05 0 0 2 4 6 8 10 time [sec] 18 17
Προσομοίωση Απόκρισης ΓραμμικούΔυναμικού Συστήματος σε Τυχαία Διέγερση στο MATLAB (συνάρτηση lsim) 1. Δημιουργία διανύσματος χρόνου t 2. Δημιουργία διανύσματος εισόδου u(t) 3. Υπολογισμός απόκρισης y του μοντέλου sys στην είσοδο u(t) μέσω της συνάρτησης lsim 4. Δημιουργία της γραφικής παράστασης υ(t) και y(t) μέσω της συνάρτηση plot 2 1.5 0.12 0.1 0.08 (t) [Nm] 1 0.5 [rad] 0.06 0.04 0.02 0 0 0 5 10 15 20 25 30 time [sec] -0.02 0 10 20 30 time [sec] 19 18
Υπολογισμός Απόκρισης Συχνότητας ΓραμμικούΔυναμικού Συστήματος στο MATLAB (συνάρτηση bode) 0 Bode Diagram -10-20 Magnitude (db) -30-40 -50-60 -70-80 0-45 Phase (deg) -90-135 -180 10-1 10 0 10 1 10 2 Frequency (rad/s) 20 19
Παρατηρήσεις To MATLAB παρέχει πολλές συναρτήσεις για την ανάλυση γραμμικών δυναμικών συστημάτων παράσταση (π.χ. tf, series, parallel, feedback, ss2tf) ανάλυση (π.χ. pole, zero) Περισσότερες πληροφορίες στις συναρτήσεις του control systems toolbox 20
Προσομοίωση απόκρισης δυναμικών συστημάτων στο Simulink 21
Simulink Γραφικό περιβάλλον για μοντελοποίηση δυναμικών συστημάτων 23 22
Εργαλειοθήκες Simulink Περιγράφω ένα δυναμικό σύστημα χρησιμοποιώντας διάφορα εξαρτήματα 24 23
Βασικά Εργαλεία Simulink Κάθε στοιχείο περιγράφει μια σχέση εισόδου-εξόδου y=f(x) Κέρδος (gain): yy = KKKK Ολοκληρωτής (integrator): tt yy = xx(tt) + yy(0) 0 Άθροισμα (sum): zz = xx + yy 24
Βασικά Εργαλεία Simulink Κάθε στοιχείο περιέχει ιδιότητες. Κάνοντας διπλό κλικ ανοίγει παράθυρο όπου καταγράφονται οι ιδιότητες Κέρδος (gain): Ολοκληρωτής (integrator): Άθροισμα (sum): 26 25
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink Παράδειγμα: Κατάστρωση των εξισώσεων κίνησης εκκρεμούς σε simulink mm LL 2 θθ + cc TT θθ + mm gg LL sin θθ = ττ(tt) cc TT θθ τ(tt) L m g dd dddd θθ θθ = θθ 1 mm LL 2 (ττ(tt) cc TT θθ mm gg LL sin θθ ) 26
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 1. Προσθήκη n ολοκληρωτών (n: είναι τάξη συστήματος) Με drag n drop από την εργαλειοθήκη commonly used blocks Εδώ n=2 Διπλο κλικ στην επιφάνεια: προσθήκη σχολίου Κλικ στην έξοδο στοιχείου: δημιουργία βέλους Κλικ στο όνομα: Αλλαγή ονόματος 28 27
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 1. Προσθήκη n ολοκληρωτών (n: είναι τάξη συστήματος) Διπλό κλικ στο block γράφω x0 στο πεδίο initial condition Διπλό κλικ στο block γράφω u0 στο πεδίο initial condition 29 28
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 2. Προσθήκη βηματικής εισόδου (διέγερσης) Μεταφoρά (drag n drop ) ενός εικονιδίου step Αντιστοιχεί σε μια βηματική (σταθερά) είσοδο t(τ) Διπλό κλικ στο block γράφω 0 στο πεδίο step time 3029
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 3. Πρώτη εξίσωση κατάστασης tt dd dddd θθ = θθ θθ tt = θθ ττ ddττ 0 + θθ 0 θθ tt = [ 1 s ]{θθ ττ } 30
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 4. Δεύτερη εξίσωση κατάστασης θθ tt = dd dddd θθ = 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ 0 tt 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } ddττ + θθ 0 31
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } Δεξί κλικ>flip block block κοιτάζει αριστερά Κλίκ στην είσοδο κέρδους ξεκινά βέλος. Σύνδεση στο dθ/dt Διπλό κλικ στο block γράφω ct στο πεδίο gain 33 32
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } Drag n drop trigonometric function από εργαλειοθήκη math operations Σύνδεση στο θ flip block 33
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } Διπλό κλικ στο block γράφω m*g*l στο πεδίο gain 34
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } Drag n drop sum από εργαλειοθήκη common used blocks Διπλό κλικ στο block γράφω -+- στο πεδίο list of signs 36 35
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } Σύνδεση των εξόδων των gains και της εξόδου του block step με τις κατάλληλες είσόδους του sum 3736
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θθ tt = 1 ss { 1 mm LL 2 ττ tt cc TT θθ mm gg LL sin θθ } Σύνδεση εξόδου του sum στην είσοδο gain 3. Σύνδεση της εξόδου του gain2 στην είσοδο integrator 1. Διπλό κλικ στο block γράφω 1/(m*L^2) στο πεδίο gain 37
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 5. Προσθήκη παρατηρητή (scope) Μεταφoρά (drag n drop ) ενός εικονιδίου scope από την εργαλειοθήκη «commonly used blocks Σύνδεση της εξόδου του integrator 2 με το scope: μετρά το θ(t) 38
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 6. Προσομοίωση 1. Ορισμός τιμών παραμέτρων στο MATLAB 2. Εκτέλεση μοντέλου simulink Κουμπί «run 40 39
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 7. Παρουσίαση αποτελεσμάτων Διπλό κλικ στο scope Δεξί κλικ>autoscale 40
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 8. Προσθήκη ενός scope για την γωνιακή ταχύτητα 41
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 9. Δημιουργία ενός υπο-μοντέλου Επιλογή με ποντίκι όλων των blocks εκτός της πηγής constant και των δύο scope Δεξί κλικ>create sub-system 42
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 10.Αποτέλεσμα: ένα υποσύστημα που περιγράφει την δυναμική του εκκρεμούς Διπλό κλικ 44 43
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς mm LL 2 θθ + cc TT θθ + mm gg LL sin θθ = ττ(tt) Μηχανικό υποσύστημα (εκκρεμές) 45 44
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς dddd dddd = 1 LL ee (VV iiii RR ii VV ee ) Ηλεκτρικό υποσύστημα (κινητήρας) 46 45
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς Ηλεκτρικο-μηχανική μετατροπή ττ tt = kk Τ ii VV ee = kk Τ θθ 47 46
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς Απόκριση σε βηματική είσοδο L ee = kk Τ = RR = L = m = cc TT = 1 48 47
Χρηματοδότηση Το Έργο Ανοικτά Ακαδημαϊκά Μαθήματα του ΕΜΠ υλοποιείται στο πλαίσιο του Επιχειρηματικού Προγράμματος Εκπαίδευση και Δια Βίου Μάθηση και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.