λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

🎈capstone

PID μ œμ–΄λ₯Ό μ΄μš©ν•œ λ“œλ‘ μ˜ μœ„μΉ˜ μ œμ–΄

 

μ•ˆλ…•ν•˜μ„Έμš” λΈ”λ‘œκ·ΈλŠ” μ˜€λžœλ§Œμ΄λ„€μš”..

μž…ν•™ μ–΄μ œ ν•œ 것 같은데..벌써 μ‘Έμ—… ν”„λ‘œμ νŠΈλ₯Ό ν•˜κ³ μžˆλ‹΅λ‹ˆλ‹€....

μ‹œκ°„ λ„ˆλ¬΄ λΉ λ₯΄λ‹€ λ‚œ 아직 아긴데!! 

 

 

 

κ°μ„€ν•˜κ³  μ§„ν–‰ν•˜κ³  μžˆλŠ” μ£Όμ œμ— λŒ€ν•΄ κ°„λ‹¨νžˆ μ΄μ•ΌκΈ°ν•΄λ³΄μžλ©΄,

λ“œλ‘ μ„ 톡해 μ‹€μ‹œκ°„μœΌλ‘œ ν•΄μˆ˜μš•μž₯의 상황을 λΆ„μ„ν•œ ν›„,

물에 빠진 것 같은 μ‚¬λžŒμ„ νƒμƒ‰ν•˜μ—¬ λ“œλ‘ μœΌλ‘œλΆ€ν„° 거리와 ν•¨κ»˜ μ•ˆμ „μš”μ›μ—κ²Œ μ•Œλ¦Όμ„ μ£ΌλŠ”

λ“œλ‘ μ„ μ΄μš©ν•œ λ”₯λŸ¬λ‹ 기반 μˆ˜μƒ μ•ˆμ „ μš”μ›

을 주제둜 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜κ³  μžˆλ‹΅λ‹ˆλ‹€!!

 

 

 

μ‹€μ‹œκ°„ μ˜μƒ λΆ„μ„μ—λŠ” YOLO v5λ₯Ό μ‚¬μš©ν•  μ˜ˆμ •μ΄λ©°

λ“œλ‘ μ€ PID μ œμ–΄μ™€ μ΅œμ ν™”λœ μœ„μΉ˜μ—μ˜ 배치λ₯Ό 톡해

μ‚¬κ°μ§€λŒ€ 없이 κ°μ‹œλ₯Ό μ§„ν–‰ν•˜κ³ μž ν•©λ‹ˆλ‹€.

 

 

μ €λŠ” 였늘 κ·Έ μ€‘μ—μ„œλ„ λ“œλ‘ μ˜ μ œμ–΄μ— λŒ€ν•΄ μž‘μ„±ν•΄λ³΄λ €κ³ ν•΄μš”!

보톡 λ“œλ‘ μ„ μ΄μš©ν•œ ν”„λ‘œμ νŠΈλΌκ³  ν•˜λ©΄, 자율 μ£Όν–‰ λ“œλ‘ μ„ 많이 λ– μ˜¬λ¦¬μ‹€ν…λ°μš”,

μ €ν¬λŠ” 일반적인 λ“œλ‘ μ˜ 운영 방법과 λ‹€λ₯΄κ²Œ

μ΅œμ ν™”λœ μœ„μΉ˜μ— κ³ μ •μ μœΌλ‘œ μœ„μΉ˜ν•˜μ—¬((ν˜Έλ²„λ§)) κ°μ‹œν•˜λŠ” λͺ©μ μœΌλ‘œ λ“œλ‘ μ„ μ‚¬μš©ν•©λ‹ˆλ‹€! 

 

μ—¬κΈ°μ„œ ν˜Έλ²„λ§μ΄λž€, μ•„λž˜μ˜ 컀비가 κ³΅μ€‘μ—μ„œ μœ„μΉ˜ 이동 없이 λ– μžˆλŠ” κ²ƒμ²˜λŸΌ μ œμžλ¦¬μ—μ„œ 정지 λΉ„ν–‰ν•˜λŠ” 것을 λ§ν•©λ‹ˆλ‹€.

 

 

이거 움지 μͺ„μ˜€λŠλΌ μ‹œκ°„ μ’€ κ±Έλ Έλ‹€λŠ”..

 


 

 

PID μ œμ–΄

 

 

μ €ν¬λŠ” 이 ν˜Έλ²„λ§μ„ μ•ˆμ •μ μœΌλ‘œ ν•˜κΈ° μœ„ν•œ 방법을 μ°Ύμ•„λ³΄λ˜ 쀑, PID μ œμ–΄μ— λŒ€ν•΄ λ°œκ²¬ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

 

PIDλŠ” λ§Žμ€ μ œμ–΄ 방법 쀑 기본이 λ˜λŠ” μ œμ–΄ λ°©λ²•μœΌλ‘œ μƒˆλ‘œμš΄ μ œμ–΄λ°©λ²•κ³Όμ˜ μ„±λŠ₯을 비ꡐ할 λ•Œ

κΈ°μ€€μœΌλ‘œ μ‚¬μš©ν•  만큼 λŒ€ν‘œμ μΈ μ œμ–΄ λ°©λ²•μ΄λΌλ„€μš”! . 

 

 

좜처 : wikipedia

 

PID μ œμ–΄λŠ” λΉ„λ‘€-적뢄-λ―ΈλΆ„ μ œμ–΄λΌκ³ λ„ ν•˜λ©° μœ„μ™€ 같이 ν”Όλ“œλ°± ꡬ쑰둜 μ΄λ£¨μ–΄μ ΈμžˆμŠ΅λ‹ˆλ‹€.

였차 값에 λŒ€ν•΄ 각 μ œμ–΄λ₯Ό μ§„ν–‰ν•œ ν›„,

κ·Έ 아웃풋을 λ°”νƒ•μœΌλ‘œ 또 μ œμ–΄λ₯Ό μ§„ν–‰ν•˜μ—¬ λͺ©ν‘œμΉ˜μ— 도달할 수 μžˆλ„λ‘ ν•˜λŠ” 것이죠!

 

 

λ“œλ‘ μ˜ λͺ©ν‘œ μœ„μΉ˜μ™€ μ‹€μ œ μœ„μΉ˜μ˜ 차이λ₯Ό Error라고 μ •μ˜ν•  λ•Œ,

Errorκ°€ 컀질 수둝 더 큰 μ œμ–΄κ°€ Errorκ°€ μž‘μ„ 수둝 λ―Έμ„Έν•œ μ œμ–΄κ°€ ν•„μš”ν•œλ°

PID μ œμ–΄μ—μ„œλŠ” P(λΉ„λ‘€), I(적뢄), D(λ―ΈλΆ„) 값을 μ΄μš©ν•˜μ—¬ μ œμ–΄μ˜ 정도λ₯Ό μ‘°μ ˆν•©λ‹ˆλ‹€.

 

 

 

  • P μ œμ–΄ (Proportional, λΉ„λ‘€ μ œμ–΄)

 

P μ œμ–΄λŠ” 였차λ₯Ό κ³„μ‚°ν•˜κ³  κ·Έ 값에 Kpλ₯Ό κ³±ν•˜μ—¬ μ˜€μ°¨μ— λΉ„λ‘€ν•˜κ²Œ μ œμ–΄λŸ‰μ„ μ‘°μ ˆν•˜λŠ” κ°€μž₯ 직관적인 μ œμ–΄λ°©λ²•μž…λ‹ˆλ‹€.

λ“œλ‘ μ„ μž‘λ™μ‹œμΌ°μ„ λ•Œ, 초반 μ˜€μ°¨κ°€ 클 경우 였차λ₯Ό λΉ λ₯΄κ²Œ 쀄여쀄 수 μžˆμŠ΅λ‹ˆλ‹€!

μ•„λž˜ μˆ˜μ‹μ„ 보면 νŠΉλ³„νžˆ λ³΅μž‘ν•œ 것 없이 μƒμˆ˜μ— μ˜€μ°¨κ°’λ§Œ κ³±ν•˜μ—¬ μ–»λŠ” μ œμ–΄κ°’μž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

$${P=K_{p}*Error}$$

 

 

 

  • I μ œμ–΄ (Integral, 적뢄 μ œμ–΄)

 

P μ œμ–΄λŠ” 초반 였차λ₯Ό 효율적으둜 쀄일 수 μžˆμœΌλ‚˜, μ˜€μ°¨κ°€ μ€„μ—ˆμŒμ—λ„ κ³„μ†ν•΄μ„œ μ—λŸ¬μ— λΉ„λ‘€ν•˜μ—¬ μ œμ–΄κ°’μ„ λΆ€μ—¬ν•˜κΈ° λ•Œλ¬Έμ— 였히렀 λͺ©ν‘œ μœ„μΉ˜λ₯Ό λ„˜μ–΄μ„œλŠ” ν˜„μƒ(μ˜€λ²„μŠˆνŒ…)이 λ°œμƒν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ ν˜„μƒμ„ λ°©μ§€ν•˜κ³  Pμ œμ–΄λ‘œ ν•΄κ²°ν•˜μ§€ λͺ»ν•˜λŠ” 였차λ₯Ό λ³΄μ™„ν•˜κΈ°μœ„ν•œ 방법이 Iμ œμ–΄ μž…λ‹ˆλ‹€.

