Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διάγνωσης Βλάβης βασισμένης σε Μοντέλο. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Σχετικά έγγραφα
Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Εναλλακτικό Παράδειγμα Επιλογής Δώρου. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Στοιβάσματος Κιβωτίων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Προτεραιότητα Κανόνων και Στρατηγικές Επίλυσης Συγκρούσεων

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Πέτρα Ψαλίδι - Χαρτί. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διαχείρισης καταστάσεων ανάγκης σε συγκρότημα κτηρίων

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Κίνησης Robot. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Περιορισμοί στις Συνθήκες Κανόνων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Η Αντικειμενοστραφής Γλώσσα Προγραμματισμού COOL του CLIPS

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Το Σύστημα Κανόνων CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Εισαγωγή στους Υπολογιστές

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Εισαγωγή στο κέλυφος ανάπτυξης έµπειρων συστηµάτων του CLIPS

Θεωρία Πιθανοτήτων & Στατιστική

Μοντελοποίηση Λογικών Κυκλωμάτων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Λογιστικές Εφαρμογές Εργαστήριο

Ιστορία της μετάφρασης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Υδραυλικά & Πνευματικά ΣΑΕ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Εισαγωγή στους Υπολογιστές

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Αυτοματοποιημένη χαρτογραφία

Διδακτική της Περιβαλλοντικής Εκπαίδευσης

Πληροφορική ΙΙ Θεματική Ενότητα 5

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

Ευφυής Προγραμματισμός

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Δομές Δεδομένων Ενότητα 3

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Θεωρία Πιθανοτήτων & Στατιστική

Σχεδίαση Ψηφιακών Συστημάτων

Διαδικαστικός Προγραμματισμός

Εκκλησιαστικό Δίκαιο

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Ευφυής Προγραμματισμός

Συμπεριφορά Καταναλωτή

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στην πληροφορική

Δομές Δεδομένων. Ενότητα 1: Εισαγωγή-Υλοποίηση του ΑΤΔ Σύνολο με Πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Εκκλησιαστικό Δίκαιο

Αυτοματοποιημένη χαρτογραφία

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Βιομηχανικοί Ελεγκτές

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

