ΑΛΓΟΡΙΘΜΟΙ ΕΛΕΓΧΟΥ PID

Σχετικά έγγραφα
ΕΛΕΓΚΤΕΣ PID. Ελεγκτής τριών όρων Η συνάρτηση μεταφοράς του PID ελεγκτή είναι η ακόλουθη:

5o Εργαστήριο Σ.Α.Ε Ενότητα : Ελεγκτές PID

Έλεγχος (PID-Control)

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου

Έλεγχος Κίνησης

Controllers - Eλεγκτές

Ο ελεγκτής PID χοντρικά...

Είδη Διορθωτών: Υπάρχουν πολλών ειδών διορθωτές. Μία βασική ταξινόμησή τους είναι οι «Ειδικοί Διορθωτές» και οι «Κλασσικοί Διορθωτές».

Άσκηση 3. Ποιοτική Μελέτη των νόμων ελέγχου δύο και τριών όρων (συσκευή: Προσομοιωτής ελέγχου PCS327: Σχ.1) Απαραίτητες γνώσεις

NETCOM S.A. ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΠΑΛΜΟΜΕΤΑΤΡΟΠΕΩΝ DIGITAL CONTROL OF SWITCHING POWER CONVERTERS

Η Βασική Δομή Συστημάτων Ελέγχου Κίνησης

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

ΣΥΣΤΗΜΑΤΩΝ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ

Συστήματα Αυτομάτου Ελέγχου-Εργαστήριο

Ρυθµιστές PID. Βρόχος Ανατροφοδότησης Αναλογικός Ρυθµιστής (Ρ) Ολοκληρωτικός Ρυθµιστής (Ι) ιαφορικός Ρυθµιστής (D) Ρύθµιση PID

M m l B r mglsin mlcos x ml 2 1) Να εισαχθεί το µοντέλο στο simulink ορίζοντας από πριν στο MATLAB τις µεταβλητές Μ,m,br

Έλεγχος στροφών κινητήρα DC με ελεγκτή PI, και αντιστάθμιση διαταραχής.

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

ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΔΙΕΥΘΥΝΤΗΣ ΚΑΘΗΓΗΤΗΣ Γ.Π. ΠΑΠΑΒΑΣΙΛΟΠΟΥΛΟΣ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΑΣΚΗΣΗ 2

Άσκηση 4. Υλοποίηση ON/OFF και PID Ελεγκτών

ΤΕΙ ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ & ΘΡΑΚΗΣ

1) Τι είναι ένα Σύστημα Αυτομάτου Ελέγχου 2) Παραδείγματα εφαρμογών Συστημάτων Ελέγχου 3) Τι είναι ανατροφοδότηση (Feedback) και ποιες είναι οι

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου

ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΦΟΡΩΝ

Σχολή Ηλεκτρολόγων Μηχ/κών και Μηχ/κών Υπολογιστών, Ε.Μ.Π., Ακαδημαϊκό Έτος , 8ο Εξάμηνο. Ρομποτική II. Ευφυή και Επιδέξια Ρομποτικά Συστήματα

Μάθημα: Ρομποτικός Έλεγχος

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

Έλεγχος Κίνησης

Έλεγχος Κίνησης

Συστήματα Αυτομάτου Ελέγχου ΙΙ

Θεωρείστε το σύστηµα του ανεστραµµένου εκκρεµούς-οχήµατος του Σχ. 1 το οποίο περιγράφεται από το δυναµικό µοντέλο

ΑΚΑΔΗΜΙΑ ΕΜΠΟΡΙΚΟΥ ΝΑΥΤΙΚΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΤΙΤΛΟ ΑΝΑΛΟΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ

Συστήματα Αυτόματου Ελέγχου

Τμήμα Ηλεκτρονικής. Θεωρία Ευφυών Συστημάτων Ελέγχου. Περίγραμμα μαθήματος

Ολοκληρωτικός ελεγκτής (Ι) Οελεγκτής Ι αθροίζει το σφάλµα e σε συνάρτηση µε το χρόνο. Ένα θεωρήσουµε ένα σταθερό σφάλµα e τότε το σήµα εξόδου U R του

Σύστημα και Μαθηματικά μοντέλα συστημάτων

Ο Βρόχος Ρύθµισης µε Ανατροφοδότηση

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου Ενότητα 1 η : Εισαγωγή

ΔΥΝΑΜΙΚΗ & ΕΛΕΓΧΟΣ - ΕΡΓΑΣΤΗΡΙΟ

Συστήματα Αυτομάτου Ελέγχου 2

Πανεπιστήμιο Πατρών Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών. Διάλεξη 13

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

2014 Παρίσης Κ., Καθηγητής

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

Συστήματα Αυτομάτου Ελέγχου με Ανάδραση - Σερβομηχανισμοί

ΕΛΕΓΧΟΣ ΒΙΟΜΗΧΑΝΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ ΚΕΦΑΛΑΙΟ 4 ΚΕΦΑΛΑΙΟ 4 ΠΡΟΣΑΡΜΟΣΤΙΚΟΣ ΚΑΙ ΣΥΜΠΕΡΑΣΜΑΤΙΚΟΣ ΕΛΕΓΧΟΣ

Ολοκληρωτικός ελεγκτής (Ι) Ελεγκτής Ισυνδεσµολογίας

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Άσκηση: Έλεγχος Φορείου Γραμμής Μεταφοράς

Ψηφιακός Έλεγχος. 12 η διάλεξη Ψηφιακός έλεγχος τεχνητού χεριού. Ψηφιακός Έλεγχος 1

Συλλογή μεταφορά και έλεγχος Δεδομένων. 1.4 Απλά και σύνθετα συστήματα αυτοματισμού.

ΕΛΕΓΧΟΣ ΒΙΟΜΗΧΑΝΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ

Ψηφιακός Έλεγχος. 10 η διάλεξη Ασκήσεις. Ψηφιακός Έλεγχος 1

Συστήματα Αυτομάτου Ελέγχου-Εργαστήριο

Εργαστήριο Συστημάτων Αυτομάτου Ελέγχου Άσκηση 1 Το Σερβοσύστημα MS150 1

Μέρος 3. Εισαγωγή στη Λήψη Δεδομένων (DAQ)

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

Συστήματα Αυτομάτου Ελέγχου ΙΙ Ασκήσεις Πράξης

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

Για τη μοντελοποίηση των ταλαντωτών μπορεί να χρησιμοποιηθεί το παρακάτω δομικό διάγραμμα:

Συστήματα Αυτομάτου Ελέγχου

Μαθηματικά. Ενότητα 3: Ολοκληρωτικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Άσκηση 2: Τελεστικός Ενισχυτής. Αντικείμενο. Απαιτούμενες Θεωρητικές Γνώσεις. 2.1 Συγκριτές

3η Α Σ Κ Η Σ Η ΕΛΕΓΧΟΣ ΤΑΧΥΤΗΤΑΣ D.C. ΚΙΝΗΤΗΡΑ ΚΛΕΙΣΤΟ ΣΥΣΤΗΜΑ Α. ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ ΩΣ ΣΤΟΙΧΕΙΟ ΣΥΓΚΡΙΣΗΣ

Συστήματα Αυτόματου Ελέγχου

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

Ψηφιακός Έλεγχος. 6 η διάλεξη Σχεδίαση στο χώρο κατάστασης. Ψηφιακός Έλεγχος 1

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

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

ΗΛΕΚΤΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Α. ΑΣΚΗΣΕΙΣ ΕΛΕΓΧΟΥ ΤΑΧΥΤΗΤΑΣ D.C. ΚΙΝΗΤΗΡΑ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 7 Ακούγοντας Πρώτη Ματιά στην Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Ψευδοκώδικας. November 7, 2011

ΑΣΚΗΣΗ Για τα µαθήµατα: Εισαγωγή στον Αυτόµατο Έλεγχο (5 ο Εξάµηνο ΣΗΜΜΥ) Σχεδίαση Συστηµάτων Αυτοµάτου Ελέγχου (6 ο Εξάµηνο ΣΗΜΜΥ)

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

Σχεδίαση Σ.Α.Ε: Σχεδίαση µε το Γεωµετρικό Τόπο Ριζών

FSK Διαμόρφωση και FSK Αποδιαμόρφωση (FSK Modulation-FSK Demodulation)

ΔΥΝΑΜΙΚΗ & ΕΛΕΓΧΟΣ - ΕΡΓΑΣΤΗΡΙΟ

Σχεδίαση και Προσομοίωση PID Ελεγκτή Design and Simulation of PID Controller

Εξαρτημένες Πηγές και Τελεστικός Ενισχυτής

ΔΠΜΣ «ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ» «ΕΡΓΑΣΤΗΡΙΟ ΡΟΜΠΟΤΙΚΗΣ» Άσκηση 2. Έλεγχος Pendubot

ΚΥΡΙΑ ΣΤΟΙΧΕΙΑ ΜΑΘΗΜΑΤΟΣ

Συστήματα Αυτομάτου Ελέγχου ΙΙ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Εργαστήριο Βιομηχανικής Πληροφορικής Τμήμα Πληροφορικής και Επικοινωνιών, ΤΕΙ Σερρών

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΚΕΦΑΛΑΙΟ 3 ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΛΕΓΧΟΥ. (α) Ο Διαδοχικός Έλεγχος (β) Ο Προσωτροφοδοτικός έλεγχος (γ) Τα Πολυμεταβλητά Συστήματα

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ΜΕΣΩ ΤΟΥ ΙΑ ΙΚΤΥΟΥ

Συστήματα Αυτομάτου Ελέγχου-Εργαστήριο

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

Συστήματα Αυτομάτου Ελέγχου

Σύστημα. Θόρυβος. Σχήμα 1.1 Παράσταση ενός ανοιχτού συστήματος

Συστήματα Αυτομάτου Ελέγχου ΙΙ Ασκήσεις Πράξης

Instruction Execution Times

Αυτόματη στάθμευση. Το πρόβλημα:

Εισαγωγή στον Αυτόματο Έλεγχο

Transcript:

ΑΛΓΟΡΙΘΜΟΙ ΕΛΕΓΧΟΥ PID PID CONTROL ALGORITHMS ΜΕΪΝΣΑΝΗ ΙΩΑΝΝΗ 10/26/2008 ΣΕΙ ΠΕΙΡΑΙΑ ΣΜΗΜΑ ΑΤΣΟΜΑΣΙΜΟΤ

Εισαγωγή: Αυτό το βοήθημα παρουσιάζει τα χαρακτηριστικά καθενός από τους τρεις όρους ενός PID ελεγκτή: Σου αναλογικού P Proportional Σου ολοκληρωτικού Ι Integral Σου διαφορικού D Derivative Καθώς και τον τρόπο με τον οποίο θα πρέπει να τους χρησιμοποιήσουμε για να πετύχουμε την επιθυμητή απόκριση στο σύστημα μας. την συνέχεια θα δούμε πως μπορούμε να κάνουμε τους υπολογισμούς του PID με την PBASIC και να τους μετατρέψουμε σε αλγόριθμους που εξομοιώνουν την λειτουργιά των ελεγκτών τριών όρων P-I-D. Λίγα θεωρητικά: Η συνάρτηση μεταφοράς ενός PID ελεγκτή είναι: Y( s) R( s) K p K s i K d s K d s 2 K s p s K i όπου K p = Αναλογικό κέρδος K i = Ολοκληρωτικό κέρδος K d = Διαφορικό κέρδος Κατ αρχήν ας ρίξουμε μια ματιά στον τρόπο που συμπεριφέρεται ενας PID Controller, ο οποίος λειτουργεί σε σύστημα κλειστού βρόγχου Η μεταβλητή Error αντιπροσωπεύει το σφάλμα παρακολούθησης, δηλαδή την διαφορά ανάμεσα στην επιθυμητή τιμή της επιθυμητής εισόδου Set Point και σε 2

