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

Arduino - PV MPPT Ηλιακός φορτιστής: 6 βήματα (με εικόνες)
Arduino - PV MPPT Ηλιακός φορτιστής: 6 βήματα (με εικόνες)

Βίντεο: Arduino - PV MPPT Ηλιακός φορτιστής: 6 βήματα (με εικόνες)

Βίντεο: Arduino - PV MPPT Ηλιακός φορτιστής: 6 βήματα (με εικόνες)
Βίντεο: Review Dan Cara setting Menggunakan Solar Charge Controller PWM 2024, Ιούλιος
Anonim
Image
Image
Μετατροπέας Buck
Μετατροπέας Buck

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

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

ΑΝ ΣΑΣ ΑΡΕΣΕΙ Η ΠΡΟΣΠΑΘΕΙΑ ΜΟΥ ΑΠΟ ΠΑΡΑΚΑΛΩ VΗΦΙΣΤΕ ΑΥΤΟ ΤΙΣ ΟΔΗΓΙΕΣ.

Βήμα 1: Τι είναι το MPPT και γιατί το χρειαζόμαστε;

Τα ηλιακά μας πάνελ είναι χαζά και δεν είναι έξυπνα για να κατανοήσουν τις συνθήκες της μπαταρίας. Ας υποθέσουμε ότι έχουμε ένα ηλιακό πάνελ 12v/100 watt και θα δώσει έξοδο μεταξύ 18V-21V εξαρτάται από τους κατασκευαστές, αλλά οι μπαταρίες έχουν ονομαστική τάση 12v, σε συνθήκες πλήρους φόρτισης θα είναι 13,6v και θα είναι 11,0v πλήρως απαλλάσσω. τώρα ας υποθέσουμε ότι οι μπαταρίες μας είναι σε φόρτιση 13v, τα πάνελ δίνουν 18v, 5.5A σε 100% αποδοτικότητα εργασίας (δεν είναι δυνατόν να έχουμε 100%, αλλά ας υποθέσουμε). Οι συνηθισμένοι ελεγκτές έχουν έναν ρυθμιστή τάσης PWM ckt ο οποίος μειώνει την τάση στο 13,6, αλλά κανένα κέρδος ρεύματος. Παρέχει προστασία μόνο από υπερφόρτιση και ρεύμα διαρροής στα πάνελ κατά τη διάρκεια της νύχτας.

Έτσι έχουμε 13,6v*5,5A = 74,8 watt.

Χάνουμε περίπου 25 watt.

Για να αντιμετωπίσω αυτό το ζήτημα χρησιμοποίησα τον μετατροπέα smps buck. Αυτοί οι τύποι μετατροπής έχουν απόδοση άνω του 90%.

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

Για την επίλυση αυτού του ζητήματος χρησιμοποιούνται αλγόριθμοι MPPT. Το MPPT (Maximum Power Point Tracking) όπως υποδηλώνει το όνομα, αυτός ο αλγόριθμος παρακολουθεί τη μέγιστη διαθέσιμη ισχύ από τα πάνελ και μεταβάλλει τις παραμέτρους εξόδου για να διατηρήσει την κατάσταση.

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

Βήμα 2: ΠΩΣ ΛΕΙΤΟΥΡΓΕΙ το MPPT;

Δεν θα το συζητήσω λεπτομερώς. οπότε αν θέλετε να το καταλάβετε ρίξτε μια ματιά σε αυτόν τον σύνδεσμο -Τι είναι το MPPT;

Σε αυτό το έργο έχω παρακολουθήσει τα χαρακτηριστικά εισόδου V-I και την έξοδο V-I επίσης. πολλαπλασιάζοντας την είσοδο V-I και την έξοδο V-I μπορούμε να έχουμε την ισχύ σε watt.

ας πούμε ότι έχουμε 17 V, 5 A, δηλαδή 17x5 = 85 watt οποιαδήποτε στιγμή της ημέρας. ταυτόχρονα η έξοδός μας είναι 13 V, 6A δηλ. 13x6 = 78 Watt.

Τώρα το MPPT θα αυξήσει ή θα μειώσει την τάση εξόδου σε σύγκριση με την προηγούμενη ισχύ εισόδου/εξόδου.

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

Βήμα 3: Εφαρμογή MPPT στο Arduino

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

// Iout = ρεύμα εξόδου

// Vout = τάση εξόδου

// Vin = τάση εισόδου

// Καρφίτσα = ισχύς εισόδου, Πιν_προηγούμενη = τελευταία ισχύς εισόδου

// Vout_last = τελευταία τάση εξόδου, Vout_sense = παρούσα τάση εξόδου

void regulate (float Iout, float Vin, float Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_previous && Vout_sense <Vout_last) || (PinVout_last)))

