Mesure de l'électricité. Partie 1. Mesure de tension et de courant

image

introduction


Bonjour à tous! Après la fin du cycle sur les capteurs, il a été question d'un plan différent pour mesurer les paramètres de consommation des appareils ménagers et peu électriques. Qui consomme combien, comment connecter quoi mesurer, quelles subtilités se produisent, etc. Il est temps de révéler toutes les cartes de cette zone.
Dans cette série d'articles, nous aborderons le sujet de la mesure des paramètres de l'électricité. Ces paramètres sont en fait un très grand nombre, que je vais essayer de raconter progressivement en petites séries.
Jusqu'à présent, les plans sont en trois séries:
  • Mesure de l'électricité.
  • La qualité de l'électricité.
  • Appareils pour mesurer les paramètres de l'électricité.

Dans le processus d'analyse, nous allons résoudre certains problèmes pratiques sur les microcontrôleurs jusqu'à ce qu'un résultat soit atteint. Bien sûr, la majeure partie de ce cycle sera consacrée à la mesure de la tension alternative et peut être utile à tous les ventilateurs pour contrôler les appareils électriques de leur maison intelligente.
Sur la base des résultats de l'ensemble du cycle, nous fabriquerons un certain compteur électrique intelligent avec accès Internet. Des ventilateurs très connus pour contrôler les appareils électriques de leur maison intelligente peuvent apporter toute l'assistance possible dans la mise en œuvre de la partie communication sur la base, par exemple, de MajorDomo. Faisons de OpenSource une maison intelligente meilleure, pour ainsi dire.
Dans cette série en deux parties, nous aborderons les questions suivantes:
  • Connexion de capteurs de courant et de tension dans des appareils CC, ainsi que des circuits CA monophasés et triphasés;
  • Mesure des valeurs actuelles de courant et de tension;
  • Mesure du facteur de puissance;
  • Pleine puissance active et réactive;
  • Consommation d'énergie;

Par tacle, vous trouverez les réponses aux deux premières questions de cette liste. Je n'ai pas délibérément abordé les problèmes de précision des indicateurs de mesure et de cette série je ne suis satisfait que des résultats obtenus avec une précision de plus ou moins de sabots. Je consacrerai certainement un article séparé à cette question dans la troisième série.

1. Connexion des capteurs



Dans la dernière série sur les capteurs de tension et de courant, j'ai parlé des types de capteurs, mais je n'ai pas expliqué comment les utiliser et où les placer. Il est temps de le réparer
Connexion de capteurs DC

Il est clair que l'ensemble du cycle sera consacré aux systèmes à courant alternatif, mais nous passerons également rapidement en revue les circuits à courant continu, car cela peut nous être utile lors du développement d'alimentations à courant continu. Prenons, par exemple, un convertisseur abaisseur PWM classique :

Figure 1. Un convertisseur abaisseur PWM
Notre objectif est de fournir une tension de sortie stable. De plus, sur la base des informations du capteur de courant, il est possible de contrôler le mode de fonctionnement de l'inductance L1, en empêchant sa saturation, et également de mettre en œuvre une protection en courant du convertisseur. Et franchement, il n'y a pas d'options particulières pour installer des capteurs.
Un capteur de tension sous la forme d'un diviseur résistif R1-R2, qui est le seul capable de fonctionner en courant continu, est installé en sortie du convertisseur. En règle générale, un microcircuit de convertisseur spécialisé possède une entrée de rétroaction et met tout en œuvre pour garantir qu'à cette entrée (3) il existe un certain niveau de tension prescrit dans la documentation du microcircuit. Par exemple, 1,25 V. Si notre tension de sortie correspond à ce niveau - tout va bien - nous appliquons directement la tension de sortie à cette entrée. Sinon, réglez le séparateur. Si nous devons fournir une tension de sortie de 5 V, le diviseur doit fournir un facteur de division de 4, c'est-à-dire, par exemple, R1 = 30 k, R2 = 10 k.
Un capteur de courant est généralement installé entre la source d'alimentation et le convertisseur et sur la puce. A partir de la différence de potentiel entre les points 1 et 2, et avec une résistance connue, les résistances Rs peuvent déterminer la valeur actuelle du courant de notre inductance. L'installation d'un capteur de courant entre les sources et la charge n'est pas une bonne idée, car le condensateur de filtrage sera coupé par la résistance des consommateurs de courants pulsés. L'installation d'une résistance dans l'espace du fil commun ne promet également rien de bon - il y aura deux niveaux de terre avec lesquels il est toujours amusant de jouer.
Les problèmes de chute de tension peuvent être évités en utilisant des capteurs de courant sans contact - par exemple, des capteurs à effet Hall:

Figure 2. Capteur de courant sans contact
Cependant, il existe un moyen plus délicat de mesurer le courant. Après tout, la tension chute également sur le transistor et le même courant circule que l'inductance qui le traverse. Par conséquent, par la chute de tension à travers elle, vous pouvez également déterminer la valeur actuelle du courant. Honnêtement, si vous regardez la structure interne des circuits de conversion, par exemple de Texas Instruments, cette méthode se retrouve aussi souvent que les précédentes. La précision de cette méthode n'est certainement pas la plus élevée, mais cela suffit pour que la coupure actuelle fonctionne.

Fig. 3. Transistor comme capteur de courant Nous faisons de
même dans d'autres circuits de convertisseurs similaires, qu'ils soient boosters ou inverseurs.
Cependant, il est nécessaire de mentionner séparément les convertisseurs linéaires et flyback des transformateurs.

Fig. 4. Connexion des capteurs de courant dans les convertisseurs flyback
Ils peuvent également utiliser soit une résistance externe, soit un transistor dans son rôle.
Avec cela, nous avons connecté les capteurs aux convertisseurs DC / DC. Si vous avez des suggestions pour d'autres options, je serai heureux d'y ajouter un article.
1.2 Connexion des capteurs aux circuits CA monophasés

Dans les circuits AC, nous avons une sélection beaucoup plus large de capteurs possibles. Examinons plusieurs options.
Le plus simple est l'utilisation d'un diviseur de tension résistif et d'un shunt de courant.

Fig. 5. Connexion de capteurs à résistance,
mais elle présente quelques inconvénients importants:
Premièrement, nous fournirons soit une amplitude significative du signal provenant du shunt actuel, en lui allouant une grande quantité d'énergie, soit nous serons satisfaits de la petite amplitude du signal et nous l'amplifierons ensuite. Et d'autre part, la résistance crée une différence de potentiel entre le neutre du réseau et le neutre de l'appareil. Si l'appareil est isolé, peu importe, si l'appareil a une borne de mise à la terre, nous risquons de rester sans signal du capteur de courant, car nous le court-circuiterons. Vous devriez peut-être essayer des capteurs qui fonctionnent sur d'autres principes.
Par exemple, nous utilisons des transformateurs de courant et de tension, ou un capteur de courant à effet Hall et un transformateur de tension. Ici, il y a beaucoup plus de possibilités de travailler avec des équipements, car le fil neutre n'a pas de pertes, et surtout - dans les deux cas, il y a une isolation galvanique de l'équipement de mesure, ce qui peut souvent être utile. Cependant, il faut garder à l'esprit que les capteurs de courant et de tension du transformateur ont une réponse en fréquence limitée et si nous voulons mesurer la composition harmonique des distorsions, ce n'est pas un fait qui fonctionnera.

Fig. 6. Connexion du transformateur et des capteurs de courant et de tension sans contact
1.3 Connexion de capteurs à des circuits ca multiphasés

Dans les réseaux multiphasiques, notre capacité à connecter des capteurs de courant est légèrement inférieure. Cela est dû au fait que le shunt de courant ne peut pas être utilisé du tout, car la différence de potentiel entre les shunts de phase fluctuera à des centaines de volts et je ne connais aucun contrôleur à usage général dont les entrées analogiques peuvent résister à une telle moquerie.
Bien sûr, il existe une façon d'utiliser les shunts de courant - pour chaque canal, il est nécessaire de faire une entrée analogique isolée galvaniquement. Mais il est beaucoup plus facile et plus fiable d'utiliser d'autres capteurs.
Dans mon analyseur de qualité, j'utilise des diviseurs de tension résistifs et des capteurs de courant à effet Hall à distance.

Fig.7 Capteurs de courant dans un réseau triphasé
Comme le montre la figure, nous utilisons une connexion à quatre fils. Bien sûr, au lieu de capteurs de courant sur l'effet Hall, vous pouvez prendre des transformateurs de courant ou des boucles de Rogowski.
Au lieu de diviseurs résistifs, des transformateurs de tension peuvent être utilisés, à la fois pour un système à quatre fils et à trois fils.
Dans ce dernier cas, les enroulements primaires des transformateurs de tension sont reliés par un triangle, et le secondaire par une étoile, dont le point commun est le point commun du circuit de mesure

