Η αρχή λειτουργίας του ρυθμιστή PID. Θερμικός ελεγκτής με ρύθμιση PID για ειρηνικούς οικονομικούς σκοπούς. Τι είναι ένας ελεγκτής PID

PID (από το αγγλικό P-proportional, I-integral, D-παράγωγο) - ένας ρυθμιστής είναι μια συσκευή που χρησιμοποιείται σε βρόχους ελέγχου εξοπλισμένο με σύνδεσμο ανάδρασης. Αυτοί οι ρυθμιστές χρησιμοποιούνται για τη δημιουργία σήματος ελέγχου σε αυτόματα συστήματα όπου είναι απαραίτητο να επιτευχθούν υψηλές απαιτήσεις για την ποιότητα και την ακρίβεια των μεταβατικών διεργασιών.

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

Το πρώτο συστατικό είναι αναλογικό

Το σήμα εξόδου δίνεται από μια αναλογική συνιστώσα. Αυτό το σήμα οδηγεί στην εξουδετέρωση της τρέχουσας απόκλισης της τιμής εισόδου που πρέπει να ρυθμιστεί από την καθορισμένη τιμή. Όσο μεγαλύτερη είναι η απόκλιση, τόσο μεγαλύτερο είναι το σήμα. Όταν η τιμή εισόδου της ελεγχόμενης μεταβλητής είναι ίση με την καθορισμένη τιμή, το σήμα εξόδου γίνεται μηδέν.

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

Για παράδειγμα, ένας θερμοστάτης ελέγχει την ισχύ μιας συσκευής θέρμανσης. Το σήμα εξόδου μειώνεται καθώς πλησιάζει η επιθυμητή θερμοκρασία του αντικειμένου και το σήμα ελέγχου σταθεροποιεί την ισχύ στο επίπεδο απώλειας θερμότητας. Ως αποτέλεσμα, η θερμοκρασία δεν θα φτάσει ποτέ την καθορισμένη τιμή, επειδή η συσκευή θέρμανσης θα πρέπει απλώς να απενεργοποιηθεί και να αρχίσει να κρυώνει (η ισχύς είναι μηδέν).

Ένα μεγαλύτερο κέρδος μεταξύ της εισόδου και της εξόδου σημαίνει μικρότερο στατικό σφάλμα, αλλά εάν το κέρδος (ουσιαστικά ένας συντελεστής αναλογικότητας) είναι πολύ μεγάλο, τότε εάν υπάρχουν καθυστερήσεις στο σύστημα (και συχνά είναι αναπόφευκτες), θα αρχίσουν σύντομα οι αυτοταλαντώσεις σε αυτό, και αν αυξήσετε ο συντελεστής είναι ακόμη μεγαλύτερος - το σύστημα απλά θα χάσει τη σταθερότητα.

Ή ένα παράδειγμα τοποθέτησης κινητήρα με κιβώτιο ταχυτήτων. Εάν ο συντελεστής είναι μικρός, η επιθυμητή θέση του στοιχείου εργασίας επιτυγχάνεται πολύ αργά. Αυξήστε τον συντελεστή - η αντίδραση θα είναι ταχύτερη. Αλλά αν αυξήσετε περαιτέρω τον συντελεστή, ο κινητήρας θα «υπερβεί» τη σωστή θέση και το σύστημα δεν θα μετακινηθεί γρήγορα στην απαιτούμενη θέση, όπως θα περίμενε κανείς. Αν τώρα αυξήσουμε περαιτέρω τον συντελεστή αναλογικότητας, θα αρχίσουν οι ταλαντώσεις γύρω από το επιθυμητό σημείο - το αποτέλεσμα δεν θα επιτευχθεί ξανά...

Το δεύτερο στοιχείο είναι η ενοποίηση

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

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

Το τρίτο συστατικό είναι διαφοροποιητικό

Ο ρυθμός μεταβολής της απόκλισης της προς ρύθμιση τιμής είναι ανάλογος με την τρίτη συνιστώσα - τη διαφοροποιητική συνιστώσα. Είναι απαραίτητο να εξουδετερωθούν οι αποκλίσεις (που προκαλούνται από εξωτερικές επιρροές ή καθυστερήσεις) από τη σωστή θέση που προβλέπεται στο μέλλον.

Όπως ήδη καταλάβατε, οι ελεγκτές PID χρησιμοποιούνται για να διατηρήσουν μια δεδομένη τιμή x0 κάποιας τιμής αλλάζοντας την τιμή u μιας άλλης τιμής. Υπάρχει ένα σημείο ρύθμισης ή μια δεδομένη τιμή x0 και υπάρχει μια διαφορά ή απόκλιση (αναντιστοιχία) e = x0-x. Εάν το σύστημα είναι γραμμικό και ακίνητο (στην πράξη αυτό είναι πολύ δύσκολο), τότε ισχύουν οι ακόλουθοι τύποι για τον καθορισμό του u:

Σε αυτόν τον τύπο βλέπετε τους συντελεστές αναλογικότητας για καθέναν από τους τρεις όρους.

Στην πράξη, οι ελεγκτές PID χρησιμοποιούν έναν διαφορετικό τύπο για συντονισμό, όπου το κέρδος εφαρμόζεται σε όλα τα στοιχεία ταυτόχρονα:

Η πρακτική πλευρά του ελέγχου PID

Στην πράξη, η θεωρητική ανάλυση συστημάτων ελεγχόμενων με PID χρησιμοποιείται σπάνια. Η δυσκολία είναι ότι τα χαρακτηριστικά του αντικειμένου ελέγχου είναι άγνωστα και το σύστημα είναι σχεδόν πάντα μη στάσιμο και μη γραμμικό.

Οι πραγματικά λειτουργικοί ελεγκτές PID έχουν πάντα έναν περιορισμό του εύρους λειτουργίας από κάτω και πάνω, αυτό εξηγεί βασικά τη μη γραμμικότητά τους. Επομένως, η ρύθμιση γίνεται σχεδόν πάντα και παντού πειραματικά, όταν το αντικείμενο ελέγχου είναι συνδεδεμένο στο σύστημα ελέγχου.

Η χρήση μιας τιμής που δημιουργείται από έναν αλγόριθμο ελέγχου λογισμικού έχει μια σειρά από συγκεκριμένες αποχρώσεις. Εάν μιλάμε, για παράδειγμα, για έλεγχο θερμοκρασίας, τότε συχνά δεν απαιτούνται μία, αλλά δύο συσκευές: η πρώτη ελέγχει τη θέρμανση, η δεύτερη ελέγχει την ψύξη. Το πρώτο παρέχει θερμαινόμενο ψυκτικό, το δεύτερο - ψυκτικό. Τρεις πρακτικές λύσεις μπορούν να εξεταστούν.

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

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

Αντρέι Πόβνι

). Τώρα, όπως υποσχεθήκαμε, θα εξετάσουμε τις βασικές μεθόδους για τον συντονισμό και την επιλογή των συντελεστών του) Γενικά, σε γενικές γραμμές, όταν χρησιμοποιείτε έναν ελεγκτή PID, είναι απαραίτητο να δημιουργήσετε ένα μοντέλο ολόκληρου του συστήματος και να υπολογίσετε μαθηματικά τα απαραίτητα τιμές των συντελεστών. Αυτό είναι το σωστό. Αλλά, φυσικά, κανείς δεν το κάνει αυτό 😉 Στην πραγματικότητα, ο μαθηματικός υπολογισμός των συντελεστών απέχει πολύ από ένα ασήμαντο έργο, απαιτεί βαθιά γνώση της θεωρίας του αυτόματου ελέγχου, γι' αυτό και χρησιμοποιούνται άλλες, απλοποιημένες μέθοδοι προσαρμογής.

Η πιο συχνά χρησιμοποιούμενη μέθοδος προσαρμογής συντελεστών είναι η μέθοδος Ziegler-Nichols. Αποτελείται από τα εξής...

Μέθοδος Ziegler-Nichols.

Στην πραγματικότητα, εδώ τελειώνει το πρακτικό μέρος της μεθόδου) Από τον λαμβανόμενο συντελεστή υπολογίζουμε τον αναλογικό συντελεστή του ελεγκτή PID:

Και από αυτό παίρνουμε τα υπόλοιπα:

Η μέθοδος είναι αρκετά απλή, αλλά δεν είναι πάντα δυνατή η εφαρμογή της. Για να είμαι ειλικρινής, δεν χρειάστηκε ποτέ να διαμορφώσω τον ρυθμιστή με αυτόν τον τρόπο 😉 Ωστόσο, αυτή η μέθοδος είναι η κύρια και, σε γενικές γραμμές, η μόνη ευρέως γνωστή. Απλώς δεν ταιριάζει σε όλους και όχι πάντα.

Τι να κάνετε εάν η μέθοδος Ziegler-Nichols δεν λειτούργησε; Εδώ έρχεται να σώσει η «αναλυτική» μέθοδος συντονισμού =)

Και πάλι, επαναφέρουμε όλους τους συντελεστές και αρχίζουμε να αυξάνουμε τον αναλογικό. Αλλά τώρα δεν περιμένουμε να εμφανιστούν ταλαντώσεις, αλλά απλώς καταγράφουμε τη συμπεριφορά του συστήματος για κάθε τιμή του συντελεστή (μια εξαιρετική επιλογή θα ήταν να δημιουργήσουμε ένα γράφημα της τιμής που πρέπει να σταθεροποιηθεί για κάθε τιμή του συντελεστή ). Αν δούμε ότι, για παράδειγμα, το σύστημα φτάνει πολύ αργά στην επιθυμητή τιμή, αυξάνουμε τον αναλογικό συντελεστή. Αρχίζει το σύστημα να παρουσιάζει μεγάλες διακυμάνσεις σε σχέση με την επιθυμητή τιμή; Αυτό σημαίνει ότι ο συντελεστής είναι πολύ υψηλός, τον μειώνουμε και προχωράμε στη ρύθμιση άλλων εξαρτημάτων.

Κατανοώντας πώς λειτουργεί ο ελεγκτής PID στο σύνολό του και φανταζόμενοι πώς θα πρέπει να λειτουργεί το σύστημα που συντονίζεται, μπορείτε να προσαρμόσετε γρήγορα και με ακρίβεια τους συντελεστές του ελεγκτή. Ειδικά εάν είναι δυνατή η δημιουργία γραφικών εξαρτήσεων και η οπτική παρακολούθηση της συμπεριφοράς του συστήματος.

Ακολουθούν ορισμένοι κανόνες που μπορούν να βοηθήσουν στη ρύθμιση:

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

Παρεμπιπτόντως, αξίζει να προσθέσετε ότι δεν είναι πάντα απαραίτητο να χρησιμοποιείτε και τα τρία στοιχεία του ελεγκτή PID μερικές φορές αρκούν, για παράδειγμα, αναλογικά και διαφορικά (ελεγκτής PD). Αυτό που καταλήγει είναι ότι κάθε σύστημα απαιτεί τη δική του προσέγγιση κατά τη διαμόρφωση και τη χρήση ενός ελεγκτή PID.

Αυτά είναι όλα για σήμερα, ίσως κάποια μέρα θα δούμε την πρακτική εφαρμογή ενός ελεγκτή PID 😉

Πρέπει να διατηρήσετε τη θερμοκρασία σε ένα συγκεκριμένο επίπεδο και να αλλάξετε την εργασία. Υπάρχει ένας μικροελεγκτής στον οποίο είναι συνδεδεμένος ένας μετρητής θερμοκρασίας και ένα triac για έλεγχο ισχύος. Ας μην ανησυχούμε για το TAU ή οτιδήποτε άλλο, ας το πάρουμε και ας φτιάξουμε έναν ελεγκτή PID "κατά μέτωπο".

II. Θεωρητική εισαγωγή

Πώς κατασκευάζεται ένας ελεγκτής PID; Παίρνουμε τη διαφορά μεταξύ της τρέχουσας θερμοκρασίας και της επιθυμητής, την πολλαπλασιάζουμε με έναν ρυθμιζόμενο συντελεστή και παίρνουμε την ισχύ που πρέπει να παραχθεί αυτή τη στιγμή. Αυτό είναι ένα αναλογικό στοιχείο, λειτουργεί τη στιγμή που εμφανίζεται μια αναντιστοιχία - δηλαδή, ανταποκρίνεται αμέσως τόσο σε μια αλλαγή στο σημείο ρύθμισης όσο και στη συμπεριφορά του αντικειμένου. Αρχίζετε να ζεσταίνετε; Η δύναμη αρχίζει να υποχωρεί. Υπερθέρμανση; Έσβησε, ή ακόμα και έδωσε ένα σήμα ψύξης. Όλα είναι καλά, μόνο στην πραγματική ζωή η επίδραση της επιρροής εμφανίζεται με καθυστέρηση και το αντικείμενο επηρεάζεται όχι μόνο από εμάς, αλλά και από το περιβάλλον: ο θερμαινόμενος αντιδραστήρας δεν είναι μόνο ζεστός μέσα, αλλά και ψύχεται, εκπέμποντας θερμαίνεται στο δωμάτιο και επομένως μόλις το απενεργοποιήσουμε, αρχίζει αμέσως να κρυώνει. Επομένως, ένας καθαρός αναλογικός ελεγκτής ταλαντώνεται γύρω από το σημείο συντήρησης και ταλαντώνεται πιο έντονα όσο υψηλότερη είναι η έκθεση στο περιβάλλον/το περιεχόμενο του αντιδραστήρα.

