Μέτρηση ρεύματος κορεσμού πυρήνων.

Είδαμε σε πρόσφατο άρθρο μου (ΕΔΩ), σχετικά με το ρεύμα κορεσμού σε πυρήνες πηνίων. Είδαμε πως επηρεάζει την συμπεριφορά του πηνίου και τι προβλήματα μπορεί να προκαλέσει ένα πηνίο με κορεσμένο πυρήνα. Θα κατασκευάσουμε ένα κύκλωμα που θα μας βοηθά στον υπολογισμό του ρεύματος κορεσμού.

DSC02272

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

Satr-1

Στο παραπάνω κύκλωμα έχουμε μία πηγή τάσης, ένα πηνίο έναν διακόπτη και μία αντίσταση διακλάδωσης (Shunt) των 0,1 Ohm (100 mOhm). Ο παλμογράφος είναι συνδεδεμένος στα άκρα της αντίστασης. Κάθε ampere που διαρρέει την αντίσταση προκαλεί μία πτώση τάσης των 0,1 volts. Έχουμε δηλαδή 0,1 volts/Ampere. Μόλις κλείσει ο διακόπτης το πηνίο διαρρέεται από ρεύμα την μορφή που έχει το ρεύμα θα μπορούμε τα την δούμε στον παλμογράφο. Ένα τέτοιο κύκλωμα δεν είναι πρακτικό. Ο διακόπτης δεν μπορεί να λειτουργήσει στον ρυθμό που χρειάζεται ο παλμογράφος.

Satr-2

Στο παραπάνω κύκλωμα ο μηχανικός διακόπτης έχει αντικατασταθεί από έναν ηλεκτρονικό. Από ένα n-channel MOSFET. Το MOSFET οδηγείται από ένα σύστημα παραγωγής παλμών PWM. Αυτό που απομένει είναι να κατασκευάσουμε το κύκλωμα οδήγησης του MOSFET και παραγωγής παλμών (PWM).

saturation.sch

Παραπάνω βλέπουμε την τελική μορφή που έχει το κύκλωμα που σχεδίασα. Το κύκλωμα οδήγησης του MOSFET αποτελείτε από ένα ολοκληρωμένο κύκλωμα (HEF4011BP) και τα τρανζίστορ Q1,Q2,Q3. Επίσης υπάρχουν και δύο δίοδοι προστασίας του MOSFET (D1, D2). Όλο το κύκλωμα τροφοδοτείται από τάση των 12 volts. Στο κύκλωμα είναι απαραίτητα και η ύπαρξη μίας συστοιχίας πυκνωτών (C1 έως C5). Οι πυκνωτές αυτοί είναι απαραίτητοι για να μπορέσει το κύκλωμα να ανταποκριθεί στα υψηλά ρεύματα που δημιουργούνται κατά το κλείσιμο του διακόπτη. Η αντίσταση των 0,1 Ohm δημιουργήθηκε με παράλληλη σύνδεση 10 αντιστάσεων του ενός Ohm.

Η παραγωγή των παλμών προέρχεται από ένα Arduino Uno. Ναι είναι overkill, αλλά αυτό είχα μπροστά μου. Αν κάποιος κατασκευάσει το κύκλωμα για μόνιμη χρήση μπορεί να χρησιμοποιήσει κάποιον ATtiny25 για παράδειγμα. Οι παλμοί που πρέπει να παράγει ο μικροελεγκτή μας είναι της τάξης των μsec. Από μερικά μsec μέχρι μερικά εκατοντάδες μsec. Πρέπει επίσης ο χρόνος που ο παλμός είναι στο μηδέν πολύ μεγαλύτερος. Περίπου 25 φορές μεγαλύτερος. Αυτό είναι απαραίτητο για να προλαβαίνει το ρεύμα στο πηνίο να φτάνει στο μηδέν κατά την διάρκεια που ο παλμός είναι στο μηδέν (discontinued mode).

Αξίζει να σημειώσουμε πως ο παλμογράφος “κοιτά” δύο σήματα. Στο ένα κανάλι έχουμε την τάση στα άκρα της αντίστασης των 0,1 Ohm. Το δεύτερο σήμα που χρησιμοποιούμε είναι ο παλμός ενεργοποίηση του MOSFET που οδηγεί το κύκλωμα σκανδαλισμού (triger). αυτό βοηθά στο να βλέπουμε στην οθόνη του παλμογράφου ολόκληρο το φαινόμενο. Με το που ανιχνεύσει τον παλμό ο παλμογράφος θα ξεκινήσει και η απεικόνιση της τάσης στα άκρα της αντίστασης.

Κώδικας για το Arduino (ATmega328).

#include <avr/io.h>
#include <util/delay.h>

#define MINIMUM_ON_TIME 1
#define OFF_TIME 20

void adc_init(void);
uint16_t read_ADC(uint8_t);
void delay_us(uint16_t);

int main(void) {
  
    int16_t adc_val;

    DDRB |= (1<<PB0);
    DDRC &= ~(1<<PC0);
    
    adc_init();
	
    while(1) {	
      
      adc_val = read_ADC(PC0);

      if(adc_val < MINIMUM_ON_TIME){
	  adc_val = MINIMUM_ON_TIME;
      };

      PORTB |= (1<<PB0);
      delay_us(adc_val);
      PORTB &= ~(1<<PB0);
      delay_us(adc_val * OFF_TIME);
    };

    return 0; 
}


void delay_us(uint16_t us){
  
   for (uint16_t i=0; i<us; i++){
      _delay_us(1);
   };
}

void adc_init(void){

    // ADC on single shot mode.
    ADMUX |= (1<<REFS0);                         // AVCC, external cap on AREF.
    ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);  // Prescaler 128 (16 MHz/64=125KHz).
    ADCSRA |= (1<<ADEN);                         // Enable ADC.

}

uint16_t read_ADC(uint8_t ADC_channel){
  
    int16_t adc_val;

    // ADC channel selection via ADMUX register.

    ADMUX = (ADMUX & 0xF0) | (ADC_channel & 0x0F);
    ADCSRA |= (1<<ADSC);    // Start ADC conversion.

    while( ADCSRA & (1<<ADSC) ){};   // Wait until conversion is completed.
    
    adc_val = ADC;

    return adc_val;
}
Advertisements
This entry was posted in Electronics and tagged , , , , , , , , , , , , , , , , , . Bookmark the permalink.

2 Responses to Μέτρηση ρεύματος κορεσμού πυρήνων.

  1. Tnpiko says:

    Πολυ ενδιαφερον το blog σου.Εχαριστω πολυ για την βοηθεια σε πολλα κυκλωματα.
    Το ρευμα κορεσμου ενος πηνιου δεν εξαρταται και απο την αυτεπαγωγη του;Δηλαδη σε εναν πυρηνα αν αυξησουμε την αυτεπαγωγη του το ρευμα κορεσμου δεν μειωνεται;

    • alexkaltsas says:

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s