Hello,every expert...I have headache when I try to optimize my case...
First, I create a medium-scale(6 floors) office building having 66 thermal zones on sketchup (plugin Openstudio )
and add HVAC setting in Energyplus(v8.2) (take E+ HVACTemplate-5ZoneConstantVolumeChillerBoiler as ref)
after I set windows and shading's width as parameters to different surface(nor,sou,ea,we) on Genopt(v3.1.0)
just like :
Vary { Parameter{ // window and overhang width
Name = win_so_1; //win_so_2, win_so_3, win_no_1, win_ea, win_we...17 parameters just for width)
Min = 0.5;
Ini = 5.5;
Max = 7.2;
Step = 0.1;
....
}
}
OptimizationSettings{
MaxIte = 2500;
MaxEqualResults = 1000;
WriteStepNumber = false;
UnitsOfExecution = 0;
}
Algorithm{
Main = GeneticAlgorithmJGAP;
MaxGenerations = 20; // 0 < maxGenerations
PopulationSize = 24; // 0 < populationSize
BestChromosomesSelectorRate = 0.90; // sets originalRate >0d and <1d
CrossoverRate = 0.35; // >0d
DesiredMutationRate = 0.40; // sets desired rate of mutation >=0d and <=1d
// A mutation rate of zero disables mutation entirely
Seed = 1; // If seed is 0 then the current time will be used as the
// seed number for the random generator, else the suggested integer
}
however I have some negative value, so I try to set like this:
FenestrationSurface:Detailed,
Sub Surface 9, !- Name
Window, !- Surface Type
Interior Window, !- Construction Name
Surface 356, !- Building Surface Name
....
-%win_so_2%, !- Vertex 1 X-coordinate {m}
-1.34999999999998, !- Vertex 1 Y-coordinate {m}
3, !- Vertex 1 Z-coordinate {m}
-%win_so_2%, !- Vertex 2 X-coordinate {m}
-1.34999999999998, !- Vertex 2 Y-coordinate {m}
0.5, !- Vertex 2 Z-coordinate {m}
....
On the other hand, I set win7.ini as:
ObjectiveFunctionLocation
{
Name1 = Es_tot;
Function1 = "add( %Es_heat%, %Es_cool%, %Es_light%, %Es_fan%, %Es_equ%)";
Name2 = Es_equ;
Function2 = "add( %E_equ1%, %E_equ2%, ..., %E_equ66%)";
Name3 = Es_cool;
Function3 = "add( %E_chiller%, %E_tower%, %E_pump1%, %E_pump2%, %E_pump3%)";
Name4 = Es_fan;
Function4 = "add( %E_fanleft1%, %E_fanleft2%, %E_fanleft3%, %E_fanleft4%, %E_fanright1%, %E_fanright2%, %E_fanright3%, %E_fanright4%, %E_fanahu1%, %E_fanahu2%, %E_fanfor%, %E_fanback%)";
Name5 = Es_light;
Function5 = "add( %E_lgt1%, %E_lgt2%, ..., %E_lgt66%)";
Name6 = E_chiller;
Delimiter6 = "4806,";
FirstCharacterAt6 = 1;
...
Name157 = E_lgt66;
Delimiter157 = "1369,";
FirstCharacterAt157 = 1;
}
} // end of section Simulation
...
Finally, I try to run genopt many times with error:
...
Skipping evaluation of simulation 240 because of previous simulation error.
**** Warning ****
Simulation 1: Exception in evaluating x = ( 1.436409975455133, ..., 6.841151975234836).
Function 'Es_tot = add( 7.84338267878632E11,..., 5.06753421410861E11))'.
No method 'java.lang.StrictMath.add(double, ..., double)' in 'genopt.algorithm.util.math.Fun' and 'java.lang.StrictMath'.
...
and what I tried was :
1.Remove negative value for parameters (become fixed value)
2.Shorten ObjectiveFunctionLocation's name numbers
3.change to PSO Alr / change MaxIte,MaxEqualResults,MaxGenerations,PopulationSize 's number
4.improve some error wrote by .err like:
** Warning ** GetSurfaceData: InterZone Surface Tilts do not match as expected.
** ~~~ ** Tilt=180.0 in Surface=SURFACE 511, Zone=THERMAL ZONE 10 THERMAL ZONE THERMAL ZONE THERMAL ZONE
** ~~~ ** Tilt=180.0 in Surface=SURFACE 695, Zone=THERMAL ZONE 11 THERMAL ZONE THERMAL ZONE THERMAL ZONE
** Warning ** GetSurfaceData: InterZone Surface Classes do not match as expected.
** ~~~ ** Surface="SURFACE 511", surface class=Floor
** ~~~ ** Adjacent Surface="SURFACE 695", surface class=Floor
** ~~~ ** Other errors/warnings may follow about these surfaces.
** Warning ** GetInternalHeatGains: People="THERMAL ZONE 1 THERMAL ZONE THERMAL ZONE THERMAL ZONE PEOOFFICE", specifies People per Zone Floor ...
(more)