였차의 적뢄값에 λΉ„λ‘€ν•΄μ„œ μ œμ–΄ν•˜λ©΄μ„œ 남은 였차λ₯Ό μ œμ–΄ν•˜κΈ° λ•Œλ¬Έμ— νŠΉμ • 값을 λͺ©ν‘œλ‘œν•œλ‹€λ©΄ 효과적인 λ°©λ²•μž…λ‹ˆλ‹€.

저희 ν”„λ‘œμ νŠΈμ—λŠ” 효과적인 μ œμ–΄ 방법이 되겠죠!

 

 

$${I=K_{i}*\int_{0}^{t}Error dt}$$

 

 

 

  • D μ œμ–΄ (Derivative, λ―ΈλΆ„ μ œμ–΄)

 

D μ œμ–΄λŠ” 였차의 λ³€ν™”λŸ‰μ— λΉ„λ‘€ν•˜μ—¬ μ œμ–΄ν•˜λŠ” λ°©λ²•μœΌλ‘œ 일반적으둜 μ•ˆμ •μ„±μ„ 높이기 μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ œμ–΄λ°©λ²•μž…λ‹ˆλ‹€.

였차의 λ³€ν™”κ°€ 크닀면 더 큰 μ •λ„λ‘œ μ‘°μ •ν•˜μ—¬ λ³€ν™”κ°€ κΈ‰κ²©ν•˜κ²Œ λ‚˜νƒ€λ‚˜μ§€ μ•Šλ„λ‘ ν•˜λŠ” 원리이죠!

λ‹€λ§Œ, 미뢄값은 μ˜ˆμΈ‘ν•  수 μ—†κΈ° λ•Œλ¬Έμ— μƒ˜ν”Œλ§ μ‹œκ°„μ΄ μ§§κ±°λ‚˜ μ™ΈλΆ€ 좩격으둜 μΈν•œ κ°‘μž‘μŠ€λŸ¬μš΄ 변화에 μ˜ν•΄

λ―ΈλΆ„ 값이 νŠ€λŠ” κ²½μš°κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

$$D=K_{d}*\frac{de}{dt}$$

 

 

 

λ‹€μ‹œ μ •λ¦¬ν•΄λ³΄μžλ©΄,

 

μ΄ˆκΈ°μ— λͺ©ν‘œμΉ˜μ— λΉ λ₯΄κ²Œ λ„λ‹¬ν•˜κΈ° μœ„ν•œ P μ œμ–΄

λ‚¨μ•„μžˆλŠ” 였차λ₯Ό 쀄이기 μœ„ν•œ I μ œμ–΄

μ•ˆμ •μ„±μ„ 높이기 μœ„ν•œ D μ œμ–΄κ°€ μ‘΄μž¬ν•˜λ©°

값듀을 μ‘°ν•©ν•œ 것이 PID μ œμ–΄μž…λ‹ˆλ‹€.

 

 

$$u(t)=K_{p}*Error(t) + K_{i}*\int_{0}^{t}Error dt + K_{d}*\frac{de}{dt}$$

 

 

 

각 μ œμ–΄λ₯Ό μ λ‹Ήν•œ κ²ŒμΈκ°’μœΌλ‘œ μ μš©ν•œ κ²°κ³Όλ₯Ό 보면 순차적으둜 μ œμ–΄κ°€ 진행됨에 따라

λͺ©ν‘œμΉ˜(1)에 λ”μš± μ•ˆμ •μ μœΌλ‘œ μ ‘κ·Όν•œλ‹€λŠ” 점을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 

좜처 : wikipedia

 

 


 

 

 

κ²ŒμΈκ°’ νŠœλ‹

 

 

μœ„μ˜ μ‹μ—μ„œ 확인할 수 μžˆλ“―μ΄ 각 μ œμ–΄κ°’μ„ μ•Œμ•„λ‚΄κΈ°μœ„ν•΄ μƒμˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ”λ°μš” 이λ₯Ό κ²ŒμΈκ°’μ΄λΌκ³  λΆ€λ₯΄λ©° 이 κ²ŒμΈκ°’μ„ μ–΄λ–»κ²Œ μ„€μ •ν•˜λŠ”μ§€μ— 따라 PID μ œμ–΄μ˜ 효율이 κ²°μ •λœλ‹€κ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

그럼 이 κ²ŒμΈκ°’μ€ μ–΄λ–»κ²Œ μ„€μ •ν•œλŠ” 것이 κ°€μž₯ νš¨μœ¨μ μΌκΉŒμš”? 보톡 게인 νŠœλ‹μ€ μ—¬λŸ¬ 번의 μ‹œν–‰μ°©μ˜€λ₯Ό 직접 κ²ͺμ–΄κ°€λ©΄μ„œ 각 μ‹œμŠ€ν…œμ— λ§žλŠ” 졜적의 값을 μ°Ύμ•„λ‚˜κ°€λŠ”λ°μš”, κ·Έ 전에 κ²ŒμΈκ°’μ˜ 변화에 따라 μ˜ˆμƒλ˜λŠ” output을 κ³ λ €ν•˜μ—¬ μ μ ˆν•œ 값을 μ°Ύμ•„κ°€λ³Ό μˆ˜λŠ” 있겠죠@.@ 이λ₯Ό ν‘œλ‘œ λ‚˜νƒ€λ‚Έλ‹€λ©΄ μ•„λž˜μ™€ 같이 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

  초기 도달 μ‹œκ°„ μ΄ˆκ³ΌλŸ‰ 도달 μ‹œκ°„ μ΅œμ’… 였차 μ•ˆμ •μ„±
Kp 증가 κ°μ†Œ 증가 μ†ŒλŸ‰ 증가 κ°μ†Œ λΆˆμ•ˆμ •
Ki 증가 μ†ŒλŸ‰ κ°μ†Œ 증가 증가 맀우 κ°μ†Œ λΆˆμ•ˆμ •
Kd 증가 μ†ŒλŸ‰ κ°μ†Œ κ°μ†Œ κ°μ†Œ 쑰금의 λ³€ν™” μ•ˆμ •

 

 

 

 

μ €ν¬λŠ” 속도도 μ€‘μš”ν•˜μ§€λ§Œ, ν•΄λ‹Ή μœ„μΉ˜μ— μ§€μ†μ μœΌλ‘œ 머무λ₯΄λŠ” 것이 λ“œλ‘ μ˜ 주된 κΈ°λŠ₯이기 λ•Œλ¬Έμ—

μ•ˆμ •μ„±μ— λ”μš± 쀑점을 두고 λ¦¬μ„œμΉ˜λ₯Ό μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 

μ΄λŸ¬ν•œ μ œμ–΄μ˜ μ•ˆμ •μ„±μ€ 진동을 λ°”νƒ•μœΌλ‘œ ν‘œν˜„ν•  수 있으며 크게 μ„Έκ°€μ§€λ‘œ λΆ„λ₯˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

 

 

 

μ™Όμͺ½ 그림을 보면, 진동이 점점 μž‘μ•„μ§€λ©΄μ„œ λͺ©ν‘œκ°’에 λ„λ‹¬ν•˜λŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 경우λ₯Ό μ•ˆμ •λ˜μ—ˆλ‹€κ³  ν•˜λ©°

PID μ œμ–΄μ˜ 이상적인 λͺ©ν‘œκ°€ 이와 κ°™λ‹€κ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 진동 μˆ˜λ ΄μ„ μ œμ–΄ν•˜λŠ” 것이 λ°”λ‘œ D μ œμ–΄ μž…λ‹ˆλ‹€.

 

 

 

                         진동 수렴

 

 

 

 

 

 

 

 

이번 κ·Έλ¦Όμ—μ„œλŠ” 진동이 μΌμ •ν•˜κ²Œ μœ μ§€λ˜λŠ” λͺ¨μŠ΅μ„ λ³Ό 수 μžˆλŠ”λ°μš”,

μ΄λŠ” 쀑립 μ•ˆμ • μƒνƒœλΌκ³  λΆ€λ¦…λ‹ˆλ‹€.

λͺ…μΉ­ μžμ²΄λŠ” μ•ˆμ •λœ μƒνƒœλ₯Ό 이λ₯΄λŠ” λ§μ΄μ§€λ§Œ,

κ·Έλ ‡λ‹€κ³  쒋은 μ œμ–΄λΌκ³  ν•˜κΈ°λŠ” μ–΄λ €μšΈ 것 κ°™μ£ ? 

 

 

 

                       μ§„동 μœ μ§€

 

 

 

 

 

 

