Skip to content

Simulation

Mirae Kwak edited this page Jul 12, 2024 · 1 revision

Simulation

SEMES 기업의 물류반송시스템 상에서 생성되는 로그 데이터를 동일하게 수집하기 위한 물류반송시스템 시뮬레이션을 말합니다. 실제 SEMES 기업의 로그데이터는 보안상 문제로 사용할 수 없어 Anylogic 툴을 활용하여 실제 물류반송시스템과 유사한 시뮬레이션을 구현했습니다. 이후 해당 시뮬레이션을 동작해 실제 로그와 유사한 로그데이터를 수집했습니다. simulation

Getting Started

Anylogic 설치

OS 환경에 맞는 Anylogic - Personal Learning Edition(무료)를 설치합니다. 무료 버전의 경우 시뮬레이션 동작 시 5시간이라는 제약이 있습니다. (시뮬레이션 상의 시간 기준)

모델 실행

1) semento.zip 파일 다운로드 후 압축 해제

semento.zip 파일 다운로드 링크

2) Anylogic 툴에서 semento.alp 열기

3) Database 설정

Main -> Agent actions를 선택하여 url, id, pw를 사용할 mysql 설정 정보로 변경합니다. MySQL 설정 정보

4) 시뮬레이션 실행

시뮬레이션 화면 상에서 2D, 3D 버튼을 선택해 각 차원에서 물류반송시스템의 동작과정을 살펴볼 수 있습니다.

모델 설정 값 변경

데이터 생산 일자 변경

  1. Simulation: Main 선택
    image

  2. Model Time 변경
    image

설비, OHT 에러 발생 퍼센트 조정

  1. Main에서 설비에러, OHT 에러 발생 함수 선택
  • isFacilityRandomFailer : 설비 에러 발생 함수
  • isOhtRandomFailer : OHT 에러 발생 함수
  1. FunctionBody에서 밑줄친 숫자 값 변경
    image

물류반송시스템 구현

실제 SEMES 기업의 물류반송시스템의 구조는 보안상 문제로 그대로 재현할 수 없어 논문 및 자료, 실제 시스템의 수치 등을 참고하여 물류반송시스템을 유사하게 구현했습니다. 물류반송시스템 상에서 다음과 같은 요소를 고려했습니다.

  • 레이아웃
  • 설비 위치 및 설비 작업 시간
  • OHT 작업 할당 및 OHT 이동 경로
  • OHT 양보 주행 및 OHT 이동 속도

1) 레이아웃

OHT의 이동경로인 레이아웃은 노드링크로 이루어져있습니다. 노드는 설비가 있을 수 있어 OHT가 정지해 작업을 수행할 수 있는 위치를 말하며, 링크는 OHT가 노드와 노드 사이를 이동하는 길입니다. 레이아웃은 논문을 참고하여 논문에서 제시한 레이아웃을 따라 구현하였습니다.

참조 논문 : Q learning-based dynamic route guidance algorithm for overhead hoist transport systems in semiconductor fabs image

2) 설비 위치 및 설비 작업 시간

위에서 제시된 논문의 레이아웃에서 링크 사이마다 노드를 배치하였습니다. SEMES 기업 멘토님의 조언을 바탕으로 설비의 위치와 대수를 반영하였고, 설비 작업 시 공중의 OHT를 설비가 있는 지상으로 내리고 올리는 시간, 설비에서 작업을 수행하는 시간을 반영하였습니다.

3) OHT 작업 할당 및 이동 경로

OHT의 작업은 출발 설비에서 웨이퍼를 받아 목적 설비로 전달하는 일련의 과정을 가집니다. 실제 물류반송시스템에서는 다양한 요소를 고려하여 SEMES 기업 만의 알고리즘을 통해 생산량을 증가시키는 방향으로 OHT에 작업을 할당하고 OHT가 최단 시간 내에 도착할 수 있도록 이동 경로를 설정합니다. 시뮬레이션에서는 지정된 설비들에 대해 랜덤 위치에서 랜덤 시간을 두고 웨이퍼가 생산되도록 하며, 가장 가까이에 있는 유휴상태 OHT에 작업을 배정하여 출발 설비에서 목적 설비까지 경로를 최단 경로로 설정하였습니다. 최단 경로 알고리즘은 Anylogic에서 자체적으로 제공하는 경로 설정 방식을 사용했습니다.

4) 양보 주행 및 OHT 이동 속도

OHT는 작업이 끝나면 유휴 상태가 되고, 유휴 상태에서는 레이아웃 상에 정지해있습니다. 만약 OHT가 정지해있는 곳을 다른 OHT가 지나가야한다면, 실제 물류시스템에서는 정지해있던 OHT가 다른 경로로 길을 비켜주는 양보주행을 실천합니다. 하지만 양보 주행의 경우 AI가 로그 분석 시 영향을 미치는 정보가 아니었기에 유휴상태인 OHT의 경우 실제 경로상에 존재하지 않다고 생각하여 다른 OHT의 이동에 문제가 없도록 구현했습니다. OHT의 이동 속도는 SEMES 기업 멘토님의 조언을 바탕으로 직선에서 5m/s, 곡선에서 3m/s로 조정하여 진행했습니다.

로그 데이터 형식

data desc example
OHT ID OHT 호기명 2606
mode OHT 작동 상태(A: 자동, M: 수동) A
status OHT 상태(I: 유휴, A: 도착, W: 작업, G: 이동) G
error OHT 에러(0: 정상, 200: OHT 에러, 300: 설비 에러) 0
carrier 웨이퍼 여부(0: 웨이퍼 없음, 1: 웨이퍼 있음) 1
current_node 현재 노드명 node173
next_node 다음 노드명 node174
target_node 목적 노드명 node50
point_x 레이아웃 상 x좌표 1043.724
point_y 레이아웃 상 y좌표 480.000
path 링크명 path343
speed 현재 속도 4m/s
start_time 작업 시작 시간 2021-04-15 15:11:00
current_time 현재 시간 2021-04-15 15:12:30
is_fail 작업 성공/실패 여부(0: 성공, 1: 실패) 1