Chapitre3. Modélisation et simulation
Chapitre3. Modélisation et Simulation
3.1 Introduction :
La modélisation est la conception et l'utilisation d'un modèle. Selon son objectif
(représentation simplifiée, compréhension, prédiction) et les moyens utilisés, la
modélisation
est
dite
mathématique,
géométrique,
3D,
empirique,
mécaniste
(ex. : modélisation de réseau trophique dans un écosystème), cinématique... Elle nécessite
généralement d'être calée par des observations ou mesures faites in situ, lesquelles servent
aussi à paramétrer, calibrer ou ajuster le modèle, par exemple en intégrant des facteurs
d'influences qui s'avèreraient nécessaires.
La simulation de phénomènes est un outil utilisé dans le domaine de la recherche et
du développement. Elle permet d'étudier les réactions d'un système à différentes
contraintes pour en déduire les résultats recherchés en se passant d'expérimentation.
Pour ce chapitre on va voir la simulation et modélisation d’un système de consommation
de l’energie éléctrique sur Isis.
3.2 Modélisation et Simulation :
3.2.1 problématique :
On veut faire un mesure d’énergie à l’aide d’une Arduino et découvrire le compteur
d'énergie AC utilisant Arduino,comment mesurer l'énergie AC avec Arduino,comment
mesurer la tension alternative avec Arduino,comment mesurer le courant alternatif avec
Arduino,mesurez l'énergie AC avec Arduino - compteur d'énergie AC, et comment on peut
mesurer l’énergie AC avec mon Arduino ?
3.2.2 Solution :
On va faire une simulation sur Isis pour mesurer l’énergie à l’aide de :

Compteur de puissance Arduino 220V AC.

Compteur d'énergie AC simple avec Arduino.

Compteur d'énergie électrique utilisant Arduino.

Créez un simple compteur d'énergie Arduino.

Créez un wattmètre AC à l'aide d'Arduino UNO.

Compteur d’énergie domestique Arduino simple.
1|Page
Chapitre3. Modélisation et simulation

Compteur d’énergie électrique AC.

