亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

pwm波

  • 三相PWM整流器的死區(qū)效應(yīng)分析及補償方法

    在三相PWM 整流器的功率管驅(qū)動信號中加入死區(qū)時間可防止電壓直通,但這會對變換器的電壓電流波形產(chǎn)生影響,稱之為死區(qū)效應(yīng)。為此,詳細描述了死區(qū)時間內(nèi)變換器的工作過程,提出了三相PWM 整流器的死區(qū)電壓效應(yīng)和電流效應(yīng),并分別進行了定量分析。然后結(jié)合空間矢量調(diào)制策略,引入了死區(qū)效應(yīng)空間矢量的概念,統(tǒng)一并從本質(zhì)上解釋了死區(qū)的兩種效應(yīng)。為了克服死區(qū)效應(yīng)的不良影響,提出了兩種補償措施,并詳細介紹了利用DSP 的數(shù)字實現(xiàn)方法,這兩種措施均不需要改變硬件電路,也不會增加控制器的復(fù)雜度和負擔。最后,通過實驗驗證了理論分析的正確性和補償措施的有效性,還指明了進一步研究的方向。

    標簽: PWM 三相 整流器 效應(yīng)分析

    上傳時間: 2013-10-21

    上傳用戶:Aeray

  • 基于帶PWM模塊單片機的步進電機細分驅(qū)動技術(shù)

    摘要:本文以兩相雙極式步進電機為例,介紹了一種利用單片機自帶的PWM模塊實現(xiàn)步進電機細分驅(qū)動的方法。該方法充分利用單片機的PWM硬件資源,通過配置硬件PWM模塊,產(chǎn)生占空比不同的方波,在電機線圈內(nèi)產(chǎn)生近似正弦波的階梯型電流。與常用的恒頻脈寬調(diào)制方式相比,該方法不需要EI/A轉(zhuǎn)換器和鋸齒波發(fā)生器,不僅有利于簡化電路和節(jié)約成本,而且能提高細分精度和電機運行平穩(wěn)性,適用于需要精密控制的儀器儀表。關(guān)鍵詞:PWM;細分驅(qū)動;步進電機;單片機

    標簽: PWM 模塊 單片機

    上傳時間: 2014-01-21

    上傳用戶:dalidala

  • 應(yīng)用8098單片機實現(xiàn)直流伺服電機PWM調(diào)速控制

    摘要:本文介紹應(yīng)用8098單片機豐富的接口功能,采用數(shù)字調(diào)制的方法來實現(xiàn)直流伺服電機的PWM調(diào)速控制。關(guān)鍵詞:單片機 PWM調(diào)制波 數(shù)字調(diào)制

    標簽: 8098 PWM 單片機 直流伺服

    上傳時間: 2014-12-27

    上傳用戶:wsq921779565

  • 基于STM32系列單片機的數(shù)控正弦波逆變電源設(shè)計

    提出一種高性能全數(shù)字式正弦波逆變電源的設(shè)計方案。該方案分為前后兩級,前級采用推挽升壓電路將輸入的直流電升壓到350 V左右的母線電壓,后級采用全橋逆變電路,逆變橋輸出經(jīng)濾波器濾波后,用隔離變壓器進行電壓采樣,電流互感器進行電流采樣,以形成反饋環(huán)節(jié),增加電源輸出的穩(wěn)定性。升壓級PWM驅(qū)動及逆變級SPWM驅(qū)動均由STM32單片機產(chǎn)生,減小了硬件開支。基于上述方案試制的400 W樣機,具有輸出短路保護、過流保護及輸入過壓保護、欠壓保護功能,50 Hz輸出時頻率偏差小于0.05 Hz,滿載(400 W)效率高于87%,電壓精度為220 V±1%,THD小于1.5%。

    標簽: STM 32 單片機 數(shù)控

    上傳時間: 2013-11-17

    上傳用戶:guojin_0704

  • Arduino學習筆記4_Arduino軟件模擬PWM

    注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術(shù)也不精,難免錯漏,大家湊合看.有問題可以留言.      2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調(diào)光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設(shè)PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現(xiàn)難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個PWM 周期,共循環(huán)255 次。 假設(shè)bright=100 時候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設(shè)置了每次for 循環(huán)之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應(yīng)該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅(qū)動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環(huán)。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務(wù)的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設(shè)置 int StartPWMPin = 0, EndPWMPin = 13; //設(shè)置D0~D13為PWM 引腳 int PWMResolution = 255; //設(shè)置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時候,將brights 置零重新計數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數(shù)一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\   所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。

    標簽: Arduino PWM 軟件模擬

    上傳時間: 2013-10-08

    上傳用戶:dingdingcandy

  • Arduino學習筆記4_Arduino軟件模擬PWM

    注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術(shù)也不精,難免錯漏,大家湊合看.有問題可以留言.      2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調(diào)光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設(shè)PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現(xiàn)難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個PWM 周期,共循環(huán)255 次。 假設(shè)bright=100 時候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設(shè)置了每次for 循環(huán)之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應(yīng)該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅(qū)動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環(huán)。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務(wù)的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設(shè)置 int StartPWMPin = 0, EndPWMPin = 13; //設(shè)置D0~D13為PWM 引腳 int PWMResolution = 255; //設(shè)置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時候,將brights 置零重新計數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數(shù)一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\   所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。

    標簽: Arduino PWM 軟件模擬

    上傳時間: 2013-10-23

    上傳用戶:mqien

  • AC-DC-AC雙pwm逆變器的Matlab/Simulink仿真源程序。包括兩個電路:一個是50Hz三相 AC(PWM整流)->DC->50Hz三相AC(PWM逆變),驅(qū)動三相對稱電阻負

    AC-DC-AC雙pwm逆變器的Matlab/Simulink仿真源程序。包括兩個電路:一個是50Hz三相 AC(PWM整流)->DC->50Hz三相AC(PWM逆變),驅(qū)動三相對稱電阻負載;一個是60Hz 三相AC(全波整流)->DC->50Hz三相AC(PWM逆變),驅(qū)動一個永磁同步電動機。(本源碼基于王軍(xiaohongchen@163.com)上載的double_pwm_inverter.mdl改進而來,適用于matlab7.3.0(R2006)版本)

    標簽: PWM AC-DC-AC Simulink Matlab

    上傳時間: 2016-01-24

    上傳用戶:dongbaobao

  • 關(guān)于PWM單片機編程的源程序

    關(guān)于PWM單片機編程的源程序,實現(xiàn)PWM的 方波輸出,對電機進行控制。

    標簽: PWM 單片機編程 源程序

    上傳時間: 2014-01-14

    上傳用戶:cxl274287265

  • PWM控制就是產(chǎn)生一定周期

    PWM控制就是產(chǎn)生一定周期,占空比不同的方波信號,當占空比較大時,電機轉(zhuǎn)速較高,否則電機轉(zhuǎn)速較低。當采用FPGA產(chǎn)生pwm波形時,只需FPGA內(nèi)部資源就可以實現(xiàn),數(shù)字比較器的一端接設(shè)定值輸出,另一端接線性遞增計數(shù)器輸出。當線性計數(shù)器的計數(shù)值小于設(shè)定值時輸出低電平,當計數(shù)器大于設(shè)定值時輸出高電平,這樣就可通過改變設(shè)定值,產(chǎn)生占空比不同的方波信號,從而達到控制直流電機轉(zhuǎn)速的目的。 直流電機控制電路主要由2部分組成,如圖1所示:  FPGA中PWM脈寬調(diào)制信號產(chǎn)生電路;  FPGA中正/反轉(zhuǎn)方向控制電路

    標簽: PWM 控制 周期

    上傳時間: 2017-05-19

    上傳用戶:colinal

  • 模擬 PWM 輸出控制燈的 10 個亮度級別

    LED 一般是恒流操作的,如何改變 LED 的亮度呢?答案就是 PWM 控制。在一定的 頻率的方波中,調(diào)整高電平和低電平的占空比,即可實現(xiàn)。比如我們用低電平點亮一個 LED 燈,我們假設(shè)把一個頻率周期分為 10 個時間等份,如果方波中的高低電平占空比是 9:1, 這是就是一個比較暗的亮度,如果方波中高低電平占空比是 10:0,這時,全部是高電平, 燈是滅的。如果占空比是 5:5,就是一個中間亮度,如果高低比是 1:9,是一個比較亮的 亮度,如果高低是 0:10,這時全部是低電平,就是最亮的。  實際上應(yīng)用中,電視屏幕墻中的幾十百萬 LED 象素都是這樣控制的,而且每一個象素 都有紅綠藍 3 個 LED,每個 LED 可以變化的亮度是幾百到幾萬或者更多的級別,以實現(xiàn)真 彩色的顯示。還有在您的手機中,背光燈的亮度如果是可以變化的,也應(yīng)該是這種工作方式。 目前的城市彩燈也有很多都使用了 LED,需要控制亮度是也是 PWM 控制。  下面來分析我們的例程,在這個例程中,我們將定時器 2 溢出定為 1/1200 秒。每 10 次脈沖輸出一個 120HZ 頻率。這每 10 次脈沖再用來控制高低電平的 10 個比值。這樣,在 每個 1/120 秒的方波周期中,我們都可以改變方波的輸出占空比,從而控制 LED 燈的 10 個 級別的亮度。  為什么輸出方波的頻率要 120HZ 這么高?因為如果頻率太低,人眼就會看到閃爍感 覺。一般起碼要在 60HZ 以上才感覺好點,120HZ 就基本上看不到閃爍,只能看到亮度的變 化了。  下面請看程序,程序中有比較多的注釋:  ―――――――――――――――――――――――  #define uchar unsigned char //定義一下方便使用  #define uint unsigned int  #define ulong unsigned long  #include <reg52.h> //包括一個 52 標準內(nèi)核的頭文件    sbit P10 = P1^0; //要控制的 LED 燈  sbit K1= P3^2; //按鍵 K1    uchar scale;//用于保存占空比的輸出 0 的時間份額,總共 10 份    char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置的  //模擬 PWM 輸出控制燈的 10 個亮度級別  void main(void) // 主程序  {   uint n;     RCAP2H =0xF3; //賦 T2 的預(yù)置值,溢出 1 次是 1/1200 秒鐘   RCAP2L =0x98;   TR2=1; //啟動定時器   ET2=1; //打開定時器 2 中斷   EA=1; //打開總中斷   while(1) //程序循環(huán)   { ;//主程序在這里就不斷自循環(huán),實際應(yīng)用中,這里是做主要工作   for(n=0;n<50000;n++); //每過一會兒就自動加一個檔次的亮度   scale++;   if(scale==10)scale=0;   }  }  //1/1200 秒定時器 2 中斷  timer2() interrupt 5  {   static uchar tt; //tt 用來保存當前時間在一秒中的比例位置   TF2=0;     tt++;   if(tt==10) //每 1/120 秒整開始輸出低電平   {   tt=0;     if(scale!=0) //這里加這一句是為了消除滅燈狀態(tài)產(chǎn)生的鬼影   P10=0;   }     if(scale==tt) //按照當前占空比切換輸出高電平   P10=1;    }  ――――――――――――――――――  在主程序中,每延時一段時間,就自動換一個占空比,以使亮度自動變化,方便觀察。  編譯,運行,看結(jié)果。  可以看到,LED 的亮度以每種亮度 1 秒左右不斷變化,共有 10 個級別。

    標簽: PWM 10 模擬 控制燈 亮度 輸出

    上傳時間: 2017-11-06

    上傳用戶:szcyclone

主站蜘蛛池模板: 洞口县| 杂多县| 丰原市| 屏南县| 宜城市| 吴江市| 通许县| 白城市| 昌宁县| 临夏县| 北碚区| 金乡县| 亚东县| 威海市| 唐河县| 屏东县| 绥阳县| 嘉定区| 讷河市| 怀安县| 扶风县| 五河县| 浦东新区| 武夷山市| 武鸣县| 浦城县| 南宁市| 金沙县| 什邡市| 丰顺县| 丰原市| 乌苏市| 徐闻县| 肃北| 上栗县| 咸宁市| 景谷| 宜昌市| 中江县| 罗平县| 星子县|