εκείνης της πραγματικής εξόδου Sensor Measurement που μετρήθηκε από το αισθητήριο. Η τιμή του σφάλματος Error θα σταλεί στον PID Controller, ο οποίος θα υπολογίσει τόσο την παράγωγο όσο και το ολοκλήρωμα αυτού του σήματος. Σο σήμα u,που δίνει ο έλεγκτης σαν είσοδο στο σύστημα, θα είναι ίσο με το αναλογικό κέρδος K p επι την τιμή του σφάλματος, συν το ολοκληρωτικό κέρδος K i επι το ολοκλήρωμα του σφάλματος, συν το διαφορικό κέρδος K d επι την παράγωγο του σφάλματος. U K p e K i edt K d de dt Σο σήμα αυτό θα είναι η είσοδος του συστήματος που θέλουμε να ελέγξουμε, το οποίο θα ανταποκριθεί ανάλογα και θα λάβουμε μια νέα έξοδο Y, η οπόια με τη σειρά της θα σταλεί ξανά πίσω στο αισθητήριο για να ανιχνεύσει το νέο σήμα σφάλματος Error. Ο ελεγκτής θα πάρει αυτό το νέο σήμα και θα υπολογίσει ξανά την παράγωγο και το ολόκλήρωμα και η ίδια διαδικασία θα επαναλαμβάνεται συνέχεια. Φαρακτηριστικά των ελεγκτών P-I-D: Η χρησιμοποίηση ενός αναλογικού ελεγκτή (P) έχει ως αποτέλεσμα την ελάτωση του χρόνου ανύψωσης (κάνει το σύστημα πιο γρήγορο) αλλά δεν μπορεί ποτέ να εξαλέιψει το μόνιμο σφάλμα. Ο ολοκληρωτικός όρος (I) θα εξαλείψει το μόνιμο σφάλμα αλλά θα χειροτερέψει την μεταβάτικη απόκριση (ο αριθμός των ταλαντώσεων μέχρι την τελική ισορροπία του συστήματος) Ο διαφορικός έλεγχος (D) θα έχει ως αποτέλεσμα την αύξηση της σταθερότητας του συστήματος, μειώνοντας την υπερυψωση και βελτιώνοντας την μεταβατική απόκριση. Σα αποτελέσματα της επίδρασης καθενός από τους τρείς όρους σ ένα σύστημα κλειστού βρόχου συνοψίζονται παρακάτω: Φρόνος Ανύψωσης Τπερύψωση Φρόνος Μόνιμο σφάλμα αποκατάστασης Kp - + Μικρή αλλαγή - Ki - + + 0 Kd Μικρή αλλαγή - - Μικρή αλλαγή 3

Ας σημειωθεί ότι αυτοί οι συσχετισμοί μπορεί να μην είναι πολύ ακριβείς επειδή στην πραγματικότητα τα K p, K i, K d αλληλοεξαρτώνται.η αλλαγή μιας απο αυτές τις μεταβλητές αλλάζει την επίδραση και των άλλων δύο μεταβλητών. Για τον λόγο αυτό ο παραπάνω πινακας πρέπει να χρησιμοποιείται μόνο ως σημείο αναφοράς όταν προσδιορίζουμε τις τιμές των K p, K i, K d. #1. ΑΝΑΛΟΓΙΚΟ ΕΛΕΓΦΟ (P) Ο Αναλογικός έλεγχος είναι πολύ διαδεδομένος τόσο στην βιομηχανία όσο και στην ρομποτική. Σο μπλοκ διάγραμμα του αναλογικού ελέγχου φαίνεται στο παραπάνω σχήμα. Σο κυκλάκι στην αρχή ονομάζεται συγκριτής και συγκρίνει την επιθυμητη τιμή με την πραγματική τιμή (αυτή που μετρήθηκε από το αισθητήριο), το αποτέλεσμα που παράγει ονομάζεται σφάλμα και έιναι αυτό που πρέπει να διορθώσει ο ελεγκτής. Ο Αναλογικός ελεγκτής P προσπαθεί να εξαλείψει το σφάλμα πολλαπλασιάζοντας το με κάποια σταθερά (K p). Ας υποθέσουμε ότι έχουμε ένα ρομπότ που διατηρεί συγκεκριμένη απόσταση από ένα αντικέιμενο,αλλά το αντικείμενο αλλάζει θέση συνεχώς. Ο ελεγκτής P θα εντοπίσει το σφάλμα και θα δώσει ώθηση στους κινητήρες ανάλογη του σφάλματος. το παρακάτω σχήμα φαίνεται καθαρά ότι η έξοδος του ελεγκτή είναι πάντα ανάλογη του σφάλματος 4

Για Time=2 : Error=3 Output=10*3=30 Για Time=7 : Error=-2 Output=10*(-2)=-20 Με το παρακάτω πρόγραμμα μπορούμε να τεστάρουμε τον αναλογικό αλγόριθμο ελέγχου και να δούμε τη συμπεριφορά του και την επιροή του στο προς έλεγχο σύστημα μας κάθε φορά. Δέχεται από εμάς μέσω του debug terminal μια τιμή και την καταχωρεί σαν την μετρούμενη τιμή που θα παίρναμε από το αισθητήριο μας (sensor input). Εκτελεί τους υπολογισμούς του αναλογκού ελεγκτή και μας δείχνει πάλι την έξοδο (drive) στο debug terminal. Η έξοδος drive είναι η είσοδος του συστήματος μας, π.χ. οι παλμόι των σέρβο. 5

PROPORTIONAL CONTROL ALGORITHM (P) Ε PBASIC ' ProportionalAlgorithm.bs2 ' Demonstrates how proportional control influences error correction ' in a feedback loop. ' {$STAMP BS2} ' {$PBASIC 2.5} SetPoint CON 0 ' Set point Kp CON 10 ' Proportionality constant Current CON 0 ' Current error sensorinput VAR Word ' Input error VAR Word(1) ' One element error array p VAR Word ' Proportional term drive VAR Word ' Output DO DEBUG "Enter sensor input value: " DEBUGIN SDEC sensorinput ' Calculate error. error(current) = SetPoint - sensorinput ' Calculate proportional term. p = Kp * error(current) ' Calculate output. drive = p ' Display values. DEBUG CR, CR, "ERROR", CR, SDEC? SetPoint, SDEC? sensorinput, SDEC? error(current), CR, "PROPORTIONAL", CR, SDEC? Kp, SDEC? error(current), SDEC? p, CR, "OUTPUT", CR, SDEC? drive, CR, CR LOOP 6

Πως λειτουργεί το πρόγραμμα: Σο παρακάτω σχήμα μας δείχνει πως κάθε στοιχείο του μπλοκ διαγράμματος μεταφράζεται σε εντολή της PBASIC. Σο πρόγραμμα δέχεται την μεταβλητή sensorinput από εμάς με την εντολή: DEBUGIN SDEC sensorinput. την συνέχεια υπολογίζει το τρέχον σφάλμα: error(current) = SetPoint - sensorinput. Ο υπολογισμός της εξόδου του ελεγκτή εκτελέιτε με την εντολή: p = Kp * error(current). Που είναι επίσης και ή είσοδος για το σύστημα μας: drive = p Tip: Adding Offset to the Actuator Output Αν υποθέσουμε ότι έχουμε ένα εύρος μετρούμενων τιμών +10-10 από το επιθυμητό δηλ. η έξοδος p είναι: K p *(set point -10 )< p=drive < K p *(set point+10) και θέλουμε με αυτήν να οδηγήσουμε ένα σέρβο που δέχεται ενά ευρος παλμών 1.3ms 1.7ms δηλ. 650-850 στην PBASIC είναι απαραίτητο να δημιουργήσουμε ένα offset, που στην περίπτωση μας είναι το σημείο ηρεμίας των σέρβο (750). 7

Οπότε στο αρχικό πρόγραμμμα συμπληρώνουμε: Offset CON 750 Και αλλάζουμε τον υπολογισμό της εξόδου σε: drive = p + Offset 8

#2. ΟΛΟΚΛΗΡΩΣΙΚΟ ΕΛΕΓΦΟ (Ι) Ο ολοκληρωτικός έλεγχος έχει το προσόν ότι μπρεί να εξαλείψει το σφάλμα, κάτι που δεν μπορεί να κάνει ο ελεγκτής P. Με την προσθήκη του ολοκληρωτικού όρου έχουμε τη δυνατότητα κατά κάποιο τρόπο να παρακολουθήσουμε την πορεία του σφάλματος σε σχέση με το χρόνο και να το μηδενίσουμε. Αυτό επιτυγχάνεται με την αριθμητική ολοκλήρωση. Είναι λογικό ότι από τη στιγμή που μπαίνει και ο χρόνος στο παιχνίδι οι μαθηματικές πράξεις και οι υπολογισμοί δυσκολεύουν λίγο το παρακάτω γράφημα βλέπουμε πως μπορούμε να προσομοιάσουμε την πράξη της ολοκλήρωσης, υπολογίζοντας τα εμβαδά των ορθογωνίων και προσθέτοντας τα. Αν τα δείγματα είναι κάθε 1 μονάδα χρόνου αυτό κάνει τους υπολογισμούς ευκολότερους, αφου πολλαπλασιάζουμε κάθε τιμή σφάλματος επι 1 και μετα τις προσθέτουμε. το παρακάτω σχήμα φαίνεται το μπλοκ διάγραμμα του Ολοκληρωτικού ελέγχου. Ο όρος K i edt σημαίνει ότι το κέρδος σταθερά K i πολλαπλασιάζεται με το ολοκλήρωμα του σφάλματος e ως προς τον χρόνο. 9

INTEGRAL CONTROL ALGORITHM (I) Ε PBASIC ' IntegralAlgorithm.bs2 ' Demonstrates how integral control influences error correction ' in a feedback loop. ' {$STAMP BS2} ' {$PBASIC 2.5} SetPoint CON 0 ' Set point Ki CON 10 ' Integral constant Current CON 0 ' Array index for current error Accumulator CON 1 ' Array index for accumulated error sensorinput VAR Word ' Input error VAR Word(2) ' Two element error array i VAR Word ' Integral term drive VAR Word ' Output DO DEBUG "Enter sensor input value: " DEBUGIN SDEC sensorinput ' Calculate error. error(current) = SetPoint - sensorinput ' Calculate integral term. error(accumulator) = error(accumulator) + error(current) i = Ki * error(accumulator) ' Calculate output. drive = i ' Display values. DEBUG CR, CR, "ERROR", CR, SDEC? SetPoint, SDEC? sensorinput, SDEC? error(current), CR, "INTEGRAL", CR, SDEC? Ki, SDEC? error(accumulator), SDEC? i, CR, "OUTPUT", CR, SDEC? i, SDEC? drive, CR, CR LOOP 10

Πως λειτουργεί το πρόγραμμα: Εδώ έχουμε δύο Error που πρέπει να κρατήσουμε κάθε φορά για να κάνουμε τον υπολογισμό της ολοκλήρωσης, έτσι η μεταβλητή τύπου πίνακα error array τώρα αποτελείται από δύο στοιχεία: Element 0 = current error Element 1 = accumulator όπου με τις σταθερές Current CON 0 και Accumulator CON 1 έχουμε: ' Calculate integral term. error(accumulator) = error(accumulator) + error(current) i = Ki * error(accumulator) Tip: MIN MAX operators Επίσης μπορούμε να χρησιμοποιήσουμε τους τελεστές ελέγξουμε το εύρος των τιμών της εξόδου (650-850) MIN και MAX για να Αλλάξτε το: drive = i σε: drive = i + Offset MIN 650 MAX 850 11

#3. ΔΙΑΥΟΡΙΚΟ ΕΛΕΓΦΟ (D) Σο κύριο χαρακτηριστικό του διαφορικού ελέγχου είναι ότι μπορεί να αντιληφθεί τις απότομες αλλαγές του σφάλματος, οι οποίες συνήθως προέρχονται από εξωτερικές πηγές (διαταραχές,θόρυβος κλπ) και προκαλούν αστάθεια στο σύστημα μας. Η πράξη που κρύβεται πίσω από την λειτουργία του είναι η πράξη της παραγώγισης. Η παράγωγος ή ο ρυθμος μεταβολής μας δείχνει τον ρυθμό δηλ. το πόσο γρήγορα μεταβάλλεται ένα σήμα σε σχέση με το χρόνο. Έτσι λοιπόν, κύριος σκοπός του είναι να παρακολουθεί τον ρυθμό μεταβολής του σφάλματος και να υπολογίζει την έξοδο του με βάση αυτήν την τιμή, με αποτέλεσμα την αύξηση της σταθερότητας του συστήματος. Για να πετύχουμε τα παραπάνω με τον Basic Stamp δεν έχουμε παρα να πάρουμε τη διαφορά δύο τιμών και να την διαιρέσουμε με τον χρόνο (όπως και με την ολοκλήρωση προηγουμένως, αν τα δείγματα είναι κάθε 1 μον. χρόνου η πράξη είναι: Error( Current) Error(Pr evious) ) 1 12

