메뉴 건너뛰기

SCM Lab

팁과강좌

   ▣ 생활 속 지혜, S/W, H/W Tip 등 다양한 정보들을 공유하는 곳입니다.
   ▣ 또한 산업공학을 포함한 전문 지식들을 공유하는 장으로 활용하실 수 있습니다.

이번시간에는 최종적으로 완성된 엘리베이터 모델링에 대하여 알아보겠습니다. 실제로 완성은 1~2주전에 하였지만 귀차니즘으로 인해 포스팅이 늦었습니다.

ev01.jpg


최종적인 모형은 위의 그림과 같습니다. ARENA에서 제공하는 Sub-Model 기능을 이용하여, 비슷한 기능을 하는 모듈들을 묶어서 정렬을 하였습니다.


ev02.jpg

우선 Logic에 관한 설명을 간단하게 드리도록 하겠습니다. Logic은 크게 1,4층과 2,3층이 비슷한 구조로 모델링이 되어 있습니다. 이유는 1,4층에서는 엘리베이터가 단일 방향으로만 움직이므로 2, 3층보다는 보다 심플하게 Logic을 구성할 수 있었습니다.


ev03.jpg

위의 그림은 People Arrive at 1st Floor의 Sub-Model의 모습입니다.

위의 Logic을 표현하면 다음과 같습니다.


1층에 사람 도착 → (1층에 사람도착한 것을 count, 목적지가 2, 3, 4층인 사람을 확률적으로 생성) → 지금 엘리베이터가 가동 중인지 여부를 판단 → 만약 엘리베이터가 멈춰 있다면, 1층으로 엘리베이터를 호출 → 엘리베이터가 1층에 도착할 때 까지 대기 → 엘리베이터가 도착 후 한명씩 탑승 (탑승 조건은 엘리베이터의 최대 탑승인원이 되거나, 지금 대기 중인 사람이 모두 탈 때 까지 탑승) → 엘리베이터 출발 신호(탑승한 사람은 해당 목적지의 count를 +1 씩한 후 소멸)



다음은 실제 승객으로 표현 되는 Entities가 이동하는 Waiting for Elevator를 살펴보도록 하겠습니다. (완성하고보니 엘리베이터를 기다리는 곳이 아니라 엘리베이터를 타고가는 목적지를 표현 한 것이군여.. 따라서 Waiting for elevator라는 작명은 좀...^^;;, 그냥 대충 넘어가도록 하겠습니다.)

ev04.jpg

이것은 단순히 해당 목적지의 사람을 count해주는 역할을 하는 것입니다. 마지막의 else는 필요없지만 혹시나 모르는 Logic 상의 문제점을 찾기 위하여 else를 사용하였습니다. (실제로는 검증이 되었으므로 필요가 없습니다.)


다음은 Elevator Arrives at 1st Floor의 Sub-model에 대하여 알아보도록 하겠습니다.

 ev05.jpg

Elevator Arrives at 1st Floor에서의 Logic은 다음과 같습니다.


엘리베이터 도착 → 목적지가 1층인 승객이 있는지 확인(있으면 승객을 내리게 하고, 지금 엘리베이터에 타고 있는 승객에서 내린 승객만큼을 빼줌)→ 승객을 탑승하도록 signal을 보냄 → 2분간 대기(승객이 타는 시간, 이것은 그냥 임의로 2분을 주었습니다.) → 승객이 다 타거나, 엘리베이터에 탑승인원이 최대 허용 인원을 초과 하였을 경우에는 엘리베이터를 출발 → 지금 엘리베이터에 타고 있는 인원이 0이고, 다른 층에서도 엘리베이터를 기다리는 인원이 0 이라면, 엘리베이터를 Free 상태로하여 멈추도록 함 →  그 외에는 엘리베이터를 출발



4층의 Logic은 1층의 Logic과 거의 유사하다고 보시면 될 듯합니다.


다음은 2층에 대하여 알아 보도록 하겠습니다. 우선 People Arrive at 2nd Floor를 살펴보면 1층과 유사함을 알 수 있습니다.

ev06.jpg

다만 1층과의 차이점은 2층에서는 3,4층으로 올라가는 사람과 1층으로 내려가기 위해 기다리는 사람이 있다는 것이겠지요. 이것은 Branch모듈을 사용하여 따로 분리하여 모델링을 하였습니다. (실제로는 합쳐서 모델링하는 방법도 있지만, 이게 이해하기 쉬울 듯 하네요...) 따라서 여기에 대한 부연 설명은 별도로 하지않도록 하겠습니다.



마지막으로 Elevator Arrives at 2nd Floor의 sub-model에 대하여 살펴 보도록 하겠습니다.

ev07.jpg

여기에서는 상당히 고민해야 할 사항이 많은 것을 깨달았습니다. 처음에는 쉽게 접근 했다가 2,3층과 같이 중간 층에 엘리베이터가 도착하였을 경우에 의사결정을 어떻게 해야 할지 고민을 많이 해야 했습니다. 그리고 이 부분 때문에 많은 오류가 발생하여 정말 많은 시간을 이부분을 Debugging하는데 보냈습니다.

