ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ MATLAB / FUZZY LOGIC TOOLBOX Σε αυτό το εγχειρίδιο θα περιγράψουμε αναλυτικά τη χρήση του προγράμματος MATLAB στη λύση ασαφών συστημάτων (FIS: FUZZY INFERENCE SYSTEM ). Ο τρόπος εργασίας θα αναλυθεί μέσω απλών βημάτων σε ρυθμό αφήγησης και θα κλείσει με το κλασσικό παράδειγμα του ασαφούς προγραμματισμού της λειτουργίας κλιματιστικού μηχανήματος, ώστε να φανεί η χρησιμότητα αυτού του προγράμματος στα προβλήματα, που θέτει η καθημερινή πρακτική και η σύγχρονη τεχνολογία. Το πρόγραμμα FIS διαθέτει τα παρακάτω υποπρογράμματα : Α ) FIS Εditor B) Membership Function Editor Γ) Rule Editor Δ) Rule Viewer E) Surface Viewer που συνεργάζονται μεταξύ τους σύμφωνα με το διάγραμμα
Περιγραφή και χρήση του κάθε υποπρογράμματος Α ) FIS Εditor Το FIS Editor χειρίζεται την εισαγωγή των μεταβλητών εισόδου και εξόδου του προς επίλυση προβλήματος, διαδικασία που γίνεται με την εντολή
Edit Add Variable Input ή Output αντίστοιχα Το περιβάλλον του FIS φαίνεται στο αμέσως επόμενο σχήμα : Μετά την εισαγωγή κάθε μεταβλητής Στη δεξιά πλευρά του πίνακα, όπως φαίνεται στην παραπάνω εικόνα 1 Δηλώνουμε το Name (όνομα) της μεταβλητής εισόδου ή εξόδου στο αντίστοιχο τετραγωνίδιο Στην αριστερή πλευρά του πίνακα, όπως φαίνεται στην παραπάνω εικόνα 2 Ορίζουμε την Add method (μέθοδο σύζευξης), που εμφανίζεται με τις εξής δυνατές επιλογές
α ) min (ελάχιστο) ή β ) prod (γινόμενο) ή γ )custom (αν έχουμε κάποια επιλογή ορισμένη από εμάς) 3 Ορίζουμε την Or method (μέθοδο σύζευξης), που εμφανίζεται με τις εξής δυνατές επιλογές α ) max (μέγιστο) ή β ) probor (πιθανοκρατική σύζευξη) ή γ ) custom (αν έχουμε κάποια επιλογή ορισμένη από εμάς) 4 Ορίζουμε την Implication (συνεπαγωγή), που εμφανίζεται με τις εξής δυνατές επιλογές α ) max (μέγιστο) ή β ) prod (γινόμενο) ή γ ) custom (αν έχουμε κάποια επιλογή ορισμένη από εμάς) 5 Ορίζουμε την Aggregation (συνάθροιση), που εμφανίζεται με τις εξής δυνατές επιλογές α ) max (μέγιστο) ή β ) sum (άθροισμα) ή γ ) probor (πιθανοκρατική συνάθροιση) ή δ ) custom (αν έχουμε κάποια επιλογή ορισμένη από εμάς) και τέλος 6 Ορίζουμε την Defuzzification (άρση ασάφειας), που εμφανίζεται με τις εξής δυνατές επιλογές α ) centroid β ) bisector γ ) mom δ ) lom ε ) som στ ) custom Με την εντολή κατόπιν
Edit Membership function εισερχόμαστε στο υποπρόγραμμα του FIS Εditor το B) Membership Function Editor Το περιβάλλoν του Membership Function Editor παρέχει τις δυνατότητες, που απεικονίζονται παρακάτω:
Εδώ λοιπόν, αφού διευκρινίσουμε αν πρόκειται για μεταβλητές εισόδου ή εξόδου με την εντολή input output ή αντίστοιχα στο επάνω αριστερό μέρος της εικόνας, τότε Στην αριστερή πλευρά του πίνακα, όπως φαίνεται στην παραπάνω εικόνα 1 Ορίζουμε το Range (πεδίο ορισμού) για το σύνολο των αντιστοίχων μεταβλητών, που ονομάσαμε στον FIS Editor, υπό μορφή διαστήματος 2 Ορίζουμε το Display Range (πεδίο παρουσίασης) των ιδίων μεταβλητών. Είναι διάστημα, που έχει κοινή αρχή με το πεδίο ορισμού, που ορίσαμε παραπάνω και με ίσο ή μεγαλύτερο εύρος από αυτό ( παίζει ρόλο μόνο στην καλύτερη εμφάνιση της εικόνας) Θα πρέπει στην συνέχεια να ορίσουμε τις γλωσικές μεταβλητές, που διέπουν το πρόβλημα με διάφορες membership function (συναρτήσεις συμμετοχής) Μερικές από αυτές που διαθέτει το πρόγραμμα φαίνονται στο παρακάτω σχήμα. Κάθε συνάρτηση συμμετοχής ορίζεται από τον τύπο της, που είναι διαθέσιμος στην εντολή με το όνομα Type όπου εμφανίζονται οι επιλογές
trimf trapmf gbellmf gaussmf gauss2mf sigmf dsigmf psigmf pimf smf zmf και από τις τετμημένες χαρακτηριστικών της σημείων, που βρίσκονται στην επιλογή params Στη δεξιά πλευρά του πίνακα, όπως φαίνεται στην παραπάνω εικόνα. Τα διαστήματα, το είδος της μεταβλητής (εισόδου ή εξόδου), το όνομα της συνάρτησης συμμετοχής (στη θέση Name ), ο τύπος της, oi τετμημένες χαρακτηριστικών σημείων της και το σχήμα της φαίνεται στις παρακάτω εικόνες
Αφού γίνει και η επιλογή των membership fumctions (συναρτήσεων συμμετοχής) μεταβαίνουμε στην εντολή Edit Rules και εμφανίζεται τότε στην οθόνη το υποπρόγραμμα Γ ) Rule Editor Eίναι πρόγραμμα εισαγωγής ή διαγραφής (όταν αυτό είναι απαραίτητο) ασαφών κανόνων (fuzzy rules). Το περιβάλλον του Rule Editor (με μια μεταβλητή εισόδου και μια εξόδου) έχει ως εξής Τα παράθυρα στο κέντρο της εικόνας δηλώνουν α ) το πλήθος και την ονομασία των μεταβλητών εισόδου ( κάτω από την ένδειξη If και input1 is)
και εξόδου ( κάτω από την ένδειξη Then και output2 is). Αν οι μεταβλητές εισόδου ή εξόδου είναι περισσότερες, θα φαίνονται περισσότερα παράθυρα στις θέσεις αυτές να συνδέονται μεταξύ τους με το and ή το or (όπως εμείς τα ορίσαμε στο FIS Editor), που επιλέγουμε από το τετραγωνίδιο Connection κάτω και αριστερά στην εικόνα. β ) το πλήθος και την ονομασία των membership functions (συναρτήσεων συμμετοχής), όπως αυτές ορίστικαν στον Μembership Function Editor, της κάθε μεταβλητής. Η επιλογή none σημαίνει ουσιαστικά την μη επιλογή της μεταβλητής, όπου αυτή συνέβη. Η διαδικασία του ορισμού των ασαφών κανόνων Έστω ότι το υπό επίλυση σύστημα είναι εφοδιασμένο με Τρεις μεταβλητές εισόδου την Κ με συναρτήσεις συμμετοχής a, b, c την L με συναρτήσεις συμμετοχής d, e, f την M με συναρτήσεις συμμετοχής g, h, j και δύο μεταβλητές εξόδου την P με συναρτήσεις συμμετοχής ex1, ex2, ex3 την W με συναρτήσεις συμμετοχής mf1, mf2, mf3 και επιλέγουμε το and (σύζευξη) για τη σύνδεση τους, θεωρώντας ισοβαρείς τους κανόνες που θα θέσουμε ( αλλιώς τροποποιούμε την ένδειξη 1 στο λευκό τετραγωνίδιο με το όνομα Weight για κάθε κανόνα ).
Για την κατασκευή π.χ του κανόνα Εάν (If) Κ είναι b / (K is b) και (and) L είναι όχι e / (L is not e) και (and) Μ είναι g / (M is g) Tότε (Then) P είναι όχι ex3 / (P is not ex3) και (and) W είναι mf1 / (W is mf1) Επιλέγουμε από το παράθυρο K τη συνάρτηση συμμετοχής b, από το παράθυρο L τη συνάρτηση συμμετοχής e και την ένδειξη not στο λευκό τετραγωνίδιο κάτω από το παράθυρο L και από το παράθυρο M τη συνάρτηση συμμετοχής g. Ακολούθως επιλέγουμε από το παράθυρο P τη συνάρτηση συμμετοχής ex3 και την ένδειξη not κάτω από αυτό καθώς και από το παράθυρο W τη συνάρτηση συμμετοχής mf1. Για να προστεθεί ο κανόνας αυτός στο σύστημα επιλέγουμε την εντολή Add rule. Ας το δούμε, όμως καλύτερα σε μια εικόνα.
Στην εικόνα αυτή φαίνεται, πως έγινε η επιλογή του κανόνα 4 If K is not b and L is d and M is g Then P is ex1 Εάν K είναι όχι b και L είναι d και M είναι g Τότε P είναι ex1 ( Η μεταβλητή W δεν λαμβάνει μέρος στο συμπέρασμα γιατί η ένδειξη none την καθιστά μη επιλέξιμη ) Οι εντολές Delete rule και Change rule Χρησιμοποιούνται για να διαγράψουν έναν κανόνα ή να αλλάξουν έναν κανόνα αντίστοιχα
Δ) Rule Viewer και Ε) Surface Viewer Εισέρχεται κανείς επιλέγοντας την εντολή View Rules Surface ή που υπάρχει σ όλα τα παραπάνω, που εξετάσαμε μέχρι τώρα, αλλά καλύτερα είναι να τη χρησιμοποιούμε, μετά και τον ορισμό των κανόνων. Ο Rule Viewer δίνει εικόνες της μορφής στις οποίες μπορούμε να παρακολουθήσουμε τις μεταβολές των τιμών των μεταβλητών εξόδου του συστήματος (με το ποιο σκούρο χρώμα) καθώς μεταβάλλονται οι μεταβλητές εισόδου ( με το πιο ανοιχτό χρώμα ). Γίνεται
πάρα πολύ απλά, μετακινώντας τις αχνές κάθετες ευθείες, που φαίνονται να τέμνουν όλα τα τετραγωνίδια των μεταβλητών της εισόδου, με τη βοήθεια του κένσορα. Επάνω από κάθε στήλη φαίνονται και οι αντίστοιχες τιμές δίπλα στο όνομα της μεταβλητής και έτσι ανά πάσα στιγμή έχουμε μια εικόνα για τη συμπεριφορά του συστήματος. Ο Surface Viewer δίνει την ίδια εικόνα (της κατάστασης δηλαδή του συστήματος) σε τρισδιάστατη μορφή, με δυνατότητα περιστροφής της εικόνας.