Skip to content

Latest commit

ย 

History

History
303 lines (172 loc) ยท 23.8 KB

README.md

File metadata and controls

303 lines (172 loc) ยท 23.8 KB

Cooperative Guidance

Cooperative guidance for multiple kill vehicles

code : MATLAB & python

Simulator with Single Target and Kill Vehicle

๋ณธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“ˆ์€ ๋‹จ์ผ ํ‘œ์  ๊ฒฉ์ถ”๋ฅผ ์œ„ํ•ด ๊ธฐ๋™ํ•˜๋Š” ํ•œ ๋Œ€์˜ Kill Vehicle์„ ๋ชจ์‚ฌํ•œ๋‹ค. ์‹คํ–‰์‹œ๊ฐ„์˜ ๋‹จ์ถ•์„ ์œ„ํ•ด ํ‘œ์ ์€ 3DOF ๋ชจ๋ธ์ด ์ ์šฉ๋œ ์งˆ์ ์œผ๋กœ ๊ฐ€์ •ํ•˜๋ฉฐ, Kill Vehicle์—๋Š” ๋น„ํ–‰์ฒด์˜ ์งˆ์ ๊ณผ ์ž์„ธ๊ฐ ๋ณ€ํ™”๋ฅผ ๋ชจ์‚ฌํ•˜๋Š” 6DOF ๋ชจ๋ธ์ด ์ ์šฉ๋˜์—ˆ๋‹ค.

Simulator Structure

Simulator Structure

์‚ฌ์šฉ์ž๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์ž‘ ์ „ ํ‘œ์  ๋ฐ Kill Vehicle์˜ ์ดˆ๊ธฐ ์œ„์น˜, ์ง„ํ–‰๋ฐฉํ–ฅ, ์†๋ ฅ ๋“ฑ์„ ์ž…๋ ฅํ•œ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“ˆ์€ ์ž…๋ ฅ๋ฐ›์€ ์ดˆ๊ธฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‘œ์  ๊ถค์ ์„ ์ ๋ถ„ํ•˜๋ฉฐ, Kill Vehicle์€ ์ƒ์„ฑ๋œ ํ‘œ์  ๊ถค์ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋น„๋ก€ํ•ญ๋ฒ•์œ ๋„(Proportional Navigation Guidance)๋ฅผ ์‹ค์‹œ, ํ‘œ์ ์„ ํ–ฅํ•ด ๊ธฐ๋™ํ•œ๋‹ค. Kill Vehicle๊ณผ ํ‘œ์  ๊ฐ„์˜ ์ ‘๊ทผ์†๋„๊ฐ€ ์–‘์ˆ˜์—์„œ ์Œ์ˆ˜๋กœ ๋ณ€ํ•˜๋ฉด ํ‘œ์ ์ด ๊ฒฉ์ถ”๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •, ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ข…๋ฃŒํ•˜๊ณ  ๊ถค์  ๋ฐ ์†๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


Target Trajectory

Target Flight Angle

ํ‘œ์ ์€ Kill Vehicle๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ธฐ๋™ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๊ธฐ๋™ ์‹œ์  ๋ฐ ์ˆ˜์ง, ์ˆ˜ํ‰๋ฐฉํ–ฅ ๊ธฐ๋™ ๊ฐ์†๋„๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” 3DOF ๋ชจ๋ธ์„ ๋”ฐ๋ฅธ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“ˆ์€ ์ž…๋ ฅ๋œ ๊ธฐ๋™ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ‘œ์ ์˜ ๊ธฐ๋™ ๋ช…๋ น์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์ƒ์„ฑ๋œ ๊ธฐ๋™ ๋ช…๋ น์€ 1์ฐจ ๋™์—ญํ•™ ์‹œ์Šคํ…œ์„ ๊ฑฐ์ณ ํ‘œ์ ์˜ ๊ธฐ๋™ ๊ฐ๋„๋ฅผ ์‚ฐ์ถœํ•œ๋‹ค. ๊ณ„์‚ฐ๋œ ํ‘œ์ ์˜ ์ˆ˜์ง, ์ˆ˜ํ‰๋ฐฉํ–ฅ ๊ธฐ๋™ ๊ฐ๋„๋Š” ๊ฐ๊ฐ Flight Path Angle๊ณผ Heading Angle์— ํ•ด๋‹นํ•œ๋‹ค.

FPA and Heading

์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‘œ์ ์˜ Wind ์ขŒํ‘œ๊ณ„๋ฅผ ์ •์˜ํ•œ๋‹ค. Wind ์ขŒํ‘œ๊ณ„๋Š” NED ์ขŒํ‘œ๊ณ„๋ฅผ 3์ถ•-2์ถ• ์ˆœ์„œ๋กœ Heading Angle, Flight Path Angle๋งŒํผ ํšŒ์ „ํ•œ ์ขŒํ‘œ๊ณ„๋กœ, ๋น„ํ–‰์ฒด์˜ ์ง„ํ–‰ ๋ฐฉํ–ฅ, ์ฆ‰ ์†๋„๋ฒกํ„ฐ๊ฐ€ Wind ์ขŒํ‘œ๊ณ„์˜ 1์ถ•๊ณผ ์ผ์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. Flight Path Angle๊ณผ Heading Angle์„ ์ด์šฉํ•ด Wind to NED ๋˜๋Š” NED to Wind ํšŒ์ „๋ณ€ํ™˜ ํ–‰๋ ฌ์„ ๊ธฐ์ˆ ํ•˜๋ฉฐ, ํ‘œ์ ์˜ ์†๋ ฅ์„ ํŠน์ •ํ•œ๋‹ค๋ฉด ๊ธฐ๋™ํ•˜๋Š” ํ‘œ์ ์˜ ์†๋„ ๋ฐ ๊ถค์ ์„ NED ์ขŒํ‘œ๊ณ„์—์„œ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.


Numerical Integration

Kill Vehicle์˜ NED ์†๋„, ๋™์ฒด ๊ฐ€์†๋„, ์ž์„ธ๊ฐ ๋ฐ PQR ๋ณ€ํ™”์œจ ์ ๋ถ„์„ ์œ„ํ•ด multistep method์˜ ์ผ์ข…์ธ Adams-Bashforth method๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ

์šฐ๋ฆฌ๋Š” p=1์ธ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜๋ฏ€๋กœ ฮณ1=0.5 ์ด๋ฉฐ, ์ˆ˜์น˜์ ๋ถ„์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.


Proportional Navigation Guidance

1) 2์ฐจ์›

proportionalNavigation

๋น„๋ก€ ํ•ญ๋ฒ• ์œ ๋„๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” Proportional Navigation Guidance์˜ ๊ฐœ๋…์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ 2์ฐจ์› ๊ทธ๋ฆผ์€ ์œ„์™€ ๊ฐ™๋‹ค. Proportional Navigation Guidance๋Š” ์œ„ ๊ทธ๋ฆผ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” line of sight rate(ฮป dot)์ด 0์ด ๋˜๋„๋ก Kill Vehicle๋ฅผ ์œ ๋„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ, Kill Vehicle๊ณผ target์˜ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์‹œ๊ฐํ™”ํ•œ ์‚ผ๊ฐํ˜•์„ collison triangle ์ด๋ผ๊ณ  ํ•œ๋‹ค.

2์ฐจ์›์—์„œ์˜ Kill Vehicle์˜ ๊ฐ€์†๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์œ„์˜ ์ˆ˜์‹์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, Kill Vehicle์˜ ๊ฐ€์†๋„ am์€ Kill Vehicle์˜ ์ˆœ๊ฐ„ ์†๋„ ๋ฒกํ„ฐ์— ์ˆ˜์ง์ด๋ฉฐ, ์ด๋•Œ N์€ ๋ฌด์ฐจ์›์˜ ๋น„๋ก€์ƒ์ˆ˜, ฮป dot์€ line of sight rate, V๋Š” closing velocity์ด๋‹ค.

2) 3์ฐจ์›

p1

3์ฐจ์›์—์„œ์˜ Proportional Navigation Guidance์˜ ๊ฐœ๋…์„ ํ‘œํ˜„ํ•œ ๊ทธ๋ฆผ์€ ์œ„์™€ ๊ฐ™๋‹ค. 3์ฐจ์›์—์„œ์˜ Kill Vehicle ๊ฐ€์†๋„์˜ ๊ธฐ๋ณธํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์œ„ ์ˆ˜์‹์—์„œ N๋Š” ๋ฌด์ฐจ์›์˜ ๋น„๋ก€์ƒ์ˆ˜์ด๊ณ , V๋Š” Kill Vehicle๋Œ€ํ•œ target ์†๋„์ด๋‹ค. ฮฉ vector๋Š” line of sight์˜ rotation vector์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

3์ฐจ์›์—์„œ Kill Vehicle์˜ ๊ฐ€์†๋„๋Š” Kill Vehicle์˜ ์†๋„ ๋ฒกํ„ฐ์™€ R vector(range from Kill Vehicle to target)์— ๋Œ€ํ•ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • R vector์— ์ˆ˜์ง์ธ ๊ฐ€์†๋„

  • Kill Vehicle ์†๋„ ๋ฒกํ„ฐ์— ์ˆ˜์ง์ธ ๊ฐ€์†๋„


Kill Vehicle Kinematics and Dynamics


Divert Attitude Control System

Kill Vehicle Graphics

๋ณธ ์—ฐ๊ตฌ์—์„œ ๊ณ ๋ คํ•˜๋Š” Kill Vehicle์€ RIM-161 Standard Missile 3์˜ Kill Vehicle๊ณผ ์œ ์‚ฌํ•œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋™์ฒด ์ „๋ฉด๋ถ€์—๋Š” ํ‘œ์  ํฌ์ฐฉ์„ ์œ„ํ•œ ํƒ์ƒ‰๊ธฐ๊ฐ€ ์œ„์น˜ํ•˜๋ฉฐ, ์งˆ๋Ÿ‰์ค‘์‹ฌ ์ฃผ๋ณ€์— 4๊ฐœ์˜ ์ถ”๋ ฅ๊ธฐ๋กœ ๊ตฌ์„ฑ๋œ Divert Control System์ด, ๋™์ฒด ํ›„๋ฉด๋ถ€์— 6๊ฐœ์˜ ์ถ”๋ ฅ๊ธฐ๋กœ ๊ตฌ์„ฑ๋œ Attitude Control System์ด ๋ถ€์ฐฉ๋œ ํ˜•ํƒœ์ด๋‹ค.

Kill Vehicle Thrusters

Kill Vehicle์— ๋ถ€์ฐฉ๋œ ๊ฐ ์ถ”๋ ฅ๊ธฐ๋“ค์„ ์œ„์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ D1, D2, D3, D4 ์™€ A1, A2, A3, A4, A5, A6 ๋Š” ๊ฐ DCS ๋ฐ ACS ์ถ”๋ ฅ๊ธฐ๋“ค์ด ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ถ”๋ ฅ์„ ์˜๋ฏธํ•˜๋ฉฐ, fy, fz ๋Š” ๋™์ฒด ์ขŒํ‘œ๊ณ„์˜ 2์ถ•, 3์ถ• ๋ฐฉํ–ฅ์œผ๋กœ Kill Vehicle์˜ ์งˆ๋Ÿ‰์ค‘์‹ฌ์— ์ž‘์šฉํ•˜๋Š” ํž˜์„, ๊ทธ๋ฆฌ๊ณ  l, m, n ์€ Kill Vehicle์˜ ์ž์„ธ๊ฐ, ์ฆ‰ Roll, Pitch, Yaw ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ† ํฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Kill Vehicle์— ์ž‘์šฉํ•˜๋Š” ํž˜๊ณผ ํ† ํฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 6๊ฐœ์˜ ACS ์ถ”๋ ฅ๊ธฐ๋“ค์ด ๋™์ฒด ํ›„๋ฉด๋ถ€์—๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ, ๊ทธ ์œ„์น˜๋Š” ์งˆ๋Ÿ‰์ค‘์‹ฌ์—์„œ ํฌ๊ฒŒ ๋ฒ—์–ด๋‚œ ๋™์‹œ์— ์งˆ๋Ÿ‰์ค‘์‹ฌ ๊ธฐ์ค€์—์„œ ๋น„๋Œ€์นญ์„ ์ด๋ฃฌ๋‹ค. ๋”ฐ๋ผ์„œ ์ž์„ธ์ œ์–ด๋ฅผ ์œ„ํ•ด ACS ์ถ”๋ ฅ๊ธฐ๋ฅผ ์ž‘๋™์‹œํ‚ค๋Š” ์ˆœ๊ฐ„ Kill Vehicle์€ ํ† ํฌ l, m, n ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํž˜ fy, fz ๋ฅผ ๋™์‹œ์— ๋ฐ›์„ ๊ฒƒ์ด๋‹ค. fy, fz ๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ์‹์— ACS ์ถ”๋ ฅ๊ธฐ์— ์˜ํ•œ A1, A2, A3, A4, A5, A6 ํ•ญ์ด ํฌํ•จ๋œ ๊ฒƒ์€ ์ด ๋•Œ๋ฌธ์œผ๋กœ, ๋™์ฒด ์ „๋ฉด๋ถ€์— fy, fz ๋ฅผ ์ƒ์‡„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ์ถ”๋ ฅ๊ธฐ๊ฐ€ ์งˆ๋Ÿ‰์ค‘์‹ฌ ๊ธฐ์ค€ ๋Œ€์นญ์ ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ถˆ๊ฐ€ํ”ผํ•œ ๋ฌธ์ œ์ด๋‹ค. l, m, n ์„ ๊ธฐ์ˆ ํ•˜๋Š” ์‹์€ ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„๋‹จํ•˜๋‚˜, ACS ์ถ”๋ ฅ๊ธฐ๋“ค์— ์˜ํ•œ ์ถ”๋ ฅ์„ ํ† ํฌ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์„ค๊ณ„๋ณ€์ˆ˜ a, b, ์ฆ‰ ์งˆ๋Ÿ‰์ค‘์‹ฌ๊ณผ ACS ์ถ”๋ ฅ๊ธฐ๋“ค ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ ์ •๋ณด๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.

