inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

전동킥보드로 배우는 임베디드 실전 프로젝트

PWM 사용하는 이유와 구현 방법

57강. PWM은 sine을 만들어 내는 걸로 이해 하면 되나요 ?

60

윤남경

작성한 질문수 36

0

sine 입력을 fet로 만들면, 손실이 커서, 스위칭으로 평균값으로 만든다는 걸로 이해하면 될까요 ? 그리고 삼각파형은 나중에 STM32에서 timeer counter(업카운터+다운카운터)동작모드로 좌우 삼각형으로 설정하여, 사용자가 입력한 신호와 비교하여 MCU가 크기 관계를 판단하여 fet 스위치(drain)을 제어 한다고 생각하면 되나요 ?

임베디드 stm32 hardware motordriver artwork

답변 2

0

제어쟁이

질문하신 내용을 보면 크게 두 가지를 확인하고 계신 것 같습니다.

첫 번째는 “PWM을 사용하는 이유가 사인파를 만들기 위해서인가?”, 두 번째는 “STM32에서는 삼각파와 기준값을 비교해서 PWM을 만드는 것인가?”입니다.

먼저 현재 전동킥보드 강의의 BLDC 6-step 제어에서는 PWM을 사인파를 만들기 위해 사용하는 것은 아닙니다.

MOSFET을 완전히 ON/OFF시키면서 PWM Duty를 조절하고, 그 결과 모터에 인가되는 평균 전압을 조절한다고 이해하시면 됩니다. 예를 들어 DC Link가 24V이고 Duty가 50%라면 아주 단순화했을 때 해당 구간에서 평균적으로 약 12V 수준의 전압을 인가하는 효과를 만들 수 있습니다.

여기서 중요한 것은

PWM = 사인파 생성

으로 항상 연결되는 것은 아니라는 점입니다.

이번 BLDC 6-step에서는 Hall Sensor로 현재 회전자 위치를 판단하고, 각 구간에서 어떤 상의 High-side/Low-side MOSFET을 켤지 결정합니다. 그 상태에서 PWM Duty를 조절해서 모터에 인가되는 평균 전압을 조절합니다. 따라서 현재 강의에서는 기본적으로

Hall 위치 → 6-step Commutation 결정 → PWM Duty → 평균 인가 전압 조절

이런 구조로 보시면 됩니다.

사인파 형태의 전류를 만들어 모터를 구동하는 방법은 PMSM 벡터제어 강의에서 더 자세히 다룹니다. 그 경우에는 전기각에 따라 전압 지령이 계속 변하고, 그 지령을 SVPWM으로 실제 인버터의 스위칭 신호로 변환합니다. 결과적으로 모터에는 사인파에 가까운 전류가 흐르게 됩니다.

두 번째로 말씀하신 STM32의 삼각파 부분은 방향은 맞습니다. 좀 더 정리하여 설명드리면,

STM32 Timer 내부의 Counter 값이

0 → 최대값 → 0 → 최대값

형태로 Up-count와 Down-count를 반복합니다. 이 Counter 값의 움직임을 그림으로 그리면 삼각파처럼 보이기 때문에 흔히 삼각파 Carrier라고 표현하는 것입니다.

그리고 Timer의 Counter 값과 CCR(Compare Register)에 저장된 값을 비교해서 PWM 출력이 만들어집니다.

예를 들어 사용자가 Duty 60%를 명령하면 프로그램에서 그 Duty를 Timer의 CCR 값으로 변환해서 넣어줍니다. 이후에는 STM32 Timer 하드웨어가 Counter와 CCR을 자동으로 비교해서 PWM 파형을 생성합니다.

전체 흐름은 대략

사용자 Duty 명령
→ CCR 값 계산
→ Timer Counter와 CCR 비교
→ PWM 출력
→ Gate Driver
→ MOSFET Gate ON/OFF
→ 모터에 평균 전압 인가

라고 이해하시면 됩니다.

