日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 小麥大叔
[導讀]PWM的全稱是脈沖寬度調(diào)制(Pulse-width modulation),是通過將有效的電信號分散成離散形式從而來降低電信號所傳遞的平均功率的一種方式;所以根據(jù)面積等效法則,可以通過對改變脈沖的時間寬度,來等效的獲得所需要合成的相應幅值和頻率的波形。

目錄

  • 基本原理

  • PWM是如何實現(xiàn)?

  • 分類

  • 程序?qū)崿F(xiàn)

  • 總結(jié)

基本原理

PWM的全稱是脈沖寬度調(diào)制Pulse-width modulation),是通過將有效的電信號分散成離散形式從而來降低電信號所傳遞的平均功率的一種方式;

所以根據(jù)面積等效法則,可以通過對改變脈沖的時間寬度,來等效的獲得所需要合成的相應幅值頻率的波形;

具體如下圖所示;

由上圖可知,脈沖寬度調(diào)制使用一個脈沖寬度會被調(diào)制的方波,并且波型的平均值會有所變化。

如果我們考慮一個周期為 的脈沖波 ,低值 ,高值為 ,跟占空比 (duty cycle),此波的平均值為:

是一個脈沖波,它的值在 而在

上式的描述可以變?yōu)椋?/p>

以上公式可以在很多狀況下被簡化,當

從這里可以看出,波型的平均值非常明顯地直接與占空比 有關(guān)。

占空比

圖中存在三種占空比狀態(tài),25%,50%75%占空比狀態(tài),不難發(fā)現(xiàn),假設(shè)占空比為D,則滿足:

其中 是PWM的周期,通常和載波的周期相同;

PWM是如何實現(xiàn)?

PWM實現(xiàn)的原理是通過鋸齒波/三角波(載波)所需要合成的波形(調(diào)制波)進行比較,然后確定PWM所需要輸出的極性,通常是ON或者是OFF,因為一般都是作用到開關(guān)元器件上;如下圖所示;

振蕩器和比較器

振蕩器輸出的鋸齒波和參考值 進行比較,然后就可以輸出PWM波形了;

matlabsimulink中搭建了一下仿真,具體如下圖所示;

simulink

最終輸出波形如下:

50%占空比

這里簡單說明一下:

  • 鋸齒波(圖中橙色波形)最大為 10,然后我希望輸出平均為 5的波形(圖1中紅色的水平直線);
  • 那么通過比較,當鋸齒波小于 5時;PWM輸出低電平,即為 OFF;
  • 當鋸齒波大于 5時,PWM輸出高電平,即為 ON

所以再換一個思路,如果我希望輸出一個電壓逐漸升高的波形呢,該如何設(shè)計呢?

其實很簡單,只要把需要調(diào)制的波形設(shè)置為斜坡輸出的波形就可以了,具體如下圖所示;

占空比逐漸增大

可以看到,最終占空比逐漸從0%增大到100%

然后我們繼續(xù)想,能不能調(diào)制出其他的波形,比如調(diào)制一個正弦波sin wave,那也就是我們常說的SPWM,其實是可以的,具體如下圖所示;

SPWM

分類

參考STM32中PWM的配置,根據(jù)載波波形的形狀,假設(shè)三角波最大值是10,那么它的變化過程可能存在以下兩種情況:

  • 完整周期包括兩個過程,先遞增,再遞減: ,這種也叫中央對齊PWM;
  • 完整周期只有遞增過程: ;

中央對齊PWM

脈沖波的中心將會被固定在時間窗格的中心,同時脈沖波的兩邊可以移動,使得波的寬度被延伸或壓縮,具體如下圖所示;

中央對齊PWM

另一種類型的PWM脈沖波形如下圖所示;

程序?qū)崿F(xiàn)

現(xiàn)在的MCU大部分都自帶硬件PWM發(fā)生器,即配置好相應的寄存器,就能直接產(chǎn)生PWM,下面的例子基于NUCLEO-F767ZI,通過cubemx配置了三路PWM輸出,然后實現(xiàn)了呼吸燈的效果;

int?main(void)
{

?HAL_Init();

?MX_GPIO_Init();
?MX_TIM4_Init();
?MX_TIM3_Init();
?MX_TIM12_Init();

?int32_t?time_stamp?=?0;
?int32_t?time_stamp_old?=?0;
?int32_t?ccr_val?=?0;
?uint8_t?add_flag?=?1;
?HAL_TIM_PWM_Start(&htim4,?TIM_CHANNEL_2);
?HAL_TIM_PWM_Start(&htim12,?TIM_CHANNEL_1);
?HAL_TIM_PWM_Start(&htim3,?TIM_CHANNEL_3);?
?while?(1)
?{
???time_stamp?=?HAL_GetTick();
?? if(time_stamp?-?time_stamp_old?>?5){
?? time_stamp_old?=?time_stamp;
?? if(add_flag){
??? ccr_val+=25;
??? if(ccr_val?>=?0xFFFF){
??? ccr_val?=?0xFFFF;
??? add_flag?=?0;
?? }
?? }else{
??? ccr_val-=25;
??? if(ccr_val?<=?0){
???? add_flag?=?1;
???? ccr_val?=?0;
??? }
?? }
?? TIM4->CCR2?=?ccr_val;
?? TIM12->CCR1?=?ccr_val;
?? TIM3->CCR3?=?ccr_val;
?? }
?}
}

整體效果如下:

呼吸燈

通過示波器看其中的一路PWM輸出的占空比也是隨時間變化;

PWM變化情況

總結(jié)

本文簡單介紹了PWM的原理,以及如何產(chǎn)生PWM,可以通過鋸齒波作為載波和調(diào)制波經(jīng)過比較強,產(chǎn)生相應的PWM輸出波形,最后結(jié)合STM32實現(xiàn)了一個呼吸燈的簡單程序。

—— The End?—

推薦好文 ??點擊藍色字體即可跳轉(zhuǎn)
?太難了,炸機后才去注意PWM的死區(qū)時間
?當心!別再被大小端的問題坑了
?PID微分器與濾波器的愛恨情仇
?簡易PID算法的快速掃盲
?增量式PID到底是什么?
?三面大疆慘敗,因為不懂PID的積分抗飽和

原創(chuàng)不易,歡迎轉(zhuǎn)發(fā)、留言、點贊、分享給你的朋友,感謝您的支持!





免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