상태 공간 맛보기: 여러 상태를 한꺼번에
위치와 속도, 각도와 각속도처럼 여러 상태를 행렬 하나로 다루는 현대 제어. 밸런싱 로봇과 칼만 필터로 이어지는 출발점.
상태 방정식
ẋ = A·x + B·u, y = C·x + D·u
- x: 상태 벡터 (예: [각도, 각속도, 바퀴 위치, 바퀴 속도])
- u: 입력 (모터 토크)
- y: 측정 가능한 출력
전달함수는 입력 하나, 출력 하나를 다루기 좋고, 상태 공간은 여러 입출력과 내부 상태를 한꺼번에 다루기 좋습니다.
상태 피드백
모든 상태를 측정(또는 추정)할 수 있으면 u = -K·x로 제어합니다. K를 정하는 방법은
- 극점 배치: 원하는 응답 속도에 맞게 폐루프 극점을 직접 지정
- LQR: 상태 오차와 입력 크기의 비용을 정하고 최적 K를 계산
밸런싱 로봇은 각도 PID만으로도 서지만, LQR을 쓰면 각도와 바퀴 위치를 함께 고려해 제자리에 더 잘 섭니다.
관측기
측정할 수 없는 상태(속도를 직접 재지 못할 때)는 모델과 측정값으로 추정합니다. 노이즈까지 고려해 최적으로 추정하는 것이 칼만 필터이고, 센서리스 모터 제어의 회전자 위치 추정도 관측기입니다.
다음 단계
선형대수(행렬, 고유값)와 MATLAB/Python 도구가 필요합니다. PID로 충분한 문제에 굳이 쓰지 않되, 상태가 서로 얽힌 시스템에서 강력한 도구입니다.