Compensator Design · 학습
실행 준비
Python 경로는 python-control을 사용합니다. 모듈이 없으면 Colab·Jupyter의 코드 셀에서 %pip install control==0.10.2를 실행하세요.
이번에 배울 내용
빠르기·감쇠·Steady-State Error를 함께 맞춰야 할 때 Lead와 Lag 중 무엇을 조정할지 판단합니다.
전체 흐름
성능 목표 → 보상기 Pole·Zero → Closed-loop 응답 → 속도·오차 비교
보상기에 맡길 역할 정하기
응답 속도·감쇠·Steady-State Error를 Gain 하나로 모두 맞추기 어려우면 Pole·Zero를 추가합니다. 먼저 원하는 성능을 수치와 단위로 정한 뒤 보상기 종류를 선택합니다.
설계와 검증을 구분하기
Lead는 위상·빠르기, Lag는 Low-Frequency Gain과 Steady-State Error를 조정하는 데 주로 사용합니다. 설계점이 맞아도 입력 비용이나 다른 Pole이 문제일 수 있습니다.
같은 Step·Ramp 조건과 충분한 기록 구간으로 보상 전후를 확인합니다.
같은 DC Gain의 Lead 보상
G(s)=1/(s(s+1)), C(s)=(s+1)/(0.2s+1)를 비교합니다. C의 DC Gain을 1로 둔 상태에서 응답 모양이 어떻게 달라지는지 봅니다.
import numpy as np
import matplotlib.pyplot as plt
import control as ctl
s=ctl.tf('s')
G=1/(s*(s+1));C=(s+1)/(.2*s+1);t=np.linspace(0,12,1201)
for name,loop in [('Before',G),('Lead',C*G)]:
tm,y=ctl.step_response(ctl.feedback(loop,1),t);plt.plot(tm,y,label=name)
plt.xlabel('Time [s]');plt.ylabel('Output');plt.grid();plt.legend();print('Compensator DC gain',ctl.dcgain(C))
Compensator DC gain 1.0