Κέρδη:
- Δυνατότητα επεξήγησης και εφαρμογής των όρων P, I, D και των αποτελεσμάτων του ελεγκτή PID στο AI με το σωστό πλαίσιο
- Δυνατότητα εκτέλεσης Ziegler-Nichols και πειραματικών μεθόδων συντονισμού βήμα προς βήμα με τη βοήθεια του AI
- Δυνατότητα αναγνώρισης και εξάλειψης παγίδων PID, όπως ενσωματωμένη εκκαθάριση, παράγωγος θόρυβος σε συστάσεις AI
Διατήρηση της θερμοκρασίας ενός φούρνου σταθερή, ώθηση της ταχύτητας ενός κινητήρα σε μια επιθυμητή τιμή, εξισορρόπηση της γωνίας ενός drone. Στην καρδιά όλων αυτών βρίσκεται ένας αλγόριθμος ελέγχου. Το πιο συνηθισμένο από αυτά είναι ο ελεγκτής PID, ο οποίος είναι η ραχοκοκαλιά της βιομηχανίας. PID; Είναι απλό, στιβαρό και λειτουργεί σε ένα ευρύ φάσμα προβλημάτων. Αλλά "απλό" δεν σημαίνει "εύκολο συντονισμό": ένα εσφαλμένα ρυθμισμένο PID θα ταλαντωθεί, θα υπερβεί, θα καθίσει αργά ή θα γίνει εντελώς ασταθές. Η τεχνητή νοημοσύνη είναι ένας πολύτιμος βοηθός εδώ: εξηγεί όρους PID, καθοδηγεί μέσω μεθόδων συντονισμού, διαγιγνώσκει τυπικές παγίδες και γράφει τον κώδικα συντονισμού. Ωστόσο, η τελική προσαρμογή γίνεται εξετάζοντας τη φυσική συμπεριφορά του συστήματός σας και η απόφαση σταθερότητας ανήκει στον μηχανικό. Σε αυτήν την ενότητα καλύπτουμε τον τρόπο εγκατάστασης, συντονισμού και επαλήθευσης παγίδων PID με AI.
Τρεις Όροι PID
Το PID αποκρίνεται στο σήμα σφάλματος (e = στόχος - μετρημένο) με τρεις τρόπους:
όρος
Τι κοιτάζει;
Επίδραση
στα ακραία
P (αναλογικά)
τρέχον σφάλμα
γρήγορη απόκριση
Ταλάντωση, μόνιμο σφάλμα
I (αναπόσπαστο)
Συσσωρευμένο παρελθόν σφάλμα
Επαναφέρει το μόνιμο σφάλμα
υπέρβαση, περιέλιξη, ταλάντωση
D (παράγωγο)
Ποσοστό αλλαγής σφάλματος
Η απόσβεση μειώνει την υπέρβαση
Ενισχύστε τον θόρυβο
Προφορική περίληψη: Ο Π απαντά στις ερωτήσεις «πόσο μακριά είμαι τώρα», εγώ «πόσο καιρό λείπω», Δ «πόσο γρήγορα πλησιάζω». Ένα καλό χειριστήριο ισορροπεί και τα τρία.
κλάση PID: def __init__(self, Kp, Ki, Kd, output_min=-100, output_max=100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd self.out_min, self.out_max = output_min, output_max self.integral.0v = 0v. υπολογισμός (self, target, μετρημένο, dt): σφάλμα = στόχος - μετρημένο # P p = self.Kp * error # I -- self.integral with windup προστασία += error * dt i = self.Ki * self.integral # D -- παράγωγος θόρυβος ευαίσθητος d = self.Kd * (σφάλμα - self.previous_error. #previous_error = p. Κορεσμός της εξόδου και περιορισμός εκκαθάρισης εάν έξοδος > self.output_max: output = self.out_max self.integral -= error * dt # anti-windup: undo the integral elif output < self.output_min: output = self.output_min self.integral -= error * dt επιστροφή εξόδου
Αυτός ο κώδικας δεν είναι ένα "PID προπόνησης", αλλά ένας σκελετός κοντά στη λογική παραγωγής: περιλαμβάνει κορεσμό εξόδου και anti-windup. Πολλά απλά PID που δίνονται από το AI παρακάμπτουν αυτές τις δύο προστασίες. Χωρίς αυτά, όταν ο ενεργοποιητής φτάσει στο όριο του, το ολοκλήρωμα θα διογκωθεί και το σύστημα θα υπερβεί απροσδόκητα.
Συμβουλή: Όταν ζητάτε από την τεχνητή νοημοσύνη για το PID, πείτε "προσθέστε κορεσμό εξόδου και αντιανεμικό, εφαρμόστε παράγωγο στη μέτρηση σε όρο παραγώγου". Αυτές οι τρεις προσθήκες μετατρέπουν το PID του σχολικού βιβλίου στο πεδίο PID.
Ενσωματωμένος θόρυβος και παράγωγος θόρυβος
Δύο κλασικές παγίδες είναι οι πιο κοινές αιτίες αποτυχίας PID:
Ολοκληρωμένη περιέλιξη: Όταν ο ενεργοποιητής κορεσθεί (π.χ. ο κινητήρας είναι ήδη σε πλήρη ισχύ), το σφάλμα παραμένει και ο ακέραιος όρος συνεχίζει να αυξάνεται. Αυτό το φουσκωμένο ολοκλήρωμα οδηγεί σε μεγάλη υπέρβαση όταν το σύστημα φτάσει στο στόχο. Λύση: διακοπή ή επαναφορά του ολοκληρώματος όταν η έξοδος είναι κορεσμένη (anti-windup, που φαίνεται στον παραπάνω κώδικα).
Παράγωγος θόρυβος: Ο όρος D παίρνει την παράγωγο του σφάλματος. Το παράγωγο μιας θορυβώδους μέτρησης είναι πολύ πιο θορυβώδες και θα δονήσει τον ενεργοποιητή. Λύσεις: λήψη της παραγώγου από τη μέτρηση (παράγωγο της μέτρησης αντί του σφάλματος), προσθήκη ενός χαμηλοπερατού φίλτρου στον παράγωγο όρο.
# Μείωση του θορύβου παραγώγου: παράγωγο μέτρησης + filterd_raw = -(measured - self.previous_measured) / dt αντί για σφάλμα
Η τεχνητή νοημοσύνη είναι καλή στον εντοπισμό αυτών των παγίδων. Αν πείτε "Το PID μου ξεπερνά σε μεγάλο βαθμό όταν φτάσει στον στόχο", προτείνει την εκκαθάριση. Αλλά επαληθεύετε μετρώντας εάν η επιδιόρθωση λειτουργεί στο σύστημά σας.
Σκηνικό με τον Ziegler-Nichols
Μια κλασική μέθοδος εύρεσης κερδών (Kp, Ki, Kd) από την αρχή είναι η Ziegler-Nichols. Η ουσία του: ξεκινώντας μόνο με το P και αυξάνοντας το Kp έως ότου το σύστημα περάσει σε συνεχή ταλάντωση. Υπολογίστε τα Kp, Ki, Kd από τον πίνακα με το κρίσιμο κέρδος Ku και την περίοδο ταλάντωσης Tu σε αυτό το σημείο.
ελεγκτής
kp
Ti
Td
Π.
0,5· Ku
–
–
P.I.
0,45·Ku
Tu/1.2
–
PID
0,6· Ku
Tu/2
Tu/8
Βήματα Ziegler-Nichols (το σχέδιο θα γίνει από την AI):1. Πάρτε Ki=0, Kd=0. Απλώς εκτελέστε το P.2. Αυξήστε ΑΡΓΑ το Kp μέχρι να αρχίσει σταθερή, παρατεταμένη ταλάντωση.3. Αυτό το Kp = Ku (κρίσιμο κέρδος), περίοδος ταλάντωσης = Tu.4. Υπολογίστε Kp, Ti, Td από τον πίνακα. Ki = Kp/Ti, Kd = Kp*Td.5. Ξεκινήστε με αυτές τις τιμές και, στη συνέχεια, κάντε πειραματικές τροποποιήσεις.
Προσοχή: Ο Ziegler-Nichols φέρνει σκόπιμα το σύστημα στο όριο σταθερότητάς του (παρατεταμένη ταλάντωση). Υπάρχει κίνδυνος μηχανικής καταπόνησης, υπερέντασης και κινδύνου όταν το κάνετε αυτό σε πραγματικό υλικό. Εάν είναι δυνατόν, κάντε το πρώτα σε προσομοίωση και μετά εργαστείτε με όριο χαμηλής ισχύος και E-stop στο υλικό. Το Ku που προτείνεται από το AI είναι ένα σημείο εκκίνησης, μετριέται και επαληθεύεται στο σύστημά σας.
Διαγνωστικά με τη βοήθεια AI
Μπορείτε να διαγνώσετε τη συμπεριφορά PID περιγράφοντάς την στο AI. Σύμπτωμα → χαρτογράφηση πιθανής αιτίας:
σύμπτωμα
πιθανή αιτία
Η κατεύθυνση που θα προτείνει η AI
αργό κάθισμα
Kp/Ki χαμηλά
αύξηση kp
Μόνιμο σφάλμα
Είμαι απών ή πολύ χαμηλά
Προσθήκη/αύξηση Ki
Υπέρβαση + ταλάντωση
Kp/Ki υψηλό, όχι D
Προσθήκη Kd, Μείωση Ki
Ο ενεργοποιητής τρέμει
παράγωγος θόρυβος
Φιλτράρισμα/μείωση D
Όταν φτάσεις στη μεγάλη υπέρβαση
αναπόσπαστο κλείσιμο
Προσθέστε anti-windup
Αδύναμη προτροπή / Ισχυρή προτροπή
ΑΔΥΝΑΤΟ:"Δώστε κέρδη στο PID."(Ποιο σύστημα; Πώς είναι η συμπεριφορά; Υπάρχουν μετρήσεις; Έρχονται τυχαίοι αριθμοί.) ΔΥΝΑΤΟ:"Ρυθμίζω το PID για έναν έλεγχο ταχύτητας κινητήρα συνεχούς ρεύματος. Επί του παρόντος, Kp=2, Ki=0,5, Kd=0. Υπερβαίνει κατά 35% στην είσοδο βήματος. είναι 100 Hz Αναφέρετε τους πιθανούς λόγους από αυτά τα συμπτώματα, τα οποία αποκτούν "Προτείνετε ποια κατεύθυνση πρέπει να το αλλάξω και πείτε μου πώς να ελέγξω αν η υπέρβαση είναι αναπόσπαστο".
Μίνι θήκη
Ο μηχανικός ελέγχου Kerem προσαρμόζει τον έλεγχο θερμοκρασίας ενός εξωθητήρα. Με τα κέρδη που προτείνει η τεχνητή νοημοσύνη, το σύστημα φτάνει στον στόχο γρήγορα, αλλά σε κάθε αλλαγή σετ κάνει μια μεγάλη υπέρβαση και σιγά-σιγά κατακάθεται. Ο Kerem εξηγεί το σύμπτωμα στην τεχνητή νοημοσύνη. Η τεχνητή νοημοσύνη υποπτεύεται ενσωματωμένη εκκαθάριση επειδή ο θερμαντήρας παραμένει σε πλήρη ισχύ (κορεσμένος) για λίγο. Το Kerem προσθέτει anti-windup στον κωδικό PID και η υπέρβαση μειώνεται σημαντικά. Αλλά τώρα υπάρχει ένα ελαφρύ τρεμόπαιγμα στην έξοδο του θερμαντήρα. Αυτό το αποδίδει στον όρο D που ενισχύει τον θόρυβο του αισθητήρα θερμοκρασίας και προσθέτει ένα χαμηλοπερατό φίλτρο στην παράγωγο. Τέλος, επικυρώνει χονδρικά τα κέρδη με το Ziegler-Nichols και εκτελεί πειραματική λεπτομέρεια. Η τεχνητή νοημοσύνη έχει γρήγορη διάγνωση. Αλλά ο Kerem επιβεβαίωσε κάθε διόρθωση μετρώντας την πραγματική απόκριση του βήματος - είτε το κλείσιμο διορθώθηκε είτε το τρεμόπαιγμα είχε φύγει, μπορούσε να φανεί μόνο γραφικά.
Κοινά λάθη
- Αποτυχία προσθήκης κορεσμού εξόδου και αντιπεριέλιξης στο PID και εμφάνιση μεγάλης υπέρβασης στο όριο του ενεργοποιητή.
- Λήψη της παραγώγου από την παράγωγο της μέτρησης θορύβου και δόνηση του ενεργοποιητή.
- Υποθέτοντας ότι η dt είναι σταθερή, ενώ η περίοδος δειγματοληψίας ποικίλλει.
- Εκτέλεση της δοκιμής ταλάντωσης Ziegler-Nichols σε υλικό χωρίς προφυλάξεις ασφαλείας.
- Αποδοχή των κερδών που δημιουργούνται από την τεχνητή νοημοσύνη ως «τελικά» χωρίς επαλήθευση συγκεκριμένου συστήματος.
- Αλλαγή ενός μόνο κέρδους με πολύ μεγάλα βήματα και ώθηση του συστήματος σε αστάθεια.
Συνοπτικά
- PID; Αντιδρά με P (τρέχον σφάλμα), I (συσσωρευμένο σφάλμα), D (ρυθμός αλλαγής σφάλματος).
- Το PID πεδίου θα πρέπει να περιλαμβάνει κορεσμό εξόδου, φίλτρο προστασίας από το τύλιγμα και παράγωγο.
- Ολοκληρωμένο τύλιγμα μεγάλη υπέρβαση, ο παράγωγος θόρυβος προκαλεί δόνηση του ενεργοποιητή.
- Ο Ziegler-Nichols αρχίζει να κερδίζει. Υλοποιείται με μέτρα ασφαλείας στο hardware.
- Η τεχνητή νοημοσύνη είναι γρήγορη στη διάγνωση από σύμπτωμα σε αιτία. Η διόρθωση επαληθεύεται με μέτρηση.
- dt πραγματική μέτρηση? Οι αλλαγές στα κέρδη γίνονται με μικρά βήματα και παρατήρηση.
Εργασία εφαρμογής
Επιλέξτε ένα σύστημα (πραγματικό μοτέρ/θερμαντήρα ή ένα απλό μοντέλο πρώτης/δεύτερης τάξης στην Python) και βάλτε το AI να δημιουργήσει μια κλάση PID με κορεσμό + anti-windup. Στη συνέχεια: (1) παρατηρήστε τη συμπεριφορά ταλάντωσης ξεκινώντας μόνο με P και αυξάνοντας το Kp, (2) προσθέστε Ki για να εξαλείψετε το μόνιμο σφάλμα και δείτε πώς αυξάνεται η υπέρβαση, (3) συγκρίνετε την επίδραση στη μεγάλη υπέρβαση ενεργοποιώντας και απενεργοποιώντας το anti-windup. Σχεδιάστε την απόκριση βήματος σε κάθε βήμα και σημειώστε ποιο κέρδος αλλάζει ποια συμπεριφορά. Συγκρίνετε τα κέρδη από τον Ziegler-Nichols με τα κέρδη που βρήκατε μόνοι σας.