Όπου στην PBASIC γραφεται: ' Calculate derivative term. error(delta) = error(current) - error(previous) d = Kd * error(delta) Όπως ειπαμε η δουλειά του Διαφορικού ελεγκτή είναι να αντιδρά στις απότομες αλλαγές του συστήματος.για παράδειγμα αν έχουμε ένα σταθερό σφάλμα -3 θα αντιμετωπισθεί από τους P και I ελεγκτές χωρίς να εμπλακεί ο όρος D. Γιατι; Γιατί αντιδρά μόνο στις άλλαγες. Μία σειρά σφαλμάτων στην ίδια τιμή δεν παρουσιάζει καμιά αλλαγή. Αν όμως έχουμε μεταβολή στο σφάλμα απο -3 σε +4 τότε θα έχουμε και την αντίδραση του ελεγκτή. την παραπάνω εικόνα φαίνεται το μπλοκ διάγραμμα που θα εξομοιώσουμε στο πρόγραμμα που ακολουθεί Σο K d =10 για ευκολία δικια μας (όπως και προηγουμένως στα K p, K i) Σο πρόγραμμα μετράει το ρυθμό μεταβολής του σφάλματος (de/dt) και το πολλαπλασιάζει με το K d. Σο αποτέλεσμα-έξοδο την βλέπουμε στο debug terminal (είσοδος του συστήματος μας. Π.χ. οι παλμοί των σέρβο) 13

DERIVATIVE CONTROL ALGORITHM (D) Ε PBASIC ' DerivativeAlgorightm.bs2 ' Demonstrates how derivative influences error correction ' in a feedback loop. ' {$STAMP BS2} ' {$PBASIC 2.5} SetPoint CON 0 ' Set point Kd CON 10 ' Derivative constant Current CON 0 ' Current error Previous CON 2 ' Previous error Delta CON 3 ' Accumulated error sensorinput VAR Word ' Input error VAR Word(4) ' Different types of errors d VAR Word ' Derivative term drive VAR Word ' Output DO DEBUG "Enter sensor input value: " DEBUGIN SDEC sensorinput ' Calculate error. error(current) = SetPoint - sensorinput ' Calculate derivative term. error(delta) = error(current) - error(previous) d = Kd * error(delta) ' Calculate output. drive = d ' Display values. DEBUG CR, CR, "ERROR", CR, SDEC? SetPoint, SDEC? sensorinput, SDEC? error(current), CR, "DERIVATIVE", CR, SDEC? Kd, SDEC? error(delta), SDEC? d, CR, "OUTPUT", CR, SDEC? d, SDEC? drive, CR, CR ' Save current error to previous error before next iteration. error(previous) = error(current) LOOP 14

Πως λειτουργεί το πρόγραμμα: Η μεταβλητή τύπου πίνακας error array τώρα έχει 4 στοιχεία. Element 0 = current error Element 1 = accumulator ( which is unused at present since there are not integral calculations in this program) Element 2 = Previous - used to store the previous error measurement Element 3 = Delta - used to store the difference between the previous and current measurements ' Calculate derivative term. error(delta) = error(current) - error(previous) d = Kd * error(delta) το τέλος του κάθε loop πρέπει να σώνουμε την τρέχον μέτρηση του σφάλματος σαν προηγούμενη. ' Save current error to previous error before next iteration. error(previous) = error(current) τη συνέχεια θα υπάρχει ένα νέο τρέχον σφάλμα και μια νέα διαφορά που θα υπολογιστεί από την νέες τιμές. Tip: Αλλάξτε το κέρδος K d =10 σε 20. Θα πρέπει να αντιδρά πιο δυνατα στις απότομες μεταβολές του σφάλματος. 15

#4. PID ΕΛΕΓΦΟ Ας εξετάσουμε τώρα την συμπεριφορά ενός PID ελεγκτή ο οποίος περιέχει και τους τρεις όρους P-I-D. Ρυθμίζοντας το κέρδος του κάθε όρου Kp, Ki, και Kd και παίζοντας με τις αναλογίες μπορούμε και αλλάζουμε τη συμπεριφορά του ελεγκτή. Οι βέλτιστες τιμές που θα μας δώσουν την καλύτερη απόκριση έρχονται μετά από πολλές δοκιμές και εξαρτώνται από το σύστημα που θέλουμε να ελέγξουμε κάθε φορά. Π.χ. ένα σύστημα μπορεί να θέλει πολύ λιγο I, λίγο P και δυνατότερο D, ενώ άλλο σύστημα να ανταποκρίνεται καλύτερα σε P-I έλεγχο και καθόλου D, και άλλο να θέλει και τους τρείς όρους P-I-D. το σχήμα βλέπουμε το μπλοκ διάγραμμα του συστήματος που θα εξομοιώσουμε στο παρακάτω πρόγραμμα. Και εδώ Kp=Ki=Kd=10. 16

