7주 모델구축 실습 Model Building Exercise

 

Model Exercise

 

Kaibab Plateau Model

11장. 생태계다이내믹 모델. 김도훈 문태훈. 김동환. (1999). 시스템다이내믹스.

 Ch 18. Modeling the Ecology of the Kaibab Plateau In Nancy Roberts, David Andersen et.al. 1983. Introduction to Computer Simulation: The System Dynamics Approach. Addison-Wesley Pub. Co.

See also Week 5. Basics of Modeling I

 

Hog Model

10장. 농축산물 파동의 모델. 김도훈 문태훈. 김동환. (1999). 시스템다이내믹스.

Ch 21. Commodity Cycles: A study of Hog In Nancy Roberts, David Andersen et.al. 1983. Introduction to Computer Simulation: The System Dynamics Approach. Addison-Wesley Pub. Co.

 

Diabetes Model

High Performance chpt 7, 8

 

Diabetes Model 당뇨병 모델

 

High Performance chpt 7, 8

인체는 혈중 당분의 수준(blood sugar, glucose level)을 일정하게 유지하는 자동조절장치를 갖추고 있다. 인체의 뛰어난 항상성(homeostasis)을 보여주는 대표적인 예라 할 수 있다. 혈중 당도를 조절하기 위하여 인체는 인슐린(insulin)을 사용한다. 인슐린은 췌장의 랑게르한스샘에서 분비되는데 이 인슐린의 분비작용(insulin secretion mechanism)에 문제가 생기면 당뇨병이 발생하는 것으로 알려지고 있다.

여기서 모델은 혈중내 당분의 농도를 조정하는 메커니즘(process and mechanism of glucose regulation in the blood stream)에 대한 이해를 돕기 위하여 만들어졌다. 그리고 이 모델은 당뇨병 증상에 대한 다른 이론들을 테스트할 목적도 있다. 

 

 

혈중 포도당 농도에 대한 인체의 자율규제 시스템에 대한 이해

 

포도당(glucose)은 에너지를 발생하기 위하여 인체가 사용하는 중요한 에너지 원이다. 포도당은 음식을 소화하거나(digestion of food) 간에서 지방을 분해하는(breakdown of fat in the liver) 과정에서 혈액 속으로 들어가게 된다. 정상적인 상태에서 1분당 약4.5단위의 포도당이 방출된다. 혈액 속으로 들어간 포도당은 섬유조직으로(peripheral tissues) 운반되어 세포에 의해서 소비, 저장 또는 산화된다. 인슐린은 피속의 포도당의 양을 적절히 조절하는 작용을 하는데 섬유조직의 부피(tissue space)를 합하여 약15리터 정도가 된다. 인슐린 농도가 높으면 한편으로는 포도당이 세포에 의해서 더 빨리 소비되게 하고 다른 한편으로는 포도당이 혈액 속으로 방출되는 것을 억제하는 작용을 한다. 인슐린은 췌장의 랑게르한스 샘의 세포에 의하여 분비된다(secreted by Beta Cells within the pancreas). 만약에 혈액 속에 녹아있는 포도당의 농도가 리터 당 10단위를 넘게되면 인슐린의 분비속도는 빨라지게 된다. 정상적인 상황에서는 보통 1분에 10단위의 인슐린이 분비된다. 분비된 인슐린은 활성화(become activated)될 때 까지 15분이 필요하며 그 다음 15분간은  포도당의 소비와 방출을 조절하는 작용을 하게 된다. (High Performance, 105)

 

 

1. 노력의 초점 Focus effort

 

1) 모델의 목적을 정의한다 Define the purpose

인슐린이 혈중내 당도를 어떻게 조정하는지에 대한 이해를 돕기 위해서 모델링을 한다. 그리고 이 모델을 이용하여 당뇨병 증상에 대한 몇가지 다른 가설들에 대한 이해를 돕기 위한 것이 모델링의 목적이다.

 

2) 준거모드를 정한다 Develop Reference Behavior Pattern

