Пример #1
0
        public Update()
        {
            //*************************CREATION DES OBJETS*************************//
            errors = new Errors();

            bruxelles = new Meteo(30, 30, 60);      //wind, temp, sun
            market    = new Market(10, 10, 10, 10); //nuc, eo, achat, vente

            //producteurs
            e1 = new Eolien(2000, 1, "e1", market, bruxelles);
            n1 = new Nucleaire(5000, 10, "n1", market);
            a1 = new Achat(2000, 100, "a1", market);

            //consommateurs
            ville      = new Consommateur_random(1000, "ville");
            entreprise = new Consommateur_statique(7000, "entreprise");
            v1         = new Vente(400, "v1", market);
            d1         = new Disipateur(200, "d1");

            //batterie
            b1 = new Battery(100000, "b1");

            //lignes électriques
            l1 = new Ligne(2000, "l1");   //eolien vers prod
            l2 = new Ligne(6001, "l2");   //nucleaire vers prod
            l3 = new Ligne(2000, "l3");   //conso vers ville
            l4 = new Ligne(7000, "l4");   //conso vers entreprise
            l5 = new Ligne(100000, "l5"); //conso vers vente
            l6 = new Ligne(10000, "l6");  //achat vers prod
            l7 = new Ligne(8000, "l7");   //conso vers disp
            l8 = new Ligne(50000, "l8");  //prod vers conso
        }
Пример #2
0
 public override double Get_vente(double trou_energie, Consommateur disipateur)
 {
     if ((trou_energie - max_conso) > 0) // vente pas assez importante
     {
         surplus_vente = trou_energie - max_conso;
         return(max_conso);
     }
     else  // vente a ecoule tous le surplus
     {
         return(trou_energie);
     }
 }
Пример #3
0
        public void Get_new_Data()
        {
            //*************************INITIALISATION DES VARIABLES*************************//
            prod_tot     = 0;
            trou_achat   = 0;
            conso_tot    = 0;
            trou_energie = 0;
            prod_eolien  = 0;
            abs_trou     = 0;
            total        = 0;
            dissipation  = 0;
            surplus      = 0;
            erreurs      = "";

            battery_percentage = b1.Get_capacity();
            wind = e1.Get_vent(bruxelles); //valeur du vent affichée sur la fenêtre

            //*************ASIGNATION DES LIGNES & GESTION ERREURS SURCHARGES COTE PRODUCTION*************//
            if (status == true)
            {
                double Eo1 = e1.Get_prod();
                Eo1       = l1.Ligne_in(Eo1);
                prod_tot += Eo1;
                if (Eo1 == 0)
                {
                    erreurs += DateTime.Now.ToString();
                    erreurs += errors.Line_Overload(l1);
                    erreurs += "\n";
                }
                prix_eolien = e1.Get_prix();
                co2_eolien  = e1.Get_co2();
                prod_eolien = Eo1;
            }
            else
            {
                erreurs += DateTime.Now.ToString();
                erreurs += errors.Deactivate(e1);
                erreurs += "\n";
            }


            double Nu1 = n1.Get_prod();

            Nu1       = l2.Ligne_in(Nu1);
            prod_tot += Nu1;
            if (Nu1 == 0)
            {
                erreurs += DateTime.Now.ToString();
                erreurs += errors.Line_Overload(l2);
                erreurs += "\n";
            }
            prix_nucleaire = n1.Get_prix();
            co2_nucleaire  = n1.Get_co2();
            prod_nucleaire = Nu1;

            total += prod_tot;

            //*************ASIGNATION DES LIGNES & GESTION ERREURS SURCHARGES COTE CONSOMMATION*************//
            double ville = this.ville.Get_conso();

            ville = l3.Ligne_in(ville);
            if (ville == 0)
            {
                erreurs += DateTime.Now.ToString();
                erreurs += errors.Line_Overload(l3);
                erreurs += "\n";
            }
            conso_tot  += ville;
            conso_ville = ville;

            double entr = entreprise.Get_conso();

            entr = l4.Ligne_in(entr);
            if (entr == 0)
            {
                erreurs += DateTime.Now.ToString();
                erreurs += errors.Line_Overload(l4);
                erreurs += "\n";
            }
            conso_tot       += entr;
            conso_entreprise = entr;

            //**********************************GESTION MANQUE & SURPLUS D'ENRGIE******************************//
            trou_energie = conso_tot - prod_tot;
            abs_trou     = Math.Abs(trou_energie);

            if (trou_energie > 0) //manque
            {
                trou_achat = abs_trou;
                if (battery_percentage > 0)
                {
                    bat_discharge = b1.Get_discharge(trou_achat);
                    trou_achat   -= bat_discharge;
                }
                trou_achat = a1.Get_achat(trou_achat);
                trou_achat = l6.Ligne_in(trou_achat);
                trou_vente = 0;
            }
            else if (trou_energie < 0) //surplus
            {
                trou_vente = abs_trou;
                trou_vente = v1.Get_vente(trou_vente, d1);
                trou_vente = l5.Ligne_in(trou_vente);
                trou_achat = 0;

                if (v1.Get_surplus() > 0)
                {
                    d1.Get_dissip(v1.Get_surplus());            //on dissipe le surplus de vente
                    dissipation = d1.Get_dissipated_energy();
                    surplus     = d1.Get_surplus();             //surplus dissipateur
                    double var_random = b1.Get_charge(surplus); //surplus dissipateur va vers batterie  //un truc qui manque ?
                    surplus -= var_random;
                }
            }
            else //ni manque, ni surplus
            {
                trou_achat = 0;
                trou_vente = 0;
            }
            jour_nuit = this.ville.Get_status();
            total     = prod_eolien + prod_nucleaire + trou_achat + bat_discharge;
            total     = l8.Ligne_in(total);
        }
Пример #4
0
 public virtual double Get_vente(double trou_energie, Consommateur disipateur)
 {
     return(0);
 }