์ƒ๊ธฐํ•œ Linear Equation ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ

x ๋Š” ๊ฐ ์ถ”๋ ฅ๊ธฐ๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ถ”๋ ฅ, b ๋Š” Kill Vehicle์— ์ž‘์šฉํ•˜๋Š” ํž˜๊ณผ ํ† ํฌ, A ๋Š” ์ƒ๊ธฐํ•œ ๋‘ ๋ฌผ๋ฆฌ๋Ÿ‰ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰๋ ฌ์ด๋‹ค. ๋น„๋ก€ํ•ญ๋ฒ•์œ ๋„ ๋ฐ ์ž์„ธ์ œ์–ด๊ธฐ์—์„œ ์—ฐ์‚ฐ๋œ b ๋ฅผ ์ถ”์ข…ํ•˜๊ธฐ ์œ„ํ•ด DACS ์ถ”๋ ฅ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘๋™์‹œ์ผœ์•ผ ํ•˜๋Š”์ง€, ์ฆ‰ ๋งค ์ˆœ๊ฐ„ x ์˜ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐํ• ์ง€๊ฐ€ ์šฐ๋ฆฌ์˜ ๊ด€์‹ฌ์‚ฌ์ด๋‹ค.


Attempt 1 - Least Norm Problem

์šฐ์„  ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ least norm problem ์„ ๊ณ ๋ คํ•˜์ž. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ•ด๋ฅผ ๊ฐ€์ง์ด ์•Œ๋ ค์ ธ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ

ํ–‰๋ ฌ A ๊ฐ€ full rank์ด๊ณ , underdeterminedํ•œ ํ˜•ํƒœ์ด๋ฏ€๋กœ A ์˜ Moore-Penrose pseudoinverse matrix๋Š” ์œ„์™€ ๊ฐ™๋‹ค. Pseudoinverse matrix๋ฅผ ์ด์šฉํ•œ ํ•ด๋Š” DACS ์ถ”๋ ฅ๊ธฐ๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์ž‘๋™ํ•˜์ง€๋งŒ, ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ตฌํ˜„์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•ด๋‹น ํ•ด๋Š” ์‹ค์ˆ˜ ์ „์ฒด์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐ˜๋ฉด, ํ˜„์‹ค์˜ ์ถ”๋ ฅ๊ธฐ๋“ค์€ ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ถ”๋ ฅ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ถ”๋ ฅ๊ฐ’์˜ ๋ฒ”์œ„๊ฐ€ ์Œ์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ œํ•œ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


Attempt 2 - Projected Gradient Descent

๊ธฐ์กด least norm problem ์˜ cost function์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ least squared error ํ˜•ํƒœ๋กœ ์ˆ˜์ •ํ•˜๋Š” ํ•œํŽธ, inequality constraint๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. ์ด ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์„ ์œ„ํ•ด gradient descent ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณ ๋ คํ•˜์ž. Gradient descent ๋Š” cost function์˜ local minimum์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ๋งค step์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ cost function์˜ gradient๊ฐ€ 0์œผ๋กœ ์ˆ˜๋ ดํ•˜๋Š” ๋ฒกํ„ฐ x ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค.

์—ฌ๊ธฐ์„œ h ๋Š” learning rate, f(x) ๋Š” cost function์ด๋ฉฐ, x ์— ๋Œ€ํ•œ f(x) ์˜ gradient๋Š” x ์˜ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ํ•จ์ˆ˜ f(x) ์˜ ์ตœ๋Œ€ ๋ณ€ํ™”์œจ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋จผ์ € inequality constraint๊ฐ€ ๊ณ ๋ ค๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •ํ•˜์ž. ๋ฒกํ„ฐ x ๋Š” f(x) ์˜ local minimum์„ ์ง€๋‚˜์น˜๊ธฐ ์ „๊นŒ์ง€ learning rate๋ฅผ 120%์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ํ•˜๊ฐ•ํ•œ๋‹ค. Local minimum์„ ์ง€๋‚˜์น˜๋ฉด learning rate๋ฅผ 50%์”ฉ ๊ฐ์†Œ์‹œํ‚ค๋ฉฐ local minimum์— ์ ‘๊ทผํ•œ๋‹ค. Iteration์„ ์ถฉ๋ถ„ํžˆ ๋ฐ˜๋ณตํ–ˆ๊ฑฐ๋‚˜ cost function์˜ gradient๊ฐ€ ์ถฉ๋ถ„ํžˆ 0์— ๊ฐ€๊นŒ์›Œ์กŒ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ข…๋ฃŒํ•œ๋‹ค.

Gradient Descent

์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•ด x ๋ฅผ 2์ฐจ์› ๋ฒกํ„ฐ๋กœ ๊ฐ€์ •ํ•œ ๋’ค ์ž„์˜์˜ cost function์— ๋Œ€ํ•ด gradient descent๋ฅผ ์ ์šฉํ•˜์˜€๋‹ค. ๋ช‡ ๋ฒˆ์˜ iteration ํ›„ ์„ฑ๊ณต์ ์œผ๋กœ x ๊ฐ€ local minimum์œผ๋กœ ์ˆ˜๋ ดํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ inequality constraint๋ฅผ ๊ณ ๋ คํ•  ์ฐจ๋ก€์ด๋‹ค. ์œ„ ๊ทธ๋ฆผ์˜ ๋ถ‰์€ ์˜์—ญ์€ ๋ฒกํ„ฐ x ๊ฐ€ ์กด์žฌํ•˜๋ฉด ์•ˆ ๋˜๋Š” ์˜์—ญ, ์ฆ‰ constraint๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์šฐ๋ฆฌ์˜ feasible set C ๋Š” ๊ทธ๋ฆผ ์šฐ์ธก ์ƒ๋‹จ์˜ nonnegative region์œผ๋กœ ์ œํ•œ๋˜๋ฏ€๋กœ, ๋งค step์—์„œ ๊ตฌํ•œ x ๊ฐ€ C ๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด x ๋ฅผ C ์— ๋Œ€ํ•ด projectionํ•ด constraint๋ฅผ ์ถฉ์กฑ์‹œํ‚ฌ ๊ฒƒ์ด๋‹ค.

Projected Gradient Descent

๋™์ผํ•œ ์˜ˆ์‹œ์— projected gradient descent๋ฅผ ์ ์šฉํ•ด ๋ณด์•˜๋‹ค. Inequality constraint๋ฅผ ๋งŒ์กฑํ•˜๋Š” x ๊ฐ€ ์ ์ ˆํ•œ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ์ˆ˜๋ ดํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ถ”๋ ฅ๊ธฐ๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ถ”๋ ฅ์ด ์ œํ•œ๋œ ๊ฒฝ์šฐ์—๋„ ๋ณธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด ์ ์ ˆํ•œ ์ตœ์ ํ•ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.


Attempt 3 - Projected Gradient Descent with Regularizer

Least squared error์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ๊ธฐ์กด cost function์„ ํ™•์žฅํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ cost function์„ ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•˜์˜€๋‹ค. ์ฒซ ๋ฒˆ์งธ regularizer๋Š” ์ถ”๋ ฅ ์ž์ฒด์˜ ์ตœ์†Œํ™”๋ฅผ, ๋‘ ๋ฒˆ์งธ regularizer๋Š” ์ด์ „ timestep์—์„œ ๊ณ„์‚ฐ๋œ ์ถ”๋ ฅ๊ณผ ํ˜„์žฌ ๊ณ„์‚ฐ๋œ ์ถ”๋ ฅ์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋„๋ก, ์ฆ‰ ์ถ”๋ ฅ์„ ์‹œ๊ฐ„์— ๋Œ€ํ•ด ์—ฐ์†์ ์œผ๋กœ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, ๋น„๋ก€์ƒ์ˆ˜ ฮป ์™€ ฮฝ ๋Š” ๊ฐ regularizer๋“ค์˜ ๊ฐ€์ค‘์น˜์— ํ•ด๋‹นํ•œ๋‹ค.

์ƒˆ๋กญ๊ฒŒ ์ •์˜๋œ cost function์˜ gradient๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ projected gradient descent ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด ์ ์ ˆํ•œ ์ถ”๋ ฅ๋ฒกํ„ฐ x ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋“ˆ์— ์ด๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ ์‹คํ–‰์‹œ๊ฐ„์ด ์ƒ๋‹นํžˆ ๊ธธ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์ตœ์ ํ™”ํ•จ์œผ๋กœ์„œ ์‹คํ–‰์‹œ๊ฐ„์„ ์–ด๋А ์ •๋„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์ถ”๋ ฅ๊ฐ’ ๋ฌธ์ œ ์ž์ฒด๋ฅผ ๋‹จ์ˆœํ™”์‹œํ‚ค๋Š” ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•ด ๋ณด์•˜๋‹ค.


Attempt 4 - Paired Thrusters

Paired Thrusters

์Œ์ˆ˜ ์ถ”๋ ฅ์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด 10๊ฐœ์˜ DACS ์ถ”๋ ฅ๊ธฐ๋“ค์„ ๋‘ ๊ฐœ์”ฉ ์ง์ง€์–ด ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•˜์ž. ์„œ๋กœ ๋Œ€์นญ์ธ ์ถ”๋ ฅ๊ธฐ๋“ค์„ ๋ฌถ์œผ๋ฉด ๊ธฐ์กด [D1, D3] ๋ฅผ Dโ€ฒ1 ๋กœ, [D2, D4] ๋ฅผ Dโ€ฒ2 ๋กœ, [A1, A4] ๋ฅผ Aโ€ฒ1 ๋กœ, [A2, A6] ๋ฅผ Aโ€ฒ2 ๋กœ, [A3, A5] ๋ฅผ Aโ€ฒ3 ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒˆ๋กญ๊ฒŒ ์ •์˜๋œ 5๊ฐœ์˜ ์ถ”๋ ฅ๊ธฐ๋“ค์ด ๋™์ฒด ์ขŒํ‘œ๊ณ„์™€ ๋™์ผํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์ถ”๋ ฅ์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์˜ˆ๋ฅผ ๋“ค์–ด Dโ€ฒ1 ์ถ”๋ ฅ๊ธฐ๊ฐ€ ์–‘์˜ ์ถ”๋ ฅ์„ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ๊ธฐ์กด D1 ์ถ”๋ ฅ๊ธฐ๊ฐ€ ์ž‘๋™ํ•ด Kill Vehicle์€ Yaw ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ํž˜์„ ๋ฐ›๊ณ , ์Œ์˜ ์ถ”๋ ฅ์„ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด D3 ์ถ”๋ ฅ๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜์—ฌ Yaw ์ถ•์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ํž˜์„ ๋ฐ›์„ ๊ฒƒ์ด๋‹ค.

์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•œ ์ถ”๋ ฅ๊ธฐ๋“ค์„ ์ด์šฉํ•ด Kill Vehicle์— ์ž‘์šฉํ•˜๋Š” ํž˜๊ณผ ํ† ํฌ๋ฅผ ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค. ์ด Linear Equation์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์—ฌ๊ธฐ์„œ

๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ๋„ ์ถ”๋ ฅ๋ฒกํ„ฐ xโ€ฒ ๋Š” ํž˜๊ณผ ํ† ํฌ ๋ฒกํ„ฐ b ์™€ ๊ฐ™์€ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, Aโ€ฒ ๋˜ํ•œ nonsingular matrix์ด๋‹ค. ๋”ฐ๋ผ์„œ xโ€ฒ ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ•ด๋ฅผ ๊ฐ€์ง์„ ์‰ฝ๊ฒŒ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ตฌํ•œ ์ถ”๋ ฅ๋ฒกํ„ฐ xโ€ฒ ๋Š” ๊ธฐ์กด ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ•œ ํ•ด์™€ ๋งค์šฐ ์œ ์‚ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ๊ทธ ์‹คํ–‰์‹œ๊ฐ„ ์—ญ์‹œ ํ˜„์ €ํžˆ ์งง๋‹ค. ํ•˜์ง€๋งŒ 2๊ฐœ์˜ ์ถ”๋ ฅ๊ธฐ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๊ณ ๋ คํ•˜๋Š” ํŠน์„ฑ ์ƒ, ๋ชจ๋“  ์ถ”๋ ฅ๊ธฐ๋“ค์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ํ•œ๊ณ„ ์—ญ์‹œ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.


Extra Attempt - ADMM Solver

๊ธฐ์กด Projected Gradient Descent ๋Œ€์‹  ADMM solver๋ฅผ ์ ์šฉํ•˜์ž. Cost function f(x) ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ I ๋Š” 10x10 ๋‹จ์œ„ํ–‰๋ ฌ, 0 ๋Š” 10x1 ์˜ํ–‰๋ ฌ์ด๋‹ค. Augmented Lagrangian paramter ฯ ๋ฅผ ์ด์šฉํ•ด ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด

์—ฌ๊ธฐ์„œ C ๋Š” feasible set, ฮ C ๋Š” projection operator์ด๋‹ค. xk+1 ์„ ์ •๋ฆฌํ•˜๋ฉด

์ด๋‹ค. ์ ์ ˆํ•œ iteration ๋’ค ๊ณ„์‚ฐ๋œ xk+1 ๊ฐ€ constraint๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๋Š” ์ถ”๋ ฅ๊ฐ’์ด๋‹ค.

ADMM Convergence

์œ„ ๊ทธ๋ž˜ํ”„๋Š” ์ž„์˜์˜ ์‹œ์ ์— ๋Œ€ํ•ด ฯ ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋ฉฐ f(x) ์˜ ์ˆ˜๋ ด์„ฑ์„ ๊ฒ€์ฆํ•œ ๊ฒฐ๊ณผ์ด๋‹ค. ฯ ๊ฐ’์„ ์ž‘๊ฒŒ ์„ค์ •ํ•œ ๊ฒฝ์šฐ, ์•ฝ 10๋ฒˆ ๊ฐ€๋Ÿ‰ ์•Œ๊ณ ๋ฆฌ๋“ฌ์„ ๋ฐ˜๋ณตํ•ด ์ตœ์  DACS ์ถ”๋ ฅ๊ฐ’ x ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


detect target

Kill Vehicle์—๋Š” seeker๊ฐ€ ๋‹ฌ๋ ค์žˆ๋‹ค. ์ด target์„ detect ํ•˜๋Š” ๊ฒƒ์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

sensor1

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ 2์ฐจ์›์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

detect

์œ„์˜ ฮฑ ๋Š” Kill Vehicle seeker์˜ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ด๋‹ค. ๋˜ ฮฒ ๋Š” Body1 axis๋ฅผ NED์ขŒํ‘œ๊ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ์ถ•๊ณผ LOS๋ฅผ NED์ขŒํ‘œ๊ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ์ถ• ์‚ฌ์ด์˜ ๊ฐ์ด๋‹ค. ์ด๋•Œ ฮฑ ๊ฐ€ ฮฒ ๋ณด๋‹ค ํฌ๋ฉด Kill Vehicle seeker๊ฐ€ Target์„ ํƒ์ง€ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ฮฑ ๊ฐ€ ฮฒ ๋ณด๋‹ค ์ž‘์œผ๋ฉด Kill Vehicle seeker๊ฐ€ Target์„ ํƒ์ง€ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
Body1 axis๋ฅผ NED์ขŒํ‘œ๊ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ์ถ•๊ณผ LOS๋ฅผ NED์ขŒํ‘œ๊ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ์ถ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

Body 1 axis to NED

Los to NED

๋งˆ์ง€๋ง‰์œผ๋กœ ์—ฌ๋Ÿฌ ์ขŒํ‘œ๊ณ„์— ๋Œ€ํ•œ rotation ํ–‰๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  1. NED to Body

  1. Body to NED

  1. NED to Wind

  1. Wind to NED

  1. Wind to Body

  1. Body to Wind