이해하고자 하는 현상을 가장 잘 나타내는 변수가 시간의 흐름에 따라 어떻게 변해가는지를 그래프로 표시한다.

당뇨테스트(Intravenous Glucose Tolerance Test, IVGTT)는 다량의 글루코스를 혈중에 투여한 후 혈중당도가 정상치로 돌아오는데 얼마나 걸리는지를 측정하는 것이다. 이때 시간의 경과에 따른 혈중 글루코즈의 양의 변화는 중요한 준거모드가 된다.

정상인(non-diabetic individuals)은 40-80분만에 정상치로 회복한다. 이 예에서는 55분만에 정상치로 회복이 되었다.

그렇다면 작성된 모델도 이러한 모습을 보여주어야 한다.

 

3) 시스템 다이어그램을 만든다. Develop System Diagram

 

2. Map

Look for Main Chain -> Use Key Actor approach -> Identify the Single, Most Important Accumulation

choose key actor approach

 

기본적인 저량, 유량변수를 모델한다. 

 

3. Model

Define the Flow

Close Loop

 

Specify Algebra

Set Parameter Values : Constants, Initial Values, Graphical Functions

 

4. Simulate

 

1) 모델의 기계적결함을 찾아 없앤다. Ferret Out Mechanical Mistakes

구축한 모델의 에러를 찾는 가장 우선적인 방법은 Range Specs dialog를 열어서 최소값과 최대값을 체크하면서 상식적인 범위를 넘어서고 있는 최대, 최소값이 있는지를 확인하는 것이다. 지나치게 큰 양의 값이나 없어야 할 음의 값이 있을 경우 모델에 에러가 있음을 뜻한다. 이때는 그 변수의 변화값을 테이블로 검토하여 무엇이 잘못되고 있는지를 파악해야 한다.

2) Ensure Robustness

모델의 안정성을 검사하는 것인데 가장 우선적인 방법은 모델에 충격을 가하여 모델이 이러한 충격에 어떻게 반응하는지를 보는 것이다. 이 안정성의 검사는 섹터별로 시작하여 최종적으로 종합적으로 시행한다.

ex. 모델에서 인슐린을 75% 제거하는 테스트

PULSE(Active_Insulin*.75,DEGTEST,1000)

테스트를 하기전에 그 결과가 어떻게 나올 것인지를 미리 예상해보고 그렇게 될 이유를 가늠해보는 것은 좋은 시뮬레이션 훈련이 된다.

 

 

활성인슐린을 75%제거할 때 나타나는 모델의 행태이다. 인슐린이 급속히 감소한 후 모델은 빨리 원상태를 회복하고 있다. 인슐린은 원상태보다 더 높은 수준으로 급격히 상승했다가 서서히 원래수준으로 되돌아 가는 행태를 보이고 있다.

3) Replicate Reference Behavior

PULSE(100*3,IVGTT_time,200)

 

Test Policies, Sensitivities and Scenarios

 

5. Communicate

 

Develop Causal Explanation

인슐린을 75%나 제거했는데도 모델이 원상태로 빨리 회복되는 것은 기본적으로 음의 루프가 작동하고 있기 때문이다. 인슐린의 양이 줄어들면, 포도당의 농도가 높아지게 된다. 이것은 한편으로는 인슐린의 농도가 낮아져 포도당의 분비속도가 더 높아지고 다른 한편으로는 세포에 의한 당의 흡수속도가 느려지기 때문이다. 혈당량이 높아지면 인슐린의 분비를 촉진하게 된다. 이때 원래 수준을 상회하는 인슐린이 분비되는 것은 인슐린과 당과의 관계에 시간지연이 있기 때문이다. 인슐린이 정상보다 적은 상태일 때 혈중 당도는 지속적으로 높아져 정상 혈중당도보다 높아지게 된다. 정상 혈당량보다 높은 상태를 정상으로 회복시키기 위하여 적정량보다 많은 양의 인슐린이 분비된다. 그러나 적정량 이상의 인슐린으로 혈당량은 정상치보다 낮게 된다. 즉, 너무 많은 인슐린이 당도를 정상 이하로 떨어트리고, 정상 이하의 당도가 정상 이하의 인슐린 분비, 정상이상의 당도를 순환적으로 만들어내게 된다. 이러한 조정과정이 일어나면서 overshoot, undershoot, steady state value로 접근하게 되는 것이다.