λ§ˆμ§€λ§‰μœΌλ‘œ 이 κ·Έλ¦Όμ—μ„œλŠ” 진동이 점점 컀지며

λ°œμ‚°ν•˜λŠ” λͺ¨μŠ΅μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 경우λ₯Ό λΆˆμ•ˆμ • μƒνƒœλΌκ³  λ§ν•˜λŠ”λ°μš”

μ—¬κΈ°μ„œ μ£Όμ˜ν•΄μ•Ό ν•  점은 I μ œμ–΄κ°€ κ²ŒμΈκ°’μ˜ 잘λͺ»λœ νŠœλ‹μ΄λ‚˜ κΈ‰κ²©ν•œ μ™ΈλΆ€μ˜ 좩격으둜 인해 값이 μ»€μ§€κ²Œ λœλ‹€λ©΄,

였히렀 이와 같은 진동 λ°œμ‚°μ΄ 일어날 수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ°œμ‚°μ„ 막지 μœ„ν•΄ 적뢄 값을 μ΄ˆκΈ°ν™” ν•˜λŠ” λ“±μ˜ 기법이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

 

 

                         μ§„동 λ°œμ‚°

 

 

 

 

 

 

μ§€κΈ€λŸ¬ λ‹ˆμ½œμŠ€

 

 

이제 본격적으둜 κ²ŒμΈκ°’ νŠœλ‹μ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν•΄λ³Όν…λ°μš” 보톡 νŠœλ‹μ€ 직접 λ…Έκ°€λ‹€πŸ˜₯λ₯Ό ν•˜λ©΄μ„œ μ–΄λ–€ 게인 값이 μ΅œμ„ μΈμ§€ μ°Ύμ•„λ³Έλ‹€κ³  ν•˜λŠ”λ°μš”,  μ§€κΈ€λŸ¬-λ‹ˆμ½œμŠ€ 방법을 μ‚¬μš©ν•˜λ©΄ 더 μ‰½κ²Œ κ²ŒμΈκ°’μ„ νŠœλ‹ν•  수 μžˆλ‹΅λ‹ˆλ‹€!

 

 

μ§€κΈ€λŸ¬ λ‹ˆμ½œμŠ€κ°€ μ œμ‹œν•œ νŠœλ‹ λ°©λ²•μ—λŠ” 계단응닡곑선과 주파수 응닡 λ°©λ²•μœΌλ‘œ 총 2가지 방법이 μžˆμŠ΅λ‹ˆλ‹€.

각 방법에 λŒ€ν•΄ μ†Œκ°œν•΄λ³Όκ²Œμš”

 

 

 

  • 계단응닡곑선

이 방법은 λ‹¨μœ„ 계단 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” λ°©λ²•μΈλ°μš”,

λ‹¨μœ„ 계단 ν•¨μˆ˜(unit step function)은 νŠΉμ • 값보닀 μž‘μ€ μ‹€μˆ˜μ— λŒ€ν•΄μ„œ 0, 보닀 큰 μ‹€μˆ˜μ— λŒ€ν•΄μ„œ 1을 κ°–λŠ” ν•¨μˆ˜μ΄λ©°

ν•΄λ‹Ή ν•¨μˆ˜μ— λŒ€ν•œ 값을 μ΄μš©ν•˜μ—¬ μ‹œμŠ€ν…œμ΄ μ–Όλ§ˆλ‚˜ 빨리 λ°˜μ‘ν•˜λŠ”μ§€ μ •λŸ‰ν™”μ‹œν‚€λŠ” μ²™λ„λ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€. 

 

 

계단 응닡 곑선 방법은 이 원리λ₯Ό μ΄μš©ν•˜μ—¬ μ£Όμ–΄μ‹  μ‹œμŠ€ν…œμ— λŒ€ν•œ λ‹¨μœ„ 계단 μž…λ ₯에 λ”°λ₯Έ 좜λ ₯ 응닡을 κ΅¬ν•˜κ³ ,

κ΅¬ν•œ 응닡 κ³‘μ„ μœΌλ‘œλΆ€ν„° κ³„μˆ˜λ₯Ό κ΅¬ν•˜μ—¬ ν•΄λ‹Ή κ³„μˆ˜λ₯Ό λ°”νƒ•μœΌλ‘œ PID 게인 값을 μ„€μ •ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

 

 

