1. 程式人生 > >詳解STM32 PMW計算中的“死區”

詳解STM32 PMW計算中的“死區”

 pwm"死區"?聽起來有點恐怖的樣子?pwm"死區"是什麼呢?可能很多人都注意過,今天來給大家科普一下pwm"死區"。
  "死區"簡單解釋
  通常,大功率電機、變頻器等,末端都是由大功率管、IGBT等元件組成的H橋或3相橋。每個橋的上半橋和下半橋是是絕對不能同時導通的,但高速的PWM驅動訊號在達到功率元件的控制極時,往往會由於各種各樣的原因產生延遲的效果,造成某個半橋元件在應該關斷時沒有關斷,造成功率元件燒燬。
  死區就是在上半橋關斷後,延遲一段時間再開啟下半橋或在下半橋關斷後,延遲一段時間再開啟上半橋,從而避免功率元件燒燬。這段延遲時間就是死區。(就是上、下半橋的元件都是關斷的)死區時間控制在通常的低端
微控制器所配備的PWM中是沒有的。死區時間是PWM輸出時,為了使H橋或半H橋的上下管不會因為開關速度問題發生同時導通而設定的一個保護時段,所以在這個時間,上下管都不會有輸出,當然會使波形輸出中斷,死區時間一般只佔百分之幾的週期。但是PWM波本身佔空比小時,空出的部分要比死區還大,所以死區會影響輸出的紋波,但應該不是起到決定性作用的。
  佔空比就是輸出的PWM中,高電平保持的時間 與 該PWM的時鐘週期的時間之比;如,一個PWM的頻率是1000Hz,那麼它的時鐘週期就是1ms,就是1000us,如果高電平出現的時間是200us,那麼低電平的時間肯定是800us,那麼佔空比就是200:1000,也就是說PWM的佔空比就是1:5。

  解析度也就是佔空比最小能達到多少,如8位的PWM,理論的解析度就是1:255(單斜率),16位的的PWM理論就是1:65535(單斜率)。頻率就是這樣的,如16位的PWM,它的解析度達到了1:65535,要達到這個解析度,T/C就必須從0計數到65535才能達到,如果計數從0計到80之後又從0開始計到80,那麼它的解析度最小就是1:80了,但是,它也快了,也就是說PWM的輸出頻率高了。
  假設一個PWM從0計數到80,之後又從0計數到80.這個就是單斜率。雙斜率 / 單斜率假設一個PWM從0計數到80,之後是從80計數到0.這個就是雙斜率。可見,雙斜率的計數時間多了一倍,所以輸出的PWM頻率就慢了一半,但是解析度卻是1:(80+80) =1:160,就是提高了一倍。

  假設PWM是單斜率,設定最高計數是80,我們再設定一個比較值是10,那麼T/C從0計數到10時(這時計數器還是一直往上計數,直到計數到設定值80),微控制器就會根據你的設定,控制某個IO口在這個時候是輸出1還是輸出0還是埠取反,這樣,就是PWM的最基本的原理了。

相關推薦

STM32 PMW計算的“死區

 pwm"死區"?聽起來有點恐怖的樣子?pwm"死區"是什麼呢?可能很多人都注意過,今天來給大家科普一下pwm"死區"。  "死區"簡單解釋  通常,大功率電機、變頻器等,末端都是由大功率管、IGBT等元件組成的H橋或3相橋。每個橋的上半橋和下半橋是是絕對不能同時導通的,但高

】CS231n assignment1KNN不使用迴圈計算距離:從原理到程式

本文主要講述不使用迴圈結構來計算兩個矩陣的歐氏距離, 設訓練集矩陣為train,size為num_train * num_features,設驗證集矩陣為validate,size為num_test,num_features。 因此我們計算每一個驗證集樣本到訓練集樣本的距離,就是將訓練集

【轉載】 $_SERVER 函數QUERY_STRING和REQUEST_URI區別

host dex 執行 sel 實例 server 文件 uri cal 實例:1,http://localhost/aaa/ (打開aaa中的index.php)結果:$_SERVER[‘QUERY_STRING‘] = "";$_SERVER[‘REQUEST_URI‘

順風Nginx系列—Ngx的變量

zhang 只有一個 前綴 oct not 包含 使用curl ali 配置文件 在計算機語言中,變量是用來存儲和表示數據的,但不同的語言表示變量的方式不同,像java語言會把變量抽象成各種類型,並且每種類型都會用一個特殊的符號表示,比如表示一個整數需要這樣: int a

Asp.Net Core的Cookies

ace fault list request escape eal toarray 請求 read 目錄 詳解Asp.Net Core中的cookies 搞懂cookies Asp.Net中cookies的實現 從http中獲取cookies 將cookies寫入http

-vue項目的文件和目錄

mic 適合 建設 特定 更多 編寫 dev vue組件 webpack 可以用vue-cli來支持一個項目。 建議使用npm 3+更高效的依賴關系樹: $ npm install -g vue-cli $ vue init webpack my-project $

