출처

허허... 저번 System Identification 이후로 오랜만에 글을 쓰네요... 아무래도 Adaptive control이라는 분야가 나름 고급제어이론이라 수학적인 설명없이는 힘들꺼 같아 고민을 쫌해보았는데 결론은 그냥 수식을 넣는게 좋을꺼 같습니다. ㅎㅎ 그래도 마지막에는 정리를 따로 만들도록 하겠습니다.

1. Introduction

저번 글까지는 시스템의 파라미터를 정의하고 어떻게 찾을것인지까지 했습니다. 이번에는 드디어 나의 시스템을 어떻게 제어하느냐 즉, 제어기 설계에대한 이야기를 해볼껍니다. 제어기 설계라는것이 궁극적인 목표는 항상 같습니다. 시스템이 내가 원하는 동작(결과)이 나오게끔 하는 원인제공자(?) 라고 해야할까요?ㅎㅎㅎ 조금더 수학적으로 설명하면, 시스템의 결과값과 내가 원하는 결과값의 차이(추종 오차)가 0이 되게하는 것 또는 0에 근접하도록 하는것이 제어기의 궁극적인 목표입니다. PID제어만 해도 추종 오차를 0으로 만들기 위해 오차를 미분도 하고~ 적분도 하고~ 게인들도 곱하고~ 더하고~ 이러쿵저러쿵해서 만들잖아요?? 근데 애초에 여러가지 많은 이유들로인해서 이 추종오차를 줄이는게 쉽지가 않습니다...

이세상 모든 제어기가 PID제어기같이 간단하면 얼마나 좋을까요? 하지만 인간의 욕심은 끝이 없지않습니까??

예를들어, 노이즈나 외란(disturbance)에 강인하게 반응하는 제어(robust control), 목표치로 가기위한 최적의 제어(optimal control), 시스템의 일부가 고장이나도 어느정도 제어를 보장해주는 제어(fault tolerance control), 시스템의 출력을 예측하여 좋은 성능을 내는 제어(predictive control)등등 같은 제어기를

만들기 위해서는 고급 수학이론들이 필요하게 되지요. 하지만 사용하는 환경에따라 다른것뿐 본질적인 제어기의 역할은 항상 같습니다. 적응제어도 마찬가지입니다. 시스템이 어떤 요인에 의해서 변동이 생겨도 제어기가 능동적으로 보상해주는 제어기술입니다. 안 어려울수가 없겠죠??ㅎㅎ

하지만 적응제어역시 본질적으로는 추종오차를 0으로 만들어주기 위한 역할을 합니다.

이제 적응제어와 PID를 간략하게 비교를 해보겠습니다.

<그림.1 PID제어기 블록다이어그램>

PID제어기는 정멀 간단한 제어기의 모습을 보여주고 있습니다. 뭐 할말이 없습니다.ㅎㅎㅎ 너무 간단합니다.

<그림.2 STR 블록다이어그램>

STR의 모습이 위에 PID보다 많이 어지러워 보입니다.ㅎㅎㅎ 그래도 다행인건 <그림.2>에서 Estimation부분은 이미 **<Adaptive Control-1>**에서 system identification으로 했다는거죠!!ㅎㅎㅎ 하지만 일단은 estimation부분은 떼어 놓고 controller design부분과 controller부분을 살펴볼껀데요, 왜냐하면 controller design과 controller부분에서 추가적으로 짚고 넘어가야할 부분이 있어서입니다. 따라서 estimation부분을 떼어놓았기 때문에 당분간은 시스템의 파라미터는 완전히 알고있다고 가정할껍니다. 그리고 <그림.2>에서 보이는 제어 사양이라는 것은 시스템의 파라미터 변동에도 시스템 출력이 항상 일정한 성능을 내게 해주기 위한 지표라고 보시면 되겠습니다, 예를들면 오버슈트를 얼마나 줄껀지, 얼마나 빨리 목표에 도달하게 할껀지를 정하는것입니다. 이런 사양은 사전에 사용자가 미리 정해놓는건데요, 대부분 비슷한 사양이 선택됩니다. 예를들어 댐핑계수는 0.7, 고유진동수(natural frequency)는 1rad/s 이런식으로 뻔한 값들이 많이 사용됩니다.

일단 이번글은 도입부만 설명을 드렸는데요, 다음 글은 위에서 언급했듯이 estimation부분은 떼어 놓고 controller design부분과, controller부분을 심도있게 살펴볼껍니다 ㅎㅎㅎㅎ