ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK SIMULINK ρ. Γεώργιος Φ. Φραγκούλης Καθηγητής ver. 0.2 10/2012
Εισαγωγή στο Simulink Το SIMULINK είναι ένα λογισµικό πακέτο που επιτρέπει τη µοντελοποίηση, προσοµοίωση οίωση και ανάλυση δυναµικών συστηµάτων άτων. Υποστηρίζει γραµµικά και µη γραµµικά συστήµατα, µοντελοποιηµένα σε συνεχή ή διακριτό χρόνο, ή ακόµη και υβριδικά συστήµατα (εν µέρει µοντελοποιηµένα σε συνεχή και εν µέρει σε διακριτό χρόνο). Υποστηρίζονται ακόµη συστήµατα µε τµηµατικά διαφορετικούς χρόνους δειγµατοληψίας. 2
Εισαγωγή στο Simulink Για τη µοντελοποίηση, το SIMULINK παρέχει ένα γραφικό περιβάλλον διεπαφής (GUI) που επιτρέπει την κατασκευή µοντέλων ως δοµικών διαγραµµάτων, χρησιµοποιώντας λειτουργίες click-and-drag του ποντικιού. Το SIMULINK περιλαµβάνει ένα πλήθος βιβλιοθηκών δοµικών στοιχείων (blocks), τα βασικότερα από τα οποία είναι οι πηγές (sources), τα στοιχεία «απορρόφησης» (sinks), τα συνεχή γραµµικά στοιχεία, τα µη γραµµικά στοιχεία και τα στοιχεία σηµάτων και συστηµάτων. Είναι επίσης δυνατή η τροποποίηση και η δηµιουργία νέων δοµικών στοιχείων από το χρήστη. 3
Εισαγωγή στο Simulink 4 Τα µοντέλα SIMULINK είναι ιεραρχικά (ένα µοντέλο µπορεί να περιέχει µπλοκ τα οποία περιέχουν µε τη σειρά τους άλλα µπλοκ), έτσι µπορούν να ιδωθούν σε διάφορα επίπεδα. Ένα σύστηµα που έχει ιεραρχική δοµή µπορεί να ιδωθεί αρχικά σε υψηλό επίπεδο ως ένα σύνολο διασυνδεµένων υποσυστηµάτων άτων, κάθε ένα από τα οποία µοντελοποιείται ως ένα µπλοκ. Στη συνέχεια, κάνοντας διπλό κλικ µε το ποντίκι στα επί µέρους µπλοκ, ο χρήστης µπορεί να κατέβει σε χαµηλότερα επίπεδα ώστε να δει αυξανόµενους βαθµούς λεπτοµέρειας.
Εισαγωγή στο Simulink Μετά τη δηµιουργία ενός µοντέλου, είναι δυνατή η προσοµοίωση οίωση του, χρησιµοποιώντας µια από τις διάφορες µεθόδους ολοκλήρωσης που παρέχει το SIMULINK. Χρησιµοποιώντας παλµογράφους (scopes) και άλλα µπλοκ απεικόνισης είναι δυνατή η παρακολούθηση των αποτελεσµάτων της προσοµοίωσης καθώς αυτή εξελίσσεται. Επιπλέον, είναι δυνατή η εξαγωγή αποτελεσµάτων της προσοµοίωσης στο χώρο εργασίας της MATLAB για περαιτέρω επεξεργασία. Είναι ακόµη δυνατή η χρήση του SIMULINK για προσοµοίωση αλλά και έλεγχο συστηµάτων σε πραγµατικό χρόνο, µέσω της εργαλειοθήκης πραγµατικού χρόνου (Real Time Workshop). 5
Βασικές Λειτουργίες του Simulink Τα µοντέλα δυναµικών συστηµάτων που κατασκευάζονται µε το SIMULINK αποθηκεύονται ως αρχεία µε την κατάληξη.mdl. Προκειµένου να δηµιουργήσουµε ένα νέο µοντέλο ή να ανοίξουµε ένα αποθηκευµένο µοντέλο, στο παράθυρο εντολών της MATLAB γράφουµε SIMULINK µε το οποίο ανοίγει ο browser των βιβλιοθηκών του SIMULINK. Από το παράθυρο του browser µπορούµε να δηµιουργήσουµε ένα νέο µοντέλο, ή να ανοίξουµε ένα αποθηκευµένο µοντέλο, 6
Κατασκευή απλού µοντέλου Simulink Στο command window γράφουµε >>simulink Στο παράθυρο που ανοίγει επιλέγουµε File/new/model Από το sources επιλέγουµε το step και το σέρνουµε στο παράθυρο του µοντέλου. 7
Κατασκευή απλού µοντέλου Simulink Από το sources επιλέγουµε και το σέρνουµε στο παράθυρο του µοντέλου. Κάνουµε διπλό κλικ πάνω στο signal generator και ορίζουµε την κατάλληλη συνάρτηση εισόδου. Αφήνουµε τις αρχικές τιµές Από το sinks επιλέγουµε το scope και το σέρνουµε στο παράθυρο του µοντέλου. Ενώνουµε µε βέλη όλα τα αντικείµενα. Από το µενού simulink επιλέγουµε start για να γίνει η προσοµοίωση. Στο γράφηµα που εµφανίζεται κάνουµε δεξί κλικ και επιλέγουµε autoscale. 8
Παράδειγµα -1 9
Παράδειγµα 1 (συνέχεια) Αλλάζοντας την συνάρτηση ή/και δίνοντας διαφορετικές τιµές στις frequence και amplitude παραµέτρους της αλλάζει ανάλογα το γράφηµα εξόδου 10
Παράδειγµα 2 Σ αυτό το παράδειγµα χρησιµοποιούµε από την βιβλιοθήκη signal routing το Mux για συνέλιξη σηµάτων και το Gain από το commonly used blocks καθώς και το simout (to workspace) από το Sinks και δηµιουργούµε το παρακάτω µοντέλο : 11
Παράδειγµα 2 12
Επιστροφή τιµών στο Matlab από το Simulink Με το block workspace στέλνουµε πίσω στο Matlab την έξοδο του µοντέλου µας σε αριθµητικές τιµές, τις οποίες µπορώ να χρησιµοποιήσω όπως και κάθε άλλη µεταβλητή του Matlab. Το όνοµα της µεταβλητής καθορίζεται από το variable name του workspace (στο παράδειγµά µας είναι το matrix1) 13
Εργαλεία του SIMULINK Toolbox Ολοκληρωτής (Commonly used blocks) Με αυτό το εργαλείο κάνουµε πράξεις ολοκλήρωσης Παράγωγος (Derivative) 14
Εργαλεία του SIMULINK Toolbox State-space (Χώρος( κατάστασης) Transfer Function (Συνάρτηση µεταφοράς µε ρύθµιση πόλων) Zero-Pole (Συνάρτηση µετ. µε δυνατότητα ρύθµισης πόλων αλλά και µηδενικών 15
Εργαλεία του SIMULINK Toolbox Εισαγωγή συνάρτησης Παράδειγµα : 16
Εργαλεία του SIMULINK Toolbox Εύρεση απόλυτης τιµής Παράδειγµα : 17
Εργαλεία του SIMULINK Toolbox Εργαλείο άθροισης αριθµών ή σηµάτων Παράδειγµα : 18
Εργαλεία του SIMULINK Toolbox Εργαλεία βασικών πηγών : Πηγή σταθερής τιµής Γεννήτρια παλµών Βηµατική συνάρτηση Ηµιτονοειδές σήµα 19
Control systems Σ.Α.Ε. Στα επόµενα παραδείγµατα θα εξετάσουµε τις περιπτώσεις της µοντελοποίησης Συστηµάτων Αυτοµάτου Ελέγχου (ΣΑΕ- Control Systems). εν θα αναπτυχθούν θεωρητικά τα Σ.Α.Ε. αλλά θα παρουσιαστούν οι έννοιες συστηµάτων open loop, closed loop, transfer function, feedback, controller. 20
Simulation of an open loop system Από το continuous επιλέγουµε transfer function και το σέρνουµε στο παράθυρο του µοντέλου. Κάνουµε διπλό κλικ πάνω στο transfer function και ορίζουµε την κατάλληλη συνάρτηση. Από το sinks επιλέγουµε το scope και το σέρνουµε στο παράθυρο του µοντέλου. Ενώνουµε µε βέλη όλα τα αντικείµενα. Από το µενού simulink επιλέγουµε start για να γίνει η προσοµοίωση. Στο γράφηµα που εµφανίζεται κάνουµε δεξί κλικ και επιλέγουµε autoscale. 21
Παράδειγµα - 3 22
Εντολές Matlab Η ανάπτυξη του συστήµατος µπορεί να γίνει και µε την βοήθεια εντολών του Matlab : Κώδικας num=2 den=[1 1 10] sys=tf(num, den) [y,x,t]=step(num, den) plot(t,y) 23
Παράδειγµα 4 - Closed Loop systems 24
Παράδειγµα 4 (απόκριση) Με απόκριση : 25
ιαφορές open loop & closed loop Παρατηρούµε την διαφορά στις 2 αποκρίσεις του ανοικτού και του κλειστού συστήµατος Βλέπουµε ότι πρέπει να βάλουµε κατάλληλη τιµή στο Gain,για να µπορέσει το κλειστό σύστηµα να έχει παραπλήσια απόκριση µε το ανοικτό σύστηµα 26
Συγκριση αποκρίσεων 27
Κώδικας Matlab κλειστού συστήµατος Ο αντίστοιχος κώδικας για το κλειστό σύστηµα είναι : Κώδικας num=1 den=[1 1 10] sys1=tf(num, den) sys2=1 sys=feedback(sys1, sys2) [y,x]=step(sys) plot(x,y) 28