精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SPWM的原理和調制方法

傳感器技術 ? 來源:傳感器技術 ? 作者:傳感器技術 ? 2021-01-04 10:40 ? 次閱讀

基本原理

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

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

換句話說就是通過一系列形狀不同的窄脈沖信號,相對應時間的積分相等(面積相等),其最終效果相同;

8002706e-4472-11eb-8b86-12bb97331649.png

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

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

自然采樣法

自然采樣法是用需要調制的正弦波與載波鋸齒波的交點,

來確定最終PWM脈沖所需要輸出的時間寬度,最終由此生成SPWM波;

具體如下圖所示,這里會對局部①部分進行簡單分析,下面進一步介紹;

8039ec88-4472-11eb-8b86-12bb97331649.png

SPWM波形

局部①的情況如下圖所示;簡單分析一下整個圖形的情況;

鋸齒波和調制正弦波的交點為A和B;

因此A點所需時間為T1,B點所需時間為T2;

所以在該周期內,PWM所需要的脈沖時間寬度Ton滿足:

最終結論就是,只要求出A點和B點位置,就可以求出;

81767fb2-4472-11eb-8b86-12bb97331649.png

自然采樣法

這里對于求解A,B位置的推導不做介紹,但是計算量比較大,因此在微處理器中進行運算會占用大量資源,下面再介紹另一種優化的采樣方法:規則采樣法。

規則采樣法

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

單極性

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

下面取正弦波的正半周期的情況進行分析;

819a62ce-4472-11eb-8b86-12bb97331649.png

單極性SPWM

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

載波PWM的周期為T;

線段BO為當前這個等腰三角形的垂線;

線段BO與正弦曲線 相較于點A;

所以在該周期內,PWM所需要的脈沖時間寬度Ton滿足:

82027a08-4472-11eb-8b86-12bb97331649.png

單極性正半周期

具體的推導過程如下:

第一步:由于O點的位置比較好確認,因此,線段

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

第三步:根據初中學過的相似三角形定理,滿足:

最終簡化得到:

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

雙極性

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

826d720e-4472-11eb-8b86-12bb97331649.png

雙極性SPWM

如何編寫程序

上面講到這里PWM的時間滿足:

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

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

首先得先STM32是如何產生PWM?

通過數據手冊可以知道,STM32通過TIM輸出PWM,這里有幾個寄存器

計數寄存器:CNT

比較寄存器:CCR(決定了占空比,決定了脈沖寬度)

自動重裝寄存器:AAR(決定了PWM的周期)

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

82b9624a-4472-11eb-8b86-12bb97331649.png

STM32的PWM產生原理

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

產生PWM的過程可以分為以下幾個過程;

第一步:配置好TIM,通常時基和ARR都會配置好,這時候PWM的周期就已經被設定好了,另外時基決定了CNT計數寄存器增加一次技術所需的時間;

第二步:剛開始,CNTCCR之后,PWM輸出為高電平;

第三步:當CNT的值等于AAR之后,CNT開始減少,同理CNTCCR,PWM輸出為高電平;

第四步:循環上述三個步驟;

程序中如何實現?

從上述STM32產生PWM的過程中不難發現,滿足;

上一節推導的公式如下:

結合①式和②式,可以得到:

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

最后需要做的三件事

計算出ARR,一般配置TIM定時器的時候能在數據手冊找到公式;

調制比,也就是的系數;

根據③式生成正弦表,然后查表(實時計算因為涉及到較多運算量,所以利用查表,空間換時間,提高效率),利用PWM的事件去觸發中斷,更新下一次CCR的值;

正弦函數表:

constuint16_tindexWave[]={ 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 };

中斷服務函數:

externuint16_tindexWave[]; extern__IOuint32_trgb_color; /*呼吸燈中斷服務函數*/ voidBRE_TIMx_IRQHandler(void) { staticuint16_tpwm_index=0;//用于PWM查表 staticuint16_tperiod_cnt=0;//用于計算周期數 staticuint16_tamplitude_cnt=0;//用于計算幅值等級 if(TIM_GetITStatus(BRE_TIMx,TIM_IT_Update)!=RESET)//TIM_IT_Update { amplitude_cnt++; //每個PWM表中的每個元素有AMPLITUDE_CLASS個等級, //每增加一級多輸出一次脈沖,即PWM表中的元素多使用一次 //使用256次,根據RGB顏色分量設置通道輸出 if(amplitude_cnt>(AMPLITUDE_CLASS-1)){ period_cnt++; //每個PWM表中的每個元素使用period_class次 if(period_cnt>period_class){ //標志PWM表指向下一個元素 pwm_index++; //若PWM表已到達結尾,重新指向表頭 if(pwm_index>=POINT_NUM){ pwm_index=0; } //重置周期計數標志 period_cnt=0; } //重置幅值計數標志 amplitude_cnt=0; }else{ //每個PWM表中的每個元素有AMPLITUDE_CLASS個等級, //每增加一級多輸出一次脈沖,即PWM表中的元素多使用一次 //根據RGB顏色分量值,設置各個通道是否輸出當前的PWM表元素表示的亮度 //紅 if(((rgb_color&0xFF0000)>>16)>=amplitude_cnt){ //根據PWM表修改定時器的比較寄存器值 BRE_TIMx->BRE_RED_CCRx=indexWave[pwm_index]; }else{ //比較寄存器值為0,通道輸出高電平,該通道LED燈滅 BRE_TIMx->BRE_RED_CCRx=0; } //綠 if(((rgb_color&0x00FF00)>>8)>=amplitude_cnt){ //根據PWM表修改定時器的比較寄存器值 BRE_TIMx->BRE_GREEN_CCRx=indexWave[pwm_index]; }else{ //比較寄存器值為0,通道輸出高電平,該通道LED燈滅 BRE_TIMx->BRE_GREEN_CCRx=0; } //藍 if((rgb_color&0x0000FF)>=amplitude_cnt){ //根據PWM表修改定時器的比較寄存器值 BRE_TIMx->BRE_BLUE_CCRx=indexWave[pwm_index]; }else{ //比較寄存器值為0,通道輸出高電平,該通道LED燈滅 BRE_TIMx->BRE_BLUE_CCRx=0; } //必須要清除中斷標志位 TIM_ClearITPendingBit(BRE_TIMx,TIM_IT_Update); } } }

總結

本文簡單介紹了SPWM的原理和調制方法,推導了SPWM的PWM脈沖寬度的計算時間,最后給出了基于STM32單片機產生SPWM驅動呼吸燈的部分代碼。

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 正弦波
    +關注

    關注

    11

    文章

    639

    瀏覽量

    55290
  • SPWM
    +關注

    關注

    14

    文章

    356

    瀏覽量

    60557
  • 脈沖信號
    +關注

    關注

    6

    文章

    396

    瀏覽量

    36920

原文標題:全網最通俗易懂SPWM入門教程,快來白嫖

文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    變頻器spwm調制母線恒壓可控

    spwm調制如何將400V進線交流電壓調制為900V母線電壓
    發表于 11-12 14:25

    單極性與雙極性SPWM調制技術介紹

    在電力電子技術領域,SPWM技術占據著核心地位。SPWM,即正弦脈寬調制技術,是一種將直流電壓轉換為交流電壓的技術。它通過對寬度不等的脈沖進行調制,來等效正弦波形(幅度,周期,但寬度不
    的頭像 發表于 08-20 11:44 ?2616次閱讀
    單極性與雙極性<b class='flag-5'>SPWM</b><b class='flag-5'>調制</b>技術介紹

    SPWM波生成的方法

    方法 SPWM調制和母線電壓利用率 調制比:m=調制波的峰值/載波的峰值,在SPWM
    發表于 06-16 17:38

    SPWM脈寬調制變頻器輸出的波形及其特性

    SPWM是一種常見的脈寬調制技術,主要用于變頻器中控制交流電機的輸出頻率和幅值。SPWM脈沖調制變頻器的輸出波形實質上是一串脈沖信號,其特征是具有可變的脈沖寬度和固定的脈沖頻率。
    發表于 02-20 16:31 ?1113次閱讀

    SPWM調制能輸出220V電壓嗎?

    SPWM調制能輸出220V電壓嗎? SPWM調制是一種廣泛應用于電力電子領域的技術,可以用于產生變換比較高的交流電壓或直流電壓輸出。通過對輸入直流電壓進行高頻
    的頭像 發表于 02-18 09:44 ?653次閱讀

    生成SPWM波形的方法

    生成SPWM波形的方法? SPWM波形產生是一種常見的數字信號生成技術,用于控制交流電子設備的輸出電壓或電流的形狀,使其接近正弦波。 SPWM波形是由一系列的脈沖信號組成,每個脈沖信號
    的頭像 發表于 02-06 13:52 ?2642次閱讀

    SPWM脈寬調制是異步還是同步?

    SPWM脈寬調制是異步還是同步? SPWM脈寬調制是一種用于調節交流電壓的技術,通過調整脈沖的寬度來模擬純正的正弦電壓信號。在SPWM技術中
    的頭像 發表于 02-06 11:33 ?729次閱讀

    SPWM脈寬調制變頻器出來的是什么波形,是脈沖吧?

    可變的脈沖寬度和固定的脈沖頻率。 SPWM脈沖調制變頻器采用一種模擬控制方法,通過控制輸出信號的脈沖寬度來控制電機的轉速和功率。在SPWM脈沖調制
    的頭像 發表于 02-06 11:33 ?2283次閱讀

    SPWM調制方式是怎樣實現變壓功能的?又是怎樣實現變頻功能的?

    SPWM調制方式是怎樣實現變壓功能的?又是怎樣實現變頻功能的? SPWM是一種常見的調制方式,它通過調節脈沖的寬度來控制輸出波形的幅度和頻率,因此可以實現變壓和變頻功能。下面將詳細介紹
    的頭像 發表于 02-06 11:09 ?1554次閱讀

    SPWM調制方式是怎樣實現變壓功能的?

    SPWM調制方式是怎樣實現變壓功能的? SPWM調制是一種常用的調制方式,用于將直流電壓轉換為交流電壓,同時也可以實現變壓功能。 1.
    的頭像 發表于 02-06 11:08 ?1166次閱讀

    spwm調制如何改變輸出電壓幅值和輸出電壓頻率呢?

    spwm調制如何改變輸出電壓幅值和輸出電壓頻率呢? SPWM調制,即正弦脈寬調制,是一種常見的PWM(脈寬
    的頭像 發表于 02-06 11:04 ?4681次閱讀

    SPWM有哪幾種調制方式?各有什么特點?

    SPWM有哪幾種調制方式?各有什么特點? SPWM 是一種常用的調制技術,用于控制交流電壓的形狀和頻率,以便實現電力電子設備的精確控制。SPWM
    的頭像 發表于 02-06 09:45 ?2412次閱讀

    SPWM調制波形是由哪兩種波形進行調制獲得的?

    SPWM調制波形是由哪兩種波形進行調制獲得的? SPWM調制波形是由三角波和參考波形進行調制獲得
    的頭像 發表于 02-06 09:25 ?1612次閱讀

    SPWM調制中,調制波和載波的信號波形一般各是什么?

    SPWM調制中,調制波和載波的信號波形分別是正弦波和三角波。在本文中,我將詳細介紹SPWM調制的原理、實現
    的頭像 發表于 02-05 16:48 ?4397次閱讀

    單極性spwm和雙極性pwm調制的區別

    單極性SPWM和雙極性PWM調制是電力電子中常用的兩種調制方式,它們具有一些明顯的區別。在本文章中,我們將詳細討論這兩種調制方式的原理、特點以及相應的優缺點。 首先,我們將看一下單極性
    的頭像 發表于 12-15 09:25 ?1.1w次閱讀