> 백엔드 개발 > C++ > STMMCU를 이용한 전기집진기 컨트롤러용 SPWM ase/ase 인버터 구현

STMMCU를 이용한 전기집진기 컨트롤러용 SPWM ase/ase 인버터 구현

Patricia Arquette
풀어 주다: 2024-10-21 06:18:30
원래의
953명이 탐색했습니다.

얼마전에 IF 전기집진기 컨트롤러에 대해 언급한 적이 있는데, 단상과 3상 SPWM 구동시간을 꼼꼼히 분석하고, STM32F103 프로세서에 SPWM 코드 작성을 완료하고, 오실로스코프로 신호와 파형을 테스트하고, 로직 분석기.
STM32F103의 TIMER1과 TIMER2는 보완적인 PWM 출력을 지원하며, A,B,C 3상 구동을 위해 TIMER1의 CH1,CH2,CH3을 선택했습니다.
프로세서의 클럭 주파수는 72MHz이고, 보완적인 PWM 출력의 데드타임은 다음 코드에 의해 4us로 설정됩니다.
SPWM_PWM_TIMER->BDTR = 0x80C4.

반주기 정현파 데이터 테이블을 생성하고, 정현파 신호의 주파수와 PWM의 주파수 값을 기준으로 정현파 신호의 주기를 나누어야 하는 간격을 계산하고, 각 정현파 신호 데이터의 평균값을 계산하고, 최대 정현파 데이터와 PWM 신호의 최대 듀티 사이클 값을 기반으로 각 간격의 듀티 사이클 값을 계산합니다.

SPWM의 주파수가 10kHz이고 사인 신호의 주파수가 50Hz일 때 출력 SPWM 신호는 1kΩ 저항 0.1uF 커패시터를 갖춘 2단의 저역 통과 필터링 저항을 통과하게 되는데, 매우 완벽한 사인 신호.

처음에는 SPWM에서 계산한 듀티 사이클 값을 DMA를 통해 TIMER의 CCR 레지스터에 자동으로 설정하고 반완료 인터럽트와 완료 인터럽트에서 DMA 캐시 업데이트를 구현하고 싶었지만 도중에도 빈도가 바뀔 수 있기 때문입니다. 이는 DMA의 데이터 수를 동적으로 변경하여 SPWM 출력의 정현파 신호 출력을 일관성 없게 만들고 고주파 성분을 생성합니다.

마지막으로 TIMER의 업데이트 인터럽트를 통해 PWM 신호의 각 주기마다 3상 CCR 레지스터 값이 업데이트됩니다.

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

Implement the SPWM ase/ase inverter for electrostatic precipitator controller using STMMCU

위 내용은 STMMCU를 이용한 전기집진기 컨트롤러용 SPWM ase/ase 인버터 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