5주차 · 상태를 선택해 행렬 모델 만들기
실습 전에
01 예측에 필요한 정보
예시 상황 같은 위치에 있는 두 물체의 다음 움직임을 예상하려면, 현재 위치 외에 무엇을 알아야 할까요?
설명
- 현재 속도도 알아야 합니다. 하나는 정지하고 다른 하나는 움직이고 있다면 이후 위치가 달라집니다.
- 등가속 운동 식에서도 출발 위치와 속도를 함께 사용했습니다. 이번에는 가속도가 위치·속도·힘에 따라 달라지는 모델로 확장합니다.
관련 개념 복습 ↗
02 가속도와 State
위치와 속도를 State로 정했다면, 가속도도 따로 기억해야 할까요?
설명
- 이번 모델에서는 현재 위치·속도와 가하는 힘으로 가속도를 계산할 수 있으므로 별도의 State로 넣지 않습니다.
- 속도는 위치의 변화율, 가속도는 속도의 변화율입니다. 두 관계를 함께 쓰면 위치의 2차 Differential Equation을 1차 Differential Equation 두 개로 표현할 수 있습니다.
03 State와 Output
움직임을 계산하는 데 필요한 정보와 관찰하려는 값은 항상 같아야 할까요?
설명
- 위치와 속도가 계산에 모두 필요해도 관찰하려는 Output은 위치 하나일 수 있습니다.
- 실습에서는 같은 State 모델에서 Output을 위치 또는 속도로 선택합니다. 어떤 정보를 유지하고 어떤 값을 보여주는지 구분하는 과정입니다.
실습
1. State Equation 유도
- R, L, C가 같은 두 Node 사이에 병렬로 연결된 회로입니다. 아래 Node를 기준 전위로 두고, 위 Node의 전압을 , 위에서 아래로 흐르는 인덕터 전류를 , 공급 전류를 로 정하세요.
- 에서 KCL과 를 이용해 의 두 Differential Equation과 출력 를 직접 쓰고 를 구하세요.
- Initial Condition을 0으로 놓고 두 식을 Laplace Transform하세요. Inductor 관계식에서 를 로 나타낸 뒤 KCL 식에 대입하세요. 가 포함된 항을 모아 를 구하세요.
- 일정 전류 1 A를 충분히 오래 공급하면 와 이 각각 얼마가 되는지 먼저 적으세요.
- 직접 구한 행렬로
ss 모델을 만들고 tf·dcgain으로 검증하세요. - 이 병렬 회로는 아래 RL 직렬 가지 회로와 구성이 다릅니다.
- 이번에는 RL 회로의 반복 세 값 중 한 값을 이 비교로 대신하세요.
2. Mechanical State Space
- 기계 모델의 , 는 유지하고 에서
A와 sys를 다시 만드세요. Position의 Step Response 세 개를 같은 시간축에 그리고 범례에 를 적으세요. - 각 곡선의 진동 유무와 수렴하는 양상을 대조하세요. 어떤 의 곡선을 근거로 판단했는지 적으세요.
- 같은 State 순서에서 출력만 Linear Velocity로 선택하세요. 사용한
Cout과 dcgain(sys)를 Position 출력일 때의 값과 나란히 기록하세요.
3. Electrical State Space
이 회로의 State는 입니다. 는 커패시터 전압 [V], 은 RL 직렬 가지의 전류 [A]입니다.
- 기준 회로의 다른 계수는 유지하고 에서
A, Cout, sys를 다시 만드세요. - 입력 1 A에 대한 최종 출력 전압을
dcgain(sys)로 구하고, 과 전압을 두 열로 기록하세요. Ccap은 Capacitance, Cout은 출력 행렬임을 적으세요. State의 순서와 Cout을 사용해 출력식 를 쓰고, 원하는 저항 전압을 나타내는지 판단하세요.
4. State 좌표와 초기값
- 기준 모델과 같은 시간축에서
initial(sys,[0;1],0:0.01:10)와 initial(sys,[1;0],0:0.01:10)를 그리세요. 두 곡선의 범례에 Initial State를 적으세요. - 어느 State가 0이 아닌 값에서 시작하는지와 외부 입력 유무를 적으세요. Initial State가 0인 Step Response와 Initial State에 의한 출력을 구별해 설명하세요.
제출·저장
코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_5주차.mlx.
실행 환경을 다시 시작하고 전체 코드를 위에서부터 실행한 뒤 저장하세요.
선택 실습
예: 출력으로 선택할 State를 잘못 지정한 경우
- 기계 모델의
A,B,D는 유지하세요. Position이 필요한데 Cout=[0 1]을 썼을 때와 Cout=[1 0]일 때의 Transfer Function을 기록하세요. - State의 순서와 각 출력의 단위를 적으세요. Position을 출력하도록
Cout 한 줄만 수정하고 모델을 다시 만드세요.