Project

General

Profile

New Function #616 » Simulation_logic_20241021.txt

Deca Park, 10/21/2024 05:44 PM

 
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
(2-2/7)