제어이론

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

제어이론이란 전자공학 및 수학이 복합된 학문의 한 분야로서, 동적 시스템의 거동을 다루는 이론이다. 실제로 자동제어는 전자공학 교과과정에서 중요한 부분을 차지하는 과목이다. 제어이론은, 주어진 시스템에 대하여 그 입력을 조절함으로써 그 출력을 원하는 대로 조절하는 제어기(controller)를 만드는 데에 적용된다. 기계공학, 전기 및 전자공학, 화학공학 등 여러 공학 학문에서 두루 쓰여 왔으며, 최근에는 자연 과학, 금융 분야 등 공학이 아닌 학문에서도 많이 이용되고 있다. 심지어 심리학, 사회학, 범죄학 등 사회 과학 분야에서도 이용된다.

제어이론을 설명할 때 예로서 많이 인용되는 것이 자동차의 속도 조절기(cruise control)이다. 속도 조절기는 자동차의 속도를 운전자가 원하는 일정한 속도로 유지하는 장치이다. 이 경우 "시스템"에 해당하는 것이 자동차이며, "시스템의 출력"에 해당하는 것이 "자동차의 속도"이다. 또한 "시스템의 입력"에 해당하는 것은 "자동차의 엔진 스로틀(throttle)의 위치"가 된다. 엔진 스로틀의 위치를 조절함으로써 엔진에 유입되는 공기의 양을 조절하게 되고, 이는 간접적으로 엔진의 토크를 조절하게 되며, 이로써 자동차의 속도를 원하는 속도로 유지할 수 있게 되는 것이다.

주요 개념[편집]

폐루프 제어[편집]

앞서 속도 조절기의 예를 보자. 속도를 일정하게 유지하기 위해 생각할 수 있는 가장 간단한 방법은, 스로틀의 위치를 일정하게 고정시키는 것이다. 그러나 자동차는 주행하면서 여러 가지 외부적인 환경의 변화를 겪게 되므로(오르막길과 내리막길, 노면의 상태 변화, 타이어 압력의 변화, 탑승객이나 화물의 무게 변화 등), 실제로 스로틀을 일정하게 고정시켜서는 속도를 일정하게 유지할 수 없다.

따라서 실제로는 자동차의 속도를 측정하여, 그 속도가 원하는 속도보다 낮으면 속도를 더 내게 하고, 원하는 속도보다 높으면 속도를 덜 내게 하는 방식의 제어가 필요하다. 이처럼, 시스템의 실제 출력값을 원하는 값과 비교하여 그 차이를 시스템의 입력값 조절에 반영하는 방식의 제어기를 폐루프 제어(closed-loop control)라고 한다. 이에 반해, 앞서 스로틀을 고정시키는 경우처럼, 시스템의 출력이 시스템의 입력 조절에 반영되지 않는 것을 개루프 제어(open-loop control)라고 한다.

폐루프 제어의 방법으로서 사용되는 것이 되먹임(feedback)이다.

시간 영역과 주파수 영역[편집]

제어이론을 사용하여 제어기(controller)를 만들기 위해서는 우선 제어 대상이 되는 시스템을 수학적으로 표현하는 것이 필요하다. 이때 이를 시간에 대한 함수로 표현할 수도 있고 주파수에 대한 함수로 표현할 수도 있다. 시스템을 시간 영역(time domain)에서 표현한다는 것은 시간에 대한 함수로 나타낸다는 것을 의미한다. 한편 주파수 영역(frequency domain)에서 표현한다는 것은 이를 주파수에 대한 함수로서 나타낸다는 의미이다.

Simple Mass Spring Model

예를 들어 그림과 같은 질량-스프링 시스템을 생각해 보자. 이 시스템을 시간 영역에서 표현하면 다음과 같은 2차 미분 방정식이 된다.

{m {d^2 x(t) \over d t^2} + kx(t)} = f(t)

이것은 외부의 힘  f 가 시간에 따라 어떻게 변화하는지가 주어질 때, 질량  m 의 위치  x 는 시간에 따라 어떻게 바뀔 것인지를 나타내는 식이다.

한편 위 식을 라플라스 변환(Laplace transform)함으로써, 같은 시스템을 다음과 같이 주파수 영역에서의 식으로 나타낼 수도 있다.

 ms^2 X(s) + k X(s) = F(s)

이것은 외부의 힘이 주파수에 따라 어떻게 다른지가 주어질 때, 질량  m 의 위치 거동은 주파수에 따라 어떻게 될 것인지를 나타내는 식이다.

전달 함수[편집]

전달 함수(transfer function)이란 시스템에서 입력값과 출력값 사이의 관계를 나타낸 수학적 표현식을 일컫는다. 위 시스템의 예를 보면, 주파수 영역에서의 관계식을 정리한 다음과 같은 식이 위 시스템의 전달 함수가 된다.

 H(s) = {X(s) \over F(s)}= {1 \over ms^2 + k}

상태 변수[편집]

제어이론에서 상태 변수(state variable)란, 전체 시스템의 동적 특성을 완전하게 나타낼 수 있는 최소 갯수의 독립 변수의 집합을 말한다.

일반적으로 시스템의 동적 특성을 완전하게 나타내기 위해서는 2개 이상의 변수가 필요하므로, 상태 변수는 벡터 형태인 경우가 많다. 이를 상태 벡터(state vector)라고 부르기도 한다.

상태 변수 방정식(state variable equation)이란, 입력 변수(input variables), 출력 변수(output variables) 및 상태 변수에 관한 1차 미분 방정식으로써 시스템을 나타내는 수학적 표현법을 말한다.

상태 변수 방정식의 일반적인 형태는 다음 식과 같다. 이 식에서  u(t) 는 입력 변수,  y(t) 는 출력 변수이며  \mathbf x(t) 가 상태 변수이다.

\dot{\mathbf x}(t) = f(\mathbf x(t), u(t))
y(t) = g(\mathbf x(t), u(t))

선형 시불변 시스템(linear time-invariant system)에서는 상태 변수 방정식을 다음과 같이 쓸 수 있다.

\dot{\mathbf x}(t) = \mathbf A \mathbf x(t) + \mathbf B u(t)
y(t) = \mathbf C \mathbf x(t) + D u(t)

여기에서 행렬  \mathbf A 시스템 행렬이라고 부르고,  \mathbf B 입력 행렬,  \mathbf C 출력 행렬,  D 는 feedforward 행렬이라 부르며, 모두 상수 행렬이다.

위 식에서 볼 수 있는 것처럼, 상태 변수는 시간에 대한 함수로서 표현되며, 따라서 상태 변수 방정식 표현법은 시간 영역 표현법의 일종이다.

관련 항목[편집]