Browse Source

update fonction matematique

master
Mikael 11 months ago
parent
commit
870200c5fb
  1. BIN
      out/production/Code_octavie/MaterielPeriodique.class
  2. BIN
      out/production/Code_octavie/main.class
  3. 4
      src/FonctionMath.java
  4. 28
      src/MaterielPeriodique.java
  5. 43
      src/main.java

BIN
out/production/Code_octavie/MaterielPeriodique.class

Binary file not shown.

BIN
out/production/Code_octavie/main.class

Binary file not shown.

4
src/FonctionMath.java

@ -0,0 +1,4 @@
public interface FonctionMath {
public long FonctionMath(int time);
}

28
src/MaterielPeriodique.java

@ -4,11 +4,13 @@ public class MaterielPeriodique extends Materiel {
protected long puissance;
protected String name;
protected FonctionMath fonctionPuissance;
protected List <StartEnd> listStartEnd;
public MaterielPeriodique(long Newpuissance, String Newname, List <StartEnd> NewlistStartEnd){
public MaterielPeriodique(long Newpuissance, String Newname, List <StartEnd> NewlistStartEnd, FonctionMath NewfonctionPuissance){
puissance = Newpuissance;
name= Newname;
listStartEnd = NewlistStartEnd;
fonctionPuissance = NewfonctionPuissance;
}
@ -16,24 +18,16 @@ public class MaterielPeriodique extends Materiel {
long utilisationTotale = 0;
for(StartEnd i : listStartEnd){
//parcour de tout la liste
if(i.getStart() <= time && i.getEnd() >= (time+delta) ){
//4
utilisationTotale += puissance *delta;
}else if(i.getStart() > time && i.getEnd() < (time+delta)){
//3
utilisationTotale += puissance *(i.getEnd()-i.getStart());
}else if(i.getStart() < time && i.getEnd()>time && i.getEnd() < (time+delta)){
//2
utilisationTotale += puissance *(i.getEnd()-time);
}else if(i.getStart() > time && i.getStart() <(time+delta) && i.getEnd() > (time+delta)){
//1
utilisationTotale += puissance *((time+delta)-i.getStart() );
}
for(int x=time;x< time+delta; x++){
if(x >= i.getStart() && x <= i.getEnd()){
//ajoute la some
utilisationTotale += fonctionPuissance.FonctionMath(x);
}else{
//rien faire
}
}
}
return utilisationTotale;
}

43
src/main.java

@ -3,12 +3,24 @@ import java.util.List;
import java.util.Scanner;
public class main {
static FonctionMath m = new FonctionMath() {
@Override
public long FonctionMath(int time) {
return (long)(0.07519*time*time*time*time + 7259.527*time*time*time+460502.5742+54260967);
}
};
static FonctionMath mStatic = new FonctionMath() {
@Override
public long FonctionMath(int time) {
return (long)(10);
}
};
public static void main(String arg[]){
System.out.println("lancement");
Scanner sc = new Scanner(System.in);
int StartTime = 0, EndTime = 24, DeltaTime = 1;
int numFoyer = 40, numCentraleS = 1, numCentralN = 1, numEntreprise = 2;
/*
System.out.println("Veuillez saisir un heur de debut de simulation :");
StartTime = sc.nextInt();
System.out.println("Veuillez saisir un heur de fin de simulation :");
@ -25,6 +37,8 @@ public class main {
System.out.println("Veuillez saisir nombreux de centrale solaire :");
numCentralN = sc.nextInt();
*/
@ -41,24 +55,26 @@ public class main {
villeProducteur.add(buildCentralS());
}
for(int i = 0; i < numCentralN; i++){
villeProducteur.add(buildCentralN());
//villeProducteur.add(buildCentralN());
}
for(int i = 0; i < numEntreprise; i++){
villeProducteur.add(buildEntrepise());
//villeProducteur.add(buildEntrepise());
}
long maxConsomateur = 0, maxProducteur = 0;
long sommeConsomateurTotale = 0, sommeProducteurTotale = 0;
for(int i =StartTime; i < EndTime*60; i+=DeltaTime){
long sommeConsomateur = 0;
long sommeProducteur = 0;
for(Consomateur x : villeConsomateur){
sommeConsomateur += x.consomateur(i, DeltaTime);
}
for(Producteur x : villeProducteur){
sommeProducteur += x.produire(i, DeltaTime);
}
System.out.println("Temps: "+ (float)i/60 +" / Produit: "+ sommeProducteur + " / Consome: " + sommeConsomateur + " ") ;
System.out.println("Temps: "+ (float)i/60 +" / Produit: "+ sommeProducteur/60 + " / Consome: " + sommeConsomateur/60 + " ") ;
//calcule des max
if(sommeConsomateur > maxConsomateur){
@ -68,9 +84,20 @@ public class main {
maxProducteur = sommeProducteur;
}
//System.out.println("i: "+ (float)i/60 + " Production :"+ producteur.produire(i,40) + " Consomation: " + ville.consomateur(i,40) + " ");
sommeConsomateurTotale += sommeConsomateur;
sommeProducteurTotale += sommeProducteur;
}
System.out.println("Totale");
System.out.println("Max Consomateur :" + maxConsomateur + " | Max Producteur:" + maxProducteur);
System.out.println("Consommation énergétique cumule: " + sommeConsomateurTotale/3600 + " Wh");
System.out.println("Production énergétique cumule: " + sommeProducteurTotale/3600 + " Wh");
System.out.println("Max Consomateur: " + maxConsomateur/3600 + " Wh \nMax Producteur: " + maxProducteur+ " Wh");
if(sommeConsomateurTotale >= sommeProducteurTotale){
System.out.println("On a un surplue de consomation de +: " + (sommeConsomateurTotale - sommeProducteurTotale)/3600 + " Wh");
}else{
System.out.println("On a un surplue de prodution de +: " + (sommeProducteurTotale - sommeConsomateurTotale)/3600 + " Wh");
}
}
@ -79,7 +106,7 @@ public class main {
List <StartEnd> chauffage = List.of(new StartEnd(8*60,17*60));
List <Materiel> ListMaison = List.of(
new MaterielConstant(175, "frigo"),
new MaterielPeriodique(10000,"chauffage", chauffage)
new MaterielPeriodique(10000,"chauffage", chauffage,mStatic)
);
Consomateur maison = new Consomateur(new MaterielList(ListMaison));
return maison;
@ -91,7 +118,7 @@ public class main {
new StartEnd(12*60,13*60),
new StartEnd(14*60, 15*60)
);
Producteur photovoltaique = new Producteur(new MaterielPeriodique(100_000, "photovoltaique", TempsSoleil));
Producteur photovoltaique = new Producteur(new MaterielPeriodique(100_000, "photovoltaique", TempsSoleil, m));
return photovoltaique;
}
@ -106,7 +133,7 @@ public class main {
List <StartEnd> TempsEntreprise = List.of(
new StartEnd(8*60,19*60)
);
Producteur entreprise = new Producteur(new MaterielPeriodique(200_000, "Entreprise", TempsEntreprise));
Producteur entreprise = new Producteur(new MaterielPeriodique(200_000, "Entreprise", TempsEntreprise,m));
return entreprise;
}

Loading…
Cancel
Save