그리고 한 가지 용어도 정리하면, MCU가 직접 MOSFET의 Drain을 제어하는 것은 아닙니다. PWM 신호가 Gate Driver를 거쳐 MOSFET의 게이트-소스 전압을 제어하고, MOSFET이 ON/OFF되면서 결과적으로 Drain-Source 전압과 전류가 변하게 됩니다.

감사합니다:)

0

윤남경

상세한 답변 감사합니다.

제가 FET부분을 건너띠고 들어서 이해도가 부족했던것 같습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 윤남경님.

질문하신 이해가 대체로 맞습니다. 다만 PWM 자체가 직접 sine 파형을 만들어내는 것은 아니고, sine 형태의 기준 신호와 삼각파 형태의 carrier를 비교하여 스위칭 듀티비를 변화시키는 방식입니다.

  • FET는 sine 전압을 선형적으로 출력하는 대신 빠르게 ON/OFF 스위칭합니다.
  • 한 PWM 주기 동안의 ON 시간, 즉 듀티비를 sine 기준파에 따라 조절하면 부하에서 바라보는 평균 전압이 sine에 가까워집니다.
  • 따라서 FET를 선형 영역에서 동작시키는 것보다 스위칭 손실을 줄일 수 있습니다. 다만 스위칭 손실과 도통 손실은 여전히 발생합니다.
  • 삼각파는 STM32 타이머의 Center-Aligned PWM 모드처럼 업카운트와 다운카운트를 반복하는 방식으로 만들 수 있습니다.
  • 타이머의 카운터 값과 비교 레지스터(CCR)의 값을 비교하여 PWM 출력이 결정됩니다. MCU가 매 순간 별도의 판단을 해서 FET의 드레인을 직접 제어하는 것이 아니라, 타이머의 비교 출력이 게이트 드라이버를 거쳐 FET의 게이트를 제어합니다. 드레인은 스위칭에 따라 전류가 흐르는 단자입니다.
  • 상·하단 FET를 함께 사용하는 인버터에서는 두 스위치가 동시에 켜지지 않도록 데드타임도 고려해야 합니다.

관련 내용은 아래 기존 답변에서 확인하실 수 있습니다.

상단 스위치 PWM 장단점.

PWM을 이용해 스위칭 손실을 줄이고 전류를 센싱하는 방식, 그리고 상단 PWM과 하단 스위치의 동작 관계에 대해 설명하고 있습니다.

Dead Time 관련 질문 드립니다.

Center-Aligned PWM에서 상·하단 스위치를 상보적으로 동작시키는 이유와 동기 정류, 부트스트랩 충전에 대한 설명이 포함되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Buck Converter design

0

56

2

uart 실습

0

66

1

VM 배선

0

61

2

듀티 조절 코드 질문

0

57

2

Query Regarding PCB Design and Manufacturing for Firmware Testing

0

60

3

홀카터 질문

0

48

1

C46~C48 크기

0

54

2

Teleplot 문의

0

53

1

MCU 선정 관련 문의

0

70

1

전류 센싱 문의

0

72

2

키트 구매 여부

0

77

3

소형모터 구동

0

52

2

stm 클럭설정

0

57

1

36. 전력은 900W가 될것 같습니다.

0

49

1

34.제너다이오드는 전류 분배기라고 생각하면 될까요 ?

0

42

0

33.제너다이오드와 tvs다이오드 모양이 동일합니다.

0

48

0

쓰로틀 V 변하지 않음

0

90

3

풀업 저항 크기와 커패시터 용량 선정 방법

0

70

2

86, data bit순서가 바뀌어야 할것 같습니다.

0

59

1

85. pwm사용에 기본구조 이해가 같이 요구되네요

0

60

1

dc모터 회전원리

0

66

2

83. volatile로 선언한 이유가 이해 안됩니다.

0

56

1

82. 16:50초 설명에 대한 오해 및 adc mode비교 자료

0

83

2

81. 소프트웨어 작성 방법론에 조언 부탁 드립니다.

0

76

2