一文大規模資料計算處理原理及操作重點

摘要: 大資料技術主要針對的是大規模資料的計算處理問題,那麼要想解決的這一問題,首先要解決的就是大規模資料的儲存問題。 一、RAID技術 大資料技術主要針對的是大規模資料的計算處理問題,那麼要想解決的這一問題,首先要解決的就是大規模資料的儲存問題。大規模資料儲存要解決的核心問題有三個方面:

mysql系列三:mysql各類日誌-技術流ken

1.前言 日誌檔案記錄了MySQL資料庫的各種型別的活動,MySQL資料庫中常見的日誌檔案有 查詢日誌,慢查詢日誌,錯誤日誌,二進位制日誌,中繼日誌 。下面分別對他們進行介紹。   2.查詢日誌   1.檢視查詢日誌變數 查詢日誌即檢視日誌記錄了所有對 My

AndroidJNI使用(3)---Android StudioSO檔案生成

Android中JNI使用詳解(2)---Android Studio中SO檔案生成 上一篇寫到過在Android Studio中配置NDK環境地址:Android Studio中NDK環境配置 這篇文章講解在Android Studio中

AndroidJNI使用(2)---Android StudioNDK環境配置

Android Studio中的NDK環境配置 1、下載NKD 在Android Studio中選擇File----Settings----Appearance&Behavior---System Settings----Andr

kubernetes資源創建【持續完善

edi arr 顯示 replicat _id describe load 主機名 create 目錄 資源創建詳解 一:Pod及常用參數 1.簡介 2.模板 3.刪除pod 4.設置Pod主機名 5.鏡像拉取策略(ImagePullPolicy) 二:RC 1.簡介

【python】pandas.DataFrame.plot( ) 引數secondary_y實現雙座標軸使用

首先看官網的DataFrame.plot( )函式 secondary_y : boolean or sequence, default False # 可以是布林值或者是數列 Whether to plot on the secondary y-axis

Immuable以及在React的實戰

轉載自:https://zhuanlan.zhihu.com/p/20295971, 今天看到這篇文章後情不自禁的轉載過來了,我的天老爺,我看到後直接菊花一緊,這寫的太好了,直接寫進我心坎裡了,我必須推薦你們看一下,太帥了   Shared mutable state is the ro

SSH-key及其在Git的使用

有必要先來了解什麼是SSH和什麼是SSH key。 SSH Secure Shell (SSH) 是一個允許兩臺電腦之間通過安全的連線進行資料交換的網路協議。通過加密保證了資料的保密性和完整性。SSH採用公鑰加密技術來驗證遠端主機,以及(必要時)允許遠端主機驗證使用者。 傳統的FTP、Telnet是再網

spark 引數調優(持續更新

spark引數調優需要對各個引數充分理解,沒有一套可以借鑑的引數,因為每個叢集規模都不一樣,只有理解了引數的用途,調試出符合自己業務場景叢集環境,並且能在擴大叢集、業務的情況下,能夠跟著修改引數。這樣才算是正確的引數調優。 1、背景 使用spark-thriftser

Linux工作筆記034---linux tail命令_linux在vi查詢字串

使用vi編輯器編輯長檔案時,常常是頭昏眼花,也找不到需要更改的內容。 這時,使用查詢功能尤為重要。 方法如下: 1、命令模式下輸入“/字串”,例如“/Section 3”。 2、如果查詢下一個,按“n”即可。 要自當前游標位置向上搜尋,請使用以下命令: /pa

softmax + cross-entropy交叉熵損失函式及反向傳播的梯度求導

相關 正文 在大多數教程中, softmax 和 cross-entropy 總是一起出現, 求梯度的時候也是一起考慮. 我們來看看為什麼. 關於 softmax 和 cross-entropy 的梯度的求導過程, 已經在上面的兩篇文章中分別給出, 這裡

mongoDB使用(在node使用)

資料庫概念 資料庫:資料儲存的倉庫 資料庫就是為我們方便的管理資料的一個平臺,例如對資料的儲存、修改、查詢等都非常的方便。 資料庫分類 資料庫產品有很多,以下是一些常見的資料庫產品: MySQLOracleDB2SqlServerMongoDBetc. 資料庫沒有

:C語言的指標和p, p+1, *(p+1), *P+1, p[0], &p[0] 的含義

解析:C語言中的指標和p, p+1, *(p+1), *P+1, p[0], &p[0] 每一種表示式的含義  一、先解決一個問題:什麼是指標 指標就是存放地址的變數。很好,百度上就是這個答案(哈哈,感覺這句話很廢話)。 指標是一個大小固定為4個byte的變數,不管

java的 Future(以及ExecutorService的各種方法)

關於這一塊一前一直是一個盲點,看了看原始碼總結一下把。這一塊內容和執行緒池也是息息相關的執行緒池的頂級介面是Executor介面,裡面只有一個未實現方法是void execute(Runnable command);下來是ExecutorService介面,繼承自Execut