Δυναμική Μηχανών I Διάλεξη 10 Χειμερινό Εξάμηνο 2013 Τμήμα Μηχανολόγων Μηχ., ΕΜΠ 1
Περιεχόμενα Προσομοίωση απόκρισης συστήματος στο MATLAB μέσω της συνάρτησης ode45 (Runge-Kutta) Προσομοίωση απόκρισης γραμμικού συστήματος στο MATLAB μέσω των συναρτήσεων ss,lsim, step Προσομοίωση απόκρισης δυναμικών συστημάτων στο Simulink 2
Προσομοίωση απόκρισης συστήματος στο MATLAB μέσω της συνάρτησης ode45 (Runge-Kutta) 3
Προσομοίωση σε Η/Υ Πριν την αριθμητική ολοκλήρωση, ένα μοντέλο πρέπει να εκραστεί σε μορφή μεταβλητών κατάστασης Γενική περίπτωση: Μη-Γραμμικές δυναμικές εξισώσεις Μ-Κ Μ q = f q, q, ξ Βαθμοί ελευθερίας Εξισώσεις μεταβλητών κατάστασης x = d q q dt q = M 1 f q, q, ξ = φ x, ξ Μεταβλητές κατάστασης 4
Παράδειγμα: μετατροπή σε εξισώσεις κατάστασης Παράδειγμα: Οι εξισώσεις κίνησης για εκκρεμές μάζας m που κινείται μέσω αβαρούς ράβδου μήκους L γύρω από άρθρωση (απόσβεση c T ) στην οποία ασκείται ροπή τ(t): c T θ τ(t) L m g m L 2 θ + c T θ + m g L sin θ = τ(t) Οι μεταβλητές κατάστασης είναι: x = θ θ Οι αντίστοιχες εξισώσεις μεταβλητών κατάστασης είναι: d dt θ θ = θ 1 m L 2 (τ(t) c T θ m g L sin θ ) = φ θ, θ, τ 5
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta Η συνάρτηση ode45 χρησιμοποιεί μέθοδο Runge-Kutta για την αριθμητική επίλυση του προβλήματος αρχικών τιμών x = φ x, ξ x 0 = x 0 Έστω ότι το διάνυσμα κατάστασης έχει n στοιχεία Σύνταξη εντολής στο MATLAB: Res = ode45(@(t,x) gfun(t,x), Tspan, x0) Συνάρτηση matlab που παρέχει το n 1 διάνυσμα φ x, ξ Διάνυσμα [0 tmax]. Παρέχει τα χρονικά όρια 0, t max μέσα στα οποία θα υπολογιστεί η απόκριση n 1 διάνυσμα. Παρέχει διάνυσμα της αρχικής κατάστασης x 0 6
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta 1. Δημιουργία μιας συνάρτησης MATLAB, η οποία υπολογίζει το n 1 διάνυσμα της παραγώγου του διανύσματος κατάστασης x = φ x, ξ 7
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta 2. Δημιουργία του διανύσματος X0 της αρχικής συνθήκης 3. Δημιουργία του διανύσματος Tspan των χρονικών ορίων προσομοίωσης 4. Κάλεσμα της συνάρτησης ode45 με τις κατάλληλες εισόδους. Τα αποτελέσματα αποθηκεύονται στην δομή δεδομένων Res 8
Αριθμητική Επίλυση στο MATLAB μέσω Runge-Kutta 5. Το πεδίο x της Res περιέχει τον χρόνο t. Το πεδίο y της Res περιέχει την απόκριση των μεταβλητών κατάστασης x. Η εντολή 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
Παραλλαγή 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
Παραλλαγή 2: Απόκριση σε βηματική & αρχικές συνθήκες θ 0 = π 3 θ 0 = 1 τ(t) = u s 1.5 1 [rad] 0.5 0-0.5 0 10 20 30 40 50 time [sec] 11
Παρατηρήσεις Η ode45 μπορεί να χρησιμοποιηθεί για να προσομοιώσει ένα μεγάλο εύρος εξίσώσεων κίνησης (γραμμικής ή μη, μικρής ή μεγάλης τάξης n) εκφρασμένων στην μορφή: x = φ x, ξ Οι παράμετροι της αριθμητικής λύσης της ode45 μπορούν να επιλεγούν μέσω της συνάρτησης odeset Παρόμοιες συναρτήσεις: ode23, ode15s και ode23s Διαφορετικές μορφές της Runge-Kutta Η ode45 είναι συνάρτηση γενικής χρήσης. Πρώτη επιλογή! Οι συναρτήσεις ode15s και ode23s χρησιμοποιούνται σε «δύσκαμπτα» προβλήματα (το μέτρο των ιδιοτημών τους διαφέρει αρκετές τάξεις μεγέθους) 12
Προσομοίωση απόκρισης γραμμικού συστήματος στο MATLAB μέσω των συναρτήσεων ss,lsim, step 13
Γραμμικά Δυναμικά Συστήματα Γραμμικές δυναμικές εξισώσεις Μ-Κ Μ q + C q + K q = ξ Εξισώσεις μεταβλητών κατάστασης x = A x + Β u y = C x + D u A = O I M 1 K M 1 C Β = x = q q Μεταβλητές κατάστασης y Μεταβλητές ενδιαφέροντος u = ξ Εξωτερικές διεγέρσεις O M 1 14
Γραμμικά Δυναμικά Συστήματα Παράδειγμα: Εξισώσεις κίνησης εκρεμμούς Όταν η γωνία θ είναι μικρή, τότε sin θ θ οπότε οι εξισώσεις κίνησης γίνονται: m L 2 θ + c T θ + m g L θ = τ(t) Διάνυσμα μεταβλητών κατάστασης Εξισώσεις κατάστασης x = θ θ d dt θ θ = O 1 m g L m L 2 c T m L 2 θ θ + O 1 m L 2 τ(t) A = O 1 g L c T m L 2 B = O 1 m L 2 15
Γραμμικά Δυναμικά Συστήματα Παράδειγμα: Εξισώσεις κίνησης εκρεμμούς Έστω ότι μας ενδιαφέρει η γωνία του εκκρεμούς y = θ = 1 0 θ θ + 0 τ(t) Το σύστημα εξισώσεων κατάστασης που περιγράφει την απόκριση της εξόδου y = θ είναι: x = A x + Β u y = C x + D u A = O 1 g L c T m L 2 B = O 1 m L 2 C = 1 0 D = 0 16
Ορίζοντας το Μοντέλο ενός Γραμμικού Δυναμικού Συστήματος στο MATLAB (συνάρτηση ss) 1. Ορίζουμε τις παραμέτρους του προβλήματος 2. Ορίζουμε τα μητρώα A, B, C και D 3. Η εντολή ss δημιουργεί το «μοντέλο» (είδος κλάσης) sys που αντιστοιχεί στο δυναμικό σύστημα x = A x + Β u y = C x + D u 17
Προσομοίωση Απόκρισης ΓραμμικούΔυναμικού Συστήματος σε Βηματική Διέγερση στο 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
Προσομοίωση Απόκρισης ΓραμμικούΔυναμικού Συστήματος σε Τυχαία Διέγερση στο MATLAB (συνάρτηση lsim) 1. Δημιουργία διανύσματος χρόνου t 2. Δημιουργία διανύσματος εισόδου u(t) 3. Υπολογισμός απόκρισης y του μοντέλου sys στην είσοδο u(t) μέσω της συνάρτησης lsim 4. Δημιουργία της γραφικής παράστασης υ(t) και y(t) μέσω της συνάρτηση plot 2 0.12 0.1 (t) [Nm] 1.5 1 0.5 [rad] 0.08 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
Υπολογισμός Απόκρισης Συχνότητας ΓραμμικούΔυναμικού Συστήματος στο MATLAB (συνάρτηση bode) Phase (deg) Magnitude (db) Bode Diagram 0-10 -20-30 -40-50 -60-70 -80 0-45 -90-135 -180 10-1 10 0 10 1 10 2 Frequency (rad/s) 20
Παρατηρήσεις To MATLAB παρέχει πολλές συναρτήσεις για την ανάλυση γραμμικών δυναμικών συστημάτων παράσταση (π.χ. tf, series, parallel, feedback, ss2tf) ανάλυση (π.χ. pole, zero) Περισσότερες πληροφορίες στις συναρτήσεις του control systems toolbox 21
Προσομοίωση απόκρισης δυναμικών συστημάτων στο Simulink 22
Simulink Γραφικό περιβάλλον για μοντελοποίηση δυναμικών συστημάτων 23
Εργαλειοθήκες Simulink Περιγράφω ένα δυναμικό σύστημα χρησιμοποιώντας διάφορα εξαρτήματα 24
Βασικά Εργαλεία Simulink Κάθε στοιχείο περιγράφει μια σχέση εισόδου-εξόδου y=f(x) Κέρδος (gain): y = Kx Ολοκληρωτής (integrator): t y = x(t) + y(0) 0 Άθροισμα (sum): z = x + y 25
Βασικά Εργαλεία Simulink Κάθε στοιχείο περιέχει ιδιότητες. Κάνοντας διπλό κλικ ανοίγει παράθυρο όπου καταγράφονται οι ιδιότητες Κέρδος (gain): Ολοκληρωτής (integrator): Άθροισμα (sum): 26
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink Παράδειγμα: Κατάστρωση των εξισώσεων κίνησης εκκρεμούς σε simulink m L 2 θ + c T θ + m g L sin θ = τ(t) c T θ τ(t) L m g d dt θ θ = θ 1 m L 2 (τ(t) c T θ m g L sin θ ) 27
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 1. Προσθήκη n ολοκληρωτών (n: είναι τάξη συστήματος) Με drag n drop από την εργαλειοθήκη commonly used blocks Εδώ n=2 Διπλο κλικ στην επιφάνεια: προσθήκη σχολίου Κλικ στην έξοδο στοιχείου: δημιουργία βέλους Κλικ στο όνομα: Αλλαγή ονόματος 28
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 1. Προσθήκη n ολοκληρωτών (n: είναι τάξη συστήματος) Διπλό κλικ στο block γράφω x0 στο πεδίο initial condition Διπλό κλικ στο block γράφω u0 στο πεδίο initial condition 29
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 2. Προσθήκη βηματικής εισόδου (διέγερσης) Μεταφoρά (drag n drop ) ενός εικονιδίου step Αντιστοιχεί σε μια βηματική (σταθερά) είσοδο t(τ) Διπλό κλικ στο block γράφω 0 στο πεδίο step time 30
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 3. Πρώτη εξίσωση κατάστασης t d dt θ = θ θ t = θ τ dτ 0 + θ 0 θ t = [ 1 s ]{θ τ } 31
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 4. Δεύτερη εξίσωση κατάστασης θ t = d dt θ = 1 m L 2 τ t c T θ m g L sin θ 0 t 1 m L 2 τ t c T θ m g L sin θ dτ θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } + θ 0 32
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } Δεξί κλικ>flip block block κοιτάζει αριστερά Κλίκ στην είσοδο κέρδους ξεκινά βέλος. Σύνδεση στο dθ/dt Διπλό κλικ στο block γράφω ct στο πεδίο gain 33
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } Drag n drop trigonometric function από εργαλειοθήκη math operations Σύνδεση στο θ flip block 34
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } Διπλό κλικ στο block γράφω m*g*l στο πεδίο gain 35
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } Drag n drop sum από εργαλειοθήκη common used blocks Διπλό κλικ στο block γράφω -+- στο πεδίο list of signs 36
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } Σύνδεση των εξόδων των gains και της εξόδου του block step με τις κατάλληλες είσόδους του sum 37
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink θ t = 1 s { 1 m L 2 τ t c T θ m g L sin θ } Σύνδεση εξόδου του sum στην είσοδο gain 3. Σύνδεση της εξόδου του gain2 στην είσοδο integrator 1. Διπλό κλικ στο block γράφω 1/(m*L^2) στο πεδίο gain 38
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 5. Προσθήκη παρατηρητή (scope) Μεταφoρά (drag n drop ) ενός εικονιδίου scope από την εργαλειοθήκη «commonly used blocks Σύνδεση της εξόδου του integrator 2 με το scope: μετρά το θ(t) 39
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 6. Προσομοίωση 1. Ορισμός τιμών παραμέτρων στο MATLAB 2. Εκτέλεση μοντέλου simulink Κουμπί «run 40
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 7. Παρουσίαση αποτελεσμάτων Διπλό κλικ στο scope Δεξί κλικ>autoscale 41
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 8. Προσθήκη ενός scope για την γωνιακή ταχύτητα 42
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 9. Δημιουργία ενός υπο-μοντέλου Επιλογή με ποντίκι όλων των blocks εκτός της πηγής constant και των δύο scope Δεξί κλικ>create sub-system 43
Παράδειγμα: Κατάστρωση εξισώσεων κίνησης στο Simulink 10.Αποτέλεσμα: ένα υποσύστημα που περιγράφει την δυναμική του εκκρεμούς Διπλό κλικ 44
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς m L 2 θ + c T θ + m g L sin θ Μηχανικό υποσύστημα (εκκρεμές) = τ(t) 45
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς di dt = 1 L e (V in R i V e ) Ηλεκτρικό υποσύστημα (κινητήρας) 46
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς Ηλεκτρικο-μηχανική μετατροπή τ t = k Τ i V e = k Τ θ 47
Δημιουργία Πολύπλοκων Μοντέλων Παράδειγμα: Ηλεκτρομηχανικό σύστημα κινητήραεκκρεμούς Απόκριση σε βηματική είσοδο L e = k Τ = R = L = m = c T = 1 48