11강 / 20강
TEC 제어 — 양방향 PID
H-브리지 · 하드웨어 PWM · 주파수가 수명을 정한다
/mech 9강에서 H-브리지가 있어야 식힐 수 있다고 했습니다.
코드에서 이것은 아주 단순한 모양이 됩니다 — PID 출력의 부호가 방향이고,
크기가 듀티입니다.
u = pid.update(setpoint, measured, dt) # -1.0 ~ +1.0
bridge.direction = (u >= 0) # 양수면 가열, 음수면 냉각
bridge.duty = min(abs(u), 1.0)
세 줄입니다. 데우기와 식히기를 따로 짜지 않습니다 — 같은 출력의 부호일 뿐입니다.
펠티에는 끊어서 몰면 손해입니다. 주파수를 올리고 필터를 다는 것이 성능과 수명 둘 다에 이득입니다.
Python
브라우저에서 실행
하드웨어 PWM 을 써야 한다
| 항목 | 값 |
|---|---|
| 하드웨어 PWM 가능 핀 | GPIO 12 · 13 · 18 · 19 |
| 설정 | /boot/firmware/config.txt 에 dtoverlay=pwm-2chan |
| 채널↔핀 (Pi 5) | 채널 0·1 → GPIO 12·13 |
| 채널↔핀 (그 밖) | 채널 0·1 → GPIO 18·19 |
| 파이썬 | rpi-hardware-pwm · HardwarePWM(pwm_channel=0, hz=20000, chip=?) |
소프트웨어 PWM 은 TEC 브리지에 쓰면 안 됩니다. LED 라면 깜빡임으로 끝날 지터가 전력 브리지에서는 소리와 열과 손실이 됩니다.
※ chip= 번호는 기종마다 다릅니다. Pi 5 는 다른 번호를 쓰는 것으로 알려져 있으나
확인하지 못했습니다 — ls /sys/class/pwm/ 로 직접 보고 적으십시오.
🤔 확인 문제
TEC 를 릴레이로 1 Hz 껐다 켰다 하면 안 되는 까닭은?
해설 열순환은 펠티에의 대표적인 수명 소모 기구입니다. 게다가 냉각은 I 에, 줄열은 I² 에 붙으므로 세게 끊을수록 손해입니다. 1 kHz 이상을 쓰십시오.
🤔 확인 문제
PID 의 적분 포화를 막지 않으면?
해설 출력이 한계에 붙어 있는 동안 적분이 계속 쌓입니다. 그 빚을 갚느라 오버슈트가 생깁니다 — 95 °C 를 목표했는데 98 °C 를 찍는 식입니다.