[Simulation logic] 0.common 1) simulation input data unit a) 5 minutes : get from DB b) 1 record (current time) : manual input ex) 2024-10-01 00:00:00 2024-10-01 00:05:00 2024-10-01 00:10:00 1.process 1) get {EC_SIMULATION_INPUT} data of selected simulation a) if {FILE_YN} = 'N' - get {INPUT_DATA} (JSON) data (could be multiple) b) if {FILE_YN} = 'Y' - load {INPUT_FILE} file data 2) run simulation MODEL logic with {EC_SIMULATION.PERIOD_TYPE} unit a) if {EC_SIMULATION.PERIOD_TYPE} is NULL - run selected Simulation MODEL logic with simulation input data unit b) if {EC_SIMULATION.PERIOD_TYPE} = 'PT01' (5분: 5 minutes) - run selected Simulation MODEL logic with simulation input data (5 minutes unit) c) if {EC_SIMULATION.PERIOD_TYPE} = 'PT02' (시간: 1 hour) - run selected Simulation MODEL logic with simulation input data (1 hour unit) - use average input value (ex: if target input data count is 12, SUM(value)/12) d) if {EC_SIMULATION.PERIOD_TYPE} = 'PT03' (일: 1 day) - run selected Simulation MODEL logic with simulation input data (1 day unit) - use average input value (ex: if target input data count is 288, SUM(value)/288) *) if run simulation MODEL with multiple input data, mutlple result of the simulation MODEL are returned 3) INSERT {EC_SIMULATION_RESULT} after selected Simulation MODEL run a) RESULT_SEQ : seq no per simulation b) RESULT_DT - if {EC_SIMULATION.PERIOD_TYPE} is NULL, set by INPUT_DT - else, set per period unit of simulation input data (ex: if 5 minutes unit, 2024-10-01 00:05:00 if 1 hour unit, 2024-10-01 01:00:00 if 1 day unit, 2024-10-01 00:00:00) c) MODEL_CNT : {selected simulation MODEL count} d) MODEL_NO_1 /.../ MODEL_NO_5 : selected simulation MODEL NO - if multiple MODEL were selected, set multiple value e) RESULT_VALUE_1 /.../ RESULT_VALUE_5 : result value of Simulation MODEL logic - if multiple MODEL were selected, set multiple value 4) if simulation run is finished normally UPDATE EC_SIMULATION (of current SIMUL_SEQ) - SIMUL_STATUS = 'SS02', UP_DT/UP_USER_ID 2.Simulation MODEL logic 1) M10 (Tier1) = ((1.5/525600x5)x{BREEDING_NUMBER}x1000) / 41.7907536 x 24.45 / 16.04 2) M20 (Reg1) MET = (-12.68) + (0.0001×{AVERAGE_WEIGHT}) + (0.0098×{FEED_WEIGHT}) + (0.0235×{CO2}) + (0.6316×{NH3}) − (1.3241×{PH_P}) - if any factor value is NULL, skip (NULL is set into EC_SIMULATION_RESULT.RESULT_VALUE_) 3) M21 (Reg2) MET = (125.51) + (0.0002×{AVERAGE_WEIGHT}) + (0.0148×{FEED_WEIGHT}) + (0.0192×{CO2}) + (0.4256×{NH3}) + (3.2498×{PH_P}) − (2.5183×{Temp_P}) − (0.0694×{RH_Out}) − (3.5052×{Temp}) - if any factor value is NULL, skip (NULL is set into EC_SIMULATION_RESULT.RESULT_VALUE_) 4) M22 (Reg3) MET = (98.90) + (0.0919×{Temp_Out}) − (0.0080×{RH_Out}) − (0.8907×{Temp}) − (0.2418×{RH}) + (0.0136×{CO2}) + (0.0324×{NH3}) − (1.5973×{Temp_P}) − (4.2335×{PH_P}) − (0.0765×{EC_P}) − (28.2513×{Ventilation Rate}) + (0.0002×{AVERAGE_WEIGHT}) + (0.0162×{FEED_WEIGHT}) - if any factor value is NULL, skip (NULL is set into EC_SIMULATION_RESULT.RESULT_VALUE_) 5) M30 (DeepL1) - AI: Deep Learning http://218.232.78.85:9005/apidocs/#/ API: POST /model/PredictMetModel_DeepL_1 6) M31 (DeepL2) - AI: Deep Learning http://218.232.78.85:9005/apidocs/#/ API: POST /model/PredictMetModel_DeepL_2