日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

天哪!原来PWM这么简单

發(fā)布時(shí)間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 天哪!原来PWM这么简单 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 基本原理

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

  • 分類

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

  • 總結(jié)

基本原理

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

所以根據(jù)面積等效法則,可以通過(guò)對(duì)改變脈沖的時(shí)間寬度,來(lái)等效的獲得所需要合成的相應(yīng)幅值頻率的波形;

具體如下圖所示;

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

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

當(dāng) 是一個(gè)脈沖波,它的值在 是 而在 是

上式的描述可以變?yōu)?#xff1a;

以上公式可以在很多狀況下被簡(jiǎn)化,當(dāng) 及 。

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

占空比

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

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

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

PWM實(shí)現(xiàn)的原理是通過(guò)鋸齒波/三角波(載波)所需要合成的波形(調(diào)制波)進(jìn)行比較,然后確定PWM所需要輸出的極性,通常是ON或者是OFF,因?yàn)橐话愣际亲饔玫介_(kāi)關(guān)元器件上;如下圖所示;

振蕩器和比較器

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

在matlab的simulink中搭建了一下仿真,具體如下圖所示;

simulink

最終輸出波形如下:

50%占空比

這里簡(jiǎn)單說(shuō)明一下:

  • 鋸齒波(圖中橙色波形)最大為10,然后我希望輸出平均為5的波形(圖1中紅色的水平直線);

  • 那么通過(guò)比較,當(dāng)鋸齒波小于5時(shí);PWM輸出低電平,即為OFF;

  • 當(dāng)鋸齒波大于5時(shí),PWM輸出高電平,即為ON;

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

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

占空比逐漸增大

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

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

SPWM

分類

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

  • 完整周期包括兩個(gè)過(guò)程,先遞增,再遞減:增加增加減少減少,這種也叫中央對(duì)齊PWM;

  • 完整周期只有遞增過(guò)程:增加增加;

中央對(duì)齊PWM

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

中央對(duì)齊PWM

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

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

現(xiàn)在的MCU大部分都自帶硬件PWM發(fā)生器,即配置好相應(yīng)的寄存器,就能直接產(chǎn)生PWM,下面的例子基于NUCLEO-F767ZI,通過(guò)cubemx配置了三路PWM輸出,然后實(shí)現(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;}} }

整體效果如下:

呼吸燈

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

PWM變化情況

總結(jié)

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

-END-

|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|

|?如有侵權(quán),請(qǐng)聯(lián)系刪除?|

往期好文合集

什么是PWM“死區(qū)”?

電子設(shè)計(jì)競(jìng)賽(三)-SPWM與PID

PCB工程師的7個(gè)好習(xí)慣

??最 后??

?

若覺(jué)得文章不錯(cuò),轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動(dòng)力。

5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機(jī)、等等

在公眾號(hào)內(nèi)回復(fù)「更多資源」,即可免費(fèi)獲取,期待你的關(guān)注~

總結(jié)

以上是生活随笔為你收集整理的天哪!原来PWM这么简单的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。