Πίνακας περιεχομένων:

Self Balancing Robot - Αλγόριθμος ελέγχου PID: 3 βήματα
Self Balancing Robot - Αλγόριθμος ελέγχου PID: 3 βήματα

Βίντεο: Self Balancing Robot - Αλγόριθμος ελέγχου PID: 3 βήματα

Βίντεο: Self Balancing Robot - Αλγόριθμος ελέγχου PID: 3 βήματα
Βίντεο: Lecture: 5/8/2020 (Digital Control Systems) 2024, Νοέμβριος
Anonim
Self Balancing Robot - Αλγόριθμος ελέγχου PID
Self Balancing Robot - Αλγόριθμος ελέγχου PID

Αυτό το έργο σχεδιάστηκε επειδή με ενδιέφερε να μάθω περισσότερα για τους αλγόριθμους ελέγχου και πώς να εφαρμόσω αποτελεσματικά λειτουργικούς βρόχους 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
Αλγόριθμος ελέγχου PID

Έχω γράψει έναν αλγόριθμο ελέγχου PID από την αρχή χρησιμοποιώντας τις βιβλιοθήκες «Arduino-KalmanFilter-master» και «Arduino-MPU6050-master» από το gitHub.

Η υπόθεση του αλγορίθμου έχει ως εξής:

  • Διαβάστε ακατέργαστα δεδομένα από MPU6050
  • Χρησιμοποιήστε το φίλτρο Kalman για να αναλύσετε δεδομένα τόσο από γυροσκόπιο όσο και από επιταχυνσιόμετρο για να ακυρώσετε ανακρίβειες στις αναγνώσεις γυροσκοπίου λόγω επιτάχυνσης του αισθητήρα. Αυτό επιστρέφει μια σχετικά εξομαλυμένη τιμή για το βήμα του αισθητήρα σε μοίρες σε δύο δεκαδικά ψηφία.
  • Υπολογίστε το σφάλμα E στη γωνία, δηλαδή: Η γωνία μεταξύ του αισθητήρα και του σημείου ρύθμισης.
  • Υπολογίστε το Αναλογικό σφάλμα ως (Σταθερότητα αναλογικότητας x σφάλμα).
  • Υπολογίστε το Ολοκληρωμένο Σφάλμα ως το τρέχον άθροισμα του (Σφάλμα σταθεράς ολοκλήρωσης x).
  • Υπολογίστε το σφάλμα παραγώγου ως σταθερό ως [(σταθερά διαφοροποίησης) x (αλλαγή σφάλματος / αλλαγή χρόνου)]
  • Συγκεντρώστε όλα τα σφάλματα για να δώσετε την ταχύτητα εξόδου που θα σταλεί στους κινητήρες.
  • Υπολογίστε σε ποια κατεύθυνση θα στρίψετε τους κινητήρες με βάση το πρόσημο της γωνίας σφάλματος.
  • Ο βρόχος θα τρέξει επ 'αόριστον και θα βασίζεται στην έξοδο καθώς η είσοδος ποικίλει. Είναι ένας βρόχος ανατροφοδότησης, που χρησιμοποιεί τις τιμές εξόδου ως νέες τιμές εισόδου για την επόμενη επανάληψη.

Το τελευταίο βήμα είναι να συντονίσετε τις παραμέτρους βρόχου PID, Ki & Kd.

  1. Ένα καλό σημείο εκκίνησης είναι να αυξήσετε αργά Kp μέχρι το ρομπότ να ταλαντεύεται γύρω από το σημείο ισορροπίας και να μπορεί να πιάσει πτώση.
  2. Στη συνέχεια, ξεκινήστε το Kd περίπου στο 1% της τιμής του Kp και αυξήστε αργά έως ότου εξαφανιστούν οι ταλαντώσεις και το ρομπότ γλιστρήσει ομαλά όταν πιέζεται.
  3. Τέλος, ξεκινήστε με το Ki περίπου 20% της Kp και διαφοροποιήστε μέχρι το ρομπότ να "ξεπεράσει" το σημείο ρύθμισης για να πιάσει ενεργά μια πτώση και να επιστρέψει στην κάθετη.

Συνιστάται: