Skip to content

quisst/hanger_stress_optimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

케이블카 Hanger의 효율적 설계 최적화 프로젝트

공학설계입문 과목 팀 프로젝트 - 본인 코딩과 시뮬레이션 담당

1. 프로젝트 목표

본 프로젝트의 목표는 케이블카 Hanger의 효율적 설계를 찾는 것입니다.
효율적 설계란 Hanger가 파손되지 않도록 목표 안전계수(S.F.) 4.5를 만족하는 최소한의 질량(m)을 찾는 것을 의미합니다.

  • 목표 안전계수 (S.F.): 4.5
  • 기준 재료: AISI 4340 350A QT (고강도 합금강)
  • 재료 항복강도 ($S_y$): 1102.00 MPa
  • 최종 목표 응력 ($\sigma_{target}$): $1102.00 / 4.5 \approx$ 244.9 MPa

2. 방법론: Python + Fusion 360

이 프로젝트는 Python과 Fusion 360을 연동한 최적화 방식을 사용합니다.

  1. Python: main.py 스크립트가 황금 분할 탐색(Golden Section Search, GSS) 알고리즘을 실행합니다.
  2. Fusion 360: 사용자는 Python이 알려준 r (곡률 반경), D (단면 지름) 값을 Fusion 360의 파라미터에 입력하여 "정적 응력" 시뮬레이션을 실행합니다.
  3. User: 사용자는 Fusion 360에서 계산된 최대 폰 미세스 응력(MPa) 값을 다시 Python 터미널에 입력합니다.
  4. 반복: GSS 알고리즘이 입력된 응력 값을 바탕으로 탐색 구간을 좁혀 다음 r, D 값을 제안합니다.
    이 과정은 탐색 구간이 tolerance (default: 50.0mm) 이하로 줄어들 때까지 반복됩니다.
  5. 최종 탐색: 1~4번의 GSS 과정을 여러 질량(m) 값에 대해 반복 수행하여, 최종 목표 안전계수 4.5를 만족하는 최적의 질량(m)을 찾아냅니다.

이 과정에서 tolerance 값을 변경해 반복 횟수를 조절할 수 있습니다.

3. 모델 및 가정

  • 형상: Hanger의 형상은 스테이플(Staple) (b-h-b) 모델을 가정합니다. 이는 hanger_model.py(2*b) + h 수학 공식과 일치합니다.
  • 고정 변수: b (수평 팔 길이), h (수직 높이), m (총 질량)은 각 GSS 시뮬레이션마다 고정됩니다.
    저희 프로젝트에서는 b=500mm, h=3000mm로 고정했습니다.
  • 최적화 변수: r (곡률 반경), D (단면 지름)
  • 경계 조건: GSS의 탐색 범위는 공학적/기하학적 한계인 D/2 < r < h/2로 설정됩니다.

4. 파일 구성

  • main.py: GSS 알고리즘을 실행하고 유저와 상호작용하는 메인 스크립트. GSS 완료 후 결과를 CSV 파일로 자동 저장합니다.
  • hanger_model.py: Hanger의 "스테이플(b-h-b)" 형상에 대한 부피(V)와 경계값(r=D/2)을 계산하는 수학 함수 모음입니다.
  • plotter.py: GSS 결과를 Matplotlib으로 시각화하는 plot_results 함수 모음입니다.
  • gss_results_*.csv: (자동 생성) main.py 실행 시 시뮬레이션 결과가 저장되는 데이터 파일입니다.

5. 실행 방법

  1. 필요한 Python 라이브러리를 설치합니다.

    pip install numpy matplotlib pandas
  2. main.py 스크립트를 실행합니다.

    python main.py
  3. 스크립트의 안내에 따라 고정값 b, h, m을 입력합니다.

    --- 1. 기본 고정값 입력 ---
    고정할 b (수평 팔 길이, mm) 값을 입력하세요: 500
    고정할 h (수직 팔 길이, mm) 값을 입력하세요: 3000
    고정할 m (총 질량, kg) 값을 입력하세요: 189
    
  4. 스크립트가 GSS 알고리즘을 시작하고, 시뮬레이션할 rD 값을 알려줍니다.

    --- 3. GSS 초기값 계산 (2회 시뮬레이션 필요) ---
    ----------------------------------------
    다음 값으로 Fusion 360 시뮬레이션을 진행하세요: 
    r = 1146.8524 mm
    D = 86.1362 mm
    
  5. Fusion 360에서 해당 r, D 값으로 모델을 수정하고 정적 응력 시뮬레이션을 실행합니다.

  6. 결과 창에서 '응력(Stress) - 폰 미세스(von Mises)'의 최대(Max) 값을 확인합니다.

  7. 확인한 응력 값을 Python 터미널에 입력합니다.

    -> 시뮬레이션 결과(최대 폰 미세스 응력, MPa)를 입력하세요: 245.2
    
  8. GSS가 tolerance에 도달할 때까지 4~7번 과정을 반복합니다.

  9. 탐색이 완료되면 터미널에 결과 행렬이 출력되고 그래프 창이 팝업되며 CSV 파일이 저장됩니다.

About

Python(GSS)과 Fusion 360을 이용한 케이블카 Hanger 응력 및 질량 최적화 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages