강의자료 · 제어공학1

상태를 선택해 행렬 모델 만들기

제어공학1 · 5주차

이번 주 목표 · 2차 Differential Equation을 1차 Differential Equation 두 개로 바꿉니다.

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

등가속 운동에서 State Space로

등가속 운동에서는 현재 위치와 속도, 일정한 가속도를 알면 이후 위치를 구할 수 있었습니다. 이번에는 스프링과 댐퍼가 있어서 가속도가 운동 중에 달라지는 경우를 생각합니다.

같은 위치에 있는 두 물체라도 하나는 정지하고, 다른 하나는 움직이고 있다면 이후 위치가 다릅니다. 현재 위치만으로는 미래를 정할 수 없습니다. 현재 속도도 필요합니다.

2주차에서 세운 힘의 관계를 가속도에 대해 정리하면 다음과 같습니다. yy는 평형점으로부터의 위치, vv는 속도, uu는 가하는 힘입니다.

Mÿ=u−bẏ−ky⇒ẏ=v,v̇=u−bv−kyMM\ddot y=u-b\dot y-ky \quad\Longrightarrow\quad \dot y=v,\qquad \dot v=\frac{u-bv-ky}{M}

  • 첫 식: 현재 속도가 위치의 변화율을 결정합니다.
  • 둘째 식: 현재 위치·속도와 가하는 힘이 속도의 변화율을 결정합니다.

따라서 모델과 이후 Input이 주어졌을 때, 현재 위치와 속도를 알면 두 값의 변화를 함께 계산할 수 있습니다. 이 모델에서는 두 값을 State로 선택합니다.

𝒙=[yv],𝒙̇=[v(u−bv−ky)/M]\mathbf{x}=\begin{bmatrix}y\\v\end{bmatrix},\qquad \dot{\mathbf{x}}=\begin{bmatrix}v\\(u-bv-ky)/M\end{bmatrix}

위치의 2차 Differential Equation을 위치·속도에 관한 1차 Differential Equation 두 개로 쓴 것입니다. 가속도는 이 두 State와 Input으로 계산되므로 별도의 State로 추가하지 않습니다. 여기서 M,b,kM,b,k는 장치의 특성을 나타내는 고정된 Parameter입니다.

위치·속도·가속도 중 무엇을 이미 알고 있나요?
조건 위치를 예측하려면 필요한 현재 정보
속도의 값이 미리 알려져 있고 계속 일정 현재 위치
가속도의 값이 알려져 있고 일정 현재 위치와 현재 속도
이번 스프링·댐퍼 모델과 이후 힘이 주어짐 현재 위치와 현재 속도. 가속도는 모델로 계산

단순화는 변화의 관계를 쉽게 만들지만 반드시 State의 개수를 줄이지는 않습니다. 알려진 등속 운동과 달리, 등가속 운동에서는 현재 속도도 계속 갱신해야 합니다.

실제 공간의 위치와 State Space의 점

카트는 실제 공간에서 직선 위를 움직입니다. State Space에서는 가로축에 위치, 세로축에 속도를 놓고 현재 상태를 한 점으로 나타낼 수 있습니다. 같은 위치라도 속도가 다르면 서로 다른 점입니다. 시간이 흐르면 점이 곡선을 그리지만, 그 곡선 하나를 따라간다는 사실이 State Space의 차원을 뜻하지는 않습니다.

실습의 초기 State [0;1]은 기준 위치에서 속도 1로 시작하는 경우이고, [1;0]은 위치 1에서 정지한 채 시작하는 경우입니다. 같은 모델이라도 출발 정보가 다르면 응답이 달라집니다. 두 결과를 비교한 뒤 아래의 행렬 표현으로 연결하세요.

1. 상태는 다음 순간을 계산할 정보

위에서 선택한 위치와 속도에 번호를 붙여 행렬로 정리하겠습니다. x1=y,x2=ẏx_1=y,\ x_2=\dot y로 놓으면 ẋ1=x2\dot x_1=x_2이고 ẋ2=−kMx1−bMx2+uM\dot x_2=-\frac{k}{M}x_1-\frac{b}{M}x_2+\frac{u}{M}입니다.

상태는 다음 순간을 계산할 정보

상태와 출력은 같지 않을 수 있습니다. 위치를 출력으로 선택하면 C=[1,0]C=[1,0]이고 속도를 출력으로 고르면 C=[0,1]C=[0,1]입니다. 시스템 내부 동역학 A는 그대로입니다.

2. A·B·C·D의 크기 확인

상태가 n개, 입력이 m개, 출력이 p개이면 A는 n×n, B는 n×m, C는 p×n, D는 p×m입니다. 𝐱̇=A𝐱+Bu\dot{\mathbf x}=A\mathbf x+B u와 y=C𝐱+Duy=C\mathbf x+D u에서 각 곱셈 결과의 크기를 대조하세요.

A·B·C·D의 크기 확인

표준 선형 State Space은 LTI 모델의 표현입니다. 모든 비선형 시스템이 상수 A,B,C,D만으로 정확히 표현되는 것은 아닙니다.

3. RLC의 연결 구조부터 읽기

이번 전기 실습은 전류원이 커패시터와 직렬 RL 가지에 전류를 공급하는 모델입니다. 상태는 커패시터 전압과 인덕터 전류이며 출력은 저항 전압 R iLi_L입니다. 2주차 병렬 RLC의 출력과 혼동하지 마세요.

RLC의 연결 구조부터 읽기

KCL에서 Ccap·vC′=u−iL, 직렬 RL 가지에서 L·iL′=vC−R·iL입니다. 따라서 x=[vC;iLi_L]이면 A의 첫 행은 [0,−1/Ccap], 둘째 행은 [1/L,−R/L]입니다. 이 회로는 커패시터 한 가지와 R·L 직렬 가지가 병렬로 연결된 구조입니다.

Ccap은 커패시턴스, Cout은 출력 행렬로 이름을 구분합니다. 같은 C를 두 용도로 덮어쓰면 파라미터를 바꾸어 재실행할 때 오류가 생깁니다.

4. 파라미터 변경 후 모델 다시 만들기

M=1,b=2,k=5 기준 모델을 실행한 뒤 b=0.5와 10을 비교합니다. 전기 모델은 R=3,L=1,Ccap=0.5에서 시작해 R=1과 10을 비교합니다. 변경된 값으로 A,B,C,D와 ss를 다시 생성하세요.

파라미터 변경 후 모델 다시 만들기

기계 모델에 일정한 힘 1N을 가한 뒤 멈추면 스프링 힘 k·y가 1N과 같아져 최종 변위는 1/k입니다. 전류 1A가 오래 유지되는 전기 모델에서 저항 전압이 R에 수렴하는지 확인하면 출력 정의를 검증할 수 있습니다.

학습 내용 확인

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

MATLAB 공식 문서 · Control System Toolbox

실습 자료