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

當(dāng)前位置:首頁(yè) > > 小麥大叔
[導(dǎo)讀]本文簡(jiǎn)單介紹了SPWM的原理和調(diào)制方法,推導(dǎo)了SPWM的PWM脈沖寬度的計(jì)算時(shí)間,最后給出了基于STM32單片機(jī)產(chǎn)生SPWM驅(qū)動(dòng)呼吸燈的部分代碼。

目錄

  • 基本原理

  • 自然采樣法

  • 規(guī)則采樣法

    • 單極性

    • 雙極性

  • 如何編寫程序

  • 總結(jié)


基本原理

SPWM的全稱是(Sinusoidal PWM),正弦脈沖寬度調(diào)制是一種非常成熟,使用非常廣泛的技術(shù);

之前在PWM的文章中介紹過(guò),基本原理就是面積等效原理,即沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時(shí),其效果基本相同 。

換句話說(shuō)就是通過(guò)一系列形狀不同的窄脈沖信號(hào),相對(duì)應(yīng)時(shí)間的積分相等(面積相等),其最終效果相同;

所以SPWM就是輸入一段幅值相等的脈沖序列去等效正弦波,因此輸出為高的脈沖時(shí)間寬度基本上呈正弦規(guī)律變化;

這里通常使用的采樣方法是:自然采樣法和規(guī)則采樣法;

自然采樣法

自然采樣法是用需要調(diào)制的正弦波與載波鋸齒波的交點(diǎn),

來(lái)確定最終PWM脈沖所需要輸出的時(shí)間寬度,最終由此生成SPWM波;

具體如下圖所示,這里會(huì)對(duì)局部①部分進(jìn)行簡(jiǎn)單分析,下面進(jìn)一步介紹;

SPWM波形

局部①的情況如下圖所示;簡(jiǎn)單分析一下整個(gè)圖形的情況;

  • 鋸齒波和調(diào)制正弦波的交點(diǎn)為 AB;
  • 因此 A點(diǎn)所需時(shí)間為 T1B點(diǎn)所需時(shí)間為 T2;
  • 所以在該周期內(nèi),PWM所需要的脈沖時(shí)間寬度 Ton滿足:
  • 最終結(jié)論就是,只要求出 A點(diǎn)B點(diǎn)位置,就可以求出 ;
自然采樣法

這里對(duì)于求解A,B位置的推導(dǎo)不做介紹,但是計(jì)算量比較大,因此在微處理器中進(jìn)行運(yùn)算會(huì)占用大量資源,下面再介紹另一種優(yōu)化的采樣方法:規(guī)則采樣法。

規(guī)則采樣法

根據(jù)載波PWM的電壓極性,一般可以分為單極性SPWM和雙極性SPWM;下面進(jìn)一步介紹;

單極性

單極性SPWM在正弦波的正版周期,PWM只有一種極性,在正弦波的負(fù)半周期,PWM同樣只有一種極性,但是與正半周期恰恰相反,具體如下圖所示;

下面取正弦波的正半周期的情況進(jìn)行分析;

單極性SPWM

正弦波的正半周期整體如下所示;由圖中我們可以知道以下幾點(diǎn);

  • 載波PWM的周期為 T;
  • 線段 BO為當(dāng)前這個(gè)等腰三角形的垂線;
  • 線段 BO與正弦曲線 相較于點(diǎn) A
  • 所以在該周期內(nèi) ,PWM所需要的脈沖時(shí)間寬度 Ton滿足:
單極性正半周期

具體的推導(dǎo)過(guò)程如下:

  • 第一步:由于O點(diǎn)的位置比較好確認(rèn),因此,線段

  • 第二步:這里載波鋸齒波的最大幅值為1,因此線段

  • 第三步:根據(jù)初中學(xué)過(guò)的相似三角形定理,滿足:

最終簡(jiǎn)化得到:

這里對(duì)載波的幅值做了歸一化處理,如果鋸齒波的最大值為 ,正弦波的幅值最大為 ,則 ;

雙極性

只要符合面積等效原理,PWM還可以是雙極性的,具體如下圖所示;這種調(diào)制方式叫雙極性SPWM,在實(shí)際應(yīng)用中更為廣泛。

雙極性SPWM

如何編寫程序

上面講到這里PWM的 時(shí)間滿足:

其中 為正弦波幅值, 為載波鋸齒波幅值;

那么下面以STM32為例,介紹以下如何進(jìn)行程序編寫;

