1
|
[Simulation logic]
|
2
|
|
3
|
0.common
|
4
|
1) simulation input data unit
|
5
|
a) 5 minutes : get from DB
|
6
|
b) 1 record (current time) : manual input
|
7
|
ex) 2024-10-01 00:00:00
|
8
|
2024-10-01 00:05:00
|
9
|
2024-10-01 00:10:00
|
10
|
|
11
|
1.process
|
12
|
1) get {EC_SIMULATION_INPUT} data of selected simulation
|
13
|
a) if {FILE_YN} = 'N'
|
14
|
- get {INPUT_DATA} (JSON) data (could be multiple)
|
15
|
b) if {FILE_YN} = 'Y'
|
16
|
- load {INPUT_FILE} file data
|
17
|
|
18
|
2) run simulation MODEL logic with {EC_SIMULATION.PERIOD_TYPE} unit
|
19
|
a) if {EC_SIMULATION.PERIOD_TYPE} is NULL
|
20
|
- run selected Simulation MODEL logic with simulation input data unit
|
21
|
b) if {EC_SIMULATION.PERIOD_TYPE} = 'PT01' (5분: 5 minutes)
|
22
|
- run selected Simulation MODEL logic with simulation input data (5 minutes unit)
|
23
|
c) if {EC_SIMULATION.PERIOD_TYPE} = 'PT02' (시간: 1 hour)
|
24
|
- run selected Simulation MODEL logic with simulation input data (1 hour unit)
|
25
|
- use average input value
|
26
|
(ex: if target input data count is 12, SUM(value)/12)
|
27
|
d) if {EC_SIMULATION.PERIOD_TYPE} = 'PT03' (일: 1 day)
|
28
|
- run selected Simulation MODEL logic with simulation input data (1 day unit)
|
29
|
- use average input value
|
30
|
(ex: if target input data count is 288, SUM(value)/288)
|
31
|
|
32
|
*) if run simulation MODEL with multiple input data, mutlple result of the simulation MODEL are returned
|
33
|
|
34
|
|
35
|
3) INSERT {EC_SIMULATION_RESULT} after selected Simulation MODEL run
|
36
|
a) RESULT_SEQ : seq no per simulation
|
37
|
b) RESULT_DT
|
38
|
- if {EC_SIMULATION.PERIOD_TYPE} is NULL, set by INPUT_DT
|
39
|
- else, set per period unit of simulation input data
|
40
|
(ex: if 5 minutes unit, 2024-10-01 00:05:00
|
41
|
if 1 hour unit, 2024-10-01 01:00:00
|
42
|
if 1 day unit, 2024-10-01 00:00:00)
|
43
|
c) MODEL_CNT : {selected simulation MODEL count}
|
44
|
d) MODEL_NO_1 /.../ MODEL_NO_5 : selected simulation MODEL NO
|
45
|
- if multiple MODEL were selected, set multiple value
|
46
|
e) RESULT_VALUE_1 /.../ RESULT_VALUE_5 : result value of Simulation MODEL logic
|
47
|
- if multiple MODEL were selected, set multiple value
|
48
|
|
49
|
4) if simulation run is finished normally
|
50
|
UPDATE EC_SIMULATION (of current SIMUL_SEQ)
|
51
|
- SIMUL_STATUS = 'SS02', UP_DT/UP_USER_ID
|
52
|
|
53
|
|
54
|
2.Simulation MODEL logic
|
55
|
1) M10 (Tier1)
|
56
|
= ((1.5/525600x5)x{BREEDING_NUMBER}x1000) / 41.7907536 x 24.45 / 16.04
|
57
|
|
58
|
2) M20 (Reg1)
|
59
|
MET = (-12.68) + (0.0001×{AVERAGE_WEIGHT}) + (0.0098×{FEED_WEIGHT}) + (0.0235×{CO2}) + (0.6316×{NH3}) − (1.3241×{PH_P})
|
60
|
- if any factor value is NULL, skip (NULL is set into EC_SIMULATION_RESULT.RESULT_VALUE_)
|
61
|
|
62
|
3) M21 (Reg2)
|
63
|
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})
|
64
|
- if any factor value is NULL, skip (NULL is set into EC_SIMULATION_RESULT.RESULT_VALUE_)
|
65
|
|
66
|
4) M22 (Reg3)
|
67
|
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})
|
68
|
- if any factor value is NULL, skip (NULL is set into EC_SIMULATION_RESULT.RESULT_VALUE_)
|
69
|
|
70
|
5) M30 (DeepL1) - AI: Deep Learning
|
71
|
http://218.232.78.85:9005/apidocs/#/
|
72
|
API: POST /model/PredictMetModel_DeepL_1
|
73
|
|
74
|
6) M31 (DeepL2) - AI: Deep Learning
|
75
|
http://218.232.78.85:9005/apidocs/#/
|
76
|
API: POST /model/PredictMetModel_DeepL_2
|