PID CONTROL ALGORITHM Ε PBASIC ' PidMathExample.bs2 ' Demonstrates how a combination of proportional, integral, and ' derivative control influence error correction in a feedback loop. ' {$STAMP BS2} ' {$PBASIC 2.5} SetPoint CON 0 ' Set point Kp CON 10 ' Proportionality constant Ki CON 10 ' Integral constant Kd CON 10 ' Derivative constant Current CON 0 ' Array index - current error Accumulator CON 1 ' Array index - accumulated error Previous CON 2 ' Array index - previous error Delta CON 3 ' Array index - change in error sensorinput VAR Word ' Sensor input variable error VAR Word(4) ' Four different types of errors p VAR Word ' Proportional term i VAR Word ' Integral term d VAR Word ' Derivative term drive VAR Word ' Output DO DEBUG "Enter sensor input value: " DEBUGIN SDEC sensorinput ' Calculate error. error(current) = SetPoint - sensorinput ' Calculate proportional term. p = Kp * error(current) ' Calculate integral term. error(accumulator) = error(accumulator) + error(current) i = Ki * error(accumulator) ' Calculate derivative term. error(delta) = error(current) - error(previous) d = Kd * error(delta) ' Calculate output. drive = p + i + d ' Display values. DEBUG CR, CR, "ERROR", CR, SDEC? SetPoint, SDEC? sensorinput, SDEC? error(current), CR, "PROPORTIONAL", CR, SDEC? Kp, SDEC? error(current), SDEC? p, CR, 17

"INTEGRAL", CR, SDEC? Ki, SDEC? error(accumulator), SDEC? i, CR, "DERIVATIVE", CR, SDEC? Kd, SDEC? error(delta), SDEC? d, CR, "OUTPUT", CR, SDEC? p, SDEC? i, SDEC? d, SDEC? drive, CR, CR ' Save current error to previous error before next iteration. error(previous) = error(current) LOOP Tip: Δώστε αυτήν την ακολουθία τιμών: 1 2 3 4 5 5 5 5 5 5 5 5 5 ο ολοκληρωτικός όρος (I) θα πρέπει να αντιδράσει περισσότερο από τους P,D Ενώ με αυτές τις τιμές: 3-3 4-4 5-5 6-6 5-5 4-4 δείτε πως ο όρος D θα δουλέψει πιο πολύ για να το διορθώσει απ ότι οι P, I. ημείωση: το συγκέκριμένο βοήθημα προσπάθώ να παρουσιάσω όσο πιο απλά και κατανοητά μπορώ τα χαρακτηριστικά και την λειτουργία των PID ελεγκτών χωρίς να αναλύσω τόσο τα θεωρητικά ζητήματα που προκύπτουν(άλλωστε δεν έιναι και ο στόχος του) Έτσι λοιπόν, για παραπάνω πληροφορίες σχετικά με την θεωρία των PID ελεγκτών και γενικά την θεωρία του Αυτομάτου Ελέγχου προτείνω να κοιτάξετε τα παρακάτω συγγράματα: Βιβλιογραφία - Πηγές: Καλλιγερόπουλος Δ..Βασιλειάδου υστήματα Αυτομάτου Ελέγχου Ι, ύγχρονη εκδοτική, Αθήνα 2005 Καλλιγερόπουλος Δ..Βασιλειάδου υστήματα Αυτομάτου Ελέγχου ΙΙ, ύγχρονη εκδοτική, Αθήνα 2005 Eamon Neary - Mixed-Signal Control Circuits Use Microcontroller for Flexibility in Implementing PID Algorithms Σο άρθρο του Andy Lindsay από το forums.parallax.com από όπου δανείστηκα τα σχέδια και τους κώδικες. 18