Πίνακας περιεχομένων:
Βίντεο: Self Balancing Robot - Αλγόριθμος ελέγχου PID: 3 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:31
Αυτό το έργο σχεδιάστηκε επειδή με ενδιέφερε να μάθω περισσότερα για τους αλγόριθμους ελέγχου και πώς να εφαρμόσω αποτελεσματικά λειτουργικούς βρόχους PID. Το έργο βρίσκεται ακόμα σε φάση ανάπτυξης καθώς δεν έχει ακόμη προστεθεί μια μονάδα Bluetooth η οποία θα επιτρέπει τον έλεγχο του ρομπότ από smartphone με δυνατότητα Bluetooth.
Οι κινητήρες N20 DC που χρησιμοποιήθηκαν ήταν σχετικά φθηνοί και ως εκ τούτου παίζουν σημαντικό ρόλο. Αυτό οδηγεί σε μια μικρή ποσότητα τράνταγμα καθώς οι κινητήρες ξεπερνούν την «χαλάρωση» καθώς εφαρμόζει ροπή στους τροχούς. Ως εκ τούτου, είναι σχεδόν αδύνατο να επιτευχθεί τέλεια ομαλή κίνηση. Ο κώδικας που έχω γράψει είναι αρκετά απλός αλλά αποδεικνύει αποτελεσματικά τις δυνατότητες του αλγορίθμου PID.
Περίληψη έργου:
Το πλαίσιο του ρομπότ εκτυπώνεται 3D χρησιμοποιώντας έναν εκτυπωτή Ender 3 και έχει σχεδιαστεί για να ταιριάζει μεταξύ τους.
Το ρομπότ ελέγχεται από ένα Arduino Uno το οποίο λαμβάνει δεδομένα αισθητήρα από το MPU6050 και ελέγχει τους κινητήρες DC μέσω εξωτερικού οδηγού κινητήρα. Λειτουργεί με μπαταρία 7.4V, 1500mAh. Ο οδηγός μοτέρ ρυθμίζει αυτό στα 5V για να τροφοδοτήσει το Arduino και τροφοδοτεί 7,4V στους κινητήρες.
Το λογισμικό γράφτηκε από την αρχή με τη βοήθεια των βιβλιοθηκών «Arduino-KalmanFilter-master» και «Arduino-MPU6050-master» από το gitHub.
Προμήθειες:
- Τρισδιάστατα εκτυπωμένα ανταλλακτικά
- Arduino UNO
- MPU6050 6-Axis Sensor
- D. C Motor Driver
- N20 DC Motors (x2)
- Μπαταρία 9V
Βήμα 1: Κατασκευή ρομπότ
Εκτύπωση και συναρμολόγηση
Ολόκληρη η κατασκευή πρέπει να ταιριάζει με το πάτημα, αλλά έχω χρησιμοποιήσει superglue για να ασφαλίσω τα εξαρτήματα για να διασφαλίσω ότι το ρομπότ είναι εντελώς άκαμπτο κατά την εξισορρόπηση.
Έχω σχεδιάσει τα μέρη στο Fusion 360 και έχω βελτιστοποιήσει κάθε μέρος για εκτύπωση χωρίς στηρίγματα, ώστε να επιτρέπονται αυστηρότερες ανοχές και καθαρότερο φινίρισμα επιφάνειας.
Οι ρυθμίσεις που χρησιμοποιήθηκαν στον εκτυπωτή Ender 3 ήταν: 0.16mm Layer Heights @ 40% πλήρωση για όλα τα μέρη.
Βήμα 2: Ρομπότ τρισδιάστατης εκτύπωσης
Πλαίσιο (x1)
Αριστερός τροχός (x2)
Αριστερό περίβλημα κινητήρα (x2)
Θήκη Arduino (x1)
Βήμα 3: Αλγόριθμος ελέγχου PID
Έχω γράψει έναν αλγόριθμο ελέγχου PID από την αρχή χρησιμοποιώντας τις βιβλιοθήκες «Arduino-KalmanFilter-master» και «Arduino-MPU6050-master» από το gitHub.
Η υπόθεση του αλγορίθμου έχει ως εξής:
- Διαβάστε ακατέργαστα δεδομένα από MPU6050
- Χρησιμοποιήστε το φίλτρο Kalman για να αναλύσετε δεδομένα τόσο από γυροσκόπιο όσο και από επιταχυνσιόμετρο για να ακυρώσετε ανακρίβειες στις αναγνώσεις γυροσκοπίου λόγω επιτάχυνσης του αισθητήρα. Αυτό επιστρέφει μια σχετικά εξομαλυμένη τιμή για το βήμα του αισθητήρα σε μοίρες σε δύο δεκαδικά ψηφία.
- Υπολογίστε το σφάλμα E στη γωνία, δηλαδή: Η γωνία μεταξύ του αισθητήρα και του σημείου ρύθμισης.
- Υπολογίστε το Αναλογικό σφάλμα ως (Σταθερότητα αναλογικότητας x σφάλμα).
- Υπολογίστε το Ολοκληρωμένο Σφάλμα ως το τρέχον άθροισμα του (Σφάλμα σταθεράς ολοκλήρωσης x).
- Υπολογίστε το σφάλμα παραγώγου ως σταθερό ως [(σταθερά διαφοροποίησης) x (αλλαγή σφάλματος / αλλαγή χρόνου)]
- Συγκεντρώστε όλα τα σφάλματα για να δώσετε την ταχύτητα εξόδου που θα σταλεί στους κινητήρες.
- Υπολογίστε σε ποια κατεύθυνση θα στρίψετε τους κινητήρες με βάση το πρόσημο της γωνίας σφάλματος.
- Ο βρόχος θα τρέξει επ 'αόριστον και θα βασίζεται στην έξοδο καθώς η είσοδος ποικίλει. Είναι ένας βρόχος ανατροφοδότησης, που χρησιμοποιεί τις τιμές εξόδου ως νέες τιμές εισόδου για την επόμενη επανάληψη.
Το τελευταίο βήμα είναι να συντονίσετε τις παραμέτρους βρόχου PID, Ki & Kd.
- Ένα καλό σημείο εκκίνησης είναι να αυξήσετε αργά Kp μέχρι το ρομπότ να ταλαντεύεται γύρω από το σημείο ισορροπίας και να μπορεί να πιάσει πτώση.
- Στη συνέχεια, ξεκινήστε το Kd περίπου στο 1% της τιμής του Kp και αυξήστε αργά έως ότου εξαφανιστούν οι ταλαντώσεις και το ρομπότ γλιστρήσει ομαλά όταν πιέζεται.
- Τέλος, ξεκινήστε με το Ki περίπου 20% της Kp και διαφοροποιήστε μέχρι το ρομπότ να "ξεπεράσει" το σημείο ρύθμισης για να πιάσει ενεργά μια πτώση και να επιστρέψει στην κάθετη.
Συνιστάται:
Self Balancing Robot From Magicbit: 6 βήματα
Self Balancing Robot From Magicbit: Αυτό το σεμινάριο δείχνει πώς να φτιάξετε ένα αυτορυθμιζόμενο ρομπότ χρησιμοποιώντας το Magicbit devboard. Χρησιμοποιούμε το magicbit ως πίνακα ανάπτυξης σε αυτό το έργο που βασίζεται στο ESP32. Επομένως, οποιοσδήποτε πίνακας ανάπτυξης ESP32 μπορεί να χρησιμοποιηθεί σε αυτό το έργο
Robot Self-Balancing Robot: 7 Βήματα
Robot Self-Balancing Robot: Αυτό το εκπαιδευτικό θα περάσει από τη διαδικασία σχεδιασμού και κατασκευής για ένα ρομπότ που εξισορροπεί. Ως σημείωση, θέλω απλώς να πω ότι τα ρομπότ που εξισορροπούν δεν είναι μια νέα ιδέα και έχουν κατασκευαστεί και τεκμηριωθεί από άλλους. Θέλω να χρησιμοποιήσω αυτήν την ευκαιρία
ΕΝΑΛΛΑΚΤΙΚΟ ΕΛΕΓΧΟΥ ΣΗΜΑΤΟΣ ΓΕΝΝΗΤΡΙΑΣ ΕΛΕΓΧΟΥ ΓΙΑ ΕΛΕΓΧΟ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΧΥΤΗΤΑΣ (ESC): 7 Βήματα
ΕΝΑΛΛΑΚΤΙΚΟ ΕΛΕΓΧΟΥ ΕΓΧΕΙΡΙΔΙΟΥ ΣΗΜΑΤΟΣ ΓΕΝΙΚΟΥ ΓΙΑ ΤΗΝ ΗΛΕΚΤΡΟΝΙΚΗ ΤΑΧΥΤΗΤΑ (ESC): Πριν από λίγο καιρό δημοσίευσα ένα βίντεο (https://www.youtube.com/watch?v=-4sblF1GY1E) στο κανάλι μου στο YouTube όπου έδειξα πώς να φτιάχνω ανεμογεννήτρια από κινητήρα DC χωρίς ψήκτρες. Έκανα το βίντεο στα Ισπανικά και εξηγούσε ότι αυτός ο κινητήρας είχε δοθεί σε
PID ελεγχόμενη πλατφόρμα Stewart Balancing Ball Balancing: 6 βήματα
PID Controlled Ball Balancing Stewart Platform: Motivation and Overall Concept: Ως φυσικός στην εκπαίδευση, με ελκύει φυσικά και προσπαθώ να κατανοήσω τα φυσικά συστήματα. Έχω εκπαιδευτεί να λύνω πολύπλοκα προβλήματα, χωρίζοντάς τα στα πιο βασικά και βασικά συστατικά τους, τότε
Δημιουργία τηλεχειριζόμενου ρομπότ Arduino Self Balancing: B-robot EVO: 8 βήματα
Δημιουργία τηλεχειριζόμενου ρομπότ Arduino Self Balancing: B-robot EVO: ------------------------------------ -------------- ΕΝΗΜΕΡΩΣΗ: υπάρχει μια νέα και βελτιωμένη έκδοση αυτού του ρομπότ εδώ: Το B-robot EVO, με νέες δυνατότητες! ------------ ------------------------------------------ Πώς λειτουργεί; Το B-ROBOT EVO είναι ένα τηλεχειριστήριο έλεγχος