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

노트 / 제어공학

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

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

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

샘플링 주기

타이머 인터럽트ADC 읽기제어 계산PWM 갱신다음 주기까지 대기
제어 한 주기에 하는 일. 매번 같은 간격으로 반복해야 합니다.

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

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

이산화

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

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

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

무료 전자책이 주제를 한 권으로 이어 읽기 (PDF 3권)→

안티 와인드업

출력 한계적분 계속 (나쁨)적분 멈춤 (좋음)
출력이 한계에 걸린 동안 적분을 멈춥니다. 멈추지 않으면 쌓인 값을 다 풀 때까지 응답이 늦습니다.

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

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

그 밖의 함정

  • 계산 시간만큼 지연이 생깁니다. 측정 → 계산 → 출력 순서를 매 주기 같은 타이밍에
  • 부동소수점이 없는 MCU에서는 고정소수점 스케일과 포화 처리
  • 게인을 실행 중에 바꿀 때 출력이 튀지 않게(적분기 보정)
영상으로 이어 보기모터 시리즈 10편세상을 움직이는 힘 = DC모터, 이 영상 하나로 정리해드립니다.PROJECT COURSEPID를 실제 로봇에서 튜닝해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →