① 시뮬레이션 원리
목표 위치 r → 오차 e → PID 출력 u → 모터 회전 θ → 4체배 엔코더 측정 y → 다시 PID로 피드백합니다. 단위는 각도 °, 각속도 °/s, 구동 출력 ±100%입니다.
교육용 단일축 위치 제어 모델입니다. 엔코더 A/B 에지 누락, 모터 전류 루프, 백래시 등은 생략합니다. 측정 노이즈는 양자화한 각도에 더하는 가상 가우시안 잡음입니다.
② 변수를 바꾸면서 실험하기
③ 실시간 그래프
목표 / 실제 / 엔코더 측정 위치 (°)
오차 (°) / 출력 (%)
P / I / D 항의 출력 기여도 (%)
실제 모터 각속도 (°/s)
최근 12초를 표시합니다. 시간축은 시뮬레이션 시간입니다. 제어주기 Ts에 따라 계산하며 브라우저 화면 갱신은 별도로 실행됩니다.
④ 펀월드 수식 설명 — 4체배 엔코더
PPR은 A상 한 회전의 주기 수입니다. A/B 채널의 상승·하강 에지를 모두 계수하면 CPR = 4×PPR입니다. 100 PPR이면 400 CPR, 한 카운트는 0.9°입니다.
⑤ 펀월드 수식 설명 — 이산시간 PID
미분항은 측정값 미분 방식으로 목표값 변경 시 Derivative Kick을 줄입니다. 필터는 α=Ts/(τ+Ts), yf[k]=yf[k−1]+α(y[k]−yf[k−1])입니다. Anti-windup은 출력 포화를 악화시키는 방향의 적분 누적을 억제합니다.
⑥ 펀월드 수식 설명 — 모터 동역학
a는 구동 가속도 계수(°/s²), b는 감쇠(1/s), dload는 부하 외란(°/s²)입니다. 출력 포화가 있으면 목표 위치에 도달하지 못할 수도 있습니다.
⑦ 변화에 따른 해석
| 변수 | 일반적인 영향 |
|---|---|
| Kp ↑ | 빠른 추종, 과도하면 진동·오버슈트 |
| Ki ↑ | 정상상태 오차 감소, 적분 포화 주의 |
| Kd ↑ | 감쇠 증가, 측정 노이즈에 민감 |
| PPR ↑ | 위치 양자화 오차 감소 |
| 노이즈 ↑ | 측정 및 미분 출력 흔들림 증가 |
| 필터 τ ↑ | 노이즈 완화, 측정 지연 증가 |
| Ts ↑ | 제어 갱신 감소, 응답과 안정성 저하 가능 |
| 외란 ↑ | 목표 위치 이탈, 제어기 보상 필요 |
추천 실습: P만 → PI → PID → 노이즈 증가 → Kd 변경 → 필터 조정 → 부하 충격 순서로 비교하세요. 각 실험 전 초기화하면 동일한 초기조건으로 비교할 수 있습니다.
⑧ 펀월드 수식 설명 — 엔코더 기반 RPM PID 시뮬레이션 (최대 6,000 RPM)
기존 위치 PID와 별도로 회전속도 PID를 실험합니다. 목표 RPM, Kp/Ki/Kd, 4체배 엔코더 분해능, 노이즈, 샘플링 시간, 모터 관성(시간상수), 부하를 변경할 수 있습니다.
목표 / 실제 / 측정 RPM
속도 오차 / PWM 출력
P / I / D 기여도 (PWM %)
제어주기별 엔코더 카운트
펀월드 수식 설명 — 4체배 엔코더 RPM 추정
펀월드 수식 설명 — 이산 PID 속도 제어
펀월드 수식 설명 — 모터 회전 모델
τm은 모터 시간상수(s), Load는 감속 외란(RPM/s)입니다. 100% PWM에서 무부하 정상상태 6,000RPM인 단순화된 1차 모델입니다. PWM 포화, 측정 노이즈, 엔코더 양자화, PI 적분 누적을 실험할 수 있지만 전기적 전류·토크·마찰 모델은 생략했습니다.
실습: 목표 RPM을 3,000→6,000으로 변경하고 P/PI/PID 응답을 비교하세요. PPR을 줄이거나 측정주기를 짧게 하면 RPM 측정의 계단현상이 커집니다. 노이즈를 높이면 D항이 흔들리므로 필터 τ를 변경해 비교하세요.