Compteur d'énergie Arduino.
3.2.2.1 Schéma sur Isis :
Figure3.1 : Schéma de compteur d'énergie AC utilisant Arduino.
Pour le mesure on a utilisé un capteur ACS712 , ce capteur se branche en série avec la
charge sur un circuit alternatif (AC) ou continu (DC) et permet de mesurer le courant qui
traverse le capteur. Il utilise le champ magnétique généré par le courant (et donc l'effet hall)
pour mesurer le courant qui le traverse. Le module propose en sortie une tension continue
proportionnelle au courant à raison de 0.066V/A (66mV par ampère). Vous pouvez donc lire
cette tension sur une entrée analogique de votre Arduino et obtenir une valeur de courant
voir une valeur de puissance (W, en multipliant le courant mesuré par la tension du circuit)
Ce capteur, fonctionnant par effet Hall, est donc sensible au champ magnétique qui pourrait
fausser vos mesures. Le simple fait d'approcher un aimant de l'ACS712 modifie la tension de
sortie du capteur.
Il est également important de faire une lecture a vide (sans courant) pour obtenir la valeur
de calibration Vref du module (qui devrait être Vcc/2 soit 2.5V). Enfin, si vous câblez
2|Page
Chapitre3. Modélisation et simulation
correctement la charge vous lirez une augmentation de la tension en sortie mais si vous
inversez le câblage vous lirez une diminution de la tension de sortie.
Figure3.2 : capteur ACS 712
Pour afficher les résultats on a utilisé une LCD LM044L , cette LCD transmet les informations
utiles d'un système à un utilisateur. Il affichera donc des données susceptibles d'être
exploiter par l'utilisateur d'un système, comme affichage de tension , de courant,etc…
Figure3.3 : LCD LM044L
Un transformateur pour modifier la tension efficace délivrée par une source d'énergie
électrique alternative, une transformation qu'il effectue avec un excellent rendement.
3|Page
Chapitre3. Modélisation et simulation
Figure3.4 : TRAN-2P2S
Un Arduin UNO qui permet de raccorder des capteurs (entrées) et des actionneurs (sorties).
Elle est constituée de plusieurs composants électroniques dont le principal est un
microcontrôleur permettant de stocker et d'exécuter notre programme informatique.
Dans l’entrée on a le capteur ACS712 et sortie on a LCD LM044L.
Figure3.5 :Arduino UNO
4|Page
Chapitre3. Modélisation et simulation
Des résistances pour faire la mesure de l'opposition appliquée au courant dans un circuit
électrique.
Figure3.6 :résistances
Un condensateur électronique pour stocker de l'énergie (une charge d'électrons), et la
rendre, si besoin. Par cela, il tend à stabiliser l'alimentation électrique en lissant les
variations qui peuvent survenir au sein de celle-ci.
Figure3.7 : Condensateur électronique
Des alternateurs pour fournir l'énergie électrique dans notre schéma.
Figure3.8 :Alternateur
5|Page
Chapitre3. Modélisation et simulation
3.2.2.2 Code Arduino :
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
#include "EmonLib.h"
EnergyMonitor emon1;
const int Sensor_Pin = A1;
int sensitivity = 185;
int offsetvoltage = 2542;
void setup()
{
emon1.voltage(A0,187, 1.7);
lcd.begin(20, 4);
lcd.setCursor(0,0);
lcd.print(" THE BRIGHT LIGHT ");
lcd.setCursor(0,1);
lcd.print(" AC ENERGY METER
");
}
void loop()
{
emon1.calcVI(20,2000);
int Voltage = emon1.Vrms;
lcd.setCursor(0,2);
lcd.print("V = ");
lcd.print(Voltage);
lcd.print("V ");
6|Page
Chapitre3. Modélisation et simulation
unsigned int temp=0;
float maxpoint = 0;
for(int i=0;i<500;i++)
{
if(temp = analogRead(Sensor_Pin), temp>maxpoint)
{
maxpoint = temp;
}
}
float ADCvalue = maxpoint;
double eVoltage = (ADCvalue / 1024.0) * 5000;
double Current = ((eVoltage - offsetvoltage) / sensitivity);
double AC_Current = ( Current ) / ( sqrt(2) );
lcd.print("I = ");
lcd.print(AC_Current,2);
lcd.print("A
");
int Power = (Voltage * AC_Current);
lcd.setCursor(0,3);
lcd.print("P = ");
lcd.print(Power);
lcd.print("W ");
long milisec = millis();
long time=milisec/1000;
float Energy = (Power*time)/3600;
lcd.print("E = ");
7|Page
Chapitre3. Modélisation et simulation
lcd.print(Energy,1);
lcd.print("Wh ");
delay(200);
}
3.2.2.3 Explication de code :
// include the library code:
#include <LiquidCrystal.h> //library for LCD
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

Premièrement inclure le code de la bibliothèque et initialiser la bibliothèque avec les
numéros des broches de l'interface.
// Measuring Voltage
#include "EmonLib.h"
EnergyMonitor emon1;

// Include Emon Library
// Create an instance
Mesure de voltage : inclure la bibliothèque Emon et créer une intance.
// Measuring Current Using ACS712
const int Sensor_Pin = A1; //Connect current sensor with A1 of Arduino
int sensitivity = 185; // use 100 for 20A Module and 66 for 30A Module
int offsetvoltage = 2542;

Mesure du courant à l'aide de l'ACS712 : Connectez le capteur de courant à l'A1
d'Arduino.

const int Sensor_Pin = A1 : Connectez le capteur de courant à l'A1 d'Arduino.

int sensitivity = 185 : utilisez 100 pour le module 20A et 66 pour le module 30A.

int offsetvoltage = 2542 : tension de décalage = 2542 ;
void setup()
{
emon1.voltage(A0,187, 1.7); // Voltage: input pin, calibration, phase_shift
lcd.begin(20, 4); // set up the LCD's number of columns and rows:
lcd.setCursor(0,0);
lcd.print(" THE BRIGHT LIGHT
");
lcd.setCursor(0,1);
lcd.print(" AC ENERGY METER
");
}
void loop()
{
8|Page
Chapitre3. Modélisation et simulation

Configurer les entrées de Lcd pour l’afficher.
//************************* Measure Voltage
******************************************
emon1.calcVI(20,2000); // Calculate all. No.of half wavelengths (crossings),
time-out
int Voltage
= emon1.Vrms; //extract Vrms into Variable
lcd.setCursor(0,2);
lcd.print("V = ");
lcd.print(Voltage);
lcd.print("V ");

Faire le mesure de voltage

extraire Vrms dans une variable.
//************************* Measure Current
******************************************
unsigned int temp=0;
float maxpoint = 0;
for(int i=0;i<500;i++)
{
if(temp = analogRead(Sensor_Pin), temp>maxpoint)
{
maxpoint = temp;
}
}
float ADCvalue = maxpoint;
double eVoltage = (ADCvalue / 1024.0) * 5000; // Gets you mV
double Current = ((eVoltage - offsetvoltage) / sensitivity);
double AC_Current = ( Current ) / ( sqrt(2) );
lcd.print("I = ");
lcd.print(AC_Current,2);
lcd.print("A
"); //unit for the current to be measured

faire le mesure de courant

Afficher la valeur de courant dans LCD
//************************* Measure Power
******************************************
int Power = (Voltage * AC_Current);
lcd.setCursor(0,3);
lcd.print("P = ");
lcd.print(Power);
lcd.print("W "); //unit for the current to be measured
9|Page
Chapitre3. Modélisation et simulation

Faire mesurer la puissance

Afficher la valeur de puissance dans LCD
//************************* Measure Energy
******************************************
long milisec = millis(); // calculate time in milliseconds
long time=milisec/1000; // convert milliseconds to seconds
float Energy = (Power*time)/3600; //Watt-sec is again convert to Watt-Hr
by dividing 1hr(3600sec)
lcd.print("E = ");
lcd.print(Energy,1);
lcd.print("Wh
"); //unit for the current to be measured
delay(200);
}

long milisec = millis() : calculer le temp en millisecond

long time=milisec/1000 : changer le millisecond en second

float Energy = (Power*time)/3600 : Watt-sec est à nouveau converti en
Watt-Heure en divisant 1 heure (3600 sec)

lcd.print("E = ");

lcd.print(Energy,1);

lcd.print("Wh ") ;

delay(200); : retard de 200 ms
Afficher la valeur d’énergie dans LCd
3.3 Conclusion :
Dans ce chapitre , on a vue comment on peut faire la modélisation et le simulation d’un
système de monitoring de la consommation d’énergie électrique à l’aide d’un Arduino UNO ,
Qui nous permet de meurer le courant , la tension, la puissance et l’énergie de notre système.
10 | P a g e
Chapitre3. Modélisation et simulation
11 | P a g e