inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 Streamlit을 활용한 차량 물리 접지력 시뮬레이터 (콰트로 vs 후륜)

Go Hard
0

안녕하세요. '잡학다식 개발자'입니다.

Python의 StreamlitMatplotlib을 활용하여, 차량의 구동 방식과 노면 상태에 따른 물리적 접지력(Traction) 변화를 실시간으로 렌더링하는 시뮬레이터를 제작해 보았습니다.

웹 프론트엔드 구축 없이 Streamlit의 세션 상태st.session_state)와 상호작용 위젯을 활용하여, 조건 변경 시 차트가 즉각적으로 반응하도록 구현한 토이 프로젝트입니다.

### 💡 핵심 구현 로직 (Traction Mapping)

차량의 그립력은 타이어 종류와 노면 상태의 상성 데이터, 그리고 구동 방식(AWD/RWD)에 따른 동력 분산 보너스를 계산하여 산출합니다.

# 업데이트된 타이어 마찰 계수 데이터베이스
friction_map = {
    "익스트림 서머 (넥센 SUR4G, 한국 RS4 등)": {"마른 아스팔트": 1.2, "빗길": 0.6, "눈길": 0.1},
    "UHP 서머 (미쉐린 PS4S, 피렐리 P Zero 등)": {"마른 아스팔트": 1.1, "빗길": 0.8, "눈길": 0.15},
    "프리미엄 사계절 (미쉐린 MXM4 등)": {"마른 아스팔트": 0.9, "빗길": 0.7, "눈길": 0.3},
    "윈터 타이어 (브리지스톤 블리작 등)": {"마른 아스팔트": 0.8, "빗길": 0.6, "눈길": 0.6}
}

base_mu = friction_map[tire_type][road_cond]
drivetrain_bonus = 1.5 if drivetrain == "사륜구동(AWD/Quattro)" else 1.0
traction_score = base_mu * drivetrain_bonus

# 에어로 효과 실시간 반영 (고속 주행 다운포스)
if apply_aero:
    traction_score += 0.15

이 계산식을 통해, 일반 승용차가 절대 안전 기준선(0.9G)을 넘나드는 과정과 F1 레이스카의 압도적인 물리적 한계치(4.5G)를 동일한 스케일의 차트에서 동적으로 비교합니다.

🔗 소스 코드 및 실행 안내

구체적인 작동 원리와 코드가 실제 자동차의 물리 법칙과 어떻게 매칭되는지에 대한 자세한 설명은 아래 유튜브 콘텐츠를 참고해 주시기 바랍니다.

직접 실행해 보기:

파이썬 Python 코딩 AI비디오 Kling 클링 AI영상제작 Moviepy 동영상편집 잡학다식개발자

답변 0