首先得先STM32是如何產(chǎn)生PWM?

通過(guò)數(shù)據(jù)手冊(cè)可以知道,STM32通過(guò)TIM輸出PWM,這里有幾個(gè)寄存器;

  • 計(jì)數(shù)寄存器: CNT
  • 比較寄存器: CCR (決定了占空比,決定了脈沖寬度)
  • 自動(dòng)重裝寄存器: AAR(決定了PWM的周期)

可能這么說(shuō),還是云里霧里的,先看下圖;

STM32的PWM產(chǎn)生原理

STM32中PWM的模式有普通的PWM,和中央對(duì)齊的PWM,上圖使用的就是中央對(duì)齊PWM;

產(chǎn)生PWM的過(guò)程可以分為以下幾個(gè)過(guò)程;

  • 第一步:配置好TIM, 通常時(shí)基和ARR都會(huì)配置好,這時(shí)候PWM的周期就已經(jīng)被設(shè)定好了,另外時(shí)基決定了CNT計(jì)數(shù)寄存器增加一次技術(shù)所需的時(shí)間;
  • 第二步:剛開(kāi)始, CNT,并且 CNT開(kāi)始增加,這時(shí)候PWM的輸出都是低電平;當(dāng) CNT>CCR之后,PWM輸出為高電平;
  • 第三步:當(dāng) CNT的值等于AAR之后, CNT開(kāi)始減少,同理 CNT,PWM的輸出低電平;當(dāng) CNT>CCR,PWM輸出為高電平;
  • 第四步:循環(huán)上述三個(gè)步驟;

程序中如何實(shí)現(xiàn)?

從上述STM32產(chǎn)生PWM的過(guò)程中不難發(fā)現(xiàn), 滿足;

上一節(jié)推導(dǎo)的公式如下:

結(jié)合①式和②式,可以得到:

上面公式中用CCR表示CCR寄存器中的值,ARR表示ARR寄存器中的值;

最后需要做的三件事

  • 計(jì)算出ARR,一般配置TIM定時(shí)器的時(shí)候能在數(shù)據(jù)手冊(cè)找到公式;
  • 調(diào)制比,也就是 的系數(shù);
  • 根據(jù)③式生成正弦表,然后查表(實(shí)時(shí)計(jì)算因?yàn)樯婕暗捷^多運(yùn)算量,所以利用查表,空間換時(shí)間,提高效率), 利用PWM的事件去觸發(fā)中斷,更新下一次CCR的值;

正弦函數(shù)表

const?uint16_t?indexWave[]?=?{
?0,?9,?18,?27,?36,?45,?54,?63,?72,?81,?89,?98,
?107,?116,?125,?133,?142,?151,?159,?168,?176,
?184,?193,?201,?209,?218,?226,?234,?242,?249,
?257,?265,?273,?280,?288,?295,?302,?310,?317,?
?324,?331,?337,?344,?351,?357,?364,?370,?376,?
?382,?388,?394,?399,?405,?410,?416,?421,?426,?
?431,?436,?440,?445,?449,?454,?458,?462,?465,?
?469,?473,?476,?479,?482,?485,?488,?491,?493,?
?496,?498,?500,?502,?503,?505,?506,?508,?509,?
?510,?510,?511,?512,?512,?512,?512,?512,?512,
?511,?510,?510,?509,?508,?506,?505,?503,?502,
?500,?498,?496,?493,?491,?488,?485,?482,?479,
?476,?473,?469,?465,?462,?458,?454,?449,?445,?
?440,?436,?431,?426,?421,?416,?410,?405,?399,?
?394,?388,?382,?376,?370,?364,?357,?351,?344,?
?337,?331,?324,??317,?310,?302,?295,?288,?280,?
?273,?265,?257,?249,?242,?234,?226,?218,?209,?
?201,?193,?184,?176,?168,?159,?151,?142,?133,?
????125,?116,?107,?98,?89,?81,?72,?63,?54,?45,?36,
????27,?18,?9,?0
};

中斷服務(wù)函數(shù):

extern?uint16_t?indexWave[];
extern?__IO?uint32_t?rgb_color;

/*?呼吸燈中斷服務(wù)函數(shù)?*/
void?BRE_TIMx_IRQHandler(void)
{?
?static?uint16_t?pwm_index?=?0;??//用于PWM查表
?static?uint16_t?period_cnt?=?0;??//用于計(jì)算周期數(shù)
?static?uint16_t?amplitude_cnt?=?0;?//用于計(jì)算幅值等級(jí)

?if?(TIM_GetITStatus(BRE_TIMx,?TIM_IT_Update)?!=?RESET)?//TIM_IT_Update
??{??
??amplitude_cnt++;

??//每個(gè)PWM表中的每個(gè)元素有AMPLITUDE_CLASS個(gè)等級(jí),
??//每增加一級(jí)多輸出一次脈沖,即PWM表中的元素多使用一次
??//使用256次,根據(jù)RGB顏色分量設(shè)置通道輸出
??if(amplitude_cnt?>?(AMPLITUDE_CLASS-1)){??
???period_cnt++;

???//每個(gè)PWM表中的每個(gè)元素使用period_class次
???if(period_cnt?>?period_class){????
????
????//標(biāo)志PWM表指向下一個(gè)元素
????pwm_index++;????????????

????//若PWM表已到達(dá)結(jié)尾,重新指向表頭
????if(?pwm_index?>=??POINT_NUM){
?????pwm_index=0;
????}
????//重置周期計(jì)數(shù)標(biāo)志
????period_cnt?=?0;
???}
???//重置幅值計(jì)數(shù)標(biāo)志
???amplitude_cnt=0;???????????
??
??}else{?
???//每個(gè)PWM表中的每個(gè)元素有AMPLITUDE_CLASS個(gè)等級(jí),
???//每增加一級(jí)多輸出一次脈沖,即PWM表中的元素多使用一次
???//根據(jù)RGB顏色分量值,設(shè)置各個(gè)通道是否輸出當(dāng)前的PWM表元素表示的亮度
???//紅
???if(((rgb_color&0xFF0000)>>16)?>=?amplitude_cnt)?{
????//根據(jù)PWM表修改定時(shí)器的比較寄存器值
????BRE_TIMx->BRE_RED_CCRx?=?indexWave[pwm_index];?
???}else{
????//比較寄存器值為0,通道輸出高電平,該通道LED燈滅
????BRE_TIMx->BRE_RED_CCRx?=?0;??
???}

???//綠
???if(((rgb_color&0x00FF00)>>8)?>=?amplitude_cnt){
????//根據(jù)PWM表修改定時(shí)器的比較寄存器值
????BRE_TIMx->BRE_GREEN_CCRx?=?indexWave[pwm_index];?
???}else{
????//比較寄存器值為0,通道輸出高電平,該通道LED燈滅
????BRE_TIMx->BRE_GREEN_CCRx?=?0;?
???}???
???//藍(lán)
???if((rgb_color&0x0000FF)?>=?amplitude_cnt){
????//根據(jù)PWM表修改定時(shí)器的比較寄存器值
????BRE_TIMx->BRE_BLUE_CCRx?=?indexWave[pwm_index];?
???}else{
????//比較寄存器值為0,通道輸出高電平,該通道LED燈滅?
????BRE_TIMx->BRE_BLUE_CCRx?=?0;??
???}
???//必須要清除中斷標(biāo)志位
???TIM_ClearITPendingBit?(BRE_TIMx,?TIM_IT_Update);?
??}
?}
}

總結(jié)

本文簡(jiǎn)單介紹了SPWM的原理和調(diào)制方法,推導(dǎo)了SPWM的PWM脈沖寬度的計(jì)算時(shí)間,最后給出了基于STM32單片機(jī)產(chǎn)生SPWM驅(qū)動(dòng)呼吸燈的部分代碼,完整代碼關(guān)注公眾號(hào)私信發(fā)送SPWM獲取。

由于作者能力和水平有限,文中難免存在錯(cuò)誤和紕漏,請(qǐng)不吝賜教。

—— The End?—

推薦好文 ??點(diǎn)擊藍(lán)色字體即可跳轉(zhuǎn)
?天哪!原來(lái)PWM這么簡(jiǎn)單
?太難了,炸機(jī)后才去注意PWM的死區(qū)時(shí)間
?PID微分器與濾波器的愛(ài)恨情仇
?簡(jiǎn)易PID算法的快速掃盲
?增量式PID到底是什么?
?三面大疆慘敗,因?yàn)椴欢甈ID的積分抗飽和

原創(chuàng)不易,如果本文幫到了你;

請(qǐng)幫忙?轉(zhuǎn)發(fā)、留言、點(diǎn)贊、分享?給你的朋友,感謝您的支持!


長(zhǎng)按識(shí)別二維碼添加我的微信



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

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