Fig. 8. Utilisation de transformateurs de tension dans un réseau triphasé

2 Valeur actuelle de la tension et du courant



Le moment est venu de résoudre le problème de la mesure de nos signaux. La signification pratique pour nous est principalement la valeur actuelle du courant et de la tension.
Permettez-moi de vous rappeler le matériel du cycle du capteur. À l'aide de l'ADC de notre microcontrôleur à intervalles réguliers, nous fixerons la valeur de tension instantanée. Ainsi, pendant la période de mesure, nous aurons un tableau de données du niveau de la valeur de tension instantanée (pour le courant, tout est similaire).

Fig. 9. Une série de valeurs de tension instantanées
Notre tâche consiste à calculer la valeur efficace. Pour commencer, nous utilisons la formule intégrale:
(1)
Dans un système numérique, nous devons nous limiter à un certain quantum temporel, nous allons donc à la somme:
(2)
est la période d'échantillonnage de notre signal, et- le nombre d'échantillons pour la période de mesure. Quelque part ici, dans une vidéo, je commence à frotter le jeu sur l'égalité des zones. J'ai dû dormir ce jour-là. =)
Dans les microcontrôleurs MSP430FE4252, qui sont utilisés dans les compteurs électriques Mercury monophasés, 4096 relevés sont effectués pour une période de mesure de 1, 2 ou 4 secondes. Sur T = 1s et N = 4096, nous nous appuierons plus loin. De plus, 4096 points par seconde nous permettront d'utiliser des algorithmes de transformée de Fourier rapides pour déterminer le spectre harmonique jusqu'à 40 harmoniques, comme l'exige GOST. Mais plus à ce sujet dans la prochaine série.
Nous décrivons l'algorithme de notre programme. Nous devons assurer un démarrage stable de l'ADC toutes les 1/8192 secondes, car nous avons deux canaux et nous mesurerons ces données en alternance. Pour ce faire, configurez la minuterie et le signal d'interruption redémarrera automatiquement l'ADC. Tous les ADC le font.
Nous écrirons le futur programme sur Arduino, comme beaucoup l'ont sous la main. Jusqu'à présent, nous avons un intérêt purement académique.
Ayant une fréquence de quartz système de 16 MHz et une minuterie 8 bits (pour que la vie ne ressemble pas à du miel), nous devons assurer la fréquence de fonctionnement de toute interruption de minuterie avec une fréquence de 8192 Hz.
Nous sommes tristes du fait que 16 MHz n'est pas complètement divisé comme nous en avons besoin et que la fréquence finale de la minuterie est de 8198 Hz. Nous fermons les yeux sur une erreur de 0,04% et lisons encore 4096 échantillons par canal.
Nous sommes tristes que l'interruption de débordement dans arduino soit occupée à calculer le temps (il est responsable des millis et du retard, donc cela cessera de fonctionner normalement), nous utilisons donc l'interruption en comparaison.
Et nous réalisons soudain que le signal nous parvient bipolaire, et que msp430fe4252 s'en sort parfaitement. Nous nous contentons d'un ADC unipolaire, par conséquent, nous assemblons un simple convertisseur d'un signal bipolaire en un unipolaire sur un amplificateur opérationnel:

Figure 10. Un convertisseur d'un signal bipolaire en unipolaire
De plus, notre tâche est de nous assurer que notre sinusoïde oscille par rapport à la moitié de la tension de référence - alors nous allons soit soustraire la moitié de la plage ou activer l'option dans les paramètres ADC et obtenez les valeurs des signes.
L'Arduino a un ADC 10 bits, donc nous soustrayons la moitié du résultat non signé dans 0-1023 et obtenons -512-511. Nous
vérifions le modèle assemblé dans LTSpiceIV et nous assurons que tout fonctionne comme il se doit. Dans le matériel vidéo, nous vérifions également expérimentalement.

Figure 11. Résultat de la simulation. Le vert est le signal d'origine, le bleu est la sortie
Esquisse pour Arduino pour un canal
void setup()
{
  autoadcsetup();
  DDRD |=(1<<PD2)|(1<<PD3);
  Serial.begin(38400);
}


double urms = 0;
double utemp = 0;
int umoment = 0;
int N = 0;
int flag = 0;
void loop()
{
  if (flag){
    flag = 0;
    Serial.println(urms);
  }
}
int i = 255;

void autoadcsetup(){
  //set up TIMER0 to  4096Hz
  //TIMER0_OVF will be the trigger for ADC
  /*normal mode, prescaler 16
   16MHz / 64 / 61 = 4098 Hz 0.04% to 4096Hz*/
  TCCR0B = (1 << CS01)|(1 << CS00);//timer frequency = clk/64
  OCR0A = 60;//61-1
  TIMSK0 = (1<<OCIE0A);
  //set ADC.
  ADMUX =  (1 << REFS0);//8-bit mode, ADC0 channel, AVVCC as ref
  ADCSRA = (1 << ADEN) | (1 << ADATE) | (1 << ADIE) | (1 << ADPS2);//TUrn ADC On, trigger enable, Interrupt enable, sysclk/16=1MHz_ADC_clk=76kHz conv freq(13ticks per conversion)
  ADCSRB = (1<< ADTS1) | (1<<ADTS0) | (1<<MUX5);//Auto trigger source
}

ISR(TIMER0_COMPA_vect){
  if (PIND & (1<<PD2)){
    PORTD &= ~(1<<PD2);
  }
  else{
    PORTD |=(1<<PD2);
  }
  TCNT0 = 0;

}


ISR(ADC_vect){

  if( ( UCSR0A & (1<<UDRE0)) ){
    umoment = ADCL;//copy result.
    umoment += (ADCH<<8);
    umoment = umoment - 512;
    utemp = utemp + pow((double)(umoment),2)/4096;
    N++;
    if (N == 4095){
      urms = sqrt(utemp)/102;
      N = 0;
      utemp = 0;
      flag = 1;
      if (PIND & (1<<PD3)){
        PORTD &= ~(1<<PD3);
      }
      else{
        PORTD |=(1<<PD3);
      }
    }
  }
}



Le programme est écrit dans l'IDE Arduino pour le microcontrôleur ATmega1280. Sur ma carte de débogage, les 8 premiers canaux sont routés pour les besoins internes de la carte, donc le canal ADC8 est utilisé. Il est possible d'utiliser ce croquis pour une carte avec ATmega168, cependant, vous devez sélectionner le canal correct.
À l'intérieur des interruptions, nous secouons quelques broches de service pour voir visuellement la fréquence de numérisation de travail.
Quelques mots sur l'origine du coefficient 102. Au premier démarrage, un signal d'amplitudes différentes a été fourni par le générateur, une indication de la valeur de tension effective a été lue sur l'oscilloscope et la valeur calculée en unités absolues de l'ADC a été prise à partir de la console.
Umax, VUrms, InDénombré
32,08212
2,51,73176
21,38141
1,51,03106
10,68471
0,50,35836
0,250,179dix-neuf

En divisant les valeurs de la troisième colonne par les valeurs de la seconde, nous obtenons une moyenne de 102. Ce sera notre coefficient «d'étalonnage». Cependant, on peut noter que lorsque la tension diminue, la précision diminue fortement. Cela est dû à la faible sensibilité de notre ADC. En fait, 10 décharges pour des calculs précis sont désastreusement faibles et si la tension dans la prise peut être mesurée de cette manière, alors mettre un ADC 10 bits pour mesurer le courant consommé par la charge sera un crime contre la métrologie.

À ce stade, nous nous arrêterons. Dans la partie suivante, nous examinerons les trois autres questions de cette série et procéderons en douceur à la création de l'appareil lui-même.

Le firmware présenté, ainsi que les autres firmware de cette série (puisque je filme du matériel vidéo plus vite que la préparation d'articles), vous le trouverez dans le référentiel sur GitHub: github.com/radiolok/arduino_rms_count
Quant au développement du compteur électrique, la référence de TI SimpleLink WiFi CC3200 sera prise comme base SmartPlug , dont les nouvelles juste l'autre jour ont volé à mon courrier. J'aime vraiment le microcontrôleur CC3200, nous allons donc développer un booster pour le lunchpad existant et réaliser toutes les fonctionnalités qui nous intéressent. N'oubliez pas de le faire fonctionner si bien sur d'autres microcontrôleurs.

Les commentaires sont invités progchip666, pour commentaires et ajouts au matériel, ainsi que smart_alex comme précédemment intéressé à mesurer le courant et la tension en utilisant Arduino.

Source: https://habr.com/ru/post/fr384597/


All Articles