강의자료 · 제어공학1

모델 표현을 바꾸어도 같은 응답일까?

제어공학1 · 7주차

이번 주 목표 · State Space·Transfer Function·State 좌표변환을 Input–Output 응답으로 검증합니다.

실행: MathWorks 로그인 후 내 작업 공간의 .mlx를 엽니다. 코드 안 클릭 → Live Editor → Run Section으로 한 Section씩 실행하세요. Run은 전체 실행입니다. 값 수정 후에는 관련 Section을 다시 실행해야 합니다. ⟦직접 입력⟧ 작성란은 설명을 직접 수정하며 실행하지 않습니다. Windows/Linux는 Ctrl+Enter, Mac은 ⌘+Enter를 사용할 수 있습니다.

1. 변환 전에 행렬 크기 확인하기

𝐱̇=A𝐱+Bu\dot{\mathbf x}=A\mathbf x+B u, y=C𝐱+Duy=C\mathbf x+D u에서 행렬 크기를 먼저 검사합니다. State 2개·Input 1개·Output 1개이면 A:2×2, B:2×1, C:1×2, D:1×1입니다. Ax와 Bu는 모두 State 개수만큼의 값을, Cx와 Du는 모두 Output 개수만큼의 값을 만들어야 서로 더할 수 있습니다.

변환 전에 행렬 크기 확인하기

같은 A와 B를 써도 위치를 관찰할 때와 속도를 관찰할 때는 출력이 달라집니다. C가 어느 State를 선택하는지 확인하세요. 이번 모델은 x=[위치;속도], C=[1,0]C=[1,0]을 기준으로 사용합니다.

2. 같은 모델의 다른 표현

G(s)=C(sI−A)−1B+DG(s)=C(sI-A)^{-1}B+D는 Initial Condition이 모두 0일 때의 Input–Output 관계입니다. tf(ss(A,B,C,D))와 State Space의 step을 같은 시간축으로 비교하세요. 출력 차이가 작은지 수치로 검사합니다.

같은 모델의 다른 표현

Transfer Function으로 바꾸면 내부 State의 이름과 Initial State 정보가 드러나지 않습니다. 같은 step을 보인다는 사실은 모든 내부 정보가 같다는 뜻이 아닙니다.

3. 좌표를 바꾸면 행렬도 바뀐다

𝐱=P𝐳\mathbf x=P\mathbf z는 같은 State를 다른 크기의 좌표로 적는 관계입니다. 이를 𝐱̇=A𝐱+Bu\dot{\mathbf x}=A\mathbf x+B u에 넣으면 P𝐳̇=AP𝐳+BuP\dot{\mathbf z}=AP\mathbf z+Bu입니다. 양변에 P⁻¹을 곱하면 𝐳̇=(P−1AP)𝐳+(P−1B)u\dot{\mathbf z}=(P^{-1}AP)\mathbf z+(P^{-1}B)u이므로 Az=P−1AP,Bz=P−1BA_z=P^{-1}AP,\quad B_z=P^{-1}B입니다. 출력식 y=C𝐱y=C\mathbf x에도 𝐱=P𝐳\mathbf x=P\mathbf z를 넣으면 y=CP𝐳y=CP\mathbf z이므로 Cz=CPC_z=CP입니다. P=diag⁡(2,0.5)P=\operatorname{diag}(2,0.5)로 State의 스케일을 바꾸어 보세요. MATLAB에서는 inv(P)*A*P 대신 P\(A*P)로 계산할 수 있습니다.

좌표를 바꾸면 행렬도 바뀐다

P에는 Inverse가 존재해야 새 좌표에서 원래 좌표로, 또 그 반대로 값을 바꿀 수 있습니다. Initial State도 z0=P\x0로 바꾸어야 동일한 운동을 나타냅니다.

4. 변환 전후 응답을 비교해 오류 찾기

step이 같지만 Initial State 응답이 다르면 초기값의 좌표부터 확인합니다. Input·시간축·Output·초기값이 모두 맞는지 차례로 점검하세요.

변환 전후 응답을 비교해 오류 찾기

스스로 코드 한 줄을 바꿔 초기값 변환을 빠뜨린 오류를 재현한 뒤 수정합니다. 좌표를 바꾸어도 같은 움직임을 나타내려면 모델의 행렬과 초기값을 함께 바꾸어야 합니다.

학습 내용 확인

  1. 코드에 넣을 값은 무엇이며, 결과 배열의 각 행·열은 무엇을 뜻하나요? 물리량을 계산한다면 단위도 확인했나요?
  2. 조건을 하나 바꿨을 때 다시 실행해야 하는 부분을 찾을 수 있나요?
  3. 실행 결과가 예상과 맞나요? 다르다면 출력값이나 그래프를 보고 이유를 설명할 수 있나요?

MATLAB 공식 문서 · Control System Toolbox

실습 자료