μ €ν¬λŠ” λ“œλ‘ μ— PID μ œμ–΄λ₯Ό μ μš©ν•˜λŠ”λ° 이 방법은 적뢄할 상황이 μ—†κ³  μ•ˆμ •μ μΈ μ‹œμŠ€ν…œμ—μ„œλ§Œ μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμ—

ν•΄λ‹Ή μ•Œκ³ λ¦¬μ¦˜μ€ 쒋은 κ²°κ³Όλ₯Ό λ„μΆœν•˜κΈ° μ–΄λ €μšΈ 것 κ°™λ‹€κ³  μ˜ˆμƒλ˜μ–΄ λ‹€λ₯Έ 방법을 μ‚¬μš©ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

 

 

 

  • 주파수 응닡

주어진 μ„ΈμŠ€ν…œμ˜ PID 게인 κ°’ 쀑 I 게인 값을 λ¬΄ν•œμœΌλ‘œ , D 게인 값을 μ΅œν•˜λ‘œ μ„€μ •ν•œ λ’€

P 게인 κ°’λ§Œμ„ 0λΆ€ν„° 점차 μ‘°μ ˆν•˜λ©΄μ„œ μΌμ •ν•œ 진동(μœ„μ—μ„œμ˜ μ€‘λ¦½μ•ˆμ •κ³Ό 같은 μƒνƒœ)을 λ°˜λ³΅ν•˜λŠ”

μž„κ³„ 이득(Kcr)을 κ΅¬ν•©λ‹ˆλ‹€.

κ·Έ ν›„ μž„κ³„ μ΄λ“μœΌλ‘œλΆ€ν„° μž„κ³„ μ£ΌκΈ°λ₯Ό κ΅¬ν•˜λ©΄ κ·Έλ‘œλΆ€ν„° 각 κ²ŒμΈκ°’μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€!

 

 

μœ„μ˜ λ°©μ‹μœΌλ‘œ 값을 κ΅¬ν•œ κ²°κ³Ό, 각 μ œμ–΄κΈ° μ’…λ₯˜μ— 따라 λ‹€μŒκ³Ό 같은 k값이 λ„μΆœλ©λ‹ˆλ‹€! 

 

μ œμ–΄ μ’…λ₯˜ Kp Ti Td
Pμ œμ–΄ 0.5 0
PIμ œμ–΄ 0.45 1/1.2 0
PIDμ œμ–΄ 0.6 0.5 0.125

 

 

 

μ΄λ‘ μ μœΌλ‘œλŠ” μœ„μ˜ 값이 졜적의 κ°’μœΌλ‘œ λ„μΆœλ˜μ—ˆμ§€λ§Œ, ν•΄λ‹Ή 값을 λŒ€μž…ν•˜μ—¬λ„ μ‹œμŠ€ν…œμ— 따라 μ œμ–΄κ°€ μ•ˆμ •μ μ΄μ§€ μ•Šμ„ 수 μžˆμœΌλ‹ˆ, 게인 값듀을 μ‘°κΈˆμ”© μˆ˜μ •ν•˜μ—¬ 각 상황에 맞게 λŒ€μž…ν•΄μ£Όμ„Έμš”! 

 

 

이 방식을 μ΄μš©ν•˜μ—¬ 저희 λ“œλ‘ μ˜ ν˜Έλ²„λ§μ„ μ§„ν–‰ν•΄λ³΄μ•˜λŠ”λ°μš”,

ν•΄λ‹Ή μ œμ–΄λ₯Ό μ μš©ν•˜λ‹ˆ μƒκ°λ³΄λ‹€ 진동이 μ‹¬ν•˜κ³  λ°œμ—΄μ΄ μžˆμ–΄ μ„±λŠ₯이 떨어지고

μ£Όν–‰ μ‹œκ°„μ΄ μ§§μ•„μ§„λ‹€λŠ” 점을 λ°œκ²¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 

μ•ˆκ·Έλž˜λ„ 저희가 μ‚¬μš©ν•˜λŠ” tello edu λͺ¨λΈμ€ 배터리λ₯Ό 풀좩전해도 μ£Όν–‰ μ‹œκ°„μ΄ 12λΆ„μœΌλ‘œ μ§§μ€νŽΈμΈλ°μš”,,

ν•œλ²ˆ μ£Όν–‰ν•˜λ©΄ takeoff ν•¨μˆ˜ μ‹€ν–‰μ‹œ 였λ₯˜ λ°œμƒμœΌλ‘œ 이λ₯™λ„ λͺ»ν•˜λŠ”.. μ—°μ•½ν•œ 아이가 λ˜μ–΄λ²„λ Έλ‹΅λ‹ˆλ‹€..

 

 

 

 

μ°Ύμ•„λ³΄λ‹ˆ μ›λž˜ λ“œλ‘ μ€ 진동이 μ‹¬ν•œ 비행체 쀑 ν•˜λ‚˜λΌ D μ œμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ

λ°œμ—΄μ΄ μ‹¬ν•΄μ§€κ±°λ‚˜ 였히렀 λΆˆμ•ˆμ •ν•΄μ§€λŠ” κ²½μš°κ°€ μžˆλ‹€κ³  ν•˜λ”λΌκ΅¬μš”!

 

 

κ·Έλž˜μ„œ 저희가 μ°Ύμ•„λ‚Έ 해결책은 이쀑 PI μ œμ–΄μž…λ‹ˆλ‹€!

D μ œμ–΄λ₯Ό μ œμ™Έν•œ λŒ€μ‹  PI μ œμ–΄λ₯Ό μ΄μ€‘μœΌλ‘œ μ‚¬μš©ν•˜μ—¬ PID μ œμ–΄μ˜ 단점을 λ³΄μ™„ν•˜λŠ” 것이죠~~

 


 

 

 

이쀑 PI μ œμ–΄

 

 

일반적인 PID μ œμ–΄λŠ” ν”Όλ“œλ°± ꡬ쑰λ₯Ό 가지고 μžˆμ–΄

단일 loopλ₯Ό 톡해 μ§€μ†μ μœΌλ‘œ 였차λ₯Ό κ΄€λ¦¬ν•˜λ©° λͺ©ν‘œμΉ˜μ— λ„λ‹¬ν•˜κΈ° μœ„ν•œ μ œμ–΄ λ°©λ²•μ΄μ—ˆλŠ”λ°μš”,

 

이λ₯Ό μ΄μ€‘μœΌλ‘œ μ§„ν–‰ν•˜μ—¬ λ”μš± μ•ˆμ •μ μœΌλ‘œ λ§Œλ“œλŠ” 것이 이쀑 PID μ œμ–΄μž…λ‹ˆλ‹€!

 

 

좜처 : The Journal of Korean Institute of Communications and Information Sciences

 

μœ„λ₯Ό 보면 단일 PID 와 이쀑 PID 의 μ‹œκ°„μ— λ”°λ₯Έ 각도 λ³€ν™”λ₯Ό 톡해

이쀑 PIDκ°€ 더 λΉ λ₯΄κ³  μ•ˆμ •μ μœΌλ‘œ μœ„μΉ˜λ₯Ό μ œμ–΄ν•  수 μžˆλ‹€λŠ” 것을 λ³Ό 수 있죠?!

*μœ„ κ·Έλž˜ν”„λŠ” λ¦¬μ„œμΉ˜λ₯Ό ν•˜λ©΄μ„œ μ°Έκ³ ν•œ λ…Όλ¬Έ(The Journal of Korean Institute of Communications and Information Science)μ—μ„œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€.

s

 

μœ„μ—μ„œ μ–ΈκΈ‰ν•œ κ²ƒμ²˜λŸΌ μ €ν¬λŠ” D μ œμ–΄λ₯Ό μ œμ™Έν•˜κ³  PI μ œμ–΄λ₯Ό μ΄μ€‘μœΌλ‘œ μ μš©ν•˜κΈ°λ‘œ ν–ˆλŠ”λ°μš”,

κΈ°μ‘΄ PID μ œμ–΄λ₯Ό ν†΅ν•΄μ„œλŠ” Error값을 λ‹¨μˆœν•œ 각도(μœ„μΉ˜) 차이둜 μ„€μ •ν•˜μ˜€λ‹€λ©΄

이쀑 PI λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ Error 값을 λ‹€λ₯΄κ²Œ μ„€μ •ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

 

λ¨Όμ € 기쑴의 PID μ œμ–΄μ²˜λŸΌ λͺ©ν‘œ 각도와 ν˜„μž¬ 각도 차이λ₯Ό Error κ°’μœΌλ‘œ ν•˜μ—¬ Pμ œμ–΄λ₯Ό μ μš©ν•©λ‹ˆλ‹€.

κ·Έ λ‹€μŒ, P μ œμ–΄λ₯Ό ν•œ 값을 각속도 λͺ©ν‘œκ°’μœΌλ‘œ ν•˜μ—¬ ν˜„μž¬ κ°μ†λ„μ™€μ˜ 였차λ₯Ό ꡬ해 PI μ œμ–΄λ₯Ό μ§„ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€.

 

 