(중간에 포기 하고 싶었습니다.ㅡㅠ)


우선 앞부분은 1층과 같습니다. 다만 엘리베이터의 방향이 아래냐 위냐에 따라서 엘리베이터가 내려야 할 의사결정이 다르며, 그것은 또한 Branch에서 Direction(1은 엘리베이터가 올라가는 중, 2는 엘리베이터가 내려가는 중)을 이용하여 분리하였습니다.

ev08.jpg


이 부분이 가장 고민을 많이 하게 한 부분입니다. 결국 가장 무식한 방법으로 의사결정을 하도록하여 완성하였는데, 아마 숨은 고수님들이 보시면 이부분을 쉽게 표현 하실 수 있을 듯하네요


우선 엘리베이터가 2층에 도착 하였고, 진행방향이 위라고 가정을 하였을 경우,


1. 엘리베이터에 아무도 없고, 다른층에도 대기하는 사람이 없다.

2. 엘리베이터에 사람이 있거나, 위 층에서 사람이 대기하고 있다.

3. 엘리베이터에 사람이 없고, (위에도 대기하는 사람이 없고) 2층에서 1층으로 내려가는 사람이 있다.



이렇게 크게 3가지의 의사결정이 나올 수 있습니다. 

1번의 경우 당연히 엘리베이터는 2층에서 멈추게 됩니다. 그리고 2번의 경우는 엘리베이터가 위로 올라가게 되겠죠.. 그리고 마지막 3번의 경우는 엘리베이터가 1층으로 내려가기 위하여 Direction을 바꾸고 다시 2층에서 승객을 태워야 합니다.


물론 지금 생각하면 당연한거지만 이 당시에는 이것을 어떻게 표현 할지 고민을 많이 했었습니다.


같은방법으로 엘리베이터가 2층에 도착하였고, 진행 방향이 아래일 경우에도 위와 유사한 의사결정을 해야 하겠죠??



자세한 모델링 방법은 아래 첨부파일을 열어서 확인 하시기 바랍니다.

첨부한 파일은 전체 모델링이 아니라 모델링의 일부분입니다. 따라서 실행을 하더라도 모델링 돌아가지 않음을 유의하시기 바랍니다.

만약 모델을 실행하고 싶으시면, 3, 4층에 관한 모델링을 완성해야만 합니다.

또한 첨부파일은 ARENA 7.0으로 만들었으며, 질문이 있으시면, 질의 및 응답이나 댓글을 통해 해주시기 바랍니다.

마지막으로 엘리베이터의 모델링은 지극히 저의 주관적인 생각과 100% 검증되지 않고 포스팅을 하므로 100% 신뢰를 하지 마시고 그냥 참고 자료로 활용하시기 바랍니다.


p.s 전체 모델링파일을 보내달라고 문의하지 마시기바랍니다.

Sample_Elevator.doe 

번호 제목 글쓴이 날짜 조회 수
223 apache2 access log 분할 관리 하기 file SCM 2010.05.25 7295
222 Apache Error : winnt_accept: Asynchronous AcceptEx failed. SCM 2010.05.24 14323
221 Apache Error : unable to include potential exec "include/top.html" SCM 2010.05.24 7314
220 QUEST Tutorial 01 - 설치, 소개 및 환경설정 file 네오랑 2010.05.22 8477
219 Textyle 블로그 메인 주소를 blog.domain.com 로 설정하기 file SCM 2010.05.18 8083
218 원격 데스크톱 연결 끊김 (Windows XP 이상) file SCM 2010.05.18 11932
217 DNSEver를 이용한 2차 도메인 일괄 셋팅 방법(바로 적용하기) file SCM 2010.05.18 6823
216 XE 메일 인증 시 ID/PW 정보 없이 빈 페이지만 올 경우 file SCM 2010.05.15 7473
215 Fake sendmail with ssl gmail for windows XP & XE (xpressengine) file SCM 2010.05.15 8420
214 Apache2 openssl on Winows XP (https 접속) file SCM 2010.05.15 7873
213 XE에서 SMTP 비밀번호 찾기 등의 메일 인증 (윈도우용 서버) [1] file SCM 2010.05.12 8402
212 오피스(MS Office) "현재 사용자용으로 설치되지 않았습니다." 해결 방법 file 네오랑 2010.05.01 12541
211 네트워크 부팅으로 윈도우 7 (windows 7) 설치하기 file 네오랑 2010.04.30 26281
210 2010년 국가별 자동차 충돌법규시험 소개 file 네오랑 2010.04.27 8028
209 2010년 국가별 자동차 충돌법규 정리 file 네오랑 2010.04.24 8533
208 2009년 자동차 안전편의 기술동향 보고서 file 네오랑 2010.04.24 7786
» ARENA를 이용한 Elevator 만들기 Final [1] file 네오랑 2009.07.16 10412
206 ARENA를 이용한 Elevator 만들기 05 file 네오랑 2009.06.29 9928
205 ARENA를 이용한 Elevator 만들기 04 file 네오랑 2009.06.24 10305
204 ARENA를 이용한 Elevator 만들기 03 file 네오랑 2009.06.18 9125