상태공간 표현은 동적 시스템을 1차 방정식들의 집합으로 다시 쓰는 방법입니다. 하나의 고차 미분방정식을 다루는 대신, 다음에 무슨 일이 일어날지 예측하는 데 필요한 정보를 담은 상태벡터를 추적합니다.
미분방정식을 상태공간형으로 바꾸는 방법을 찾고 있었다면, 핵심 아이디어는 이것입니다. 상태변수를 정하고, 각 변수의 도함수에 대한 식을 쓰고, 모델을 1차 형태로 유지하는 것입니다.
상태공간 표현을 한 문장으로 정의하면
일반적으로 상태공간 모델은 다음과 같이 쓸 수 있습니다.
여기서 는 상태벡터이고, 는 시스템에 입력이 있을 때의 입력입니다. 시스템이 선형 시불변이면 같은 아이디어를 다음과 같은 행렬형으로 씁니다.
이 행렬형은 제어와 미분방정식에서 흔히 쓰이지만, 상태공간은 선형인 경우보다 더 넓은 개념입니다.
상태가 의미하는 것
상태란 입력이 주어졌을 때 미래의 거동을 결정할 수 있게 해 주는 현재 양들의 모음입니다. 움직이는 물체의 경우 위치만으로는 보통 충분하지 않습니다. 위치와 속도를 함께 알아야 하는 경우가 많습니다.
이것이 상태공간 표현이 유용한 이유입니다. 시간에 따라 변하는 문제를 표준적인 1차 형태로 바꾸어, 해석하고 시뮬레이션하고 행렬 방법과 연결하기 쉽게 만들어 줍니다.
왜 시스템을 이런 식으로 다시 쓰는가
많은 모델은 처음에 고차 미분방정식으로 주어집니다. 상태공간형은 기본적인 동역학을 바꾸지 않으면서 그것을 다시 표현합니다.
이것이 중요한 이유는 1차 시스템이 하나의 공통된 구조에 들어맞기 때문입니다. 모델이 그 구조로 들어가면 초기조건, 입력, 출력, 안정성을 일관된 방식으로 다루기가 쉬워집니다.
예제: 2차 방정식을 상태공간으로 바꾸기
다음 식에서 시작해 봅시다.
여기서 는 입력입니다. 시스템의 현재 상태를 담는 상태변수를 다음과 같이 잡습니다.
이제 각 상태변수에 대해 1차 방정식을 씁니다. 이므로,
또한 이므로 입니다. 원래 방정식을 정리하면 다음을 얻습니다.
여기에 , 를 대입하면,
따라서 상태방정식은
입니다.
벡터 형태로, 다음과 같이 두면
이 식은
가 됩니다.
출력이 원래의 양 라면,
입니다.
핵심 단계는 하나의 2차 방정식을 두 개의 1차 방정식으로 바꾸는 것입니다. 이것이 상태공간 표현의 핵심입니다.
이 예제에서 눈여겨볼 점
상태변수는 이유 없이 정한 것이 아닙니다. 이 선택 덕분에 모델을 1차 시스템으로 쓸 수 있습니다.
또한 출력 가 전체 상태벡터와 같지 않다는 점도 보세요. 이 예제에서 이지만, 전체 상태는 입니다. 이 두 개념이 겹칠 수는 있지만, 자동으로 같아지는 것은 아닙니다.
상태공간형으로 바꿀 때 자주 하는 실수
상태와 출력을 혼동하기
상태는 시스템을 전개시키는 데 필요한 내부 변수를 담고 있습니다. 출력은 관측하기로 선택한 양입니다. 둘이 겹치는 경우도 있지만, 자동으로 같은 것은 아닙니다.
표현이 유일하다고 가정하기
보통은 그렇지 않습니다. 충분한 정보를 담고 있기만 하면, 서로 다른 상태변수 선택으로도 같은 동역학을 나타낼 수 있습니다.
1차 조건을 잊기
상태공간 모델은 상태변수에 대한 1차 방정식으로 써야 합니다. 상태변수의 2차 도함수가 아직 남아 있다면, 다시 쓰는 작업이 끝난 것이 아닙니다.
모든 모델을 선형으로 다루기
, , , 를 쓰는 행렬형은 방정식이 선택한 상태변수들에 대해 선형일 때만 적용됩니다. 비선형 시스템도 상태공간을 사용하지만, 상수 행렬 대신 함수로 씁니다.
상태공간 표현은 어디에 쓰이나
상태공간 표현은 미분방정식, 제어이론, 신호처리, 로보틱스, 물리학에서 등장합니다. 특히 시스템이 시간에 따라 어떻게 변하는지, 그리고 입력이 그 변화를 어떻게 바꾸는지가 중요할 때 유용합니다.
모델이 선형이면 행렬 방법이 특히 강력해집니다. 예를 들어 행렬 의 고유값은 성장, 감쇠, 진동을 설명하는 데 도움을 줄 수 있지만, 그것은 어디까지나 모델에 들어 있는 가정 아래에서만 그렇습니다.
직접 해보기
다음 식을 보세요.
그리고 , 를 선택하세요. 이것을 1차 시스템으로 다시 쓴 뒤, 행렬 를 찾아보세요. 이 과정이 이해됐다면, 입력항이 있는 비슷한 문제도 풀어 보면서 행렬이 어떻게 나타나는지 확인해 보세요.