Use Simple Loop Diagrams

Facilitate Interaction with Model



6. Theory Test

 

당뇨병이 왜 일어나는가에 대해서 여러 가설들이 있다. 이중 두가지 가설을 이 모델을 이용하여 검증한다.

첫번째 가설은 당뇨병은 랑게르한스샘내에서 인슐린을 분비하는 세포(beta cell)의 인슐린 분비능력이 감소하여 일어난다는 주장이다. 세포의 인슐린 분비능력이 감소하여 정상보다 적은양의 인슐린을 분비하기 때문이라는 것이다.

Test: Reduced Beta cell productivity Set IGVTT test time at 80

Pec dec prod : 1=0, 2=25, 3=50%

 

두번째 가설은 췌장세포가 포도당의 농도에 반응하는 민감도가 감소하기 때문에 일어난다는 주장이다.

Test : reduced sensitivity of pancreatic cells to glucose concentration

1=TEST2=1, 2=TEST2=0.5, 3=TEST2=0.25

 

Test: reduce value of table function

1=original, 2=half, 3=set to value of maximum 1

 

 

MODEL

Glucose(t) = Glucose(t - dt) + (release + IVGTT_TEST - uptake) * dt

INIT Glucose = 150

release = normal_release_rate*impact_of_insulin_on_release

IVGTT_TEST = PULSE(100*3,IVGTT_time,200)

uptake = Glucose*uptake_fraction

glucose_concentration = Glucose/Tissue_Space

IVGTT_time = 5

normal_release_rate = 4.5

impact_of_insulin_on_release = GRAPH(Insulin_Concentration)

(0.00, 1.60), (10.0, 1.30), (20.0, 1.00), (30.0, 0.85), (40.0, 0.73), (50.0, 0.64), (60.0, 0.57), (70.0, 0.53), (80.0, 0.48), (90.0, 0.44), (100, 0.41)

uptake_fraction = GRAPH(Insulin_Concentration)

(0.00, 0.0075), (4.00, 0.012), (8.00, 0.016), (12.0, 0.0205), (16.0, 0.0255), (20.0, 0.03), (24.0, 0.0335), (28.0, 0.037), (32.0, 0.0395), (36.0, 0.0425), (40.0, 0.0445)

base_B_cell_prod = 0.02*((100-pec_dec_in_prod)/100)

beta_cells = 1000

B_cell_productivity = base_B_cell_prod*eff_of_GC_on_prod*TEST2

pec_dec_in_prod = 0

TEST2 = 1

eff_of_GC_on_prod = GRAPH(glucose_concentration)

(0.00, 0.00), (5.00, 0.46), (10.0, 1.00), (15.0, 1.45), (20.0, 1.98), (25.0, 2.34), (30.0, 2.72), (35.0, 3.02), (40.0, 3.26), (45.0, 3.32), (50.0, 3.48)

Insulin = Inactive_Insulin + Active_Insulin

secretion = beta_cells*B_cell_productivity

degradation = degradation' + degradation''

Active_Insulin(t)=Active_Insulin(t - dt) + (activation - degradation' - degradation'') * dt

INIT Active_Insulin = Inactive_Insulin*degradation_time/activation_time

activation = Inactive_Insulin/activation_time

degradation' = Active_Insulin/degradation_time

degradation'' = PULSE(Active_Insulin*.75,DEGTEST,1000)

Inactive_Insulin(t) = Inactive_Insulin(t - dt) + (secretion' - activation) * dt

INIT Inactive_Insulin = beta_cells*base_B_cell_prod*activation_time

secretion' = secretion

activation = Inactive_Insulin/activation_time

activation_time = 15

degradation_time = 15

DEGTEST = 200

Insulin_Concentration = Active_Insulin/Tissue_Space

Tissue_Space = 15