1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import random
import matplotlib.pyplot as plt
def simulate_oxygen_support(normal_spo2=98, steps_max=100):
spo2 = random.uniform(85, 95) # 초기 SpO₂ (낮게 시작)
step = 0
recovery_speed = 0.05 # 수렴 속도 계수
# 기록용 리스트
steps = []
spo2_list = []
oxygen_output = []
while step < steps_max:
step += 1
# 산소공급량 결정: SpO₂가 정상보다 낮으면 더 많이 공급
if spo2 < normal_spo2:
supply = min(1.0, (normal_spo2 - spo2) / 10) # 예: 10% 부족 → 1.0
# SpO₂ 증가 (정상에 수렴)
spo2 += supply * recovery_speed * (normal_spo2 - spo2)
else:
supply = 0.0 # 정상 도달 → 공급 중단
Enter to Rename, <Shift>+Enter to Preview