Για να αντισταθμιστούν οι «εξωτερικές» επιδράσεις στον αντιδραστήρα, προστίθεται ένα αναπόσπαστο στοιχείο στο κύκλωμα. Όλη η ασυμφωνία που υπήρχε στο σύστημα πηγαίνει στον ολοκληρωτή (ανάλογα, μόλις υπερθερμαίνουμε, η ποσότητα μειώνεται, ενώ υποθερμαίνεται, η ποσότητα αυξάνεται). Και το συσσωρευμένο ολοκλήρωμα, με τον συντελεστή του, δίνει τη δική του αύξηση ή μείωση της ισχύος. Ως αποτέλεσμα αυτής της προσέγγισης, με μια στατική διαδικασία, μετά από κάποιο χρονικό διάστημα το ολοκλήρωμα επιλέγει μια τέτοια συνεισφορά στο άθροισμα με ισχύ που αντισταθμίζει την απώλεια του περιβάλλοντος και οι ταλαντώσεις εξαφανίζονται - το ολοκλήρωμα γίνεται σταθερό, οπότε η ποσότητα της εξόδου η ισχύς γίνεται σταθερή. Επιπλέον, εφόσον διατηρείται η απαιτούμενη θερμοκρασία, δεν υπάρχει αναντιστοιχία, το αναλογικό εξάρτημα δεν λειτουργεί καθόλου.

Για να αντισταθμιστεί η επίδραση των καθυστερήσεων μεταξύ της πρόσκρουσης και της απόκρισης του συστήματος, προστίθεται ένα διαφορικό στοιχείο στο σύστημα. Απλώς ένας αναλογικός ρυθμιστής παρέχει ισχύ όλη την ώρα έως ότου η θερμοκρασία φτάσει στο επιθυμητό σημείο, ένας αναλογικός-διαφορικός ρυθμιστής αρχίζει να μειώνει την παρεχόμενη ισχύ πριν φτάσει στο επιθυμητό σημείο - αφού η αναντιστοιχία μειώνεται, υπάρχει μια αρνητική παράγωγος που μειώνει την αποτέλεσμα. Αυτό ελαχιστοποιεί την υπερθέρμανση κατά τη διάρκεια μεγάλων μεταβάσεων.

Λοιπόν, διευθετήσαμε το φυσικό νόημα, ας προχωρήσουμε στα βασικά θέματα εφαρμογής.

III. Ποιος πρέπει να χρησιμοποιήσει τον ρυθμιστή;

- Τεχνικοί.

Τι προκύπτει από αυτό; Από αυτό προκύπτει ότι οι τεχνικοί κατανοούν το φυσικό στοιχείο και έχουν εμπειρία στη ρύθμιση ρυθμιστών PID υλικού. Αυτό σημαίνει ότι η υλοποίηση λογισμικού θα πρέπει να βασίζεται στην ευκολία εγκατάστασης από τους τεχνικούς - επαναλαμβάνοντας το φυσικό μοντέλο. Και αυτό είναι εξαιρετικά σημαντικό! Πολύ συχνά, για να απλοποιηθεί ο κώδικας, οι συντελεστές αλλάζουν, για παράδειγμα, στα αντίστροφά τους - για να απαλλαγούμε από τη διαίρεση. Ως αποτέλεσμα, ο συντονισμός γίνεται κόλαση και εφιάλτης, απαιτώντας εμπειρία στον συντονισμό του συγκεκριμένου ρυθμιστή παρά στην κατανόηση της διαδικασίας. Από εδώ παίρνουμε ότι οι συντελεστές μας - η σταθερά ολοκλήρωσης και η σταθερά διαφοροποίησης - πρέπει να έχουν τη διάσταση του χρόνου, δηλαδή να καθορίζονται σε δευτερόλεπτα, και όχι σε "1/s", όπως θέλουν να κάνουν.

IV. Λειτουργικός χώρος.

Προσπαθούμε να φτιάξουμε έναν καθολικό ρυθμιστή, που σημαίνει ότι θα πρέπει να λειτουργεί τόσο σε μικρά, γρήγορα αντικείμενα όσο και σε ισχυρούς, τεράστιους φούρνους. Αυτό σημαίνει ότι θα πρέπει να υποθέσουμε ότι η ρυθμιζόμενη θερμοκρασία περιορίζεται γενικά από το μετρητή. Τα πιο συχνά χρησιμοποιούμενα είναι τα XA(K) και XK(L). Το εύρος εφαρμογής τους είναι κάπου μέχρι 1200°C. Η ψύξη απαιτεί πιο πολύπλοκο εξοπλισμό (κρυοστάτες), ο έλεγχος της πρόσθετης ψύξης (ανεμιστήρες και ανοιγόμενες πόρτες ντουλαπιών θέρμανσης) απαιτείται επίσης σπάνια - πράγμα που σημαίνει ότι το αποκλείουμε από το ενδεχόμενο προς το παρόν. Καταλαβαίνουμε ότι η ελεγχόμενη θερμοκρασία είναι από ~15°C έως ~1200°C, μόνο η παροχή ρεύματος ελέγχεται.

Η ακρίβεια του ελέγχου καθορίζεται, πρώτον, από την ακρίβεια της μέτρησης: οι πίνακες βαθμονόμησης δίνονται σε 0,1 μοίρες. Η γραμμικότητα μέσα στους πίνακες είναι, καταρχήν, αξιοπρεπής, επομένως η ακρίβεια περιορίζεται κυρίως από τον ενισχυτή και τον μετρητή ρεύματος. Στην περίπτωσή μου, ήθελα να επιτύχω μια ακρίβεια διατήρησης 0,1 μοιρών, οπότε ο μετρητής έχει ρυθμιστεί σε 1/32 μοίρες: αυτό δίνει ~3 κβάντα ανά 0,1 μοίρες, έχοντας έτσι τον κανονικό «θόρυβο» ρύθμισης +-1 κβάντα, παραμένουμε στους ίδιους 0,1 βαθμούς. Η χρήση του 1/32 σάς επιτρέπει να εργαστείτε με ένα σταθερό σημείο - 5 bit = κλασματικό μέρος, το υπόλοιπο είναι ακέραιος. Σε 16 bit αυτό μπορεί να αναπαρασταθεί από 0 έως 2047 °. Αντί να εργαζόμαστε με αρνητικούς αριθμούς, θα εργαστούμε σε Kelvins αντί για Κελσίου, αντιπροσωπεύοντας έτσι 0 έως 2047 °K, που ισοδυναμεί με -273 έως 1775 °C. σε προσαυξήσεις 0,03125°.

V. Εύρος προσαρμοστικότητας.

Για να ελέγξετε έναν μικροαντιδραστήρα με μια ισχυρή μονάδα παραγωγής ενέργειας, μπορεί να αποδειχθεί ότι το 1% της ισχύος είναι αρκετό για να θερμανθεί κατά 10 βαθμούς, ενώ για έναν μεγάλο αδρανή κλίβανο, το 100% της ισχύος θέρμανσης είναι μόλις αρκετή για να τον θερμάνει κατά ένα βαθμός. (Στην πραγματική ζωή, μοιάζει με αυτό - υπάρχουν αρκετές χειροκίνητα ελεγχόμενες θερμάστρες - ενεργοποιούνται από έναν ξεχωριστό διακόπτη και παράγουν αρχική θέρμανση, μετά ο θερμοστάτης διατηρεί το σημείο λειτουργίας, ελέγχοντας μια άλλη θερμάστρα, η οποία σε πλήρη ισχύ παράγει το μέγιστο +10°C σε αυτό, που θερμαινόταν συνεχώς). Με βάση αυτό, είναι λογικό να υποθέσουμε ότι ο περιοριστικός συντελεστής αναλογικότητας είναι 100% ισχύς ανά 1 βαθμό. Δεν έχει νόημα πλέον αφού θέλουμε έλεγχο 0,1 μοιρών. Για απλότητα, πήρα την ελάχιστη αντίστροφη - ισχύ 1% ανά 100 μοίρες.

Τα εύρη των χρονικών συντελεστών υπολογίζονται απλά με βάση τις συνθήκες λειτουργίας του ρυθμιστή μας. Δεδομένου ότι ελέγχουμε την ισχύ του triac υπολογίζοντας την καθυστέρηση της στιγμής ενεργοποίησης μετά τη διέλευση από το 0, η μέγιστη συχνότητα λειτουργίας του ρυθμιστή είναι 50 Hz. Εάν είμαστε βέβαιοι ότι ελέγχουμε την ισχύ, που δεν έχει σημασία συν ή πλην, μπορούμε να δουλέψουμε στα 100 Hz, αλλά αυτό δεν συμβαίνει πάντα, και επομένως είναι καλύτερο να δοσολογούμε ίση ποσότητα θετικών και αρνητικών ημικυμάτων κάθε φορά. Για να κάνω τη ζωή πιο εύκολη, μείωσα τον χρόνο λειτουργίας στα 25 Hz, επομένως οποιαδήποτε υπολογισμένη κρούση θα ενεργήσει για 4 μισά κύματα και κατά τη διάρκεια αυτού του χρόνου θα μπορώ να υπολογίσω μια νέα κρούση.

Έτσι, οι σταθερές χρόνου ρυθμίζονται κάθε 1/25 sec, από 0 έως ~2000 sec (2000*25 = 50000, χωράει μόνο σε 16 bit).

Λοιπόν, έχουμε επίσης ένα ελάχιστο και μέγιστο όριο ισχύος, από 0 έως 100%.

VI. Διαχείριση ισχύος.

Από αυτή τη στιγμή τελειώνουν όλοι οι θεωρητικοί υπολογισμοί και αρχίζει η πικρή πρακτική, που συνδέεται με μια συγκεκριμένη υλοποίηση.

Έτσι, έχουμε ήδη αποφασίσει ότι ελέγχουμε την καθυστέρηση στο άνοιγμα του triac αφού περάσουμε από το 0. Έτσι, καθυστέρηση 0 σημαίνει 100% ισχύς, άπειρη καθυστέρηση = 0% ισχύς.

Ερώτηση: με ποια ακρίβεια κάνουμε Μπορώδιαχείριση της εξουσίας; Γενικά με την ακρίβεια του χρονοδιακόπτη μας. Από την άλλη, πόση δύναμη χρειάζεται; Υπολογίζουμε το % της ισχύος που χρειάζεται να τροφοδοτηθεί για 0,04 δευτερόλεπτα. Κατ 'αρχήν, από την εμπειρία, ο έλεγχος ισχύος ακόμη και με ακρίβεια 1% σε συχνότητα 0,1 sec είναι αρκετός για τη διατήρηση θερμοκρασίας 1 βαθμού. Ο έλεγχος μας είναι 0,04 δευτερόλεπτα (2,5 φορές ταχύτερος). Ως εκ τούτου, αποφασίστηκε να υπολογιστεί ο πίνακας ισχύος στο 1/250 του μέγιστου (σε προσαυξήσεις 0,4%). Αυτό επιτρέπει στον πίνακα να μην είναι πολύ μεγάλος (500 byte) και ταυτόχρονα να έχει ακρίβεια μεγαλύτερη από 1%. Εάν η περίπτωσή σας απαιτεί μεγαλύτερη ακρίβεια, δεν είναι τόσο δύσκολο να υπολογίσετε εκ νέου.

Τώρα ας μιλήσουμε για τον υπολογισμό αυτού του ίδιου του πίνακα. Πρώτον, θα πρέπει να ληφθεί υπόψη ότι υπάρχει τη στιγμή που ενεργοποιείται το σήμα μηδενικής διέλευσης.Στην περίπτωσή μου - 12V. Δηλαδή, όταν η τάση εισόδου πέσει κάτω από τα 12 V, θα λάβω ένα σήμα που περνάει από το 0.

Αυτό σημαίνει ότι για 100% ισχύ, χρόνος εκκίνησης = χρόνος διαδρομής 12 V.

Ας λύσουμε το σύστημα των εξισώσεων