{

αν (duty_cycle> 0)

{

duty_cycle -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

αλλιώς εάν ((VoutVout_last) || (Πι

{

εάν (κύκλος_εργασίας <240)

{duty_cycle+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Καρφίτσωμα;

Vin_last = Vin;

Vout_last = Vout;

}

Βήμα 4: Μετατροπέας Buck

Έχω χρησιμοποιήσει mosfet καναλιού για να κάνω τον μετατροπέα buck. συνήθως οι άνθρωποι επιλέγουν mosfet καναλιού για εναλλαγή υψηλής πλευράς και εάν επιλέξουν mosfet καναλιού N για τον ίδιο σκοπό από το IC οδηγού θα απαιτείται ή ιμάντα εκκίνησης ckt.

αλλά τροποποίησα το ckt μετατροπέα buck για να έχει χαμηλή πλευρική αλλαγή μέσω mosfet καναλιού Ν. Χρησιμοποιώ κανάλι Ν επειδή πρόκειται για χαμηλό κόστος, υψηλή ονομαστική ισχύ και χαμηλότερη κατανάλωση ισχύος. αυτό το έργο χρησιμοποιεί mosfet λογικού επιπέδου IRFz44n, έτσι ώστε να μπορεί να οδηγηθεί απευθείας από έναν πείρο arduino PWM.

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

όπως μπορείτε να δείτε στο ckt παραπάνω έχω τοποθετήσει το mosfet σε τάση -ve, χρησιμοποιώντας έτσι +12v από τον πίνακα ως γείωση. αυτή η διαμόρφωση μου επιτρέπει να χρησιμοποιήσω ένα mosfet καναλιού N για μετατροπέα buck με ελάχιστα εξαρτήματα.

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

Έχω συνδέσει το Arduino στα τερματικά εισόδου Solar και χρησιμοποιώντας τη γραμμή -ve του ως βάση για το arduino. μπορούμε εύκολα να μετρήσουμε το volateg εισόδου σε αυτό το σημείο χρησιμοποιώντας ένα διαχωριστή τάσης ckt σύμφωνα με τις απαιτήσεις μας. αλλά δεν μπορούμε να μετρήσουμε την τάση εξόδου τόσο εύκολα καθώς δεν έχουμε κοινό έδαφος.

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

Vout_sense_temp = Vout_sense_temp*0.92+float (raw_vout)*volt_factor*0.08; // μέτρηση της μεταβλητότητας στο gnd εισόδου και στο gnd εξόδου.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // αλλάξτε τη διαφορά τάσης μεταξύ δύο βάσεων σε τάση εξόδου..

Για τρέχουσες μετρήσεις έχω χρησιμοποιήσει μονάδες ανίχνευσης ρεύματος ACS-712. Έχουν τροφοδοτηθεί από arduino και έχουν συνδεθεί με την είσοδο gnd.

οι εσωτερικοί χρονοδιακόπτες τροποποιούνται για να κερδίσουν 62,5 Khz PWM στο pin D6. που χρησιμοποιείται για την οδήγηση του mosfet. θα απαιτηθεί μια δίοδος αποκλεισμού εξόδου για την παροχή αντίστροφης διαρροής και προστασίας αντίστροφης πολικότητας χρησιμοποιώντας δίοδο schottky της επιθυμητής βαθμολογίας ρεύματος για το σκοπό αυτό. Η τιμή του επαγωγέα εξαρτάται από τις απαιτήσεις συχνότητας και ρεύματος εξόδου. μπορείτε να χρησιμοποιήσετε ηλεκτρονικούς διαθέσιμους αριθμομηχανές μετατροπέα buck ή να χρησιμοποιήσετε φορτίο 100uH 5A-10A. ποτέ μην υπερβαίνετε το μέγιστο ρεύμα εξόδου του επαγωγέα κατά 80%-90%.

Βήμα 5: Τελικό άγγιγμα -

Image
Image

Μπορείτε επίσης να προσθέσετε πρόσθετες λειτουργίες στον φορτιστή σας. όπως το δικό μου, έχουν επίσης οθόνη LCD με τις παραμέτρους και 2 διακόπτες για λήψη εισόδου από το χρήστη.

Θα ενημερώσω τον τελικό κώδικα και θα ολοκληρώσω το διάγραμμα ckt πολύ σύντομα.

Βήμα 6: ΕΝΗΜΕΡΩΣΗ:- Πραγματικό διάγραμμα κυκλώματος, BOM & κώδικας

Διαγωνισμός Φώτων 2017
Διαγωνισμός Φώτων 2017

ΕΚΣΥΓΧΡΟΝΙΖΩ:-

Έχω ανεβάσει τον κωδικό, το bom και το κύκλωμα. είναι λίγο διαφορετικό από το δικό μου, γιατί είναι πιο εύκολο να το φτιάξεις.

Συνιστάται: