그라운드 임베디드 유튜브 구독

노트 / 제어공학

디지털 제어: 샘플링, 이산화, 안티 와인드업

MCU에서 돌아가는 제어기는 연속 시간이 아니라 정해진 주기의 계산입니다. 샘플링 주기 정하기와 구현의 함정.

GROUND EMBEDDED · 정리 노트제어공학 09디지털 제어루프대역폭주기 예모터 전류~1kHz10~20kHz (PWM…모터 속도~100Hz1~2kHz

샘플링 주기

제어 대역폭의 10~20배로 샘플링하는 것이 경험칙입니다.

루프 대역폭 주기 예
모터 전류 ~1kHz 10~20kHz (PWM과 동기)
모터 속도 ~100Hz 1~2kHz
위치 / 자세 ~10Hz 100Hz~1kHz
온도 ~0.1Hz 1~10Hz

이산화

연속 제어기를 차분식으로 바꿉니다.

  • 적분: integ += e * Ts (오일러) 또는 사다리꼴
  • 미분: (e - e_prev) / Ts

Ts는 실제 주기를 써야 합니다. 주기가 흔들리면 타이머로 정확히 맞춥니다.

안티 와인드업

출력이 포화(PWM 100%)된 상태에서도 적분기가 계속 쌓이면, 오차가 줄어든 뒤에도 쌓인 적분값 때문에 한참 동안 목표를 넘어 달립니다.

  • 클램핑: 출력이 포화된 방향으로는 적분을 멈춤
  • 백 계산: 포화로 잘린 만큼 적분기를 되돌림

그 밖의 함정

  • 계산 시간만큼 지연이 생깁니다. 측정 → 계산 → 출력 순서를 매 주기 같은 타이밍에
  • 부동소수점이 없는 MCU에서는 고정소수점 스케일과 포화 처리
  • 게인을 실행 중에 바꿀 때 출력이 튀지 않게(적분기 보정)