Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 12

Θέμα: PID έλεγχος απο τη θεωρία στη πράξη

  1. #1
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή PID έλεγχος απο τη θεωρία στη πράξη

    Γενικά γνωρίζω κάποια θεωρητικά πράγματα για τους pid και pi ελεγκτές, πχ παίρνουμε το error το παραγωγίζουμε το ολοκληρώνουμε, το πολλαπλασιάζουμε , τα προσθέτουμε και στο τέλος έχουμε την διορθωμένη έξοδο, άλλο κεφάλαιο είναι η ρύθμιση με διάφορες μεθόδους,έχω τρέξει και πρόγραμμα εξομείωσης, όλα ωραία ως εδώ



    το πρόβλημα μου είναι οτι δεν ξέρω πως εφαρμόζεται στη πραγματικότητα , σε ενα δικό μου σύστημα με mE,
    Είχα φτιάξει μια περσίδα μια φορά με ένα μοτέρ και ένα ποντεσιόμετρο στον ίδιο άξονα,
    που κάθε φορά πήγαινε και στεκότανε σε μία συγκεκριμέμη θέση,
    υπολόγιζα το error(που ήταν η τάση του ποντεσιομέτρου) και έλεγα στο μοτέρ να κουνηθεί μέχρι να μηδενιστεί το error
    Σε ένα τέτοιο σύστημα πως μπορώ να εφαρμόσω pid έλεγχο? παιρνω το error που είναι η τάση του ποντεσιμέτρου, το παραγωγίζω, το ολοκληρώνω, το πολλαπλασιάζω ,τα προσθαίτω όλα αυτά και
    αυτό το νούμερο που το στέλνω?

    κάτι αντίστοιχο γίνεται με τη ταχύτητα μίας ρόδας, η είσοδος μου είναι παλμοί-ταχύτητα, η έξοδος μου pwm,
    πως γίνεται η σύνδεση του error με την έξοδο μου?
    δηλαδή μπορώ να ξέρω τη ταχύτητα που θέλω,
    ξέρω το error, υπολογίζω τη ΣΜ του PID, αλλά στο pwm τι παλμούς στέλνω?

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

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη picdev : 20-08-11 στις 18:55

  2. #2
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Για κοίτα στα παρακάτω post μήπως σε βοηθήσουν.
    http://www.hlektronika.gr/forum/showthread.php?t=57570
    http://www.hlektronika.gr/forum/showthread.php?t=55372


    καλύτερα θα ήταν να το έβαζες στην κατηγορία "ψηφιακά"

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

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

    οποτε τωρα εχω εναν αριθμο στην μεταβλητη PID απο το 0 μεχρι το 1000
    το καθε δευτερολεπτο εχει 1000ms
    οποτε δημιουργουμε ενα PWM με περιοδο 1sec
    πx αν το PID ειναι ισο με 333 τοτε η εξοδος ειναι HIGH για τα 333 πρωτα ms και LOW για τα υπολοιπα 667ms

    ότι h μεταβλητή pid είναι απο το 0-1000 εξαρτάται απο το οτι ο A/D είναι απο το 0-1024?

    μετά γράφει
    βεβαια υπαρχουν και αλλοι τροποι υπολογισμου της εξοδου
    καθως και αλλοι τροποι οδηγησης της εξοδου

    θα του στειλω pm να δει τη συζήτηση, μάλλον εκεί είναι το πρόβλημα μου η οδήγηση της εξόδου

    0 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη Mihos
    Όνομα
    Μιχάλης
    Εγγραφή
    Nov 2006
    Περιοχή
    Αθήνα
    Μηνύματα
    689

    Προεπιλογή

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

    Αυτά τα συστήματα είναι διακριτού χρόνου (δουλέυουν με κάποιο ρολόι) και σε πρώτη φάση αυτό που μπορούν να κάνουν είναι να παίρνουν διαδοχικές μετρήσεις του σφάλματος. Ας ονομάσουμε αυτά τα σφάλματα pi όπου i είναι ο άυξων αριθμός της μέτρησης. Μετά από κάθε μέτρηση θα πρέπει να υπολογίσουν τον "διαφορικό παράγοντα" di. Ο διαφορικός παράγοντας προκείπτει απλά από τη διαφορά di=pi - pi-1. Δηλαδή αντί να γίνει παραγώγηση απλά αφαιρούμε το τρέχον σφάλμα από το αμέσως προηγούμενο. Τέλος υπολογίζει τον "ολοκληρωτικό παράγοντα" ii ο οποίος είναι το άθροισμα όλων των προηγούμενων σφαλμάτων και του τρέχοντως ii = p0+p1+...+pi = ii-1+ii.

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

    Αφού έχουν υπολογιστεί τα pi,ii και di το κάθε ένα από αυτά πολλαπλασιάζεται με έναν συντελεστή (Κp, Ki και Kd αντίστοιχα) και σχηματίζεται το άθροισμα PID = Κp*pi + Ki*ii + Kd*di. Με αυτή τη τιμή θα οδηγήσουμε διάταξη ελέγχου. Αν π.χ. η διάταξη ελένχου είναι ένα μοτερ που ανεβάζει μία περσίδα το εκάστοτε pi είναι η απόσταση της περσίδας από την επιθυμιτή θέση και η τιμή PID είναι η τάση που θα δόσουμε στο μοτερ. Η όλη διαδικασία επαναλαμβάνεται μέχρι η περσίδα να σταθεροποιηθεί στη θέση που θέλουμε.

    Τώρα όλη η ιστορία του PID ελέγχου είναι το ποιές τιμές θα έχουν οι συντελεστές Κp, Ki και Kd. Οι τιμές αυτών των συντελεστών εξαρτόνται από τα χαρακτηριστικά του φορτίου που ελέγχεται και της διάταξης που το ελέγχει. Αν λοιπόν κάποιος δεν έχει κάνει Phd στο PID ο καλύτερος τρόπος να ορίσει αυτές τις τιμές είναι με δοκιμές (trial & error). Δοκίμάζουμε δηλαδή διάφορες τιμές στους συντελεστές μέχρι να παρατηρήσουμε ότι η περσίδα πηγαίνει στη θέση της ικανοποιητικά γρήγορα και χωρίς έντονες ταλαντώσεις.

    0 Not allowed! Not allowed!

  5. Ένα μέλος ευχαρίστησε τον Mihos για αυτό το χρήσιμο μήνυμα:

    spiroscfu (21-08-11)

  6. #5
    Μέλος Το avatar του χρήστη Mihos
    Όνομα
    Μιχάλης
    Εγγραφή
    Nov 2006
    Περιοχή
    Αθήνα
    Μηνύματα
    689

    Προεπιλογή

    Το PWM θα πρέπει φυσικά να δημιουργεί παλμούς με Duty Cycle = PID/Vp όπου Vp είναι το πλάτος των παλμών του pwm και PID η τάση που έχει υπολογιστεί ότι πρέπει να πάει στο μοτερ. Τέλος για να είμαστε σωστοί το μοτερ θα πρέπει να μπορεί να κινείται και προς τις δύο κατευθύνσεις καθώς πολλές φορές η τιμή του PID μπορεί να είναι αρνητική... Επίσης πολύ σημαντικό ρόλο παίζει η συχνότητα με την οποία παίρνουμε μετρήσεις του σφάλματος η οποία δεν πρέπει να είναι ούτε πολύ μικρή ούτε πολύ μεγάλη...

    0 Not allowed! Not allowed!

  7. #6
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    Miho πολυ καλός αξίζεις συγχαρητήρια για το ποστ σου θα το διαβάσω πιο αναλυτικά και θα κάνω και άλλες ερωτήσεις

    οι υπολογισμοί δεν μπορούν να γίνουν στο πεδίο του Ζ? όταν μιλάμε για διακριτό έλεγχο? άρα να γίνουν απλές αλγεβρικές πράξεις?
    Μπορείς πχ να υπολογιστεί η ΣΜ με ZOH αφού έχουμε ψηφιακό σύστημα? Γενικά η ΣΜ μπαίνει μέσα σε mE? ή όλη η δουλεία γίνεται με τον υπολογισμό του σφάλματος μέσω αισθητήρων, το ZOH πχ είναι το pwm? ο A/D υπάρχει ενσωματομένος , άρα όλα τα θεωρητικά γίνονται απο τον mE?
    γενικά είμαι μπερδεμένος ανάμεσα στη θεωρία και στη πράξη
    Εδώ βλέπω οτι υπολογίζεται η παράγωγος και το ολοκλήρωμα σύμφνωμα με το ορισμό

    Οι γνώσεις απο που προέρχονται αν επιτρέπεται και πάλι ευχαριστώ,
    γενικά δεν είχα βρεί πληροφορίες για την εφαρμογή του pid με mE ,πραγματικά απορώ γιατί δεν γινόταν πουθενά μια τέτοια επεξήγηση, ούτε καθηγητές δεν ήξεραν... μού είχαν πει για simulink που φτιάχνεις σύστημα και μετά σου παράγει κώδικα με dspic αλλα μόνο και μόνο να φτιάξεις μία διαφορική εξίσωση απο πραγματικό σύστημα θέλει αρκετές γνώσεις που δυστηχώς δεν έχω.
    αν πάμε σε DSP επεξεργαστές εκεί αλλάζουν τα πράγματα?

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη picdev : 20-08-11 στις 21:18

  8. #7
    Μέλος Το avatar του χρήστη QED
    Όνομα
    Βασίλης
    Εγγραφή
    Aug 2004
    Περιοχή
    Λάρισα
    Μηνύματα
    145

    Προεπιλογή

    Φίλε μου ρίξε και εδώ μια ματιά

    http://www.mechatronics.gr/en/rd/12-pid-controller.html

    0 Not allowed! Not allowed!
    Physics is like sex; sure, you can get some interesting results, but that's not why we do it. -- Richard P. Feynman ( 1918 - 1988 )

  9. #8
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Μιχάλη είσαι ωραίος αλλά και το link του φίλου Βασίλη είναι εξίσου καλό.

    0 Not allowed! Not allowed!

  10. #9
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    Γενικά η Συνάρτη μεταφοράς στο πεδίο του s ή στο Ζ μπαίνει ποτέ μέσα στον Me? η δεν χρειάζεται?
    Η ΣΜ αντιπροσωπεύει αυτό που κάνει ο A/D και οι εντολές που δίνουμε στα μοτερ κτλ?

    0 Not allowed! Not allowed!

  11. #10
    Μέλος Το avatar του χρήστη Mihos
    Όνομα
    Μιχάλης
    Εγγραφή
    Nov 2006
    Περιοχή
    Αθήνα
    Μηνύματα
    689

    Προεπιλογή

    Η ίδια η συνάρτηση μεταφοράς της διάταξης δεν υπάρχει κανένας λόγος να είναι γνωστή στον ελεγκτή. Ο ελεγκτής το μόνο που θέλει να ξέρει από εμάς είναι οι τρεις συντελεστές Kp, Ki και Kd. Θεωρητικά αυτοί οι συντελεστές μπορούν να υπολογιστούν με βάση τη συνάρτηση μεταφοράς. Ο υπολογισμός αυτός όμως είναι πολύ δύσκολη υπόθεση και θέλει εξιδεικευμένες γνώσεις (που φυσικά δεν έχω) ενώ τις περισσότερες φορές είναι δύσκολο να ξέρουμε και την ίδια τη συνάρτηση μεταφοράς (πχ. δεν αρκεί να ξέρουμε τη ΣΜ του κινητήρα μας μόνο. Ο κινητήρας θα είναι συνδεδεμένος σε ένα φορτίο με κάποια διάταξη και η συνολική ΣΜ του συστήματος δεν είναι αυτή του κινητήρα.). Επομένως για εμάς τους κοινούς θνητούς ο καλύτερος τρόπος είναι οι δοκιμές. Σκοπός μας πάντα είναι η γρήγορη απόκριση και η αποφυγή ταλαντώσεων.

    Τώρα για να μην πηγαίνει κανείς τελειώς στα τυφλά, υπάρχουν κάποιες βασικές παραδοχές που μπορεί να ακολουθεί. Αυτό το PDF κάνει μία πολύ ωραία, απλή και κατανοητή περιγραφή. Αν βαριέσται να το διαβάσετε όλο πηγαίνετε κατυθείαν στη παράγραφο Tunning που περιγράφει πως μπορούμε να μαντέψουμε τις τιμές των συντελεστών Kp, Ki και Kd και στη παράγραφο Sampling Rate που περιγράφεί ποια πρέπει να είναι η σωστή συχνότητα δειγματοληψείας του σφάλματος. Τα δύο βασικότερα που πρέπει να καθορίσουμε σε έναν PID controller...

    0 Not allowed! Not allowed!

Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Απαντήσεις: 7
    Τελευταίο Μήνυμα: 24-01-15, 13:11
  2. Απαντήσεις: 51
    Τελευταίο Μήνυμα: 27-04-14, 22:06
  3. encoder σε PID έλεγχο dc μοτερ
    By picdev in forum Μικροελεγκτές
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 06-07-12, 22:29
  4. Απαντήσεις: 7
    Τελευταίο Μήνυμα: 18-05-11, 12:31
  5. Απαντήσεις: 14
    Τελευταίο Μήνυμα: 17-10-07, 10:42

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας