• 검색 결과가 없습니다.

시뮬레이션 결과 검증

문서에서 저작자표시 (페이지 56-80)

(a) Crossing (OS avoidance)

(b) Crossing (TS avoidance)

Fig. 4.5 Trajectory of collision avoidance simulation for Crossing

Fig 4.5의 (b)는 (a)와 반대의 상황으로 TS가 피항하는 경우이다. 이 경 우 TS가 OS의 홍등을 바라보고 있기 때문에 피항 의무를 지며, 회피결정 시점(245 sec)부터 455 sec까지 210 sec간 회피를 수행하였다. 원 침로 복 귀 후 약 0.75 nm 벗어나 있지만, 이는 초기설정 교차항적 거리(1 nm) 범 위 내에 있으므로 침로를 유지하며 항해한다.

Fig 4.6은 Head-On 상태에 대한 피항 또는 유지의 결정을 나타내며, Fig 4.3의 (c)에서 표현한 시뮬레이션 상황에 대하여 충돌회피를 수행한 결과를 나타낸다. OS과 TS는 서로의 선수, 즉 마스트 정부등을 바라보고 정면으로 마주치고 있으므로 Head-On 상태이다. 상대 선박에 대한 충돌 위험도가 219 sec에서 임계 값을 벗어났으며, 이는 회피를 결정하는 시점 이 된다.

Fig. 4.6 Trajectory of collision avoidance simulation for Head-On (OS, TS avoidance)

OS와 TS의 항해사 에이전트는 COLREGs 기반 지식으로 Head-On 상태 임을 판단하고 피항 의무를 지기 때문에 두 선박 모두 우현으로 변침을 명령하고, 조타수 에이전트는 이에 따라 타를 변경하여 충돌을 회피한다.

OS과 TS는 회피 결정 시점부터 434 sec까지 215 sec간 회피를 수행하였 으며, 이후 원 침로 및 초기설정 교차 항적 거리 범위 내로 진입하기 위 하여 TCS에 의해 조종된다.

Fig 4.7의 은 Overtaking 상태에 대한 피항 또는 유지의 결정을 나타내 며, Fig 4.3의 (d)에서 표현한 시뮬레이션 상황에 대하여 충돌회피를 수행 한 결과를 나타낸다. TS보다 10 kn 빠르게 항해 중인 OS는 TS의 선미, 즉 선미등을 바라보고 있기 때문에 Overtaking 상태이다. 회피를 결정하 는 시점(225 sec)에서 OS의 항해사 에이전트는 충돌위험 회피를 위한 판 단 결과로 우현 변침을 선택한다. 조타수 에이전트는 이에 따라 타를 변 경하여 충돌을 회피하며, 회피 결정 시점부터 710 sec까지 485 sec간 회 피를 수행하였다. 이후, 원 침로 및 초기설정 교차 항적 거리 범위 내로 진입하기 위하여 TCS에 의해 조종된다.

Fig. 4.7 Trajectory of collision avoidance simulation for Overtaking (OS avoidance)

(2) Case Ⅱ - 1:3 충돌회피 검증

Fig 4.8은 Fig 4.4에서 표현한 시뮬레이션 상황에 대하여 다중 대상 선 박의 항로 계획에 따른 침로 유지 및 에이전트에 의한 충돌회피 판단에 대한 수행 결과를 나타낸다. OS뿐만 아니라 TS 또한 설정된 침로를 항해 하는 동안 대상 선박에 대한 충돌위험도를 실시간으로 추정하여 임계 값 을 초과하는 충돌위험도 중 가장 높은 대상을 우선하여 회피한다.

OS의 최초 충돌회피를 감지하는 시점(185 sec)에서 타선박 대비 TCPA 와 DCPA가 가장 작아서 충돌위험도가 높게 추정된 TS1에 대해 항해사 에이전트는 피항 또는 유지 결정을 한다. TS1 또한 OS에 대한 충돌위험 도가 가장 높게 추정된다. 이 상태는 COLREGs의 Crossing 상태로 TS1의 좌현을 바라보고 있는 OS가 피항의 의무를 지기 때문에 우현으로 회피하 고 TS1은 침로를 유지한다. OS는 500 sec까지 315 sec간 회피를 수행하는

것을 확인할 수 있다. 이후, 원 침로 및 초기 설정 교차 항적 거리 범위내 로 진입하기 위하여 TCS에 의해 조종된다. 대상 선박(TS1, TS2, TS3) 또 한 침로 항해 중 발생하는 충돌 위험을 항해사 에이전트에 의해 자율적으 로 회피하고 원 침로로 복귀하는 것을 검증한다.

Fig. 4.8 Trajectory of multiple ship (1:3) collision avoidance simulation

제 5 장 결론 및 향후 연구

해상에서 지속해서 발생하고 있는 선박사고의 감소를 위해 항해사의 의 사결정을 지원할 수 있는 항해 안전 지원 서비스 등이 과거부터 다양한 접근을 통해 제안되었다. 하지만, 연구 결과물의 검증을 위해 실제 선박 탑재를 통한 시험은 막대한 비용과 위험이 따른다. 이러한 문제를 위해서 항해사 교육 목적의 시스템인 선박 조종 시뮬레이터(FMSS, full mission ship simulator)를 이용하여 다양한 시나리오의 시뮬레이션을 통한 검증이 가능하지만, 이 또한 대여 비용이 상당히 높아서 연구 목적으로의 접근성 이 떨어진다.

또한, FMSS는 선박 충돌위험 등과 같은 상황에 대한 직접적인 조종이 요구되며, 운항 관련 지식이 없이 이루어지는 선박 조종으로는 신뢰할 수 있는 검증이 이루어질 수 없을 것으로 판단된다. 그리고 FMSS에서 운항 시나리오 중 본 선박과 대상 선박은 설정된 경유 지점을 따라 운항할 뿐 충돌위험 상황에 대한 능동적인 회피를 하지 않으므로 실제 선박 운항과 는 많은 차이를 가진다.

본 논문에서는 이러한 한계점을 극복하기 위해 컴퓨터 기반의 시뮬레이 션을 위한 기본 구조를 설계하였다. 선박에 탑재되는 핵심장비의 주요 기 술과 특성을 분석하여 모델링하였고, 실제 선박에서 항해에 직접 관여하 는 항해사와 조타수의 의무를 분석하여 에이전트로 모델링하였다.

이를 통해, 항해 시뮬레이션 시스템은 여러 모델로 구성되어 복잡한 관 계를 가진다. 따라서, 이러한 구조를 체계적으로 모델링하기 위해 Zeigler 가 제안한 SES/MB(system entity structure/model base) 프레임워크를 사용

하였으며, 모델들 간의 계층적인 관계와 각 모델의 행위적 및 동역학적 특성을 나타내었다. 모델링 된 구조를 DEVS(discrete event system specification) 형식론 기반으로 각 모델과 여러 모델 간의 동작을 명세하 여 시뮬레이션 시스템을 구현하였다.

항해 시뮬레이션을 위해 본 논문에서 설계한 내용 검증을 위해 국제해 상충돌예방규칙(COLREGs, international regulations for preventing collisions at sea)에서 정의하는 항법 관계를 시나리오로 그 유용성을 성공 적으로 검증하였다.

제안한 항해 시뮬레이션 시스템을 위한 모델링 방법은 컴퓨터 기반 시 뮬레이션을 위한 기본적인 구조로 활용될 뿐만 아니라 향후 추가적인 요 소의 결합을 통한 확장성을 가진다. 또한, 항해 안전 지원 서비스 및 항해 디스플레이 장치 등의 저비용 및 신뢰성 높은 유용성 검증이 가능할 것으 로 기대된다.

향후에는 제안한 모델링 방법을 통한 시뮬레이션으로 수집 가능한 다양 한 데이터를 활용 및 분석하여 보다 더 효율적인 회피 경로를 도출하기 위한 인공지능 기반의 연구 등을 진행할 예정이며, 이는 최근 관심이 집 중되고 있는 자율운항 선박의 충돌위험 상황 시 회피 경로 도출을 위한 모듈로 사용할 것으로 기대된다.

참고문헌

[1] 해양수산부, 2018. 2017년 해양사고 통계 발표, 해양수산부 중앙해양안 전심판원.

[2] 이미라, 2010. 선박의 항행정보시스템을 위한 상황 예측 시뮬레이션 방안 연구. 한국시뮬레이션학회논문지, 19(3), pp.127-135.

[3] 이미라, 2017. 뉴로-퍼지 기반의 선박 충돌 회피 조치 분석 시스템 설 계. 한국지능시스템학회논문지, 27(2), pp.113-118.

[4] 김동균, 정중식, 박계각, 2011. 국제해상충돌예방규칙에 따른 충돌회피 알고리즘에 관한 연구. 한국지능시스템학회논문지, 21(3), pp.290-295.

[5] Y. Xue, D. Clelland, B. S. Lee, and D. Han, 2011. Automatic simulation of ship navigation. Ocean Engineering, 38(17-18), pp.2290-2305.

[6] 신일식, 황훈규, 이장세, 유영호, 2015. e-Navigation MSP 평가를 위한 시나리오 기반 시뮬레이션 시스템 개발. 한국마린엔지니어링학회논문 지, 39(1), pp.86-93.

[7] B. P. Zeigler, 1990. Object-oriented Simulation with Hierarchical, Modular Models : Intelligent Agents and Endomorphic systems. No.

04; QA76. 9. C65, Z4.

[8] B. P. Zeigler, H. Praehofer, and T.G. Kim, 2000. Theory of Modeling and Simulation, 2nd Edition. Academic Press.

[9] IMO Std. COLREGs, Convention on the International Regulations for

Preventing Collisions at Sea, IMO, 1972.

[10] NMEA Std. 0183, Standard for Interfacing Marine Electronic Devices, Version 4.00, NMEA, 2008.

[11] IEC Std. 62065 ed.2, Maritime navigation and radiocommunication equipment and systems-Track control systems-Operational and performance requirements, methods of testing and required test results, IEC, 2014.

[12] 송병호, 이경효, 정민아, 이성로, 2011. 다중 선박에서 효율적인 충돌 회피를 위한 베이지안 충돌 위험도 추정 알고리즘. 한국통신학회논문 지, 36(3), pp.248-253.

[13] 김동균, 정중식, 박계각, 2011. 국제해상충돌예방규칙에 따른 충돌회 피 알고리즘에 관한 연구. 한국지능시스템학회논문지, 21(3), pp.290-295.

[14] 김성우, 2013. 선박 충돌회피 우선순위지정 및 회피모델 연구. 한국산 학기술학회논문지, 14(11), pp.5442-5447.

[15] 임남균, 2004. 선박충돌회피지원을 위한 자동제어-Ⅲ. 한국항해항만학 회지, 28(6), pp.475-480.

[16] 손남선, 김선영, 2004. 선박충돌사고의 AIS 데이터를 이용한 선박 충 돌위험도 추정 알고리즘 검증에 관한 연구. 한국항해항만학회지, 34(10), pp.727-733.

[17] K. Hasegawa et al., 1989. Ship Auto-navigation Fuzzy Expert System (SAFES). Journal of the Society of Naval Architecture of Japan, 166, pp.445-452.

[18] K. Hasegawa, J. Fukuto, R. Miyake, and M. Yamazaki, 2012. An Intelligent Ship Handling Simulator with Automatic Collision Avoidance

Function of Target Ships. International Navigation Simulator Lecturers’ Conference (INSLC17), 23, pp.1-9.

[19] B. P. Zeigler, 1999. Exploiting HLA and DEVS To Promote Interoperability and Reuse in Lockhead’s Corporate Environment, Simulation, 73(5), pp.288-295.

[20] H. Imazu and T. Koyama, 1988. The Determination of Collision Avoidance Action. Journal of Japan Institute of Navigation, 70, pp.31-37.

[21] Y. Fujii and K. Tanaka, 1971. Traffic Capacity. The Journal of Navigation (Japan), 24, pp.543-552.

[22] 이윤석, 박준모, 안영중, 2014. 충돌위험 회피를 위한 선박 운항자의 초동조치에 관한 연구. 한국항해항만학회지, 38(4), pp.327-333.

부록 A 항해 시뮬레이션 시스템 구성 모델 의사 코드

Experiment frame - Generator

external transition function

when receive value on input port from Transducer model if phase is “wait”

if (value == “simulation stop”) hold-in “passive”

internal transition function

if phase is “busy” hold-in “wait”

output function

if phase is “busy”

output : send the ships initialization message to output port (a) Generator Model

Experiment frame - Transducer

external transition function

when receive value on input port from Logger model if phase is “active”

if (value == “simulation ships”)

Save(); // ships data (position, heading etc.) hold-in “active”

else if (value == “stop”) hold-in “passive”

internal transition function

if phase is “passive” hold-in “passive”

output function

if phase is “passive”

output : send the stop message to output port (b) Transducer Model

Table A.1 The Pseudo-codes of DEVS-based Experiment Frame Model

SPACE Model - Logger

external transition function

when receive value on input port from Generator, Sensors and SEP model

if phase is “wait”

if (value == “simulation stop”) hold-in “passive”

else if (value == “ship initialization”) hold-in “sending sensor”

else if (value == “sensor”) hold-in “receiving”

else if (value == “SEP value”)

update the receiving SEP value hold-in “sending GIS”

else if phase is “receiving”

update the receiving sensors, rudder, engine and AIS value // position, heading, velocity, rudder

if (value == AIS) hold-in “sending Propagator”

else hold-in “sending SEP”

internal transition function

if phase is “sending sensor” hold-in “receiving”

if phase is “receiving”

if phase is “sending SEP” hold-in “wait”

if phase is “sending Propagator” hold-in “wait”

if phase is “sending GIS” hold-in “wait”

if phase is “passive” hold-in “passive”

output function

if phase is “sending sensor”

output : send the sensor message to output port else if phase is “receiving”

output : send the sensor message to output port else if phase is “sending SEP”

output : send the sensor message to output port else if phase is “sending Propagator”

output : send the AIS message to output port else if phase is “sending GIS”

output : send the GIS message to output port else if phase is “passive”

output : send the simulation stop message to output port (a) Logger Model

Table A.2 The Pseudo-codes of DEVS-based Navigation SPACE Model

SPACE Model – Spatial Encounter Predictor

external transition function

when receive value on input port from Logger model

calculate the position and heading information of each ship // Position after 1 second

hold-in “calculating”

internal transition function if phase is “calculating”

hold-in “wait”

output function

if phase is “calculating”

output : send the ship location and heading message to output port

(b) SEP Model

SPACE Model – GIS

external transition function

when receive value on input port from Logger model update GIS information

hold-in “updating”

internal transition function if phase is “updating”

hold-in “passive”

output function

(c) GIS Model

Table A.2 The Pseudo-codes of DEVS-based Navigation SPACE Model

SPACE Model – Propagator

external transition function

when receive value on input port from Logger model calculate the propagation range of AIS

// Propagation range within 30 km (VHF Communication) hold-in “propagating”

internal transition function if phase is “propagating”

hold-in “passive”

output function

if phase is “propagating”

output : send the propagation message (AIS) to output port (d) Propagator Model

SPACE Model – Environment

external transition function

when receive value on input port from SEP model setup the environment // wind, wave height hold-in “setup”

internal transition function if phase is “setup”

hold-in “passive”

output function

if phase is “setup”

output : send the set message (environment) to output port (e) Environment Model

Table A.2 The Pseudo-codes of DEVS-based Navigation SPACE Model

Sensors - GPS

external transition function

when receive value on input port from Logger model update the GPS information of each ship

hold-in “updating”

internal transition function if phase is “updating”

hold-in “passive”

output function

if phase is “updating”

output : send the GPS information to output port (a) GPS Model

Sensors – Gyro compass

external transition function

when receive value on input port from Logger model update the Gyro compass information of each ship hold-in “updating”

internal transition function if phase is “updating”

hold-in “passive”

output function

if phase is “updating”

output : send the Gyro compass information to output port (b) Gyro compass Model

Table A.3 The Pseudo-codes of DEVS-based Sensor Model

Sensors – SpeedLog

external transition function

when receive value on input port from Logger model update the SpeedLog information of each ship hold-in “updating”

internal transition function if phase is “updating”

hold-in “passive”

output function

if phase is “updating”

output : send the SpeedLog information to output port (c) SpeedLog Model

Table A.3 The Pseudo-codes of DEVS-based Sensors Model

AISs – Class A AIS

external transition function

when receive value on input port from Sensors model if (value == “sensors”) hold-in “updating”

else if (value == “propagation”) hold-in “sending”

internal transition function if phase is “updating”

hold-in “passive”

else if phase is “sending”

hold-in “passive”

output function

if phase is “updating”

output : send the AIS information to output port if phase is “sending”

output : send the propagation information (AIS of other ships) to output port

(a) Class A AIS Model

Table A.4 The Pseudo-codes of DEVS-based AIS Model

Track Control System - ECDIS external transition function

when receive value on input port from Sensors, AISs and Agent model

if phase is “wait”

if (value == “sensors”) update(); hold-in “updating”

// update simulation ships position, heading, velocity else if (value == “AIS”)

if (CR() > Threshold) hold-in “collision risk”

//calculate CR

else if (value == “Agent”) hold-in “manual”

//manual steering by agent internal transition function if phase is “updating”

hold-in “wait”

if phase is “collision risk”

hold-in “wait”

else if phase is “manual”

hold-in “wait”

output function

if phase is “collision risk”

output : send the collision information to output port else if phase is “manual”

output : send the manual information to output port (a) ECDIS Model

Table A.5 The Pseudo-codes of DEVS-based TCS Model

Track Control System - HCS

external transition function

when receive value on input port from ECDIS model if phase is “wait”

if (value.mode == “HCS”) HCS(); hold-in “HCS”

else if (value.mode == “curved track control”) Curved(); hold-in “curved”

else if (value.mode == “cross track control”) Cross(); hold-in “cross”

else if (value.mode == “agent”) agent(); hold-in “agent”

if phase is “curved” || “cross” || “agent”

mode change to the HCS mode Hold-in “HCS”

internal transition function if phase is “HCS”

hold-in “wait”

else if phase is “curved” || “cross” || “agent”

hold-in the phase //curved, cross, agent output function

if phase is “HCS”

output : send the HCS rudder value to output port else if phase is “curved”

output : send the curved rudder value to output port else if phase is “cross”

output : send the cross rudder value to output port (b) HCS Model

Table A.5 The Pseudo-codes of DEVS-based TCS Model

문서에서 저작자표시 (페이지 56-80)

관련 문서