1. 程式人生 > >PWM的週期和佔空比是如何計算

PWM的週期和佔空比是如何計算



4、脈寬調節模式
   PWM意為脈衝寬度調製,可用於調整輸出直流平均電壓,對於矩形波而言,輸出平均壓等於峰值電壓×佔空比,佔空比是一個脈衝週期內高電平時間與週期的比值,例如,峰值電壓等於5V,佔空比等於50%的方波訊號平均電壓等於2.5V,也就是萬用表直流檔測量得到的電壓值

  脈寬調製(PWM)是利用微處理器的數字輸出來對類比電路進行控制的一種非常有效的技術,廣泛應用在從測量、通訊到功率控制與變換的許多領域中。

  • 類比電路

       模擬訊號的值可以連續變化,其時間和幅度的解析度都沒有限制。9V電池就是一種模擬器件,因為它的輸出電壓並不精確地等於9V,而是隨時間發生變化,並可取任何實數值。與此類似,從電池吸收的電流也不限定在一組可能的取值範圍之內。模擬訊號與數字訊號的區別在於後者的取值通常只能屬於預先確定的可能取值集合之內,例如在{0V, 5V}這一集合中取值。

       模擬電壓和電流可直接用來進行控制,如對汽車收音機的音量進行控制。在簡單的模擬收音機中,音量旋鈕被連線到一個可變電阻。擰動旋鈕時,電阻值變大或變小;流經這個電阻的電流也隨之增加或減少,從而改變了驅動揚聲器的電流值,使音量相應變大或變小。與收音機一樣,類比電路的輸出與輸入成線性比例。

       儘管模擬控制看起來可能直觀而簡單,但它並不總是非常經濟或可行的。其中一點就是,類比電路容易隨時間漂移,因而難以調節。能夠解決這個問題的精密類比電路可能非常龐大、笨重(如老式的家庭立體聲裝置)和昂貴。類比電路還有可能嚴重發熱,其功耗相對於工作元件兩端電壓與電流的乘積成正比。類比電路還可能對噪聲很敏感,任何擾動或噪聲都肯定會改變電流值的大小。

  • 數字控制

       通過以數字方式控制類比電路,可以大幅度降低系統的成本和功耗。此外,許多微控制器和DSP已經在晶片上包含了PWM控制器,這使數字控制的實現變得更加容易了。

       簡而言之,PWM是一種對模擬訊號電平進行數字編碼的方法。通過高解析度計數器的使用,方波的佔空比被調製用來對一個具體模擬訊號的電平進行編碼。PWM訊號仍然是數字的,因為在給定的任何時刻,滿幅值的直流供電要麼完全有(ON),要麼完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重複脈衝序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要頻寬足夠,任何模擬值都可以使用PWM進行編碼。


       圖1顯示了三種不同的PWM訊號。圖1a是一個佔空比為10%的PWM輸出,即在訊號週期中,10%的時間通,其餘90%的時間斷。圖1b和圖1c顯示的分別是佔空比為50%和90%的PWM輸出。這三種PWM輸出編碼的分別是強度為滿度值的10%、50%和90%的三種不同模擬訊號值。例如,假設供電電源為9V,佔空比為10%,則對應的是一個幅度為0.9V的模擬訊號。

       圖2是一個可以使用PWM進行驅動的簡單電路。圖中使用9V電池來給一個白熾燈泡供電。如果將連線電池和燈泡的開關閉合50ms,燈泡在這段時間中將得到9V供電。如果在下一個50ms中將開關斷開,燈泡得到的供電將為0V。如果在1秒鐘內將此過程重複10次,燈泡將會點亮並象連線到了一個4.5V電池(9V的50%)上一樣。這種情況下,佔空比為50%,調製頻率為10Hz。

       大多數負載(無論是電感性負載還是電容性負載)需要的調製頻率高於10Hz。設想一下如果燈泡先接通5秒再斷開5秒,然後再接通、再斷開……。佔空比仍然是50%,但燈泡在頭5秒鐘內將點亮,在下一個5秒鐘內將熄滅。要讓燈泡取得4.5V電壓的供電效果,通斷迴圈週期與負載對開關狀態變化的響應時間相比必須足夠短。要想取得調光燈(但保持點亮)的效果,必須提高調製頻率。在其他PWM應用場合也有同樣的要求。通常調製頻率為1kHz到200kHz之間。

  • 硬體控制器

       許多微控制器內部都包含有PWM控制器。例如,Microchip公司的PIC16C67內含兩個PWM控制器,每一個都可以選擇接通時間和週期。佔空比是接通時間與週期之比;調製頻率為週期的倒數。執行PWM操作之前,這種微處理器要求在軟體中完成以下工作:

           * 設定提供調製方波的片上定時器/計數器的週期

           * 在PWM控制暫存器中設定接通時間

           * 設定PWM輸出的方向,這個輸出是一個通用I/O管腳

           * 啟動定時器

           * 使能PWM控制器

       雖然具體的PWM控制器在程式設計細節上會有所不同,但它們的基本思想通常是相同的。

  • 通訊與控制

       PWM的一個優點是從處理器到被控系統訊號都是數字形式的,無需進行數模轉換。讓訊號保持為數字形式可將噪聲影響降到最小。噪聲只有在強到足以將邏輯1改變為邏輯0或將邏輯0改變為邏輯1時,也才能對數字訊號產生影響。

       對噪聲抵抗能力的增強是PWM相對於模擬控制的另外一個優點,而且這也是在某些時候將PWM用於通訊的主要原因。從模擬訊號轉向PWM可以極大地延長通訊距離。在接收端,通過適當的RC或LC網路可以濾除調製高頻方波並將訊號還原為模擬形式。

       PWM廣泛應用在多種系統中。作為一個具體的例子,我們來考察一種用PWM控制的制動器。簡單地說,制動器是緊夾住某種東西的一種裝置。許多制動器使用模擬輸入訊號來控制夾緊壓力(或制動功率)的大小。加在制動器上的電壓或電流越大,制動器產生的壓力就越大。

       可以將PWM控制器的輸出連線到電源與制動器之間的一個開關。要產生更大的制動功率,只需通過軟體加大PWM輸出的佔空比就可以了。如果要產生一個特定大小的制動壓力,需要通過測量來確定佔空比和壓力之間的數學關係(所得的公式或查詢表經過變換可用於控制溫度、表面磨損等等)。

       例如,假設要將制動器上的壓力設定為100psi,軟體將作一次反向查詢,以確定產生這個大小的壓力的佔空比應該是多少。然後再將PWM佔空比設定為這個新值,制動器就可以相應地進行響應了。如果系統中有一個感測器,則可以通過閉環控制來調節佔空比,直到精確產生所需的壓力。

       總之,PWM既經濟、節約空間、抗噪效能強,是一種值得廣大工程師在許多設計應用中使用的有效技術。

摘自:[Embedded Systems Programming]

       作者Michael Barr是《嵌入式系統程式設計》雜誌總編輯,也是《使用C和C++對嵌入式系統進行程式設計》(O'Reilly出版公司,1999年)一書的作者以及馬里蘭大學的客座教師。可以通過電子郵件與他聯絡。



相關推薦

PWM週期是如何計算

 4、脈寬調節模式    PWM意為脈衝寬度調製,可用於調整輸出直流平均電壓,對於矩形波而言,輸出平均壓等於峰值電壓×佔空比,佔空比是一個脈衝週期內高電平時間與週期的比值,例如,峰值電壓等於5V,佔空比等於50%的方波訊號平均電壓等於2.5V,也就是萬用表直流檔測量得

STM32基礎知識2-分享PWM輸入模式捕捉4路PWM波形的週期

前幾天分享過一個帖子,因為網速原因沒有上傳原始碼,看到有人回覆我說實驗不成功,那麼好吧!這是我的錯誤,這次就將原始碼和我的心得體會分享出來,供大家下載測試和成長。我其實也是菜鳥一個,如果講解的地方有啥不對,或是程式設計的不好,歡迎大家提出意見,讓我們一起來學習進步。ffic

stm32中pwm頻率設定

對於72M頻率來說,計算pwm頻率是: 頻率: //Fpwm = 72M / ((arr+1)*(psc+1))(單位:Hz) 佔空比: //duty circle = TIM3->CCR1 / arr(單位:%) 這樣每次改變頻率和佔空比都要手動算一下,非常

STM32F302CB使用HAL庫採集PWM頻率

微控制器執行在36MHz,以TIM2CH2為輸入通道,做如下配置: /* TIM2 init function 由CubeMX生成,定時器初始化*/ void MX_TIM2_Init(void) { TIM_MasterConfigTypeDef

PWM頻率與的關係

1秒內,0.5秒開,0.5秒滅,佔空比是50%對吧?那麼,1毫秒內,0.5毫秒開,0.5毫秒滅,佔空比也是50%,對吧?如果是1秒呢,頻率就是1HZ,如果是1毫秒,頻率就是1KHZ,顯然,同樣是50%佔空比,如果頻率是1HZ,那電機肯定是跳著走的,燈光肯定閃得可以跳舞,不具有

STM32 PWM訊號週期的控制因素分析

前言 博文基於STM32F103ZET6晶片,標準韌體庫3.5.0和MDK5編寫; 博文並不討論PWM的基礎知識,而是直接去談對PWM靈活的控制問題;想全面瞭解的可以看看我寫的專門針對PWM的部落格: https://blog.csdn.net/wuyuzun/arti

PWM解析度

佔空比是接通時間與週期之比 衝量相等而形狀不同的窄脈衝加在具有慣性的環節上時,其效果基本相同 佔空比:就是輸出的PWM中,高電平保持的時間與該PWM的時鐘週期的時間之比,如一個PWM的頻率是1000Hz,那麼它的時鐘週期就是1ms,就是1000us,如果高電平出現的時間是200us,那麼低電平的時間肯定是80

互補PWM中關於死區對的影響

1 今天在做專案的時候遇到一個很奇怪的問題,我的PWM頻率設定為28K 定時器佔空比設定為一個定值比如400,但是遇到一個很奇怪的問題,第一個佔空比會大一些,以後的佔空比都是同樣大的但是會比第一個佔空比小一些,這時候我設定的佔空比為3us。 2 當我把佔空比設定為1us佔空比都是一樣大。這是

51微控制器按鍵控制輸出pwm

之前說到利用51微控制器輸出pwm,但是輸出的pwm是固定佔空比的,如果想要改變佔空比,還得回過頭來修改程式並重新燒寫進微控制器。這樣做的話不但麻煩、效率低,還又把晶片的可燒寫次數減少了一次,雖然51的晶片現在很便宜,但能省點就省點,能不浪費就不浪費,哈哈,開玩笑啦!最主要的

【 MATLAB 】使用 MATLAB 比較不同的週期方波的 DFS 圖

週期方波的表示式我就不提煉了,既然你來看文章了,我就不信你週期方波都不知道。 佔空比定義為:L/N,N為週期,下面我們對 L = 5,N = 20; L = 5,N = 40;L = 5,N = 60

STM32一個Timer輸出4路不同頻率、可調PWM

main.c /*********************************************      標題:操作USART的練習      軟體平臺:MDK-ARM Standard Version4.70      硬體平臺:stm32f4-d

如何計算產生SPWM所需要的

在上一篇文章裡貼上了STM32產生SPWM的程式碼,我在編寫這些程式碼時最大的問題就是如何得到佔空比,就是程式碼中的陣列 Duty[]。他的思想就是對正弦波取樣,在取樣點出用PWM的佔空比來代替正弦波在該點的數值。最容易想到就是用定時器的ARR值乘以sin(2*pi*f*t

STM32 自定義頻率與PWM輸出的方法

圖一 圖二 PWM應用非常廣泛,但是不同的專案對輸出的PWM又有特殊要求,為滿足這些要求我們需要更多的實驗來驗證。接下來講述圖一顯示波形的輸出方法步驟(圖二為異常波形)。 一、本例項所使用資源: 1、TIM4_CH3(對應管腳PB8)用於輸出PWM波形 2、TIM3用於

STM32F429--STM32的PWM產生與測量

一、PWM波形的產生; 使用定時器2 (TIM2)PA5埠輸出。 通過配置 TIM_TimeBaseStructure.TIM_Period= 1000 - 1; TIM_TimeBaseStructure.TIM_Prescaler= 9000 - 1; TI

STM32 CubeMX輸入捕獲測量PWM波形頻率與

使用的開發板是官方的STM32F412ZGTx NUCLEO開發板。本次主要是為了對PWM波形進行脈寬和頻率的測量。很多的工程使用的是軟體對同一個通道進行3次捕獲,比較耗費系統資源,本次介紹使用硬體進行捕獲,儘可能降低程式碼的工作量。首先開啟CubeMX,做如下設定:1.先設

簡單淺談 電魚機的脈寬、頻率、

高頻魚機後級的脈寬,頻率,佔空比,以上三個引數很重要。它不僅是設計魚機的主要引數,而且也是輸出效果調整的最終目標。 根據本人長時間玩高頻機的一點點經驗現向大家淺談一下脈寬,頻率,佔空比與之高頻魚機的設計與最終輸出效果的兩者密切關係。…………首先說一下魚機的設計。在談及設計高頻魚機之前,先說一下脈衝電

微控制器測量方波的頻率、及相位差的方法

1、  頻率及佔空比的測量      如上圖所示,當脈衝的上升沿來臨時,將定時器開啟;緊接著的下降沿來臨時,讀取定時器的值,假設定時時間為t1;下一個上升沿來臨時關閉定時器,讀取定時器的值,假設定時時間為t2。t1即為1個週期內高電平的時間,t2即為脈衝的週期。t1/t2

概念

  我們知道伺服器的風扇牆是可以使用IPMI調節轉速的,那風扇是根據什麼原理調節具體的速度呢?他是怎麼知道要調節的具體轉速?下面我們說一下佔空比(Duty Ratio)的概念:佔空比指的是高低電平所佔的

STM32定時器輸出PWM頻率步進電機控制速度計算

內部 定時 .cn 但是 nbsp 返回 定時器 開發 r12 1、STM32F4系列定時器輸出PWM頻率計算 第一步,了解定時器的時鐘多少:   我們知道AHP總線是168Mhz的頻率,而APB1和APB2都是掛在AHP總線上的。 (1)高級定時器timer1, time

Oracle基礎之分析函式:計算

下面給大家介紹一個oracle自帶的分析函式ratio_to_report(佔比函式),這個函式作用:簡單來說就是算百分比的。 比如學生成績表中,包含科目和成績,要計算不同科目分數佔比,已經所有科目的分數佔比 進入正題,直接上程式碼,如下: ---刪除表 drop table test001; -