{ int a = 5; { int b = 7; a = b + 3;

Μικροβιολογία & Υγιεινή Τροφίμων

Σχεδίαση με Ηλεκτρονικούς Υπόλογιστές

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Υπολογιστικά Συστήματα

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑΤΟΣ ΟΙΚΟΝΟΜΙΚΗ ΓΕΩΓΡΑΦΙΑ. Υπεύθυνη μαθήματος Αναστασία Στρατηγέα Αναπλ. Καθηγ. Ε.Μ.Π.

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Ειδικά Θέματα Προγραμματισμού

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Συστήματα Γνώσης. Θεωρητικό Kομμάτι Mαθήματος Ενότητα 9: Εξελιγμένες Συλλογιστικές - Συλλογιστική των Μοντέλων Ποιοτική Συλλογιστική

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Ψηφιακή Τεχνολογία σε Ακαδημαϊκό Περιβάλλον

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Συστήματα Αυτομάτου Ελέγχου 1 Ενότητα # 5: Χρήση μετασχηματισμού Laplace για επίλυση ηλεκτρικών κυκλωμάτων Μέθοδοι εντάσεων βρόχων και τάσεων κόμβων

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

ΑΓΓΛΙΚΑ Ι. Ενότητα 7α: Impact of the Internet on Economic Education. Ζωή Κανταρίδου Τμήμα Εφαρμοσμένης Πληροφορικής

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διδακτική Μεθοδολογία του μαθήματος της Ιστορίας στη δευτεροβάθμια εκπαίδευση (με εφαρμογές)

Οικονομετρία. Πολλαπλή Παλινδρόμηση. Στατιστικός έλεγχος γραμμικού συνδυασμού συντελεστών. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Διπλωματική Ιστορία Ενότητα 2η:

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μάρκετινγκ Αγροτικών Προϊόντων

Εισαγωγή στον Προγραμματισμό με C++

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Ιστορία της μετάφρασης

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διάγνωσης Βλάβης βασισμένης σε Μοντέλο Νίκος Βασιλειάδης, Αναπλ. Καθηγητής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πρόγραμμα Διάγνωσης Βλάβης βασισμένης σε Μοντέλο

Μοντέλο Μηχανής Εντολές Ε 1 Ε 2 Ε 3 Ε 4 Σ 11 Σ 12 Σ 13 Σ 14 Εξαρτήματα Σ 21 Σ 22 Σ 23 Μετρήσεις Μ 1 Μ 2 Μ 3 Μ 4 Μ 5 5

Περιγραφή Προβλήματος Κάποιοι αισθητήρες παρουσιάζουν ασυμφωνία με τις θεωρητικές τιμές που προβλέπονται από το μοντέλο. Στο συγκεκριμένο πρόγραμμα δε μας ενδιαφέρει πώς υπολογίζονται οι θεωρητικές τιμές ή πώς διαπιστώνεται η ασυμφωνία. Σκοπός είναι να εντοπιστεί το (ένα και μοναδικό) εξάρτημα που δυσλειτουργεί. Υπάρχει περίπτωση να δυσλειτουργεί και ένας ή περισσότεροι αισθητήρες 6

Εκτέλεση Προγράμματος CLIPS> (reset) CLIPS> (run) Which sensors show discrepancy? ([m1] [m2] [m3] [m4] [m5]) m3 m4 Component s23 malfunctions! CLIPS> (reset) CLIPS> (run) Which sensors show discrepancy? ([m1] [m2] [m3] [m4] [m5]) m4 m5 Sensor m4 malfunctions! Sensor m5 malfunctions! CLIPS> (reset) CLIPS> (run) Which sensors show discrepancy? ([m1] [m2] [m3] [m4] [m5]) m2 m3 Component s12 malfunctions! 7

Κλάση component (defclass component (is-a USER) (role abstract) (slot suspect (type SYMBOL) (allowed-symbols yes no) (default no)) ) 8

Κλάση internal-component & sensor (defclass sensor (is-a component) (role concrete) (pattern-match reactive)) (defclass internal-component (is-a component) (role concrete) (pattern-match reactive) (multislot connects_with (type INSTANCE-NAME))) 9

Αντικείμενα (definstances sensors-and-internal-components (m1 of sensor) (m2 of sensor) (m3 of sensor) (m4 of sensor) (m5 of sensor) (s14 of internal-component (connects_with [m5])) (s21 of internal-component (connects_with [m1] [m2])) (s22 of internal-component (connects_with [m2] [m3])) (s23 of internal-component (connects_with [m3] [m4])) (s11 of internal-component (connects_with [s21] [s22])) (s12 of internal-component (connects_with [s22])) (s13 of internal-component (connects_with [s23] [m5]))) 10

Αρχικός Κανόνας Εισαγωγής Δεδομένων (defrule initial-question?x <- (initial-fact) => (retract?x) (bind $?sensors (find-all-instances ((?s sensor)) TRUE)) (set-strategy mea) (printout t "Which sensors show discrepancy? " $?sensors " ") (bind $?answer (explode$ (readline))) (assert (discrepancy $?answer)) (assert (goal make-suspects)) ) 11

Κανόνας Αρχικής Ενοχοποίησης Αισθητήρων (defrule init-suspects (goal make-suspects) (discrepancy $??s $?) (object (is-a sensor) (name =(symbol-to-instance-name?s)) (suspect no)) => (modify-instance (symbol-to-instance-name?s) (suspect yes)) ) 12

Κανόνας Αρχικής Ενοχοποίησης Αισθητήρων - Εναλλακτικός τρόπος (defrule init-suspects (goal make-suspects) (discrepancy $??s $?) (object (is-a sensor) (name?s1 & :(eq?s1 (symbol-to-instance-name?s)) ) (suspect no)) => (modify-instance?s1 (suspect yes)) ) 13

Ενοχοποίηση Σ 11 Σ 12 Σ 13 Σ 14 Σ 21 Σ 22 Σ 23 Μ 1 Μ 2 Μ 3 Μ 4 Μ 5 14

Κανόνας Ενοχοποίησης Εσωτερικών Εξαρτημάτων 2 κανόνες (defrule propagate-suspect1 (goal make-suspects) (object (is-a sensor) (name?s) (suspect yes)) (object (is-a internal-component) (name?c) (connects_with $??s $?) (suspect no)) => (modify-instance?c (suspect yes))) 15

Κανόνας Ενοχοποίησης Εσωτερικών Εξαρτημάτων 2 κανόνες (defrule propagate-suspect2 (goal make-suspects) (object (is-a internal-component) (name?c1) (suspect yes)) (object (is-a internal-component) (name?c2) (connects_with $??c1 $?) (suspect no)) => (modify-instance?c2 (suspect yes))) 16

Κανόνας Ενοχοποίησης Εσωτερικών Εξαρτημάτων 1 κανόνας (defrule propagate-suspect (goal make-suspects) (object (is-a component) (name?c) (suspect yes)) (object (is-a internal-component) (name?c1) (connects_with $??c $?) (suspect no)) => (modify-instance?c1 (suspect yes)) ) 17

Κανόνας Αλλαγής Στόχου (defrule make-suspects-continue?x <- (goal make-suspects) => (retract?x) (assert (goal exonerate-components)) ) 18

Σύνδεση με Αθώα Εξαρτήματα Σ 11 Σ 12 Σ 13 Σ 14 Σ 21 Σ 22 Σ 23 Μ 1 Μ 2 Μ 3 Μ 4 Μ 5 19

Κανόνας Αθωοποίησης Εξαρτημάτων Λόγω Σύνδεσης με Αθώα Εξαρτήματα (defrule exonerate-components (goal exonerate-components) (object (is-a internal-component) (name?c1) (suspect yes) (connects_with $??c $?)) (object (is-a component) (name?c) (suspect no)) => (modify-instance?c1 (suspect no)) ) 20

Μη-Εξήγηση Ασυμφωνίας Απλή περίπτωση Σ 23 Σ 14 Μ 3 Μ 4 21

Κανόνας Αθωοποίησης Εξαρτημάτων Λόγω μη-εξήγησης Ασυμφωνίας (απλός) (defrule exonerate-components-special (goal exonerate-components) (object (is-a internal-component) (name?c) (suspect yes) (connects_with?s)) (object (is-a sensor) (name?s) (suspect yes)) (object (is-a sensor) (name ~?s) (suspect yes)) => (modify-instance?c (suspect no)) ) 22

Μη-Εξήγηση Ασυμφωνίας Γενική περίπτωση Σ 23 Σ 14 Μ 3 Μ 6 Μ 4 Μ 5 23

Κανόνας Αθωοποίησης Εξαρτημάτων Λόγω μη-εξήγησης Ασυμφωνίας (γενικός) (defrule exonerate-components-special (goal exonerate-components) (object (is-a internal-component) (name?c) (suspect yes) (connects_with $?s)) (test (all-inst-of-class sensor $?s)) (test (all-suspects $?s)) (object (is-a sensor) (name?s1&:(not (member$?s1 $?s))) (suspect yes)) => (modify-instance?c (suspect no))) 24

Συνάρτηση Ελέγχου Κλάσης (deffunction all-inst-of-class (?class $?inst) (while (> (length$ $?inst) 0) do (if (neq (class (nth$ 1 $?inst))?class) then return FALSE) (bind $?inst (rest$ $?inst)) ) (return TRUE) ) 25

Συνάρτηση Ελέγχου «Ενοχής» (deffunction all-suspects ($?inst) (while (> (length$ $?inst) 0) do (if (neq yes (send (nth$ 1 $?inst) getsuspect) ) then return FALSE) (bind $?inst (rest$ $?inst)) ) (return TRUE) ) 26

Κανόνας Αλλαγής Στόχου (defrule exonerate-componentscont )?x <- (goal exoneratecomponents) => (retract?x) (assert (goal announce-result)) 27

Αλυσίδα Ενόχων Εξαρτημάτων Σ 13 Σ 23 Μ 3 Μ 4 28

Πολλαπλοί Χαλασμένοι Αισθητήρες Σ 11 Σ 12 Σ 13 Σ 14 Σ 21 Σ 22 Σ 23 Μ 1 Μ 2 Μ 3 Μ 4 Μ 5 29

) Κανόνας Ανακοίνωσης Χαλασμένου (defrule announce-result (goal announce-result) (object (is-a component) (name?c) (suspect yes)) (not (object (is-a internalcomponent) Εξαρτήματος (name ~?c) (suspect yes) (connects_with $??c $?))) => (printout t (class?c) " " (instance-name-to-symbol?c) " malfunctions!" crlf) 30

Εκτέλεση Προγράμματος CLIPS> (reset) CLIPS> (run) Which sensors show discrepancy? ([m1] [m2] [m3] [m4] [m5]) m3 m4 internal-component s23 malfunctions! CLIPS> (reset) CLIPS> (run) Which sensors show discrepancy? ([m1] [m2] [m3] [m4] [m5]) m4 m5 sensor m4 malfunctions! sensor m5 malfunctions! CLIPS> (reset) CLIPS> (run) Which sensors show discrepancy? ([m1] [m2] [m3] [m4] [m5]) m2 m3 internal-component s12 malfunctions! 31

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Επέκταση Προγράμματος Διάγνωσης Βλάβης βασισμένης σε Μοντέλο Διαπίστωση αρχικής ασυμφωνίας αισθητήρων

Εισαγωγή Στο προηγούμενο πρόγραμμα θεωρήσαμε ότι η αρχική ασυμφωνία εισάγεται στο πρόγραμμα από τον χρήστη Στην πραγματικότητα, το στάδιο παρακολούθησης και εντοπισμού προβλημάτων μπορεί να αυτοματοποιηθεί Είσοδος είναι οι τιμές των αισθητήρων και των εντολών 33

Απλοποιημένο Μοντέλο Προς χάριν κατανόησης, το μοντέλο που χρησιμοποιείται στο συγκεκριμένο πρόγραμμα αποτελεί απλούστευση του προηγουμένου Όχι επέκτασή του Τα components έχουν μία είσοδο και μία έξοδο μόνο Η συνάρτηση εξόδου υψώνει την είσοδο στο τετράγωνο 34

Μοντέλο Εντολές Ε 1 Εξαρτήματα Output = Input 2 c 1 Μετρήσεις Μ 1 35

Κλάσεις (defclass component (is-a USER) (slot input (type NUMBER)) (slot output (type NUMBER)) (multislot connects_with (type INSTANCE-NAME) )) (defclass sensor (is-a component) (slot reading (type NUMBER))) (defclass reading (is-a USER) (multislot values)) 36

Στιγμιότυπα (definstances sensors (m1 of sensor)) (definstances internal-components (c1 of component (connects_with [m1]))) (definstances readings (r1 of reading (values [c1] 5 [m1] 0))) 37

Μέθοδοι (defmessage-handler component calculate-output primary (?inp) ) (*?inp?inp) 38

Αρχικοποίηση (defrule begin?x <- (initial-fact) => (retract?x) (set-strategy mea) (assert (goal bind-values)) ) 39

Πέρασμα μετρήσεων στο μοντέλο των εξαρτημάτων (defrule bind-values-to-components (goal bind-values) (object (is-a reading) (values $??c?cinp $?)) (object (is-a component) (name?c)) => (modify-instance?c (input?cinp))) (defrule bind-values-to-sensors (goal bind-values) (object (is-a reading) (values $??s?read $?)) (object (is-a sensor) (name?s)) => (modify-instance?s (reading?read))) 40

Κανόνας αλλαγής στόχου (defrule change-goal-to-calcoutput => )?x <- (goal bind-values) (retract?x) (assert (goal calc-output)) 41

Υπολογισμός «Κανονικών» Τιμών Λειτουργίας των εξαρτημάτων (defrule calc-outputs (goal calc-output) (object (is-a component) (name?c) (input?inp-val)) => (modify-instance?c (output (send?c calculate-output?inp-val)))) 42

Κανόνας αλλαγής στόχου (defrule change-goal-to-finddiscrepancy =>?x <- (goal calc-output) (retract?x) (assert (goal finddiscrepancy))) 43

(defrule find-discrepancies => Διαπίστωση (και ανακοίνωση) Ασυμφωνιών (goal find-discrepancy) (object (is-a component) (name?c) (output?out) (connects_with?s)) (object (is-a sensor) (name?s) (reading?sr&~?out)) (printout t "Sensor "?s " shows discrepancy: "?sr " instead of "?out "!" crlf) (assert (discrepancy?s))) 44

Εκτέλεση CLIPS> (reset) CLIPS> (run) Sensor [m1] shows discrepancy: 0 instead of 25! 45

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Τέλος Ενότητας Επεξεργασία: Εμμανουήλ Ρήγας Θεσσαλονίκη, 17/3/2014