; IntMoment:= 12V ; Μέγ.:= sqr(220*sqrt(2)) ; ( Sqr(Sin(Pi/2)*K) = Max ; ( Sqr(Sin(X)*K) = IntMoment ; ; 2*k/MaxCode = 1 - cos(T*Pi) ; cos(T*Pi) = 1-2*k/MaxCode; T*Pi = arccos(1-2*k/MaxCode) ;

Ο επεξεργαστής μου τρέχει σε συχνότητα 32786, το PLL έχει ρυθμιστεί στα 384/2, το μισό κύμα είναι 100 Hz, από το οποίο παίρνουμε ότι ο κωδικός για τη φόρτωση μιας σταθεράς στο χρονόμετρο για το χρόνο T μοιάζει με:

65536-(T*(32768*384/2)/100,0 + 773)

Πρέπει να υπολογίσουμε τον χρόνο καθυστέρησης, ο οποίος δίνει ομοιόμορφη αύξηση στην περιοχή του συμπεριλαμβανόμενου τμήματος του ημιτονοειδούς. Δηλαδή, πρέπει να έχουμε χρονισμούς που να δίνουν ομοιόμορφη αύξηση ισχύος. Η συνολική ισχύς που παράγουμε είναι το αναπόσπαστο σε ολόκληρο το ημιτονοειδές κύμα. [ποιος ξέρει πώς να εισάγει τύπους στο hub; με τιποτα; Γράφω σε σημειογραφία σφενδάμου τότε].

Max = int(sqr(sin(x)), x=0..Pi) int(sqr(sin(x)), x=0..T*Pi) = x/2 - sin(2*x)/ 4 + C | 0..T*PI ​​= (T*Pi)/2 - sin(2*T*Pi)/4 (T*Pi)/2 - sin(2*T*Pi)/4 = Q*Pi/ 2

Επομένως, πρέπει να εξετάσουμε όλα τα Q με δεδομένη ακρίβεια και να βρούμε το T για καθένα από αυτά.

Το έλυσα μόνος μου με αυτόν τον ηλίθιο τρόπο:

Γεννήτρια Perl

#!/usr/bin/perl # (T*Pi)/2 - sin(2*T*Pi)/4 = Q*Pi/2 χρήση σταθερά PI => 4 * atan2(1, 1); $T = 1; for($i = 250; $i >= 0; $i--) ( $int = $i*PI/2/250; $ev = ($T*PI)/2-sin(2*$T* PI)/4; while(abs($ev-$int) > 0,0005) ( $T -= 0,0001; $ev = ($T*PI)/2-sin(2*$T*PI)/4;) #print $i."\t".$T."\n"; \n", $code%256, int($code/256), $code, $i; )

Αυτό είναι όλο, στην έξοδο λάβαμε μια πλάκα 250 τιμών που αντιστοιχούν στις σταθερές φόρτωσης του χρονοδιακόπτη μέχρι τη στιγμή της ανάφλεξης μετά τη λήψη ενός σήματος για τη διέλευση από το 0 (πιο συγκεκριμένα, μέσω 12V, όπως είπα παραπάνω).

VII. Μέτρηση δεδομένων εισόδου

Παρακάμπτω αυτήν την ερώτηση γιατί αξίζει το δικό της εκτενές άρθρο. Το πώς έλυσα το πρόβλημα με τη θερμική αντίσταση μπορείτε να το βρείτε στο αρχείο του late blog μου.

Το κύριο πράγμα που πρέπει να γνωρίζουμε είναι ότι μετράμε τα δεδομένα με τη συχνότητα που χρειαζόμαστε (στην περίπτωση αυτή, 25Hz), και την απαιτούμενη ακρίβεια (η έξοδος είναι ένας αριθμός από 0 έως 2048 βαθμούς Kelvin σε 1/32 μοίρες). Τα δεδομένα θεωρείται ότι είναι ήδη κανονικοποιημένα για όλους τους περαιτέρω υπολογισμούς.

Αν κάποιος ενδιαφέρεται, γράψτε στα σχόλια και την επόμενη φορά θα σας περιγράψω πώς γίνεται αυτό για τα θερμοστοιχεία.

VIII. Υπολογισμός επιπτώσεων

Και τώρα συνέβη: έχουμε όλα τα δεδομένα για να κάνουμε επιτέλους αυτό για το οποίο τα ξεκινήσαμε όλα: υπολογίστε πόση ισχύς πρέπει να παρέχεται στο στοιχείο ελέγχου.

Ας θυμηθούμε για άλλη μια φορά τον τύπο του ελεγκτή PID:

U = K * (Err + (1/Ti)*Int + Td*dErr)

  • U- ισχύς που θα παραδοθεί.
  • κ- αναλογικός συντελεστής (σημείωση - βγαίνει εκτός παρενθέσεων, θα περιγράψω γιατί παρακάτω).
  • Ti- σταθερά χρόνου ολοκλήρωσης. Λάβετε υπόψη ότι οι υπολογισμοί χρησιμοποιούν την αμοιβαία τιμή.
  • Td- σταθερά χρόνου διαφοροποίησης
  • Πλανώμαι- ασυμφωνία ρεύματος (διαφορά μεταξύ σημείου ρύθμισης και μετρούμενης θερμοκρασίας
  • dErr- παράγωγο αναντιστοιχίας (διαφορά μεταξύ τρέχοντος και προηγούμενου σφάλματος)
  • Int- συσσωρευμένο ολοκλήρωμα αναντιστοιχίας (το άθροισμα όλων των σφαλμάτων που είδαμε)

Ερχόμαστε και πάλι στο ερώτημα που τέθηκε στην ενότητα III: αυτό θα χρησιμοποιηθεί από τεχνικούς. Επομένως, είναι εξαιρετικά σημαντικό να αποφευχθεί το κλασικό λάθος όλων των υλοποιήσεων - "διαστασιολόγηση των συντελεστών όπως αποδεικνύεται". Κανουμε συσκευήΓια οδήγηση φυσικόςδιαδικασία, που σημαίνει ότι το μοντέλο πρέπει να αντιστοιχεί.

Ας βγάλουμε όλες τις διαστάσεις. Εν μέρει κοιτάζοντας μπροστά, έχω ήδη περιγράψει, αλλά τώρα θα αποκαλύψουμε με περισσότερες λεπτομέρειες:

  • U- έχει μια τιμή σε % της ισχύος. Ακόμη πιο συγκεκριμένα - στα 2/5 του % της ισχύος, αφού ο πίνακας μας περνάει από το 1/250 του 100%.
  • Πλανώμαι- αναντιστοιχία, που καθορίζεται σε βαθμούς. Πιο συγκεκριμένα - μετά από 1/32 μοίρες.
  • Int- το ολοκλήρωμα είναι το άθροισμα των μοιρών στο χρόνο - και επομένως έχει τη διάσταση του βαθμού * sec. Πιο συγκεκριμένα - (1/32 μοίρες)*(1/25 δευτ.)
  • Ti- ρύθμιση μετά από 1/25 δευτερόλεπτο
  • (1/Ti)*Εισ- μετά τον υπολογισμό δίνει συνεισφορά που έχει διάσταση (1/32 μοίρες).
  • dErr- παράγωγο, έχει διάσταση μοιρών/δευτ., ή ακριβέστερα (1/32 μοίρες)/(1/25 δευτ.)
  • Td- ρύθμιση μετά από 1/25 δευτερόλεπτο
  • Td*dErr- αφού το προϊόν φέρει τη συμβολή στη διάσταση (1/32 μοίρες)
  • (...) - έτσι, όλοι οι όροι κάτω από αγκύλες μειώνονται σε διάσταση (1/32 μοίρες)
  • κ- συμφωνεί UΚαι (...) , που σημαίνει ότι έχει τη διάσταση ποσοστού ανά μοίρα, πιο συγκεκριμένα (2/5)%/(1/32 μοίρες)

Τώρα μπορείτε να δείτε ξεκάθαρα γιατί ο αναλογικός συντελεστής έχει αφαιρεθεί από αγκύλες - αυτό σας επιτρέπει να αφήσετε τους συντελεστές διαφορικού και int απλώς ως σταθερές χρόνου, ως αποτέλεσμα, κατά τη ρύθμιση ο χειριστής λειτουργεί με απλούς και κατανοητούς αριθμούς - ποσοστό ανά βαθμό για τον αναλογικό συντελεστή και δευτερόλεπτα για τους ολοκληρωμένους και διαφορικούς συντελεστές.

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

Εκτός από ένα πράγμα - έχουμε την ποσότητα Ti, και για τον υπολογισμό απαιτείται 1/Τι. Μια μεγάλη επιχείρηση διαίρεσης είναι πολύ ακριβή. Η πράξη πολλαπλασιασμού είναι αρκετές φορές φθηνότερη, γι' αυτό θα χρησιμοποιήσουμε το εξαιρετικό άρθρο Διαίρεση με αμετάβλητους ακέραιους με χρήση πολλαπλασιασμού. Άλλωστε έχουμε κ / Ti / Tdαλλάζουν εξαιρετικά σπάνια και επομένως έχουμε την πολυτέλεια να τα διαστρεβλώνουμε όσο θέλουμε αφού αλλάξουν, το κυριότερο είναι ότι ο κύριος κύκλος υπολογισμού λειτουργεί γρήγορα.

Έτσι αντί για Tiγια υπολογισμούς τα βάζουμε σε ένα σετ Ti_m, Ti_sh1, Ti_sh2; και σε κάθε κύκλο κάνουμε τον υπολογισμό:
T1 = MULUH(Ti_m, Int) Q = SHR(T1+SHR(Int-T1, Ti_sh1), Ti_sh2)

Τώρα υπολογίζουμε το υπόλοιπο bit. Για να γίνει αυτό, ας γράψουμε τον πλήρη τύπο βήμα προς βήμα:

  1. Eo = E; Χρειαζόμαστε το σφάλμα για να περάσει. Σφάλματα - 16 bit
  2. Ε = Υ-Χ ; Υπολογίζουμε τη νέα αναντιστοιχία. 16 bit
  3. Int = Int + (E+Eo)/2 ; Ας ενσωματώσουμε το σφάλμα. Σε αυτή την περίπτωση, υπολογίζουμε το μισό άθροισμα της διαφοράς (σχήμα διαφοράς). 32bit = 32bit + 16bit
  4. cI = Int * (1/Ti) ; Υπολογίζουμε την ολοκληρωμένη συνεισφορά - 32bit * 32bit => 32bit
  5. cD = Td * (E-Eo) ; Υπολογίζουμε τη διαφορική συνεισφορά - 16*16 => 32bit
  6. PID = E + cI + cD ; Υποπαρ. 16+32+32 => 32bit
  7. U = K*PID/256 ; Συντ. 32*16/8 bit => 40 bit.

Για όλους τους υπολογισμούς, η θέση του σημείου μέχρι το 7ο βήμα παραμένει στην 5η θέση από τα δεξιά. Την τελευταία στιγμή εμφανίζεται μια ενδιαφέρουσα προσποίηση με τα αυτιά. Το K ορίζεται στο 1/256, αντίστοιχα, μετά τον πολλαπλασιασμό το σημείο μετατοπίζεται προς τα αριστερά στην 5+8=13η θέση, οπότε πρέπει να απορρίψουμε τα 8 bit χαμηλής τάξης του αποτελέσματος. Και το χαμηλότερο byte του αποτελέσματος είναι η ισχύς που χρειαζόμαστε μετά από 2/5%. Αυτός είναι ένας άλλος λόγος για τον οποίο η ισχύς ισοπεδώνεται σε βήματα 1/250 - αυτό επιτρέπει στο αποτέλεσμα να συσκευαστεί σε ένα byte και το επιθυμητό αποτέλεσμα μπορεί να ληφθεί εύκολα από τον πίνακα.

Στη συνέχεια, θυμόμαστε ότι μας ενδιαφέρει μόνο η ισχύς από το 0 έως το 250 - επομένως το 7ο βήμα των υπολογισμών είναι πολύ απλό, μόλις λάβουμε έναν αρνητικό αριθμό - προσθέτουμε αμέσως uMin. Μόλις μάθουμε ότι οποιοδήποτε υψηλό byte δεν είναι μηδέν, προσθέτουμε αμέσως το uMax. Και μόνο εάν η ισχύς προστεθεί στο εύρος, ελέγχουμε για λιγότερα uMin ή περισσότερα uMax.

Σε περίπτωση που κάποιος ενδιαφέρεται:

ένα πλήρες χάος των υπολογισμών

; Έλεγχος PID CalcMainEnd: ; Υπολογιστική, Go-Go. CalcPid: ; 1. Eo = E | 16 bit Pid1: MOV Err0H, ErrH MOV Err0L, ErrL ; 2. Ε = Υ-Χ | 16 bit Pid2: CLR C MOV A, SettingL SUBB A, ThermoL MOV ErrL, A MOV A, SettingH SUBB A, ThermoH MOV ErrH, A JNB OV, Pid2Ov JB ACC.7, Pid2Max Pid2Min: #00W Er( 32) MOV ErrH, #HIGH(-500*32) SJMP Pid2End Pid2Max: MOV ErrL, #LOW(500*32) MOV ErrH, #HIGH(500*32) SJMP Pid2End Pid2Ov: JNB ACCD2Ov Pid2Ov; Ας ελέγξουμε για περιορισμό προς τα κάτω CLR C MOV A, ErrL SUBB A, #LOW(-500*32) MOV A, ErrH SUBB A, #HIGH(-500*32) JNC Pid2End ; Αν > -500 => όλα είναι εντάξει SJMP Pid2Min Pid2OvP: CLR C MOV A, ErrL SUBB A, #LOW(500*32) MOV A, ErrH SUBB A, #HIGH(500*32) JNC Pid2Max ; Αν< 500 => όλα είναι εντάξει Pid2End: ; 3. Int = Int + (E+Eo)/2 | 32bit+16bit Pid3: JNB PowerReady, Pid3End ; Εάν δεν υπάρχει δίκτυο, δεν αποθηκεύουμε το αναπόσπαστο μέρος MOV A, ErrL ADD A, Err0L MOV R0, A ; προσωρινά MOV A, ErrH ADDC A, Err0H MOV C, ACC.7 ; Το μισό άθροισμα ταιριάζει πάντα σε 16 bit, επομένως κατά τη μετατόπιση είναι απαραίτητο να διατηρηθεί το πρόσημο του RRC A. Ας διαιρέσουμε χωρίς απώλεια του πρόσημου XCH A, R0 ; A= τμήμα χαμηλής τάξης, R0 - μισό άθροισμα υψηλής τάξης RRC A ; Προστέθηκαν JNB IntS, Pid3IntPos. Το Int είναι αρνητικό, ας αλλάξουμε το πρόσημο για R0:A, επομένως θα είναι δυνατή η απλή προσθήκη με Int CLR C CPL A ADD A, #1 XCH A, R0 CPL A ADDC A, #0 XCH A, R0 Pid3IntPos: ; Το Int και το R0:A έχουν πλέον σταθερά πρόσημα, επομένως προσθέτουμε με τον συνηθισμένο τρόπο ADD A, IntLL MOV IntLL, A MOV A, IntLH ADDC A, R0 MOV IntLH, A MOV A, R0 JB ACC.7, Pid3Neg ; Προσθέσατε αρνητική διαφορά; ; Εάν η διαφορά είναι θετική, απλώς διαδίδουμε το JNC carry jPid3End ; Αν προσθέσαμε μια λέξη και δεν έγινε μεταφορά, δεν χρειάζεται να κάνουμε τίποτα. INC IntHL ; Διαδώστε τη μεταφορά πάνω από MOV A, IntHL JNZ Pid3End ; Αν η μεταφορά δεν πήγε στο 4ο byte, όλα είναι καλά INC IntHH? Επεκτείνουμε τη μεταφορά στο ΠΙΟ σημαντικό byte MOV A, IntHH JNZ Pid3End ; Αν η μεταφορά δεν πάει ακόμα πιο ψηλά, όλα είναι καλά MOV IntHH, #0FFh ; Εάν η μεταφορά ήταν υψηλότερη, περιορίζουμε το ολοκλήρωμα από το ανώτατο όριο MOV IntHL, #0FFh MOV IntLH, #0FFh MOV IntLL, #0FFh jPid3End: SJMP Pid3End Pid3Neg: ; Εάν η διαφορά είναι αρνητική, τότε πρέπει να συνεχίσετε να προσθέτετε και τις δύο φορές, αλλά FFh MOV A, IntHL ADDC A, #0FFh MOV IntHL, A MOV A, IntHH ADDC A, #0FFh MOV IntHH, A JC Pid3End ; Εάν υπήρξε μεταφορά, τότε το πρόσημο του ολοκληρώματος δεν έχει αλλάξει CPL IntS . Εάν δεν υπήρξε μεταφορά, τότε το πρόσημο του ολοκληρώματος έχει αλλάξει CPL C . Αντιστρέψτε το πρόσημο του αριθμού που προκύπτει MOV A, #0 SUBB A, IntLL MOV IntLL, A MOV A, #0 SUBB A, IntLH MOV IntLH, A MOV A, #0 SUBB A, IntHL MOV IntHL, A MOV A, # 0 SUBB A , IntHH MOV IntHH, A ; αφού έχει γίνει αρνητικό, η μεταφορά θα είναι πάντα εδώ Pid3End: ; 5. cI = Int*(1/Ti) | 32*32=>32bit Pid5: ; R3:R2:R1:R0 = Int*(1/Ti) JB Ti_sh1, Pid5Calc ; αν Ti_sh1=0, τότε 1/Ti=1 ή Ti=0. και δεν χρειάζεται να κάνετε τίποτα MOV A, Ti_mLL ORL A, Ti_mLH ORL A, Ti_mHL ORL A, Ti_mHH JZ Pid5Zero MOV R0, IntLL MOV R1, IntLH MOV R2, IntHL MOV R3, IntHH AJMPd Pidero #0 MOV R0 , A MOV R1, A MOV R2, A MOV R3, A MOV IntLL, A MOV IntLH, A MOV IntHL, A MOV IntHH, A AJMP Pid5End Pid5Calc: ; R7:R6:R5:R4[:R3] = MULUH(Int*Ti_m) // Το R3 θεωρείται ως μέρος για τη στρογγυλοποίηση MOV R2, #0 ;; R7:R6 = IntHH*Ti_mHH MOV A, IntHH MOV B, Ti_mHH MUL AB MOV R7, B MOV R6, A ; R6:R5 += IntHL*Ti_mHH MOV A, IntHL MOV B, Ti_mHH MUL AB MOV R5, A MOV A, R6 ADD A, B MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ; R5:R4 += IntLH*Ti_mHH MOV A, IntLH MOV B, Ti_mHH MUL AB MOV R4, A MOV A, R5 ADD A, B MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ; R4:R3 += IntLL*Ti_mHH MOV A, IntLL MOV B, Ti_mHH MUL AB MOV R3, A MOV A, R4 ADD A, B MOV R4, A MOV A, R2 ; A=0 ADDC A, R5 MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ;; R6:R5 += IntHH*Ti_mHL MOV A, IntHH MOV B, Ti_mHL MUL AB ADD A, R5 MOV R5, A MOV A, R6 ADDC A, B MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ; R5:R4 += IntHL*Ti_mHL MOV A, IntHL MOV B, Ti_mHL MUL AB ADD A, R4 MOV R4, A MOV A, R5 ADDC A, B MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ; R4:R3 += IntLH*Ti_mHL MOV A, IntLH MOV B, Ti_mHL MUL AB MOV A, R3 MOV R3, A MOV A, R4 ADDC A, B MOV R4, A MOV A, R2 ; A=0 ADDC A, R5 MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ;; R5:R4 += IntHH*Ti_mLH MOV A, IntHH MOV B, Ti_mLH MUL AB ADD A, R4 MOV R4, A MOV A, R5 ADDC A, B MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ; R4:R3 += IntHL*Ti_mLH MOV A, IntHL MOV B, Ti_mLH MUL AB ADD A, R3 MOV R3, A MOV A, R4 ADDC A, B MOV R4, A MOV A, R2 ; A=0 ADDC A, R5 MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ;; R4:R3 += IntHH*Ti_mLL MOV A, IntHH MOV B, Ti_mLL MUL AB ADD A, R3 MOV R3, A MOV A, R4 ADDC A, B MOV R4, A MOV A, R2 ; A=0 ADDC A, R5 MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A ;;; Εάν R3 > 7F -- MOV A, R3 JNB ACC. 7, Pid5Shift ; Αν R3<80 -- округление не надо ANL A, #7Fh JZ Pid5Round ; Если = 80 -- округляем до нечетного MOV A, #1 ADD A, R4 MOV R4, A MOV A, R2 ; A=0 ADDC A, R5 MOV R5, A MOV A, R2 ; A=0 ADDC A, R6 MOV R6, A MOV A, R2 ; A=0 ADDC A, R7 MOV R7, A SJMP Pid5Shift Pid5Round: MOV A, R4 ORL A, #01h MOV R4, A ;JMP Pid5Shift Pid5Shift: ; R3:R2:R1:R0 = (Int-R7:R6:R5:R4) > > 1 CLR C MOV A, IntLL SUBB A, R4 MOV R0, A MOV A, IntLH SUBB A, R5 MOV R1, A MOV A, IntHL SUBB A, R6 MOV R2, A MOV A, IntHH SUBB A, R7 R ; >>1 χωρίς απώλεια μεταφοράς MOV R3, A MOV A, R2 RRC A MOV R2, A MOV A, R1 RRC A MOV R1, A MOV A, R0 RRC A ;MOV R0, A ; R3:R2:R1:R0 += R7:R6:R5:R4 ;MOV A, R0 ADD A, R4 MOV R0, A MOV A, R1 ADDC A, R5 MOV R1, A MOV A, R2 ADDC A, R6 MOV R2, A MOV A, R3 ADDC A, R7 MOV R7, A ; Τώρα μετακινηθείτε δεξιά στο sh2. ; Το sh2 μπορεί να είναι έως και 16 (καθώς το Ti μας είναι 16-bit, ας ελέγξουμε την ανάγκη για μετατόπιση 16-bit) MOV A, Ti_sh2 JNB ACC.4, Pid5ShiftUnder16 ; Πρέπει να μετατοπίσουμε >=16 -- 2 byte θα μετατοπιστούν με movs MOV R0, 18h+2, bank 3 MOV R1, 18h+3, bank 3 MOV R2, #0 MOV R3, #0 Pid5ShiftUnder16: JNB ACC 3, Pid5ShiftUnder8 . R1, τράπεζα 3 MOV R1, 18h+2; R2, τράπεζα 3 MOV R2, 18h+3; R3, τράπεζα 3 MOV R3, #0 Pid5ShiftUnder8: ANL A, #07h JZ Pid5End ; Εάν δεν χρειάζεται να μετακινηθείτε μέσα στο byte - τα πάντα MOV R4, A SJMP Pid5ShiftRight Pid5NextShift: CLR C ; Σε αυτό το σημείο C έχουμε ακόμα ένα πιθανό σημαντικό υψηλό bit! Pid5ShiftRight: MOV A, R3 RRC A MOV R3, A MOV A, R2 RRC A MOV R2, A MOV A, R1 RRC A MOV R1, A MOV A, R0 RRC A MOV R0, A DJNZ R4, Pid5NextShift ; Αυτό ήταν, μετά από όλες τις αλλαγές πήραμε το αποτέλεσμα. Μην ξεχνάτε ότι το υπολογιζόμενο σε R3:R2:R1:R0 ; τώρα ο αριθμός είναι θετικός και το πρόσημο είναι στο IntS Pid5End: ; 4. PID += [ cD = Td * (E-Eo) ] | 16*16=>32bit Pid4: ; cD = R7:R6:R5:R4; ErrD = E-Eo CLR C MOV A, ErrL SUBB A, Err0L MOV DiffL, A MOV A, ErrH SUBB A, Err0H MOV DiffH, A MOV C, ACC.7 ; Πάρτε το πρόσημο του αποτελέσματος MOV DiffS, C ; Ας κρατήσουμε το σήμα E-Eo JNC Pid4Mul ; Diff -- αρνητικό, πρόσημο αντιστράφηκε MOV A, DiffL CPL A ADD A, #1 MOV DiffL, A MOV A, DiffH CPL A ADDC A, #0 MOV DiffH, A Pid4Mul: ; R7:R6 = DiffH*TdH; MOV A, DiffH = σε κάθε περίπτωση A=DiffH MOV B, TdH MUL AB MOV R6, A MOV R7, B ; R5:R4 = DiffL*TdL MOV A, DiffL MOV B, TdL MUL AB MOV R4, A MOV R5, B ; R6:R5 += DiffH*TdL MOV A, DiffH MOV B, TdL MUL AB ADD A, R5 MOV R5, A MOV A, R6 ADD A, B MOV R6, A MOV A, R7 ADDC A, #0 MOV R7, ΕΝΑ; R6:R5 += DiffL*TdH MOV A, DiffL MOV B, TdH MUL AB ADD A, R5 MOV R5, A MOV A, R6 ADD A, B MOV R6, A MOV A, R7 ADDC A, #0 MOV R7, ΕΝΑ; 6. PID = E + cI + cD | 32 bit Pid6: ; R3:R2:R1:R0 ισούται με cI, εισαγάγετε IntS; ; R7:R6:R5:R4 = cD; συνδεθείτε στο DiffS. E αντίστροφα συμπλήρωμα δύο JB IntS, ChkDiffN JNB DiffS, Pid6Add ; Int>0, Diff>0 => Προσθήκη SJMP Pid6Sub ; Int>0, Διαφ<0 =>Sub ChkDiffN: JNB DiffS, Pid6Sub ; Int<0, Diff>0 => Υπο ; Int<0, Diff<0 =>Προσθήκη Pid6Add: ; Ίδιο σημάδι => προσθέστε τα με έλεγχο υπερχείλισης MOV A, R0 ADD A, R4 MOV R0, A MOV A, R1 ADDC A, R5 MOV R1, A MOV A, R2 ADDC A, R6 MOV R2, A MOV A, R3 ADDC A, R7 MOV R3, A JNC Pid6Err ; Εάν δεν υπάρχει μεταφορά, ως αποτέλεσμα της προσθήκης δεν υπήρξε υπερχείλιση MOV R3, #0FFh MOV R2, #0FFh MOV R1, #0FFh MOV R0, #0FFh SJMP Pid6Err Pid6Sub: ; Τα σημάδια είναι διαφορετικά - αφαιρέστε το ένα από το άλλο και ελέγξτε το πρόσημο του αποτελέσματος CLR C MOV A, R4 SUBB A, R0 MOV R0, A MOV A, R5 SUBB A, R1 MOV R1, A MOV A, R6 SUBB A, R2 MOV R2, A MOV A, R7 SUBB A, R3 MOV R3, A JNC Pid6Err ; Εάν δεν υπάρχει δανεισμός, το πρόσημο του αποτελέσματος είναι ίσο με το πρόσημο του DiffS CPL DiffS ; Εάν υπήρξε δανεισμός, το πρόσημο του DiffS και το αποτέλεσμα πρέπει να αντιστραφούν MOV R6, #0 ; R6=0 MOV A, R0 CPL A ADDC A, R6 ; R6=0, C=1 => δράση +1 MOV R0, A MOV A, R1 CPL A ADDC A, R6 ; +μεταφορά MOV R1, A MOV A, R2 CPL A ADDC A, R6 MOV R2, A MOV A, R3 CPL A ADDC A, R6 MOV R3, A Pid6Err: MOV R6, #0 ; R6=0 ; Στο R3:R2:R1:R0 -- βρίσκεται cI+cD; σύμβολο αθροίσματος στο DiffS. Πρέπει να προσθέσετε/αφαιρέσετε το Err, γραμμένο με αντίστροφο κώδικα. Ας μειώσουμε το πρόσημο του Err σε DiffS MOV R4, ErrL MOV A, ErrH JB ACC.7, Pid6ChkDiffS JNB DiffS, Pid6SumErrNoInv ; Err>0, Diff>0 => NoInv SJMP Pid6SumErrInv Pid6ChkDiffS: JNB DiffS, Pid6SumErrNoInv ; Πλανώμαι<0, Diff>0 => NoInv Pid6SumErrInv: ; Το Err έχει διαφορετικό πρόσημο από το DiffS - invert SETB C ; Δεν είμαι σίγουρος για την κατάσταση C MOV A, ErrL CPL A ADDC A, R6 ; A+=R6+C, R6=0 C=1 => A+=1 MOV R4, A ; R4=ErrL MOV A, ErrH CPL A ADDC A, R6 Pid6SumErrNoInv: MOV R5, A ; ErrH Pid6SumErr: ; Έτσι, στο R5:R4 βρίσκεται το Err, το πρόσημο του οποίου είναι συνεπές με το DiffS. αλλά σε κωδικό αντίστροφου συμπληρώματος MOV A, R0 ADD A, R4 MOV R0, A MOV A, R5 CLR F0 JNB ACC.7, Pid6SubErrPos SETB F0 MOV R6, #0FFh ; Προσθήκη αρνητικού => προσθήκη FFs Pid6SubErrPos: ADDC A, R1 MOV R1, A MOV A, R2 ADDC A, R6 ; +επέκταση MOV R2, A MOV A, R3 ADDC A, R6 ; +επέκταση MOV R3, A MOV R6, #0 ; Είναι απαραίτητο να ελέγξετε εάν το πρόσημο του συνολικού ποσού έχει αλλάξει JNC Pid6ChkF0 JB F0, Pid7 ; Πλανώμαι<0, был перенос =>Το πρόσημο δεν έχει αλλάξει, δεν υπάρχει υπερχείλιση SJMP Pid6SumOv ; Σφάλμα>0, υπήρξε μεταφορά => υπερχείλιση Pid6ChkF0: JNB F0, Pid7 ; Σφάλμα>0, χωρίς μεταφορά => χωρίς υπερχείλιση SJMP Pid6SumUf; Πλανώμαι<0, небыло переноса =>το πρόσημο έχει αλλάξει Pid6SumUf: ; Αν Ερ<0 и небыло переноса =>το σύμβολο άλλαξε CPL DiffS MOV A, R0 CPL A ADD A, #1 ; C=?, οπότε προσθέτουμε 1 χρησιμοποιώντας τη συνήθη μέθοδο MOV R0, A MOV A, R1 CPL A ADDC A, R6 MOV R1, A MOV A, R2 CPL A ADDC A, R6 MOV R2, A MOV A, R3 CPL A ADDC A, R6 MOV R3, A SJMP Pid7 ; Το πρόσημο του αποτελέσματος και το DiffS κανονικοποιούνται Pid6SumOv: ; Υπήρξε υπερχείλιση => γύρος στο μέγιστο MOV R0, #0FFh MOV R1, #0FFh MOV R2, #0FFh MOV R3, #0FFh ; 7. U = K*PID/256 | 32bit*16bit/8bit => 40bit, ; | τα οποία έχουν περικοπεί στα 10 bit . | κατά τον υπολογισμό του Pid7: ; Το R3:R2:R1:R0 περιέχει το αποτέλεσμα του PID, το DiffS περιέχει το πρόσημο του. Πρέπει να υπολογίσουμε το K*PID/256, περιορίζοντας το αποτέλεσμα στα 10 bit. Το K είναι πάντα θετικό, οπότε αν το PID< 0 =>ελάχιστο JB DiffS, Pid7Umin ; αφού μπορούμε να περιορίσουμε αυστηρά το ανώτερο όριο στα 16 bit, ; τότε αν R3 != ​​0 => ορίστε το μέγιστο σε κάθε περίπτωση MOV A, R3 JNZ Pid7Umax ; = ; υπολογίζουμε, λαμβάνοντας υπόψη ότι θα πρέπει να βγει R7=0 R6=0, ; διαφορετικά υπάρχει υπερχείλιση, οπότε δεν αγγίζουμε καθόλου τα R7 και R6. αλλά ελέγχουμε το αποτέλεσμα. R7:R6 = R2*KH MOV A, R2 JZ Pid7S1 MOV A, KH JNZ Pid7Umax ; Αν R2!=0 και KH!=0 => R7:R6>0 => υπερχείλιση Pid7S1: ; R6:R5 = R2*KL MOV A, R2 MOV B, KL MUL AB MOV R5, A MOV A, B JNZ Pid7Umax ; Εάν R6 > 0 => υπερχείλιση; R6:R5 = R1*KH MOV A, R1 MOV B, KH MUL AB ADD A, R5 JC Pid7Umax ; Εάν R6 > 0 => υπερχείλιση MOV R5, A MOV A, B JNZ Pid7Umax ; Εάν R6 > 0 => υπερχείλιση; R5:R4 = R0*KH MOV A, R0 MOV B, KH MUL AB MOV R4, A MOV A, R5 ADD A, B JC Pid7Umax ; Εάν R6 > 0 => υπερχείλιση MOV R5, A ; R5:R4 = R1*KL MOV A, R1 MOV B, KL MUL AB ADD A, R4 MOV R4, A MOV A, R5 ADDC A, B JC Pid7Umax ; Εάν R6 > 0 => υπερχείλιση MOV R5, A ; R4:R3 = R0*KL MOV A, R0 MOV B, KL MUL AB RLC A ; C = R3>=0x80, Z=R3>0x80 MOV R3, #0FFh ; R3<>0x80 => τίποτα JNZ Pid7S2 MOV R3, #0FEh ; R3==0x80 => στρογγυλό έως ζυγό Pid7S2: MOV A, R4 ADDC A, B ; Προσθέτουμε πολλαπλασιασμό, καταχωρούμε και μεταφέρουμε ANL A, R3 ; Επίσης, εάν στρογγυλοποιηθεί σε ζυγό, απορρίπτουμε το λιγότερο σημαντικό bit MOV R4, A MOV A, R5 ADDC A, R6 ; Είχαμε R6=0 εδώ και πολύ καιρό, παρόλο που δεν προσθέσαμε τίποτα εκεί κατά τον πολλαπλασιασμό JC Pid7Umax . Εάν R6 > 0 => υπερχείλιση MOV R5, A ; R5:R4 => 16-bit περιορισμένο αποτέλεσμα. Τώρα πρέπει να περιορίσουμε το R5:R4 σε Umax/Umin MOV A, UmaxL SUBB A, R4 ; C=0 επί του παρόντος MOV A, UmaxH SUBB A, R5 JC Pid7Umax ; Αν R5:R4>Umax => R5:R4 = Umax MOV A, UminL SUBB A, R4 ; C=0 επί του παρόντος MOV A, UminH SUBB A, R5 JNC Pid7Umin ; Εάν R5:R4 R5:R4 = Umin ; Υπολογισμένη ισχύς MOV UH, R5 MOV UL, R4 SETB URReady AJMP CalcExit Pid7Umax: ; Ρύθμιση μέγιστης ισχύος MOV UH, UmaxH MOV UL, UmaxL SETB UReady AJMP CalcExit Pid7Umin: ; Ρύθμιση ελάχιστης ισχύος MOV UH, UminH MOV UL, UminL SETB URReady AJMP CalcExit

IX. Εφαρμογή επιρροής.

Άρα έχουμε υπολογισμένο αντίκτυπο και δουλειά μας είναι να το εφαρμόσουμε. Για το σκοπό αυτό, ένας γενικός κύκλος λειτουργίας λειτουργεί σε συχνότητα 50Hz. Στον ζυγό κύκλο γίνεται η μέτρηση και ο υπολογισμός, στον περιττό κύκλο εφαρμόζεται η επιρροή. Έτσι, προκύπτει το γενικό σχήμα: η ισχύς ρυθμίζεται, οι μετρήσεις και οι υπολογισμοί γίνονται μέσω ενός ημιτονοειδούς και ένα νέο χρησιμοποιείται μέσω ενός άλλου.

Χ. Παγίδες.

Σε σύγκριση με το σχήμα διαφοράς, το άμεσο σχήμα έχει πολύ λίγες παγίδες, εδώ είναι μια λίστα με αυτές που είδα:
  • Λογιστική για διαστάσεις. Το πιο σημαντικό και πιο συνηθισμένο λάθος. Δεν μπορείτε απλώς να πάρετε U=K*(Err+Ki*Int+Kd*Diff), χωρίς να ορίσετε ΤΙ είναι τα K, Ki, Kd. Και με τι ακρίβεια; Είναι ιδιαίτερα σημαντικό για τον συντελεστή Ki, ο οποίος έχει την αντίστροφη διάσταση του χρόνου - αν η πράξη είναι σε ακέραιους αριθμούς, ΔΕΝ ΜΠΟΡΕΙΤΕ απλά να πολλαπλασιάσετε με αυτόν - αφού πρέπει να υπάρχει ΔΙΙΡΕΣΗ και ο αντίστροφος αριθμός δεν μπορεί να αναπαρασταθεί σε ακέραιους αριθμούς.
  • Λογιστική για το σημάδι. Το δεύτερο πολύ σημαντικό είναι να λάβετε υπόψη το ζώδιο. Όλες οι λειτουργίες πρέπει να υπογράφονται, το ολοκλήρωμα πρέπει να συσσωρεύει πρόσημο - αφού όχι μόνο αντικαθιστά το αναλογικό συστατικό, αλλά του επιτρέπει επίσης να αντιστέκεται σε εξωτερικές επιρροές, για παράδειγμα, στην απελευθέρωση θερμότητας από το ίδιο το μείγμα. και τότε το πρόσημο του είναι αρνητικό.
  • Λογιστική υπερχείλισης. Είναι σημαντικό για εμάς να λάβουμε είτε την ισχύ από 0% έως 100%, είτε το γεγονός ότι η υπολογιζόμενη ισχύς είναι μεγαλύτερη από 100% ή μικρότερη από 0%. Δεν χρειάζεται να κάνουμε όλους τους υπολογισμούς εάν λάβουμε ένα αρνητικό αποτέλεσμα υπο-αγκυλών, για παράδειγμα. Αλλά ταυτόχρονα, είναι σημαντικό να ληφθεί υπόψη ότι μπορεί να συμβεί υπερχείλιση κατά τη διάρκεια ενός προϊόντος προσθήκης - και πρέπει να ληφθεί υπόψη ως "περισσότερο από 100%" και σε καμία περίπτωση δεν πρέπει να μείνει το αποτέλεσμα μετά την υπερχείλιση . Αυτό είναι γεμάτο, πρώτα απ 'όλα, με έλλειψη ρύθμισης όταν απαιτείται - το αντικείμενο είναι κάτω από την απαιτούμενη θερμοκρασία και δεν παρέχεται ρεύμα
  • Λογιστική Χρόνου Υπολογισμού. Η ανάγκη για πολλαπλασιασμούς μεγάλων bit (με καμπύλη υλοποίηση, επίσης διαιρέσεις) απαιτεί χρόνο, επομένως είναι εξαιρετικά σημαντικό να υπολογιστεί ο χρόνος εκτέλεσης της χειρότερης έκδοσης των υπολογισμών και θα πρέπει να είναι μικρότερος από τον ελεύθερο χρόνο μεταξύ των μετρήσεων . Εάν δεν το κάνετε αυτό έχει ως αποτέλεσμα ένα μη διαχειριζόμενο αντικείμενο που "φαίνεται να λειτουργεί, αλλά κατά κάποιο τρόπο δεν λειτουργεί σωστά".

XI. συμπεράσματα.

Ως αποτέλεσμα, το σχήμα άμεσης υλοποίησης δεν έχει τα ίδια προβλήματα με αυτό, αλλά απαιτεί μεγαλύτερο υπολογιστικό κόστος. Ωστόσο, εάν εφαρμοστεί σωστά, το άμεσο κύκλωμα είναι αρκετά εφαρμόσιμο ακόμα και σε φθηνούς μικροελεγκτές 8-bit και δίνει πιο προβλέψιμα αποτελέσματα.

Ένας ελεγκτής PID είναι ένας σύνδεσμος σε έναν βρόχο ελέγχου ανάδρασης που χρησιμοποιείται για τη διατήρηση μιας καθορισμένης τιμής για μια μετρούμενη παράμετρο. Ο ελεγκτής PID μετρά την απόκλιση της σταθεροποιημένης τιμής από την καθορισμένη τιμή (το λεγόμενο σημείο ρύθμισης) και παράγει ένα σήμα ελέγχου, το οποίο είναι το άθροισμα τριών όρων, ο πρώτος από τους οποίους είναι ανάλογος αυτής της απόκλισης, ο δεύτερος είναι ανάλογος στο ολοκλήρωμα της απόκλισης και το τρίτο είναι ανάλογο με την παράγωγο της απόκλισης. Εάν ορισμένοι από τους όρους που συνιστούν δεν χρησιμοποιούνται, τότε ο ελεγκτής ονομάζεται αναλογικό-ολοκληρωμένο, αναλογικό-παράγωγο, αναλογικό κ.λπ. Το σχήμα 2 δείχνει ένα απλοποιημένο λειτουργικό διάγραμμα του ελεγκτή PID:

Ρύζι. 2. Λειτουργικό διάγραμμα του ελεγκτή PID.

E(t) - απόκλιση της μετρούμενης τιμής από το σημείο ρύθμισης (σφάλμα).
u(t) είναι η ενέργεια ελέγχου που δημιουργείται από τον ελεγκτή.

Το σχήμα 3 δείχνει μια πιο τυπική αναπαράσταση ενός ελεγκτή PID με τη μορφή ενός ενιαίου λειτουργικού μπλοκ, το οποίο είναι τυπικό για τα βιομηχανικά συστήματα ελέγχου.

Ρύζι. 3. Απλοποιημένη αναπαράσταση του ελεγκτή PID ως ένα ενιαίο λειτουργικό μπλοκ.

Ο σκοπός του ελεγκτή PID είναι να διατηρήσει μια συγκεκριμένη τιμή PV σε μια δεδομένη τιμή SP αλλάζοντας μια άλλη τιμή OP, όπου

Φ/Β - μετρούμενη παράμετρος (τιμή διεργασίας).
SP - καθορισμένη τιμή της μετρούμενης παραμέτρου (σημείο ρύθμισης).
OP - ενέργεια ελέγχου (έξοδος).
Η διαφορά (SP-PV) ονομάζεται σφάλμα ή ασυμφωνία.

Όπως ήδη ειπώθηκε, το σήμα εξόδου OP καθορίζεται από τρεις όρους:

OP = P + DI + TI = KP * (SP-PV) + KDI * d(SP-PV)/dt + KTI * ?(SP-PV)dt;

Όπου KP, KDI, KTI είναι οι συντελεστές απολαβής των αναλογικών, διαφορικών και ολοκληρωτικών συνιστωσών, αντίστοιχα. ? - σημάδι ένταξης.

Ωστόσο, στα περισσότερα πραγματικά συστήματα χρησιμοποιούν έναν ελαφρώς διαφορετικό τύπο για το σήμα εξόδου, στον οποίο ο αναλογικός συντελεστής είναι εκτός της αγκύλης:

OP = Pp * ((SP-PV) + PD * d(SP-PV)/dt + PI * ?(SP-PV)dt),

Όπου Pp = 1/KP (αναλογική ζώνη); PD = KDI (σταθερά διαφοροποίησης); PI = 1/KTI (σταθερά ολοκλήρωσης).

Τώρα ας δούμε τη σημασία κάθε συστατικού.

Αναλογικό συστατικό.

Η αναλογική συνιστώσα επιδιώκει να εξαλείψει το άμεσο σφάλμα (SP-PV) στην τιμή της σταθεροποιημένης ποσότητας που παρατηρείται σε μια δεδομένη στιγμή. Η τιμή αυτού του στοιχείου είναι ευθέως ανάλογη με την απόκλιση της μετρούμενης τιμής από την καθορισμένη τιμή (SP-PV). Αν λοιπόν το σήμα εισόδου είναι ίσο με το σημείο ρύθμισης, δηλ. PV=SP, τότε η αναλογική συνιστώσα είναι μηδέν.

Όταν χρησιμοποιείται μόνο ένας αναλογικός ελεγκτής, η τιμή της ελεγχόμενης μεταβλητής στην πράξη δεν ορίζεται ποτέ στην καθορισμένη τιμή (PVset=SP). Υπάρχει ένα λεγόμενο στατικό σφάλμα, το οποίο ισούται με μια τέτοια απόκλιση της ελεγχόμενης μεταβλητής που παρέχει ένα σήμα εξόδου που σταθεροποιεί τη μεταβλητή εξόδου σε αυτήν ακριβώς την τιμή. Για παράδειγμα, σε έναν ελεγκτή θερμοκρασίας, το σήμα εξόδου OP, το οποίο ρυθμίζει την ισχύ του θερμαντήρα, μειώνεται σταδιακά καθώς η θερμοκρασία ΦΒ πλησιάζει το σημείο ρύθμισης SP:

Όταν PV -> SP, OP -> 0.

Το σύστημα σταθεροποιείται σε μια ορισμένη τιμή OP, στην οποία η ισχύς του θερμαντήρα ισούται με την απώλεια θερμότητας. Σε αυτή την περίπτωση, η θερμοκρασία δεν μπορεί να φτάσει στο σημείο ρύθμισης, αφού σε αυτήν την περίπτωση η ισχύς του θερμαντήρα θα γίνει μηδέν (OP=0), και θα αρχίσει να κρυώνει και ταυτόχρονα θα πέσει η θερμοκρασία.

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

Αναπόσπαστο συστατικό.

Για την εξάλειψη του στατικού σφάλματος, εισάγεται ένα αναπόσπαστο στοιχείο. Επιτρέπει στον ρυθμιστή να «μάθει» από προηγούμενη εμπειρία. Εάν το σύστημα δεν αντιμετωπίζει εξωτερικές διαταραχές, τότε μετά από κάποιο χρονικό διάστημα η ελεγχόμενη μεταβλητή σταθεροποιείται στην καθορισμένη τιμή. Κατά τη σταθεροποίηση (PV=SP), η αναλογική συνιστώσα θα είναι ίση με μηδέν και το σήμα εξόδου θα παρέχεται πλήρως από το ενσωματωμένο στοιχείο. Σε μια σταθερή τιμή ασυμφωνίας (SP-PV), το αναπόσπαστο στοιχείο αντιπροσωπεύει μια τιμή που αυξάνεται γραμμικά με το χρόνο.

Φυσικά, το ενσωματωμένο στοιχείο αντιπροσωπεύει μια καθυστέρηση στην απόκριση του ελεγκτή σε μια αλλαγή στην τιμή αναντιστοιχίας, εισάγοντας κάποια αδράνεια στο σύστημα, η οποία μπορεί να είναι χρήσιμη για τον έλεγχο αντικειμένων με υψηλή ευαισθησία.

Διαφορικό στοιχείο.

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

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

Η διαδικασία ρύθμισης του ελεγκτή PID συνίσταται κυρίως στον καθορισμό του σημείου ρύθμισης και των τιμών των παραπάνω τριών συντελεστών. Υπάρχουν αρκετές μαθηματικές μέθοδοι για τον υπολογισμό των βέλτιστων συντελεστών του ελεγκτή PID με βάση τη διασφάλιση της μεγαλύτερης σταθερότητας του συστήματος. Ωστόσο, στην πράξη, η προσαρμογή του ρυθμιστή γίνεται εμπειρικά (έτσι, "με το μάτι"). Τα σύγχρονα αυτοματοποιημένα συστήματα ελέγχου διεργασιών χρησιμοποιούν συχνά τους λεγόμενους ελεγκτές PID αυτο-συντονισμού, οι οποίοι, εφαρμόζοντας μία μόνο κρούση σε ένα αντικείμενο και αναλύοντας την απόκριση, ορίζουν αυτόματα, αν όχι βέλτιστους, αρκετά καλούς συντελεστές. Επιπλέον, υπάρχουν αλγόριθμοι για προσαρμοσμένο έλεγχο PID που περιλαμβάνουν αυτόματη προσαρμογή (προσαρμογή) των συντελεστών ελέγχου κατά τη διαδικασία ελέγχου. Με τη βοήθειά τους, είναι δυνατό να επιτευχθεί πολύ υψηλή ποιότητα ελέγχου ακόμη και σε εξαιρετικά μη γραμμικά συστήματα, αλλά για κάποιο λόγο, οι τεχνολόγοι μέχρι σήμερα αντιμετωπίζουν αυτή τη λειτουργία με μεγάλη καχυποψία.

Εφαρμογή.

Σε τι χρησιμεύουν οι ελεγκτές PID; Είναι καλύτερα να το εξηγήσω με ένα παράδειγμα. Ας πούμε ότι υπάρχει μια αφηρημένη τεχνολογική διαδικασία. Το νερό στο δοχείο πρέπει να θερμαίνεται και να διατηρείται σε συγκεκριμένη θερμοκρασία. Ένας καυστήρας αερίου που βρίσκεται κάτω από το δοχείο χρησιμοποιείται για τη θέρμανση του νερού. Η ένταση της καύσης ρυθμίζεται από τη βαλβίδα παροχής αερίου. Το σχήμα 4 δείχνει πώς μπορεί να γίνει αυτό χρησιμοποιώντας τον έλεγχο PID.

Ρύζι. 4. Παράδειγμα χρήσης ελεγκτή PID.

Το σημείο ρύθμισης θερμοκρασίας ρυθμίζεται χειροκίνητα από τον χειριστή. Ο ρυθμιστής, αναλύοντας τη διαφορά μεταξύ του σημείου ρύθμισης και της ένδειξης του αισθητήρα θερμοκρασίας, παράγει ένα σήμα για τον έλεγχο της βαλβίδας ελέγχου παροχής αερίου στον καυστήρα.

Όπως σημειώθηκε, η ποιότητα του ελέγχου εξαρτάται σε μεγάλο βαθμό από τις ρυθμίσεις των συντελεστών του ελεγκτή. Το σχήμα 5 δείχνει τη συμπεριφορά του συστήματος όταν το PID δεν έχει ρυθμιστεί σωστά.

Ρύζι. 5. Παροδική διαδικασία με κακές ρυθμίσεις ελεγκτή PID.

Εδώ ο χειριστής αποφάσισε να αλλάξει τη ρύθμιση. Όπως φαίνεται από το σχήμα, ο ρυθμιστής δεν μπορεί να λειτουργήσει σωστά και παρατηρείται μια αποκλίνουσα διαδικασία ταλάντωσης. Το σύστημα σαφώς δεν είναι σταθερό.

Το σχήμα 6 δείχνει τη μεταβατική διαδικασία με τις σωστές ρυθμίσεις ελεγκτή. Ο χειριστής αλλάζει ξανά το σημείο ρύθμισης θερμοκρασίας, αλλά αυτή τη φορά ο ρυθμιστής λειτουργεί σωστά. Παρατηρείται κάποια υπέρβαση, αλλά συνολικά η διαδικασία συγκλίνει γρήγορα.

Ρύζι. 6. Παροδική διαδικασία με καλές ρυθμίσεις ελεγκτή PID.

Ας εξετάσουμε πολύπλοκα σχήματα για τη χρήση ελεγκτών PID.

Καταρρακτικός έλεγχος.

Κλασικό παράδειγμα. Ο θερμαντήρας του κλιβάνου (καυστήρας στην περίπτωσή μας) έχει υπερβολική ισχύ και το αντικείμενο θέρμανσης (τεμάχιο εργασίας) μπορεί να υπερθερμανθεί αφενός και να παραμείνει κρύο αφετέρου. Εάν μια τέτοια λειτουργία θέρμανσης είναι απαράδεκτη, τότε ο έλεγχος ενός κυκλώματος δεν θα είναι πλέον αρκετός. Για να εξασφαλιστεί η ομοιόμορφη θέρμανση του αντικειμένου, είναι απαραίτητο να μετρήσετε τη θερμοκρασία σε δύο σημεία: δίπλα στη θερμάστρα και στο πιο κρύο μέρος. Σε αυτήν την περίπτωση, ο ελεγκτής πρέπει να περιέχει δύο συνδέσμους PID συνδεδεμένους σε σειρά. Το πρώτο στοιχείο PID (που ονομάζεται κύριο), του οποίου η είσοδος είναι η θερμοκρασία ψυχρού σημείου, θα παράγει την τιμή του σημείου ρύθμισης για το δεύτερο στοιχείο (που ονομάζεται slave). Η θερμοκρασία κοντά στον θερμαντήρα παρέχεται στην είσοδο του υποτελούς συνδέσμου (βλ. Εικόνα 7).

Ρύζι. 7. Παράδειγμα ελέγχου καταρράκτη.

Μια τέτοια δομή για τη ρύθμιση δύο χρησιμοποιώντας ελεγκτές PID συνδεδεμένους σε σειρά, με δύο εισόδους για παραμέτρους μέτρησης και μία έξοδο ελέγχου, ονομάζεται καταρράκτης. Για αποτελεσματικό έλεγχο, ο υποτελής ελεγκτής PID πρέπει να είναι ταχύτερος από τον κύριο.

Το σχήμα 8 δείχνει ένα άλλο σύστημα.

Ρύζι. 8. Ένα άλλο παράδειγμα ρύθμισης καταρράκτη.

Η θερμοκρασία μέσα στη δεξαμενή με μανδύα ελέγχεται από έναν καταρράκτη. Ο κύριος ελεγκτής PID (Tc1) ανταποκρίνεται στις αλλαγές της θερμοκρασίας στη δεξαμενή, αλλά η έξοδός του δεν συνδέεται απευθείας με τη βαλβίδα που ελέγχει την εισερχόμενη ροή του ρευστού μεταφοράς θερμότητας. Η έξοδος Tc1 ορίζει το σημείο ρύθμισης για τον εξαρτημένο ελεγκτή Tc2 και το Tc2, χρησιμοποιώντας μια βαλβίδα, ρυθμίζει τη θερμοκρασία του ρευστού μεταφοράς θερμότητας στο κύκλωμα της αντλίας. Έτσι, το Tc2 αντιμετωπίζει όλες τις διακυμάνσεις της θερμοκρασίας γύρω από την αντλία που μπορούν να μεταδοθούν από την πηγή ψυκτικού.

Με έναν τέτοιο καταρράκτη, όλες οι εισερχόμενες διαταραχές και οι διακυμάνσεις της θερμοκρασίας θα ανιχνεύονται και θα υποβάλλονται σε επεξεργασία από τον ελεγκτή Tc2 προτού επηρεάσουν τη θερμοκρασία απευθείας στη δεξαμενή. Η γνώση των επικείμενων διαταραχών και ταλαντώσεων προτού επηρεάσουν άμεσα το αντικείμενο ελέγχου επιτρέπει στο σύστημα να λάβει προληπτικά μέτρα. Αυτή η προσέγγιση στη διαχείριση της οργάνωσης ονομάζεται προληπτική ρύθμιση.

Έλεγχος αναλογίας.

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

Τυπικά, οι μεταβλητές διεργασίας για τις οποίες πρέπει να διατηρηθεί μια δεδομένη σχέση είναι οι ρυθμοί ροής ή οι τιμές όγκου συστατικών, οι οποίες είναι πιο χαρακτηριστικές για διαδικασίες καύσης (για παράδειγμα, κατεύθυνση του καυσίμου στα ακροφύσια του καυστήρα). Στο Σχήμα 9, η ποσότητα του καυσίμου στον βρόχο ελέγχου 2 διατηρείται στην αναλογία FAC με την ποσότητα αέρα στο κύκλωμα 1, που ορίζεται από το σημείο ρύθμισης SP1.

Ρύζι. 9. Διαχείριση στάσεων.

Η διαχείριση στάσης χρησιμοποιείται συχνότερα στις ακόλουθες διαδικασίες:

1. Ανάμιξη δύο ή περισσότερων ρευμάτων ουσιών για την παραγωγή μιγμάτων δεδομένης χημικής σύνθεσης.
2. Ανάμιξη δύο ή περισσότερων ουσιών για την παραγωγή μιγμάτων με καθορισμένες φυσικές ιδιότητες.
3. Διατήρηση μιας δεδομένης αναλογίας καυσίμου/αέρα για την επίτευξη βέλτιστης διαδικασίας καύσης.

Πρακτική

Στα σύγχρονα αυτοματοποιημένα συστήματα ελέγχου διεργασιών, ο ελεγκτής PID υλοποιείται με τη μορφή λειτουργικού μπλοκ λογισμικού που εκτελείται στον ελεγκτή. Το σχήμα 10 δείχνει ένα μπλοκ ελέγχου PID που λαμβάνεται από το περιβάλλον ανάπτυξης ενός πραγματικού συστήματος ελέγχου. Σημειώστε πόσες διαφορετικές παράμετροι υπάρχουν στο μπλοκ (περισσότερες από 30). Στην πράξη, όχι περισσότερα από δέκα από αυτά απαιτούν προσεκτική διαμόρφωση.

Ρύζι. 10. Διαμόρφωση μπλοκ λειτουργιών ελεγκτή PID.

Παραθέτουμε τις πιο σημαντικές παραμέτρους του μπλοκ:
1. SP - καθορισμένη τιμή.
2. Φ/Β - τιμή της ελεγχόμενης μεταβλητής.
3. OP - τιμή του σήματος εξόδου (σήμα ελέγχου).
4. SL - είσοδος για τη ρύθμιση του σημείου ρύθμισης στην αυτόματη λειτουργία.
5. RemoteSP - είσοδος για τη ρύθμιση του σημείου ρύθμισης σε απομακρυσμένη λειτουργία.
6. Λειτουργία - είσοδος για τη ρύθμιση του τρόπου λειτουργίας του ρυθμιστή.
7. XP - αναλογικός συντελεστής συνιστώσας.
8. TD - διαφορικός συντελεστής συνιστώσας.
9. TI - συντελεστής αναπόσπαστου στοιχείου.
10. SL_Track - είσοδος για ενεργοποίηση της λειτουργίας παρακολούθησης.

Προηγουμένως, εξετάσαμε λεπτομερώς τις τρεις πρώτες παραμέτρους, επομένως δεν θα σταθούμε σε αυτές. Η παράμετρος Mode είναι πολύ ενδιαφέρουσα. Το γεγονός είναι ότι ο ρυθμιστής μπορεί να λειτουργήσει σε τουλάχιστον τρεις τρόπους ρύθμισης του σημείου ρύθμισης: αυτόματη, απομακρυσμένη και χειροκίνητη.

1. Η αυτόματη λειτουργία είναι η πιο συχνά χρησιμοποιούμενη. Σε αυτήν τη λειτουργία, το σημείο ρύθμισης του ελεγκτή ρυθμίζεται χειροκίνητα από τον χειριστή χρησιμοποιώντας την είσοδο SL.

2. Όταν λειτουργεί σε απομακρυσμένη λειτουργία, το σημείο ρύθμισης δημιουργείται μέσω προγραμματισμού σε άλλο λειτουργικό μπλοκ και αποστέλλεται στην είσοδο του ελεγκτή RemoteSP.

3. Όταν λειτουργεί σε χειροκίνητη λειτουργία, ο χειριστής έχει τη δυνατότητα να ρυθμίσει απευθείας την τιμή του σήματος ελέγχου χειρίζοντας την έξοδο OP. σε αυτόν τον τρόπο λειτουργίας, ο ελεγκτής αναστέλλει το σχηματισμό της ενέργειας ελέγχου OP σύμφωνα με τον αλγόριθμο PID.

Παράδειγμα. Ας πούμε ότι έχουμε ένα δοχείο νερού εξοπλισμένο με θερμάστρα. Αυτή τη στιγμή, η θερμοκρασία του νερού διατηρείται στους 80 C. Σε αυτή την περίπτωση, έχουμε:

Φ/Β είναι η τρέχουσα θερμοκρασία νερού που μετράται από τον αισθητήρα.
SP - τρέχουσα ρύθμιση που ορίζεται από τον χειριστή.
OP - σήμα ελέγχου ισχύος θερμαντήρα.

Έστω τη στιγμή PV=SP=80 °C, δηλ. δεν υπάρχει αναντιστοιχία. Σε αυτή την περίπτωση, OP=65% (ο θερμαντήρας λειτουργεί στο 65% της ονομαστικής του ισχύος) και ο ελεγκτής PID βρίσκεται σε αυτόματη λειτουργία. Τώρα, για κάποιο λόγο, ο χειριστής αποφασίζει να αλλάξει τον ελεγκτή σε χειροκίνητη λειτουργία και ορίζει τη νέα τιμή OP=20%. Λόγω της μείωσης της θερμικής ισχύος, μετά από κάποιο χρονικό διάστημα η θερμοκρασία του νερού πέφτει στους 35 °C. Τώρα PV=35 °C, SP=80 °C, OP=20%. Ας φανταστούμε τι θα συμβεί εάν ο ρυθμιστής επιστρέψει στην αυτόματη λειτουργία. Η αναντιστοιχία θα γίνει ίση με SP-PV=80-35=45 °C και, επομένως, η αναλογική συνιστώσα θα είναι ίση με XP*45/100. Τη στιγμή που ο ελεγκτής μεταβαίνει σε αυτόματη λειτουργία, αυτή η τιμή XP*45/100 (μαζί με άλλα εξαρτήματα) μεταδίδεται στην έξοδο OP και προκαλεί απότομη αλλαγή στο σήμα ελέγχου, αντίστοιχα, κατά XP*45/100%. Μια τέτοια απότομη (απότομη) αλλαγή στο σήμα ελέγχου ονομάζεται "χτύπημα". Πώς θα αντιδράσει η αντίσταση σε αυτό; Μάλλον όχι με τον καλύτερο τρόπο. Αν και πιθανότατα δεν θα συμβεί τίποτα με το θερμαντικό στοιχείο. Είναι πολύ χειρότερο εάν η συσκευή εντοπισμού θέσης λειτουργεί ως ενεργοποιητής.

Για να καταπολεμήσουν αυτό το φαινόμενο, κατέληξαν σε ένα πονηρό σχέδιο. Όταν ο ελεγκτής λειτουργεί σε χειροκίνητη λειτουργία, η ρύθμιση SP του παρακολουθεί συνεχώς την τρέχουσα τιμή PV (λειτουργία παρακολούθησης), έτσι ώστε το σφάλμα να είναι πάντα ίσο με 0 (SP=PV). Σε αυτήν την περίπτωση, κατά τη μετάβαση από χειροκίνητη σε αυτόματη ή απομακρυσμένη λειτουργία, δεν παρατηρείται σοκ. Η παράμετρος SL_Track απαιτείται για την ενεργοποίηση/απενεργοποίηση αυτής της λειτουργίας. Κατά κανόνα, η λειτουργία παρακολούθησης παραμένει στο SL_Track=1.

Γενικές πληροφορίες

Συνήθως, όταν χρησιμοποιείται ένας ελεγκτής αναλογικού-ολοκληρωτικού παραγώγου ή PID (PID-Proportional-Integral-Derivative) και ρυθμίζεται σωστά, επιτυγχάνεται καλύτερη ακρίβεια ελέγχου σε σύγκριση με έναν ελεγκτή on-off (ρελέ). Αλλά για τη βέλτιστη ρύθμιση του ελεγκτή και, ως αποτέλεσμα, την απόκτηση της επιθυμητής ποιότητας ελέγχου, είναι απαραίτητο να κατανοήσουμε τους μηχανισμούς και τις αρχές λειτουργίας του ελεγκτή PID.
Με τον έλεγχο PID, το σήμα ελέγχου εξαρτάται όχι μόνο από τη διαφορά μεταξύ της τρέχουσας και της καθορισμένης τιμής (το μέγεθος του σφάλματος ή της αναντιστοιχίας), αλλά και από το συσσωρευμένο σφάλμα (ολοκληρωμένο) και από τον ρυθμό μεταβολής του σφάλματος με την πάροδο του χρόνου ( διαφορικός). Ως αποτέλεσμα, ο ελεγκτής PID παρέχει μια τιμή του σήματος ελέγχου στην οποία το σφάλμα σε σταθερή κατάσταση τείνει στο μηδέν. Η ποιότητα του ελέγχου καθορίζεται από πολλούς παράγοντες.

Οπου:
Xp - αναλογική ζώνη
Ei = (SP-PV) = (σημείο ρύθμισης-ρεύμα) = σφάλμα (αναντιστοιχία)
Td - σταθερά χρόνου διαφοροποίησης
∆Ei - διαφορά στα σφάλματα γειτονικών μετρήσεων (Ei - Ei-1)
Δtmeas - χρόνος μεταξύ γειτονικών μετρήσεων (ti - t i-1)
Ti - σταθερά χρόνου ολοκλήρωσης
- Το ποσό των αναντιστοιχιών που συσσωρεύεται από το i-ο βήμα (ολοκληρωμένο άθροισμα)
Είναι εύκολο να διαπιστωθεί ότι το σήμα ελέγχου είναι το άθροισμα τριών συνιστωσών: αναλογικό (όρος 1), διαφορικό (όρος 2) και ολοκληρωτικό (όρος 3).
Η αναλογική συνιστώσα εξαρτάται από το τρέχον σφάλμα Ei και αντισταθμίζει το τρέχον σφάλμα ανάλογα με το μέγεθός του.
Η διαφορική συνιστώσα εξαρτάται από τον ρυθμό μεταβολής του σφάλματος ∆Ei / ∆tmeas και αντισταθμίζει τις ξαφνικές διαταραχές.
Το ενσωματωμένο στοιχείο συσσωρεύει το σφάλμα ελέγχου, το οποίο επιτρέπει στον ελεγκτή PID να διατηρεί μηδενικό σφάλμα σε σταθερή κατάσταση (εξαλείφει το στατικό σφάλμα ελέγχου).
Συνήθως, ένας ελεγκτής PID έχει πρόσθετες παραμέτρους εκτός από τρεις συντελεστές (Xp, Ti, Td). Ας τα δούμε λεπτομερέστερα χρησιμοποιώντας το παράδειγμα ενός στιγμιότυπου οθόνης του μενού παραμέτρων ελεγκτή PID για τη συσκευή " ".

Ρύζι. 1

Μπορεί να υπάρχουν πολλά κανάλια ελέγχου PID (έξοδοι) στη συσκευή και καθένα από αυτά έχει τις δικές του παραμέτρους. Επομένως, επιλέξτε το επιθυμητό κανάλι στην πρώτη στήλη.
Η πηγή ανάδρασης από το αντικείμενο ελέγχου (τρέχουσα ελεγχόμενη τιμή) μπορεί να είναι οποιοδήποτε κανάλι μέτρησης της συσκευής, επομένως πρέπει να επιλέξετε το επιθυμητό κανάλι μέτρησης στη στήλη OWNER.
Ο ελεγκτής PID μπορεί να ελέγχει τόσο σύμφωνα με το νόμο της άμεσης λογικής (έλεγχος φούρνου) όσο και με τον αντίστροφο νόμο (έλεγχος μιας μονάδας ψύξης). Επιλέξτε την επιθυμητή λογική λειτουργίας.
Το σημείο ρύθμισης (SP) είναι η επιθυμητή τιμή στην οποία πρέπει να φτάσει ο ελεγκτής σε σταθερή κατάσταση.
Xp - ζώνη αναλογικότητας. Ρυθμίζεται σε μονάδες της ελεγχόμενης τιμής (για τον θερμοστάτη σε μοίρες). Η αναλογική ζώνη ονομάζεται έτσι επειδή μόνο σε αυτήν ((SP - Xp)...(SP + Xp)) η αναλογική συνιστώσα του ελεγκτή PID μπορεί να παράγει την ισχύ του σήματος ελέγχου εξόδου σε αναλογία με το σφάλμα. Και πέρα ​​από τα όριά της η ισχύς θα είναι είτε 0% είτε 100%. Έτσι, όσο πιο στενή είναι αυτή η ζώνη, τόσο πιο γρήγορη είναι η απόκριση του ρυθμιστή, αλλά πολύ υψηλή ταχύτητα μπορεί να εισάγει το σύστημα σε λειτουργία αυτοταλάντωσης.
Ti είναι η σταθερά χρόνου ολοκλήρωσης.
Td είναι η χρονική σταθερά διαφοροποίησης.
Η τρέχουσα ισχύς είναι μια παράμετρος πληροφοριών.
Η ελάχιστη και η μέγιστη ισχύς καθορίζουν τα όρια ισχύος της εξόδου του ελεγκτή PID.
Η ισχύς έκτακτης ανάγκης είναι η ισχύς που παράγεται από τον ρυθμιστή όταν ένας αισθητήρας ή ένα κανάλι μέτρησης δυσλειτουργεί. Με αυτόν τον τρόπο μπορείτε να εξασφαλίσετε αρνητική θερμοκρασία στον θάλαμο ψύξης ή να αποτρέψετε την ψύξη του φούρνου ακόμη και σε περίπτωση έκτακτης ανάγκης.
Η τελευταία παράμετρος είναι η περίοδος PWM. Αυτή η παράμετρος είναι ίδια για όλους τους ελεγκτές PID, επειδή Τα κανάλια PWM συγχρονίζονται μεταξύ τους από ένα χρονόμετρο. Το σήμα PWM σάς επιτρέπει να ρυθμίσετε την ισχύ ρυθμίζοντας τον κύκλο λειτουργίας του σήματος (το πλάτος του παλμού ρυθμίζεται σε σταθερή συχνότητα διαμόρφωσης). Το μέγεθος bit PWM (ο αριθμός των θέσεων ισχύος) είναι 8192 διακριτές (13 bit). Περίοδος PWM (από 1 ms έως 250 sec). Αυτή η παράμετρος εξαρτάται από τον τύπο και τις δυνατότητες μεταγωγής των εκτελεστικών διακοπτών ισχύος (ρελέ m.b., μίζα, ρελέ στερεάς κατάστασης, triac). Όσο μεγαλύτερη είναι η συχνότητα μεταγωγής (όσο μικρότερη είναι η περίοδος), τόσο μεγαλύτερες είναι οι απώλειες θερμότητας στους διακόπτες (τετραγωνική εξάρτηση των απωλειών από τη συχνότητα) και τόσο μεγαλύτερη είναι η φθορά των μηχανικών διακοπτών, αλλά τόσο καλύτερη είναι η ποιότητα της ρύθμισης. Είναι σημαντικό να βρείτε μια μέση λύση.

Ρύθμιση του αναλογικού στοιχείου (Xp)

Πριν ρυθμίσετε την αναλογική ζώνη, τα ακέραια και διαφορικά στοιχεία απενεργοποιούνται, η σταθερά ολοκλήρωσης ορίζεται στο μέγιστο δυνατό (Ti = max) και η σταθερά διαφοροποίησης στο ελάχιστο δυνατό (Td = 0). Μια ασφαλής τιμή σημείου ρύθμισης ορίζεται ίση με (0,7…0,9)×SP, όπου SP είναι το πραγματικό σημείο ρύθμισης του συστήματος που ρυθμίζεται. Η αναλογική ζώνη ορίζεται στο ελάχιστο δυνατό (Xp = 0).
Σε αυτή την περίπτωση, ο ρυθμιστής εκτελεί τις λειτουργίες ενός ρυθμιστή ρελέ δύο θέσεων με υστέρηση ίση με μηδέν. Η παροδική απόκριση καταγράφεται.

Ρύζι. 2


To είναι η αρχική θερμοκρασία στο σύστημα.
Tsp - καθορισμένη θερμοκρασία (σημείο ρύθμισης).
ΔT - εύρος διακυμάνσεων θερμοκρασίας.
Δt - περίοδος διακυμάνσεων της θερμοκρασίας.
Ρυθμίστε την αναλογική ζώνη ίση με το εύρος των διακυμάνσεων της θερμοκρασίας: Xp = ∆T. Αυτή η τιμή εξυπηρετεί
πρώτη προσέγγιση για τη ζώνη αναλογικότητας.
Η απόκριση του βήματος θα πρέπει να αναλυθεί ξανά και η αναλογική τιμή ζώνης να προσαρμοστεί εάν είναι απαραίτητο. Πιθανές επιλογές για μεταβατικά χαρακτηριστικά φαίνονται στο Σχ. 3.
Ρύζι. 3


Τύπος απόκρισης βήματος 1: Η αναλογική τιμή ζώνης είναι πολύ μικρή, η απόκριση βήματος απέχει πολύ από τη βέλτιστη. Η αναλογική ζώνη πρέπει να αυξηθεί σημαντικά.
Μεταβατική απόκριση τύπου 2: Στην παροδική απόκριση παρατηρούνται απόσβεση ταλαντώσεων (5 - 6 περίοδοι). Εάν στο μέλλον σχεδιάζεται να χρησιμοποιηθεί το διαφορικό στοιχείο του ελεγκτή PID, τότε η επιλεγμένη τιμή της αναλογικής ζώνης είναι η βέλτιστη. Για την περίπτωση αυτή, η προσαρμογή της αναλογικής ζώνης θεωρείται πλήρης.
Εάν τα διαφορικά εξαρτήματα δεν θα χρησιμοποιηθούν στο μέλλον, συνιστάται η περαιτέρω αύξηση της αναλογικής ζώνης έτσι ώστε να ληφθούν μεταβατικά χαρακτηριστικά τύπου 3 ή 4.
Μεταβατική απόκριση τύπου 3: Η παροδική απόκριση παρουσιάζει μια μικρή υπέρβαση και ταχέως αποσυντιθέμενες ταλαντώσεις (1 έως 2 περιόδους). Αυτός ο τύπος παροδικής απόκρισης παρέχει καλή απόδοση και γρήγορη επίτευξη της ρυθμισμένης θερμοκρασίας. Στις περισσότερες περιπτώσεις, μπορεί να θεωρηθεί βέλτιστο εάν το σύστημα επιτρέπει εκπομπές (υπερθέρμανση) κατά τη μετάβαση από τη μια θερμοκρασία στην άλλη.
Οι υπερβάσεις εξαλείφονται αυξάνοντας περαιτέρω την αναλογική ζώνη έτσι ώστε να επιτυγχάνεται μια απόκριση βήματος τύπου 4.
Τύπος απόκρισης μετάβασης 4: Η θερμοκρασία πλησιάζει ομαλά την τιμή σταθερής κατάστασης χωρίς υπερτάσεις ή διακυμάνσεις. Αυτός ο τύπος παροδικής απόκρισης μπορεί επίσης να θεωρηθεί βέλτιστος, ωστόσο, η ταχύτητα του ελεγκτή είναι ελαφρώς μειωμένη.
Βήμα απόκρισης τύπου 5: Μια πολύ μεγάλη προσέγγιση στην τιμή σταθερής κατάστασης υποδεικνύει ότι η αναλογική ζώνη είναι πολύ μεγάλη. Η δυναμική και στατική ακρίβεια της ρύθμισης εδώ είναι χαμηλή.
Πρέπει να σημειωθούν δύο περιστάσεις. Πρώτον, σε όλες τις περιπτώσεις που συζητήθηκαν παραπάνω, η τιμή θερμοκρασίας σταθερής κατάστασης στο σύστημα δεν συμπίπτει με την τιμή του σημείου ρύθμισης. Όσο μεγαλύτερη είναι η αναλογική ζώνη, τόσο μεγαλύτερη είναι η υπολειπόμενη αναντιστοιχία. Δεύτερον, η διάρκεια των μεταβατικών διεργασιών είναι μεγαλύτερη, τόσο μεγαλύτερη είναι η ζώνη αναλογικότητας. Επομένως, θα πρέπει να προσπαθήσουμε να επιλέξουμε τη ζώνη αναλογικότητας όσο το δυνατόν μικρότερη. Ταυτόχρονα, η υπολειπόμενη αναντιστοιχία, χαρακτηριστική των καθαρά αναλογικών ελεγκτών (P-controllers), αφαιρείται από το αναπόσπαστο στοιχείο του ελεγκτή.

Ρύθμιση του διαφορικού στοιχείου (Td)

Αυτό το βήμα υπάρχει μόνο εάν χρησιμοποιείται ελεγκτής PID με πλήρη χαρακτηριστικά. Εάν δεν πρόκειται να χρησιμοποιηθεί ένα διαφορικό στοιχείο (χρησιμοποιείται ένας ελεγκτής αναλογικού-ολοκληρώματος (PI), τότε αυτό το βήμα θα πρέπει να παραλειφθεί.
Στο προηγούμενο στάδιο, καθορίστηκε μια ζώνη αναλογικότητας που αντιστοιχεί στην μεταβατική απόκριση του τύπου 2, στην οποία υπάρχουν αποσβεσμένες ταλαντώσεις (βλ. Εικ. 3, καμπύλη 2, Εικ. 4, καμπύλη 1).

Ρύζι. 4


Η σταθερά χρόνου διαφοροποίησης Td πρέπει να ρυθμιστεί έτσι ώστε το χαρακτηριστικό μετάβασης να μοιάζει με την καμπύλη 2 στο Σχήμα. 4. Ως πρώτη προσέγγιση, η χρονική σταθερά διαφοροποίησης γίνεται ίση με Τδ = 0,2×∆t.
Είναι ενδιαφέρον ότι η διαφορική συνιστώσα εξαλείφει τις αποσβεσμένες ταλαντώσεις και κάνει την παροδική απόκριση παρόμοια με τον Τύπο 3 (βλ. Εικόνα 3). Σε αυτήν την περίπτωση, η αναλογική ζώνη είναι μικρότερη από ό,τι για τον τύπο 3. Αυτό σημαίνει ότι η δυναμική και στατική ακρίβεια ελέγχου παρουσία ενός διαφορικού στοιχείου (ελεγκτής PD) μπορεί να είναι υψηλότερη από ό,τι για έναν ελεγκτή P.

Ρύθμιση του ενσωματωμένου στοιχείου (Ti)

Μετά τη ρύθμιση της αναλογικής συνιστώσας (και, εάν είναι απαραίτητο, της διαφορικής συνιστώσας), προκύπτει η μεταβατική απόκριση που φαίνεται στην παρακάτω εικόνα, καμπύλη 1.

Ρύζι. 5


Το ενσωματωμένο εξάρτημα έχει σχεδιαστεί για να αφαιρεί την υπολειπόμενη αναντιστοιχία μεταξύ της τιμής θερμοκρασίας που έχει καθοριστεί στο σύστημα και του σημείου ρύθμισης. Θα πρέπει να αρχίσετε να προσαρμόζετε τη σταθερά χρόνου ολοκλήρωσης με την τιμή Ti = ∆t.
Βήμα απόκρισης τύπου 2: Εμφανίζεται όταν η σταθερά χρόνου ολοκλήρωσης είναι πολύ μεγάλη. Η επίτευξη του καθορισμένου σημείου αποδεικνύεται ότι καθυστερεί πολύ.
Βήμα απόκρισης τύπου 4: Εμφανίζεται όταν η σταθερά χρόνου ολοκλήρωσης είναι πολύ μικρή. Εάν η σταθερά χρόνου ολοκλήρωσης μειωθεί περαιτέρω, ενδέχεται να προκύψουν ταλαντώσεις στο σύστημα.
Βήμα απόκρισης Τύπος 3: Βέλτιστη.

Πηγές πληροφοριών που χρησιμοποιήθηκαν

  • Sabinin Yu.A. Kovchin S.A. «Θεωρία ηλεκτρικής κίνησης»
  • Shreiner R. T. «Συστήματα δευτερεύοντος ελέγχου για ηλεκτρικές κινήσεις»
  • Olsson, Piani «Ψηφιακός αυτοματισμός και συστήματα ελέγχου»
  • Υλικά από τον ιστότοπο www.asu-tp.org