λ‹¨μˆœν•œ 각도 차이둜 μ΄λ£¨μ–΄μ§€λŠ” PID μ œμ–΄μ—μ„œλŠ”

μ œμ–΄μ— λ”°λ₯Έ 각도변화가 λΉ λ₯΄κ²Œ μΌμ–΄λ‚˜ 효율적인 μ œμ–΄λ₯Ό ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

 

 

κ·Έλž˜μ„œ 각도 차이만이 μ•„λ‹Œ 각속도 차이λ₯Ό 톡해 μ œμ–΄ 속도λ₯Ό ν–₯μƒμ‹œν‚€λ©΄μ„œ

λͺ©ν‘œμΉ˜μ— λ”μš± λΉ λ₯΄κ³  μ•ˆμ •μ μœΌλ‘œ λ„λ‹¬ν•˜κ²Œ λ˜λŠ” 것이죠! 

 

μ•„λž˜λŠ” 이쀑 PI 에 λŒ€ν•œ κ΅¬μ‘°λ„λ‘œ 이해에 μ°Έκ³ ν•˜μ‹œλ©΄ 쒋을 것 κ°™λ„€μš₯πŸ˜‰πŸ˜‰

 

 

 

 


λ‹€μŒ λͺ©ν‘œ

 

사싀 λ“œλ‘ μ„ μ ‘ν•΄λ³Έ 적이 λ³„λ‘œ μ—†μ–΄ 이번 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©°

μ—¬λŸ¬ μ œμ–΄ μ‹œμŠ€ν…œμ„ μ ‘ν•˜κ²Œ λ˜μ—ˆλŠ”λ° 마치 기계곡학과 학생이 된 것 κ°™κ³  μƒˆλ‘œμš΄ λ‚΄μš©λ„ 많이 배울 수 μžˆμ–΄μ„œ

νž˜λ“€μ—ˆμ§€λ§Œ μ‹ κΈ°ν–ˆλ‹€λ„€μš”..

 

 

PID μ œμ–΄μ— λŒ€ν•œ κ²½ν—˜μ΄ μ „λ¬΄ν•˜λ‹€λ³΄λ‹ˆ ν•΄λ‹Ή μ•Œκ³ λ¦¬μ¦˜μ„ κ°œλ…μ μœΌλ‘œ μžμ„Ένžˆ λΆ„μ„ν•œ ν›„,

κ²ŒμΈκ°’ νŠœλ‹μ΄ μ΄λ£¨μ–΄μ Έμ•Όν•œλ‹€κ³  생각해 μ—¬λŸ¬ λ…Όλ¬Έ, 글을 μ°Έκ³ ν•˜λ‹€λ³΄λ‹ˆ μ˜ˆμƒλ³΄λ‹€ λ¦¬μ„œμΉ˜ 기간이 κΈΈμ–΄μ Έ

이번 ν¬μŠ€νŒ…μ΄ 이둠(?) μœ„μ£Όμ˜ 글이 될 수 μžˆκ² μœΌλ‚˜ ν₯미둭게 λ΄μ£Όμ‹œλ©΄.. 쒋을 것 κ°™μ•„μš”~.~

 

 

아직 이쀑 PI μ œμ–΄λ₯Ό 직접 ν…”λ‘œμ— μ μš©ν•΄λ³΄μ§€ λͺ»ν•˜κΈ°λ„ ν–ˆκ³ , ν”„λ‘œμ νŠΈ 완성도λ₯Ό μœ„ν•΄ μˆ˜μ • 및 보완 ν•΄μ•Ό ν•  뢀뢄이 λ§ŽμœΌλ‹ˆ 계속 λ‹¬λ €λ³΄μžκ΅¬μš” ~~

λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œλŠ” PI μ œμ–΄λ₯Ό μ μš©ν•œ 결과와 졜적 μœ„μΉ˜μ— λ°°μΉ˜ν•˜λŠ” λͺ¨μŠ΅κΉŒμ§€ λ³΄μ—¬λ“œλ¦΄ 수 μžˆμ„ 것 κ°™μ•„μš”!

κ·ΈλŸ¬λ‹ˆ λ‹€μŒ ν¬μŠ€νŒ…κΉŒμ§€ κΈ°λ‹€λ € μ£Όμ„Έμš”~~~!😎😎

 

그럼 μ•ˆλ‡½

'🎈capstone' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

πŸ›Έμ΄μ€‘ PI둜 TELLO-edu μ œμ–΄ν•˜κΈ°πŸ›Έ  (1) 2023.05.16