정확히 어떻게 말하는 거예요, 대가리? 왜 무부하(open loop) 운전이 안 되는지 잘 모르겠네요.
용접 측면에서 문제가 없다면, ADC가 수집한 입력/출력 전압 및 전류 값이 정확하지 않은 것이 ADC의 데이터 처리 알고리즘 문제일 수 있을까요? 제가 데이터 처리 코드 일부를 수정했더니 오차가 크게 줄었습니다.
스스로 부스트(Boost) 회로의 원리를 좀 더 공부해 보시기 바랍니다. 아래는 AI가 제공한 답변입니다:
간단히 말해, 무부하(no load) 상태이고 오픈 루프(피드백 제어 없음)인 조건에서 Boost(승압) 변환기를 구동하면, 출력 전압이 무한정 상승하게 되며, 결국 커패시터, 스위칭 소자 또는 다이오드가 과열되어 파손됩니다.
다음은 이러한 현상 뒤에 숨겨진 물리적 원리에 대한 심층 분석입니다:
1. 에너지가 “계속 증가만 하는” 축적 효과
부스트 회로는 두 가지 작동 단계로 나뉩니다:
- 충전 단계: 스위치 소자가 도통하여 인덕터 $L$이 에너지를 저장합니다.
- 방전 단계: 스위치 소자가 차단되면서, 인덕터 $L$에 저장된 에너지가 입력 전원 $V_{in}$과 함께 중첩되어 출력 쪽의 커패시터 $C$에 충전됩니다.
정상적인 부하 연결 상태에서는, 인덕터가 각 주기마다 커패시터에 전달하는 에너지가 부하에 의해 소모되어 에너지 균형을 이룹니다.
그러나 무부하 상태에서는 부하 전류가 0입니다. 즉, 매 스위칭 주기마다 인덕터로부터 커패시터로 "펌핑"되는 에너지가 소비될 경로가 없습니다. 커패시터의 에너지 저장 공식 $E = \frac{1}{2}CV^2$에 따라, 에너지가 계속 누적되면 전압 $V$는 필연적으로 지속적으로 상승하게 됩니다.
2. 수학적 모델의 유도
이상적인 조건 하에서(연속 전도 모드 CCM), 부스트 변환기의 출력 전압 공식은 다음과 같습니다:
(여기서 $D$는 듀티 사이클)
- 오픈 루프 상태: 듀티 사이클 $D$가 고정되어 있다는 의미입니다(예: D=0.5).
- 이론과 현실의 괴리: 위 공식은 "동적 평형 상태"를 가정할 때 성립합니다. 그러나 무부하 상태에서는 출력 전류가 없으므로 회로는 비연속 전도 모드(DCM)로 전환됩니다. DCM 상태에서 듀티 사이클이 고정되고 부하가 무한대에 가까워지면, 이론상 출력 전압은 무한대로 발산하게 됩니다.
3. 치명적인 결과
실제 회로에서는 "무한대"의 전압이 존재할 수 없기 때문에 시스템은 물리적 한계에 도달하면서 붕괴하게 됩니다:
- 커패시터 파괴: 출력 필터 커패시터의 내전압(VDC)을 초과하여 커패시터가 폭발하거나 단락됩니다.
- 스위치 소자/다이오드 손상: MOSFET의 V_{ds} 또는 다이오드의 역내압이 초과되어 파괴됩니다.
- 피드백 실패: 오픈 루프라고 했지만, 피드백 회로가 있다고 해도 반응 속도가 느리거나 과전압 보호(OVP) 기능이 설계되지 않았다면, 무부하 순간 발생하는 전압 스파이크만으로도 치명적인 손상을 줄 수 있습니다.
요약 및 예방 대책
| 특성 | 현상 | 결과 |
|---|---|---|
| 에너지 전달 | 매 주기마다 강제로 출력단에 에너지를 “펌핑” | 전하가 커패시터에 계속해서 축적됨 |
| 전압 피드백 | 없음(오픈 루프), 듀티 감소를 통한 전압 강하 불가 | 전압이 무제한 상승 |
| 최종 결과 | 소자 내전압 한계 초과 | 하드웨어 소손 |
실제 엔지니어링에서의 해결 방법:
- 폐루프 제어: PWM 제어기를 사용하여 전압 상승을 감지하면 자동으로 듀티 사이클 $D$를 감소시킵니다.
- 더미 부하(가짜 부하): 출력단에 큰 저항을 병렬로 연결하여 무부하일 때라도 미세한 전류가 흘러 불필요한 에너지를 소모하도록 합니다.
- 과전압 보호(OVP): 하드웨어 수준의 전압 클램핑 회로를 추가합니다.
질문하신 내용이 너무 간략해서 답변하기 어렵습니다. 이미지도 없고, 데이터도 없으며, 자세한 설명(어떤 수정을 했는지?)도 없습니다…
STM32G474을 사용하여 디지털 Buck-Boost 회로의 루프 보상 파라미터를 설계하는 것은 연속 영역(아날로그) 설계에서 이산 영역(디지털)으로 전환하는 과정입니다. STM32G474는 고해상도 타이머(HRTIM)와 내장 수학 가속기(FMAC/CORDIC) 덕분에 이러한 고주파 디지털 전원 제어에 매우 적합합니다.
디지털 루프 보상 파라미터의 계산 및 설계는 일반적으로 다음의 주요 단계로 나뉩니다:
첫 번째 단계: 전력단의 소신호 모델 얻기 (s-영역)
먼저, 제어 대상(Buck-Boost 전력단)의 연속 시간 전달 함수 G_{vd}(s) (제어 입력에서 출력 전압까지의 전달 함수)를 알아야 합니다.
4스위치 동기식 Buck-Boost 변환기의 경우 일반적으로 세 가지 동작 모드로 나뉘며, 각각의 전달 함수가 다릅니다:
- Buck 모드: 최소 위상 시스템(minimum phase system)이며, LC 쌍극점과 출력 커패시터의 ESR 영점이 존재합니다.
- Boost 모드 / Buck-Boost 모드: 비최소 위상 시스템(non-minimum phase system)이며, LC 극점과 ESR 영점 외에도 우반면 영점(RHPZ) 이 존재합니다.
- RHPZ는 위상 지연을 증가시키고 동시에 크기를 증가시켜 시스템의 불안정을 유발하기 쉬워집니다.
- RHPZ의 주파수 공식은 일반적으로 다음과 같습니다: f_{RHPZ} = \\frac{R_{load} \\cdot (1-D)^2}{2 \\pi L}
핵심 포인트: 루프의 교차 주파수(대역폭) f_c 는 최악의 경우 RHPZ 주파수의 1/5 에서 1/3 이하로 설계되어야 하며, 충분한 위상 여유를 확보해야 합니다.
두 번째 단계: 아날로그 보상기 설계 (s-영역)
G_{vd}(s) 를 결정한 후, 목표 교차 주파수 f_c (일반적으로 스위칭 주파수 f_{sw} 의 1/10 ) 및 위상 여유(일반적으로 45^\\circ ~ 60^\\circ )를 설정합니다.
- 전압 모드 제어 (VMC): LC 공진으로 인한 180^\\circ 위상 감소를 보상하기 위해 일반적으로 Type III 보상기(PID와 동등하며, 두 개의 극점과 두 개의 영점을 제공)가 필요합니다.
- 피크 전류 모드 / 평균 전류 모드 (CMC): 전류 루프가 인덕터를 1차 시스템으로 만드므로, 외부 전압 루프에는 일반적으로 Type II 보상기(PI와 동등)만 필요합니다.
예를 들어 PI 제어기를 사용한다고 가정하면, 그 연속 영역 전달 함수는 다음과 같습니다:
세 번째 단계: 이산화 변환 (s-영역 → z-영역)
마이크로컨트롤러는 s-영역 수식을 직접 처리할 수 없으므로 이를 z-영역으로 이산화(discretization)해야 합니다. 일반적으로 사용되는 방법은 주파수 영역 특성을 잘 유지하는 쌍선형 변환(Tustin 변환) 입니다.
Tustin 변환 공식을 적용합니다:
(T_s 는 제어 루프의 샘플링 주기)
이 식을 G_c(s) 에 대입하면 디지털 보상기의 전달 함수 G_c(z) 를 얻을 수 있습니다.
네 번째 단계: 차분 방정식 도출 (C 언어 구현)
G_c(z) 를 시간 영역의 차분 방정식(difference equation)으로 변환합니다. 이것이 바로 STM32G474에서 실제로 실행되는 코드 논리입니다. 표준적인 증분형 PI 제어를 예로 들면, 도출된 표준 차분 방정식은 다음과 같습니다:
- e[n]: 현재 ADC 측정 전압과 기준 전압 사이의 오차
- e[n-1]: 이전 오차
- u[n]: 현재 계산된 제어량(HRTIM 듀티비 비교값)
- u[n-1]: 이전 제어량
다섯 번째 단계: STM32G474 하드웨어 이득 정렬
디지털 시스템에서는 아날로그 계산 결과로 얻은 K_p 와 K_i 를 그대로 사용할 수 없습니다. 반드시 ADC 양자화 이득과 PWM 변환 이득을 포함시켜야 합니다:
- ADC 이득 (K_{ADC}): 예를 들어 12비트 ADC를 사용하고 기준 전압이 3.3V, 피드백 분압비가 K_{div} 라면, ADC 샘플 값과 실제 출력 전압의 관계는 다음과 같습니다:K_{ADC} = \\frac{2^{12} - 1}{3.3} \\cdot K_{div}
- PWM 이득 (K_{PWM}): G474의 HRTIM은 매우 높은 해상도(약 170ps)를 제공합니다. HRTIM의 주기 레지스터 값이 PER 라면 듀티비와 제어량의 관계는 다음과 같습니다:K_{PWM} = \\frac{PER}{1.0}
최종적으로 MCU에 입력되는 파라미터 K_{p\\_digital} 와 K_{i\\_digital} 는 전체 시스템 이득에 따라 비례적으로 조정되어야 합니다:
STM32G474 프로그래밍 최적화 제안
- 고정소수점 연산: 초고속 응답을 위해
float사용을 피하세요(G474에 FPU가 있더라도). Q15 또는 Q31 형식의 고정소수점 연산을 사용하고 CMSIS-DSP 라이브러리의arm_pid_q31함수를 활용하거나, G474의 FMAC(필터 수학 가속기)를 이용하여 하드웨어가 자동으로 PI/Type III 보상을 계산하도록 하세요. - ADC 트리거 메커니즘: HRTIM의 특정 이벤트(일반적으로 PWM 주기의 중심점)를 사용하여 ADC 샘플링을 하드웨어로 트리거함으로써 스위칭 노이즈를 피하세요. 이를 “블랭킹(blanking)” 또는 평균 전류 샘플링이라고 부릅니다.
감사합니다, 대佬님!原来如此啊
- 스스로 전류가 샘플링 저항을 통과할 때 발생하는 전압의 극성(+)과 (-) 방향을 다시 한 번 자세히 살펴보세요.
- 자신이 연산증폭기 차동 증폭 회로의 원리와 계산 방법에 대해 검색해 보세요 (아날로그 전자회로 기초).
내가 잘못 기억한 건 아닐 텐데, 1. 전류는 VOUT+ → 부하 → VOUT- → GND → VIN- → VIN+ 방향으로 흐르는 것이 맞고, 2. 차동 증폭기에서 R47=R39이고 R43=R41일 때 출력은 Vout = (R47/R43) × (0 - VIN-)가 되어야 합니다. 게다가 R41과 R39를 합치면 그냥 반전 증폭기 형태가 되는 거죠.
형, 외부 전류 회로에 대한 이해가 약간 반대로 된 것 같아요. 전원은 VIN에서 공급되는데, 전류는 VIN+에서 유입되어 회로를 지나 GND에 도달한 후, 마지막으로 R13을 통해 GND에서 VIN-로 흘러 외부 전원의 음극으로 돌아가야 해요. 즉, 전류 방향이 GND → VIN-이기 때문에, GND(0V) 기준으로 VIN-의 전압은 실제로 음전압이 되는 거예요!
따라서 입력 신호가 음의 전압이라면, OP-AMP는 역상 증폭 구조를 사용하게 되고, 출력 전압은 V_{out} = -62 \\times (\\text{음전압}) 이 됩니다. 음수와 음수가 곱해지므로 결과는 양수가 되고, 따라서 ADC에서 측정하는 전압도 양의 전압이 되는 것이죠.
그리고 5번 핀에 저항이 병렬로 연결된 점을 관찰하신 것도 매우 세밀하네요! 이것은 역상단(6번 핀)을 바라보았을 때 등가저항이 100Ω과 6.2kΩ이 병렬로 연결된 값이기 때문에, OP-AMP의 입력 편향 전류로 인한 오차를 제거하기 위해 비역상단(5번 핀)에도 동일한 크기의 등가저항을 접지시켜 주어야 하기 때문입니다. 아날로그 회로 설계에서는 이를 밸런스 저항(balance resistor)이라고 부르며, 측정 정확도를 높이기 위한 표준적인 방법이에요.
하지만 이렇게 되면 5번 단자에서 보면 두 저항은 서로 병렬 연결이 되고, 병렬로 연결된 후의 등가저항만이 진짜로 5번 단자에 연결되는 것입니다.
기초 아날로그 전자기술은 배워봤어?
켈빈 배선(Kelvin wiring)에 대해 한 번 알아보자
갑자기 이해했어요, 대가님! 입력단의 샘플링 저항을 지나는 전류가 GND에서 나와서 VIN-로 흐르기 때문에 VIN-는 음의 값을 가지며, 즉 음의 전압입니다. 따라서 비반전 입력단은 GND(0V)에 연결되고, 반전 입력단은 VIN-에 연결됩니다. 위쪽의 6.2kΩ 저항은 차동 증폭의 표준적인 접속 방식인데, 겉보기에는 두 저항이 모두 GND에 연결되어 있고, R41과 R39가 마치 병렬로 연결된 것처럼 보여서, 반전 증폭기로 보는 것도 일리가 있어 보입니다.
저기요, 한 가지 여쭤보고 싶은데, 이 제품의 전원 공급 방식이 C포트와 DC 포트 두 가지가 있잖아요. 게다가 전압 유도 칩도 있고, 세 개의 설정 핀은 모두 플로팅 상태로 두어 기본적으로 20V를 유도하죠. 그렇다면 전원 공급은 20V/5A를 지원하는 100W 충전기 아니면 12V 이상이고 DC 포트를 가진 전원 어댑터만으로 보드에 전원을 공급할 수 있는 건가요?
최대 20V까지 유도 가능하며, 20V로만 유도되는 것은 아님. 충전기가 20V를 지원하지 않으면 단계가 낮아져 15V/12V 등으로 동작함.
아하, 즉 유도 칩은 최대 20V 전압 단계를 지원하지만, 20V보다 낮은 전압도 괜찮습니다. 다만 12V 이하로는 떨어지면 안 되는데, 그 이유는 1차 buck 칩에서 12V를 강하시켜 반교 구동 회로와 소형 팬에 전원을 공급해야 하기 때문입니다.
네
잠깐만요, 형. 이 프로젝트를 하면서 비교적 큰 디버깅 문제 있었어요? 몇 가지 주요하거나 흔히 발생하는 디버깅 문제에 대해 좀 더 자세히 설명해주실 수 있나요?
(게시물이 작성자에 의해 삭제되었습니다)
왜 buckpwm은 period-buck이고
boost는 boost일까요?
180도 위상 이동을 할 필요가 있나요? 이미 dpseek에게 물어봤지만 확실하지 않아서 해결책을 구합니다.

