Σχολή Τεχνολογικών Εφαρμογών Τμήμα Αυτοματισμού Σημειώσεις Εργαστηρίου Ψηφιακού Ελέγχου Σχεδίαση Συστημάτων Ελέγχου με χρήση MATLAB Επιμέλεια: Ξανθή Παπαγεωργίου E-mail: xanthi.papageorgiou@gmail.com Τμήματα: 16:00-18:00 & 18:00-0:00 Οκτώβρης 011
1. Εισαγωγή στο MATLAB Στην ενότητα αυτή θα κάνουμε μία εισαγωγή στις βασικές λειτουργίες του MATLAB. Θα δούμε ως ορίζουμε μεταβλητές (διανύσματα, πίνακες, πολυώνυμα, κλπ.), βασικές συναρτήσεις, πώς μπορούμε να δημιουργήσουμε εμείς συναρτήσεις, κα. Ξεκινώντας το πρόγραμμα βλέπουμε το μενού του προγράμματος, τη μπάρα των εργαλείων, τη γραμμή εντολών και μια σειρά από άλλα βοηθητικά παράθυρα, όπως φαίνεται και στο σχήμα. Το πιο βασικό παράθυρο από αυτά είναι η γραμμή εντολών στην οποία πληκτρολογούμε τις εντολές που θέλουμε να εκτελέσουμε και εκεί εμφανίζονται και τα αποτελέσματα των πράξεων-υπολογισμών που εκτελούμε. Για να ορίσουμε μία μεταβλητή αρκεί να πληκτρολογήσουμε στη γραμμή εντολών το όνομά της (το σύμβολό της) και στη συνέχεια την τιμή που αυτή η μεταβλητή παίρνει (π.χ. μεταβλητή x, a, b, κλπ.). Παρατηρήστε ότι για τη μεταβλητή b δεν συμβαίνει το ίδιο, διότι στο τέλος της εντολής έχει τοποθετηθεί το σύμβολο «;». Με αυτόν τον τρόπο καταχωρούμε τη μεταβλητή, χωρίς να γεμίζουμε την οθόνη μας με αυτήν την πληροφορία. Μενού Εργαλεία Current Directory Γραμμή Εντολών Command History Για να ορίσουμε τα διάνυσμα της μορφής y 1 3 πληκτρολογούμε: ενώ για να ορίσουμε το 1 x πληκτρολογούμε: 3 Επίσης, στη γραμμή εντολών μπορούμε να διενεργήσουμε πράξεις μεταξύ οποιονδήποτε μεταβλητών. Για παράδειγμα αν έχουμε ορίσει το διάνυσμα y, όπως παραπάνω, μπορούμε να εκτελέσουμε τις ακόλουθες πράξεις: y y, b y, c y /, d y *, καθώς επίσης και τις πράξεις: e y.*, f y.^, g y ^, h y./. Προσοχή στον πολλαπλασιασμό πινάκων! Ισχύει ο κανόνας που φαίνεται στο διπλανό σχήμα: Για να ορίσουμε πίνακες π.χ. Α (όπως δίνεται παρακάτω), τον ανάστροφο του Α, ενώ για τον αντίστροφο του πίνακα Α αρκεί η εντολή >> inv(a). A 1 3 4 5 6 7 8 9 Για να υπολογίσουμε τις ιδιοτιμές ενός πίνακα μπορούμε να χρησιμοποιήσουμε την εντολή >> eig(a), ενώ για να βρούμε τις διαστάσεις ενός πίνακα αρκεί η εντολή >> size(a). Επίσης, μπορούμε να κατασκευάσουμε πίνακες οποιασδήποτε διάστασης γεμισμένους με μηδενικά: >> zeros(3,5), γεμάτους με άσσους: >> ones(5,10), και να ορίσουμε μοναδιαίους πίνακες: >> eye(5). Επιπλέον το MATLAB αποτελεί ένα πολύ ισχυρό εργαλείο για το χειρισμό πινάκων. Με πολύ απλές εντολές μπορούμε να απομονώσουμε υποπίνακες από κάποιον υπάρχοντα πίνακα. 1
Σημαντικός είναι και ο αριθμός έτοιμων συναρτήσεων, ευρέως χρησιμοποιούμενες, που περιλαμβάνονται στο βασικό πακέτο του MATLAB. Για παράδειγμα ο υπολογισμός των τριγωνομετρικών αριθμών γίνεται από έτοιμες εντολές >> cos(pi/3), >> sin(pi), κλπ., όπου «pi» είναι το γνωστό σε όλους «π», καθώς επίσης και οι αντίστοιχες εντολές: >> cosd(60), κλπ., όπου παίρνουν σαν όρισμα τη γωνία σε μοίρες. Άλλες τέτοιες εντολές είναι: sin(x), cos(x), tan(x), abs(x), sqrt(x), exp(x), log(x), κλπ. Γενικά, αν κάποια συνάρτηση δεν γνωρίζουμε αν υπάρχει ή δεν είμαστε σίγουροι πώς συντάσσεται ή τι παίρνει για όρισμα, μπορούμε να χρησιμοποιήσουμε την εντολή: >> help cosd, ή αντίστοιχα την εντολή που μας ενδιαφέρει. Επίσης, το MATLAB μας δίνει τη δυνατότητα να δημιουργήσουμε τις δικές μας συναρτήσεις για τους επιμέρους υπολογισμούς που θέλουμε να πραγματοποιήσουμε. Η βασική λειτουργία μίας συνάρτησης είναι η εξής: δημιουργείς μία συνάρτηση με ένα συγκεκριμένο όνομα που εκτελεί μία σειρά από υπολογισμούς, δίνεις κάποια δεδομένα ως είσοδο έπειτα σε ένα μαύρο πλέον για σένα κουτί και παίρνεις μία σειρά από αποτελέσματα, χωρίς να χρειάζεται εσύ να κάνεις οποιονδήποτε ενδιάμεσο υπολογισμό. Ας δούμε ένα πολύ απλό παράδειγμα μιας συνάρτησης. Θα επιλύσουμε το γνωστό σε όλους τριώνυμο με τη χρήση της διακρίνουσας. Στον editor του MATLAB δημιουργούμε ένα αρχείο πληκτρολογώντας όλες τις απαραίτητες εντολές, όπως φαίνεται στο διπλανό σχήμα: Αφού αποθηκεύσουμε το αρχείο αυτό θα επιλύσουμε το τριώνυμο x x 1 0. Πληκτρολογούμε αρχικά τα δεδομένα μας που θα χρησιμοποιηθούν ως είσοδος στη συνάρτησή μας, και στη συνέχεια καλούμε τη συνάρτηση με την παρακάτω εντολή. Για τη δημιουργία πιο περίπλοκων συναρτήσεων, το MATLAB μας δίνει τη δυνατότητα να χρησιμοποιήσουμε εντολές ελέγχου με τη χρήση της εντολής >> if, ή εντολές για τη διενέργεια επαναληπτικών διαδικασιών με την εντολή >> for. Λεπτομέρειες σχετικά με τη σύνταξη και τη χρήση αυτών των συναρτήσεων μπορούμε να αντλήσουμε μέσω της εντολής >> help if ή >> help for, κλπ., όπως έχουμε αναφέρει και παραπάνω. Επίσης, μία άλλη πολύ χρήσιμη λειτουργία του MATLAB για τις εφαρμογές μας, σχετίζεται με τον ορισμό και τη διαχείριση πολυωνύμων. Ας δούμε μερικά παραδείγματα για το πώς μπορούμε να κάνουμε κάτι τέτοιο. Για να ορίσουμε το πολυώνυμο x x x, αρκεί στο MATLAB να εισάγουμε ένα διάνυσμα μόνο με τους συντελεστές των όρων του πολυωνύμου. Συγκεκριμένα εδώ πρέπει να εκτελέσουμε την εντολή: >> p1 = [ 1 - ]. Αντίστοιχα για 5 3 τον ορισμό του πολυωνύμου x x x, γράφουμε την εντολή: >> p = [ 1 0 0 0 - ]. Σχετικά με τα πολυώνυμα και πάλι έχουμε κάποιες έτοιμες εντολές που μπορούν να μας εξυπηρετήσουν στους υπολογισμούς μας. Για παράδειγμα στην εύρεση των ριζών ενός πολυωνύμου αρκεί η εντολή: >> roots(p). Επίσης, μία άλλη πολύ χρήσιμη εντολή του MATLAB σχετίζεται με τον πολλαπλασιασμό πολυωνύμων. Για 4 παράδειγμα αν υποθέσουμε ότι θέλουμε να πολλαπλασιάσουμε τα πολυώνυμα: 1 x x 1 και x 1. Το γινόμενο αυτών των δύο εφαρμόζοντας την επιμεριστική ιδιότητα και την αναγωγή ομοίων όρων, μας δίνει το 6 5 4 πολυώνυμο: x x x x x 1. Για να εκτελέσουμε αυτήν τη πράξη με τη χρήση του MATLAB πρέπει πρώτα να ορίσουμε τα δύο αρχικά πολυώνυμα με τον τρόπο που είπαμε παραπάνω, δηλαδή να γράψουμε στη γραμμή εντολών: >> p1 = [ 1 1 1 ], και >> p = [ 1 0 0 0 1 ], και στη συνέχεια να χρησιμοποιήσουμε την έτοιμη εντολή του MATLAB:
. Γραφικές Παραστάσεις στο MATLAB Στην ενότητα αυτή θα κάνουμε μία εισαγωγή σε βασικές δυνατότητες που μας δίνει το MATLAB σχετικά με τη σχεδίαση γραφικών παραστάσεων και γραφικών απεικονίσεων γενικότερα. Θα δούμε κάποια παραδείγματα απλών γραφικών παραστάσεων όπως είναι το ημίτονο και το συνημίτονο. Παράγουμε 100 δεδομένα από το 0 ως 1 στη μεταβλητή x με την εντολή: >> x = linspace ( 0, 1, 100 ). Και στη συνέχεια με αυτά τα ορίσματα υπολογίζουμε τα ημίτονα και τα συνημίτονα: >> y = sin(*pi*x) και >> z = cos(*pi*x). Για να φτιάξουμε τη γραφική παράσταση του ημιτόνου αρκεί η εντολή: >> plot ( x, y ) και μας δίνει το αποτέλεσμα του αριστερά σχήματος παρακάτω. Προκειμένου να απεικονίσουμε και το συνημίτονο στο ίδιο γράφημα ώστε να μπορούμε να κάνουμε τη σύγκριση, πρέπει να χρησιμοποιήσουμε την εντολή >> hold on, με την οποία παγώνει το τρέχων γράφημα και πάνω σε αυτό προστίθεται και το καινούριο πληκτρολογώντας με τον ίδιο ακριβώς τρόπο την εντολή >> plot ( x, z ), και παίρνουμε το αποτέλεσμα του μεσαίου σχήματος παραπάνω. Επίσης, το MATLAB μας δίνει πολλές δυνατότητες να παίξουμε με τις χρωματικές αποχρώσεις, τα σύμβολα κλπ., έτσι ώστε να δημιουργήσουμε εντυπωσιακά και χρήσιμα γραφικά. Για παράδειγμα μπορούμε να αλλάξουμε τις γραμμές και τα σύμβολα ων σημείων με την απλή εντολή: >> plot ( x, y, ro ). Με την εντολή αυτή σε κάθε σημείο της καμπύλης τοποθετούμε κόκκινα κυκλάκια (όπως φαίνεται και στο δεξιά σχήμα παραπάνω). Για να δούμε την γκάμα των εντολών που μπορούμε να χρησιμοποιήσουμε στο MATLAB για τη δημιουργία γραφικών παραστάσεων, αρκεί να πληκτρολογήσουμε την εντολή που μάθαμε παραπάνω για να ανακαλύψουμε τις δυνατότητες της εντολής plot: >> help plot. Ενδεικτικά δείτε το διπλανό πίνακα. Επιπλέον, έχουμε μια σειρά από δυνατότητες εμπλουτισμού των γραφικών μας παραστάσεων πέραν των χρωματικών και συμβολικών επιλογών. Μπορούμε να τοποθετήσουμε επικεφαλίδες, τίτλους στους άξονες, κάποιο επεξηγηματικό κείμενο μέσα στο χώρο της γραφικής απεικόνισης σε συγκεκριμένη θέση, να εισάγουμε πλέγμα ώστε να είναι πιο εύκολη η αναγνώριση και ανάγνωση των δεδομένων που αναπαριστώνται, και άλλα πολλά. Ενδεικτικά κάποιες εντολές που δημιουργούν τα παραπάνω είναι: o Εισαγωγή τίτλου στο γράφημα: >> title ( Trigonometria ) o Εισαγωγή τίτλων στους άξονες: >> xlabel ( Time ) και >> ylabel ( Sin & Cos ) o Τοποθέτηση κειμένου σε συγκεκριμένη θέση του γραφήματος: >> text ( 0.6, 0.6, TEST ) o Εισαγωγή πλέγματος: >> grid on Τα αποτελέσματα που παράγουν αυτές οι εντολές πάνω στο γράφημα, απεικονίζονται στο παρακάτω σχήμα. 3
Όλες αυτές οι εντολές μπορούν να παρακαμφθούν εύκολα με τη χρήση του παραθυρικού μενού που παρέχει το MATLAB. Συγκεκριμένα από το μενού του παραθύρου του γραφήματος ακολουθώντας τις επιλογές που δείχνει η παρακάτω εικόνα, μας ανοίγει ένα μενού ιδιοτήτων του γραφήματος, μέσα από το οποίο μπορούμε να μεταβάλλουμε όλες τις παραμέτρους του γραφήματος με πολύ απλό και εύκολο τρόπο. 4
3. Μοντελοποίηση Γραμμικών Συστημάτων στο MATLAB Στην ενότητα αυτή θα κάνουμε μία εισαγωγή σε βασικές έννοιες που σχετίζονται με την περιγραφή γραμμικών, χρονικά μη μεταβαλλόμενων συστημάτων με τη χρήση του MATLAB. Συγκεκριμένα θα αναλύσουμε την περιγραφή των συστημάτων αυτών στο πεδίο του χρόνου (χώρος κατάστασης) και την περιγραφή τους στο πεδίο των συχνοτήτων (συναρτήσεις μεταφοράς). Ένα τέτοιο σύστημα περιγράφεται από τις εξισώσεις: x A x B u y C x D u όπου x: είναι το διάνυσμα των μεταβλητών κατάστασης, y: είναι το διάνυσμα των μετρήσιμων μεταβλητών, u: είναι το διάνυσμα των μεταβλητών ελέγχου και Α, Β, C, D είναι οι παράμετροι του συστήματος. Ας εξετάσουμε το απλό ηλεκτρικό σύστημα του διπλανού σχήματος. Στο σύστημα αυτό το διάνυσμα των μεταβλητών κατάστασης είναι: x x it () 1 () t x i() t dt, u ( t ) e ( t ) είναι η μεταβλητή ελέγχου και y( t) R i( t) είναι η μετρήσιμη μεταβλητή. Η εξίσωση που το περιγράφει είναι: di( t) 1 L Ri( t) i( t) dt e( t). Για να περιγράψουμε το σύστημα αυτό με τη dt c μορφή των εξισώσεων κατάστασης πρέπει να προσδιορίσουμε τις παραμέτρους Α, Β, C, D. Η παραπάνω εξίσωση του συστήματος μπορεί να γραφεί: 1 1 R 1 Lx1 Rx1 x u x1 u x1 x. c L L cl Επίσης ισχύει: x i( t) x1 x 1 x1 0 x 0 u και y( t) R x1 0 x 0 u. Επομένως, οι εξισώσεις κατάστασης του συστήματος έχουν τη διπλανή μορφή, όπου προσδιορίζονται οι πίνακες Α, Β, C, D των παραμέτρων του συστήματος. Για συγκεκριμένες τιμές των παραμέτρων του ηλεκτρικού κυκλώματος R=1, L=1 και c=1, μπορούμε να ορίσουμε τους πίνακες Α, Β, C, D στο MATLAB. Στη συνέχεια με χρήση κατάλληλης εντολής μπορούμε να δηλώσουμε στο MATLAB ότι οι πίνακες αυτοί αντιστοιχούν σε περιγραφή του συστήματος στο χώρο κατάστασης. Η απαιτούμενη εντολή είναι η ss: (State Space) συνάρτηση του χώρου κατάστασης και συντάσσεται σε αντιστοιχία με όλες τις συναρτήσεις του MATLAB που έχουμε δει ως τώρα. Μία άλλη περιγραφή ενός συστήματος είναι η συνάρτηση μεταφοράς. Για να υπολογίσουμε τη συνάρτηση μεταφοράς χρησιμοποιούμε το μετασχηματισμό Laplace. Στο συγκεκριμένο παράδειγμα του ηλεκτρικού κυκλώματος που εξετάσαμε παραπάνω, ο μετασχηματισμός Laplace της διαφορικής εξίσωσης του συστήματος μας δίνει: Is ( ) 1 Ys () sli( s) RI( s) E( s) sl R I( s) E( s). Η συνάρτηση μεταφοράς γενικά ορίζεται ως: Gs () και sc sc Rs () RI () s RCs επομένως προκύπτει G s G() s. Για να ορίσουμε τη συνάρτηση αυτή στο MATLAB, αρκεί E( s) LCs RCs 1 να προσδιορίσουμε τα πολυώνυμα αριθμητή (ar) και παρονομαστή (par) και στη συνέχεια να δηλώσουμε ότι πρόκειται για συνάρτηση μεταφοράς με την απαιτούμενη εντολή που είναι η tf: (Transfer Function) συνάρτηση μεταφοράς και συντάσσεται σε αντιστοιχία με όλες τις συναρτήσεις του MATLAB που έχουμε δει ως τώρα. Το MATLAB μας δίνει τη δυνατότητα να πηγαίνουμε από τη μία περιγραφή στην άλλη με χρήση μίας εντολής. Στο σχήμα παρακάτω, φαίνεται η διάκριση μεταξύ των δύο περιγραφών και ο τρόπος μεταπήδησης από τη μία στην άλλη. 5
Επίσης, το MATLAB μας δίνει τη δυνατότητα με εντολές να χειριστούμε δομικά διαγράμματα για το σχεδιασμό συστημάτων ελέγχου. Για μπλοκ διαγράμματα που βρίσκονται σε σειρά ισχύει η εντολή: Για μπλοκ διαγράμματα που βρίσκονται παράλληλα ισχύει η εντολή: Για μπλοκ διαγράμματα σε συστήματα με ανάδραση ισχύει η εντολή: 6
Ας εξετάσουμε το παράδειγμα του πολύ απλού μηχανικού συστήματος του διπλανού σχήματος. Στο σύστημα αυτό το διάνυσμα των μεταβλητών κατάστασης είναι: x x 1 () t, u ( t ) ( ) x xt xt F t είναι η μεταβλητή ελέγχου και y( t) x( t) η μετρήσιμη μεταβλητή. Η εξίσωση που το περιγράφει είναι: F k x b x m x. Για να περιγράψουμε το σύστημα αυτό με τη μορφή των εξισώσεων κατάστασης πρέπει να προσδιορίσουμε τις παραμέτρους Α, Β, C, D. Η παραπάνω εξίσωση του συστήματος μπορεί 1 k b να γραφεί: u k x1 b x m x x u x1 x m m m. Επίσης ισχύει: x1 x( t) x x1 0 x1 1 x 0 u και y( t) x( t) y( t) 1 x1 0 x 0 u. Επομένως, οι εξισώσεις κατάστασης του συστήματος έχουν τη διπλανή μορφή, όπου προσδιορίζονται οι πίνακες Α, Β, C, D των παραμέτρων του συστήματος. Για συγκεκριμένες τιμές των παραμέτρων του μηχανικού συστήματος k=0, b=10 και m=1, μπορούμε να ορίσουμε τους πίνακες Α, Β, C, D στο MATLAB και στη συνέχεια με χρήση της κατάλληλης εντολής μπορούμε να δηλώσουμε στο MATLAB ότι οι πίνακες αυτοί αντιστοιχούν σε περιγραφή συστήματος στο χώρο κατάστασης. Ένα άλλο παράδειγμα απλού συστήματος είναι το υδραυλικό σύστημα του διπλανού σχήματος. Στο σύστημα αυτό το διάνυσμα των μεταβλητών κατάστασης είναι: x () t h t, u( t) F ( t) είναι η μεταβλητή ελέγχου και y( t) h( t) η μετρήσιμη μεταβλητή. Η εξίσωση που το περιγράφει είναι: d A h t F in t F out t dt dh t dh t A Fin t c h t A Fin t c h t. Για να περιγράψουμε dt dt το σύστημα αυτό με τη μορφή των εξισώσεων κατάστασης πρέπει να προσδιορίσουμε τις παραμέτρους Α, Β, C, D. Η παραπάνω εξίσωση του συστήματος μπορεί να γραφεί: 1 c A x t u t c x t x t u t x t. Επίσης ισχύει: A A y( t) h( t) x( t) y( t) 1 x 0 u. Για συγκεκριμένες τιμές των παραμέτρων του υδραυλικού συστήματος c=1 και Α=1, μπορούμε να ορίσουμε τους πίνακες Α, Β, C, D στο MATLAB και στη συνέχεια με χρήση της κατάλληλης εντολής μπορούμε να δηλώσουμε στο MATLAB ότι οι πίνακες αυτοί αντιστοιχούν σε περιγραφή συστήματος στο χώρο κατάστασης. in 7
4. Μελέτη Δυναμικής Συμπεριφοράς Γραμμικών Συστημάτων στο MATLAB Στην ενότητα αυτή θα κάνουμε μία εισαγωγή σε βασικές έννοιες που σχετίζονται με τη μελέτη της δυναμικής συμπεριφοράς γραμμικών χρονικά μη μεταβαλλόμενων συστημάτων με τη χρήση του MATLAB. Μπορούμε να εξετάσουμε την απόκριση του συστήματος σε βηματική είσοδο μέσω της εντολής: >> step( sys_ss_c ) ή >> step( sys_tf_c ) Επίσης, μπορούμε να εξετάσουμε την απόκριση του συστήματος σε κρουστική είσοδο με χρήση της εντολής: >> impulse( sys_ss_c ) ή >> impulse ( sys_tf_c ) Επιπρόσθετα, τo MATLAB μας δίνει τη δυνατότητα να μελετήσουμε τη συμπεριφορά ενός συστήματος σε μία τυχαία είσοδο, μέσω της εντολής: >> lsim( sys_ss_c, u, t ) ή >> lsim ( sys_tf_c, u, t ) όπου u είναι το διάνυσμα των στοιχείων της τυχαίας είσοδου και t το χρονικό διάστημα της προσομοίωσης. Για να δούμε ένα απλό παράδειγμα ας δημιουργήσουμε για >> t = 0 : 0.1 : 5 μία τυχαία είσοδο, ας πούμε μία ημιτονοειδή είσοδο >> u = sin( *pi*t ). Η απόκριση του συστήματος σε αυτήν την είσοδο παράγεται με την εντολή: >> lsim( sys_ss_c, u, t ). 8
5. Μελέτη Γραμμικών Συστημάτων στο Πεδίο των Συχνοτήτων (BODE) Στην ενότητα αυτή θα κάνουμε μία εισαγωγή σε βασικές έννοιες που σχετίζονται με τη μελέτη των γραμμικών χρονικά μη μεταβαλλόμενων συστημάτων στο πεδίο των συχνοτήτων με τη χρήση του MATLAB. Για το σχεδιασμό διαγραμμάτων BODE με τη βοήθεια του MATLAB χρειαζόμαστε την εντολή >> bode(sys_ss_c) ή >> bode (sys_tf_c), αναλόγως τη μορφή του συστήματος το οποίο θέλουμε να εξετάσουμε. Για ένα απλό παράδειγμα συστήματος με 1 συνάρτηση μεταφοράς Gs () παίρνουμε το διάγραμμα s s 1 BODE του διπλανού σχήματος. Σημαντικό στοιχείο μελέτης ενός συστήματος με τη χρήση των διαγραμμάτων BODE είναι ο προσδιορισμός των περιθωρίων κέρδους και φάσης του συστήματος. Το περιθώριο κέρδους καθορίζεται από το διάγραμμα BODE ως εξής: Στο διάγραμμα της φάσης βρίσουμε τη συχνότητα ω 1 στην οποία η καμπύλη τέμνει τις -180 ο. Για αυτήν τη συχνότητα εξετάζουμε στο διάγραμμα του μέτρου πόσο απέχει η καμπύλη από τα 0dB. Αυτό είναι το περιθώριο κέρδους σε db και ισχύει ότι K db 0log G. g Αντίστοιχα για το περιθώριο φάσης πάμε στο διάγραμμα του μέτρου και βλέπουμε σε ποια συχνότητα ω η καμπύλη τέμνει τα 0dB. Για αυτήν τη συχνότητα πάμε στο διάγραμμα της φάσης και εξετάζουμε πόσο απέχει η καμπύλη από τις -180 ο. Αυτό καθορίζει το περιθώριο της φάσης. Για να εξάγουμε αυτά τα περιθώρια με τη βοήθεια του MATLAB μπορούμε να χρησιμοποιήσουμε την εντολή: >> [ Gm, Pm, wg, wp ] = margin( sys_tf_c ). Ένα πολύ χρήσιμο εργαλείο του MATLAB είναι ο LTI viewer, ο οποίος καλείται με την εντολή: >> ltiview. Με την εντολή αυτή μας ανοίγει ένα παράθυρο και μέσα από ένα εύχρηστο μενού μπορούμε να εισάγουμε το σύστημά μας και να το μελετήσουμε. Δείτε ένα από παράδειγμα εισαγωγής (File->Import) και εξέτασης ενός συστήματος με την ακολουθία των βημάτων που εμφανίζονται στις παρακάτω εικόνες. Μας δίνεται η δυνατότητα να το μελετήσουμε σε κάποια απόκριση, να δούμε το διάγραμμα BODE κλπ., (πατάμε δεξί κλικ και επιλέγουμε από Plot Types) και μια σειρά από χαρακτηριστικά του συστήματος πολύ εύκολα και γρήγορα (δεξί κλικ από Plot Characteristics και να επιλέξουμε για παράδειγμα σε ένα διάγραμμα BODE να μας εμφανίσει τα περιθώρια κέρδους και φάσης). 9
Ας δούμε τώρα ένα παράδειγμα ενός συστήματος με νεκρό χρόνο στην απόκρισή του στις μεταβολές της εισόδου. Στο διπλανό σχήμα φαίνεται ένας αγωγός μέσα στον οποίο κινείται αέρας με κάποια ταχύτητα v σταθερή και σε κάποιο σημείο μέσα στον αγωγό ο αέρας θερμαίνεται. Η μέτρηση της θερμοκρασίας γίνεται κατά την έξοδο του αέρα από τον αγωγό και σε κάποια απόσταση από το σημείο θέρμανσης. Ο ελεγκτής της θερμοκρασίας που ρυθμίζει τη θέρμανση του αέρα είναι αναμενόμενο να έχει διαφοροποιημένη ένδειξη σε σχέση με την πραγματική μεταβολή της θερμοκρασίας κατά τη θέρμανση του αέρα κατά ένα χρονικό διάστημα d=l/v. Η συνάρτηση μεταφοράς k ds αυτού του συστήματος με νεκρό χρόνο είναι: G s e και για να μπορέσουμε να τη δηλώσουμε στο MATLAB s 1 χρειαζόμαστε την εντολή: >> sys_tf_c = tf ( ar, par, outputdelay, d). Δοκιμάστε να εισάγεται το σύστημα αυτό στο MATLAB για μεταβλητές k=1, τ=1, και d=0,5. Με τη χρήση του LTI viewer μπορούμε να δούμε την απόκριση του συστήματος σε βηματική είσοδο, καθώς και το διάγραμμα BODE για το σύστημα αυτό. Τα αποτελέσματα απεικονίζονται στις παρακάτω εικόνες. 10
6. Εισαγωγή στο Simulink Στην ενότητα αυτή θα κάνουμε μία εισαγωγή σε βασικές έννοιες του Simulink που περιέχει το MATLAB. Το Simulink μας δίνει τη δυνατότητα να φτιάξουμε εύκολα και γρήγορα μοντέλα συστημάτων ώστε να μπορούμε να δοκιμάσουμε τη συμπεριφορά τους. Για να ξεκινήσουμε το Simulink στη γραμμή εντολών του MATLAB πληκτρολογούμε την εντολή: >> simulink. Ανοίγει ένα μενού από επιλογές ώστε να μπορούμε να σχεδιάσουμε το σύστημα που μας ενδιαφέρει κάθε φορά. Ας υποθέσουμε ότι θέλουμε να φτιάξουμε το μοντέλο του συστήματος κλειστού βρόγχου που φαίνεται στο παρακάτω σχήμα, όπου η συνάρτηση μεταφοράς του προς έλεγχο συστήματος είναι: Gs () 1 s 1 και η συνάρτηση K μεταφοράς του ελεγκτή είναι: Gc () s s. Για να φτιάξουμε το μοντέλο αυτό στο Simulink ανοίγουμε ένα καινούριο αρχείο και το σχεδιάζουμε βήμα προς βήμα. Εισάγουμε τις συναρτήσεις μεταφοράς και ρυθμίζουμε ανάλογα τις παραμέτρους με βάση τα δεδομένα μας και στη συνέχεια ακολουθώντας την αλληλουχία των παρακάτω εικόνων παίρνουμε το ολοκληρωμένο μοντέλο και ορίζουμε το σύστημα κλειστού βρόγχου να πάρει μια βηματική είσοδο. Για διάφορες τιμές του κέρδους Κ του ελεγκτή εξετάζουμε τη συμπεριφορά και την απόκριση του συστήματός μας. Παρακάτω εμφανίζεται η απόκριση του συστήματος για κέρδος Κ=1, Κ=3 και Κ=30. 11
1
13
7. Βαθμονόμηση PID Ελεγκτών Στην ενότητα αυτή θα κάνουμε μία εισαγωγή σε βασικές έννοιες που σχετίζονται με τη σχεδίαση και βαθμονόμηση PID ελεγκτών με τη χρήση του MATLAB. Η τυπική μορφή ενός PID ελεγκτή είναι u t u 0 P t I t D t, όπου ο πρώτος όρος σχετίζεται με τις αρχικές συνθήκες. Ο δεύτερος όρος περιγράφει το αναλογικό μέρος του ελεγκτή και είναι της μορφής Ο τρίτος όρος περιγράφει το ολοκληρωτικό μέρος του ελεγκτή και είναι της μορφής όρος περιγράφει το διαφορικό μέρος του ελεγκτή και είναι της μορφής D t kc D Για το σχεδιασμό του κατάλληλου ελεγκτή (κατάλληλη επιλογή των αντίστοιχων παραμέτρων) ακολουθούμε τα εξής βήματα. Αρχικά προσδιορίζουμε τα κρίσιμα μεγέθη του συστήματος (κρίσιμη συχνότητα και κρίσιμο κέρδος) και από εκεί εξάγουμε τις απαραίτητες πληροφορίες για το σύστημα που θέλουμε να ελέγξουμε. k P t kc e t. t c I t e d. Ο τελευταίος t0 I de t dt. Ας εξετάσουμε ένα παράδειγμα του συστήματος που φαίνεται στο διπλανό σχήμα, όπου το σύστημα έχει συνάρτηση μεταφοράς 1 0.5s G() s e. Για το σύστημα αυτό με τη βοήθεια του s 1 διαγράμματος BODE προκύπτουν τα κρίσιμα μεγέθη: 3.67 K 3.80 και επομένως προκύπτει και η περίοδος P cr Ας δούμε ένα χρήσιμο πίνακα για τη βαθμονόμηση κατάλληλων ελεγκτών στηριγμένο πάνω στη μέθοδο Ziegler- Nichols. Ο πίνακας αυτός μας δίνει τους εμπειρικούς τύπους υπολογισμών των αντίστοιχων παραμέτρων των απαιτούμενων μερών του παραπάνω ελεγκτή για τις περιπτώσεις σχεδιασμού ελεγκτών P, PI, PID. cr cr, Άρα για να σχεδιάσουμε έναν PID ελεγκτή πρέπει να εστιάσουμε στην τελευταία γραμμή του παραπάνω πίνακα και να προσδιορίσουμε τις τιμές των παραμέτρων αντίστοιχα. Στο μοντέλο του Simulink που μπορούμε να κατασκευάσουμε για να ελέγξουμε τον PID ελεγκτή που σχεδιάσαμε, αντικαθιστούμε το μπλοκ του ελεγκτή που μέχρι τώρα αποτελούνταν από μία απλή συνάρτηση μεταφοράς με ένα νέο μπλοκ που αντιστοιχεί στο συγκεκριμέν ο ελεγκτή μας, όπως φαίνεται στο διπλανό σχήμα. cr 1.7 14
Εμείς καλούμαστε να ρυθμίσουμε και αυτήν τη φορά το μπλοκ αυτό στο μοντέλο του Simulink με τις κατάλληλες τιμές των παραμέτρων. Θέλει μια ιδιαίτερη προσοχή πώς εισάγουμε αυτές τις παραμέτρους. Συγκεκριμένα πρέπει να προσέξουμε τη μορφή που μας δηλώνει το Simulink (διπλανό σχήμα) ότι πρέπει να του δώσουμε τα δεδομένα. Ας ξεκινήσουμε με τη δήλωση του αναλογικού μέρους του ελεγκτή. Αυτό μπαίνει ως έχει με βάση τους υπολογισμούς μας στο πεδίο Proportional. Για το ολοκληρωτικό μέρος του ελεγκτή απαιτείται ένας υπολογισμός όπως φαίνεται στο διπλανό σχήμα, και εισαγωγή του δεδομένου στο πεδίο Integral. Τέλος, για το διαφορικό μέρος του ελεγκτή ο υπολογισμός φαίνεται στο παρακάτω σχήμα και εισάγουμε το δεδομένο στο πεδίο Derivative. Επομένως, μετά τον κατάλληλο σχεδιασμό του ελεγκτή και με τη βοήθεια του μοντέλου στο Simulink παίρνουμε την απόκριση του συστήματος σε βηματκή είσοδο όπως στο παρακάτω σχήμα. 15