<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > STM32上SVPWM輸出的實現(xiàn)方案

          STM32上SVPWM輸出的實現(xiàn)方案

          作者: 時間:2013-08-05 來源:網絡 收藏

          2.4 波形輸出
          TIM1的CH1、CH1N、CH2、CH2N、CH3、CH3N通道對應的GPIO引腳須設為GPIO_Mode_AF_PP模式才能正常輸出。根據(jù)各個基本空間電壓矢量的作用時間,可以計算出TIM1上三個通道各自的OCRx值。圖2為各個通道OCRx的值對應的輸出波形。

          本文引用地址:http://www.ex-cimer.com/article/175773.htm

          c.JPG


          2.5 中斷子程序
          為了減少中斷的時間,在中斷程序中僅保留了輸出所必要的運算及對TIM1必要的操作。整個程序中的所有的電壓量全部轉化為標幺值。由于是一款32位的控制器,所以需要參與計算值都采用Q15的形式,這樣可以在提高精度的同時保證乘法運算不會溢出。中斷子程序的流程如圖3所示。

          d.JPG


          2.6 CPU資源占用分析
          由圖2可以看出,在輸出波形時有兩個觸發(fā)產生。TIM1_CH4可以用來觸發(fā)芯片的其他功能(如ADC采樣),這樣就可以自動完成一些工作,避免消耗CPU資源。
          為了在一個周期調制完成后馬上進行下一個周期的調制,下次調制的時間需要提前計算,此時就必須打開的預裝載功能。在發(fā)生計數(shù)器溢出中斷后,計算下一次調制時各個通道的時間。計算完成后將結果寫入預裝載寄存器,以便在下次更新時寫入新的比較值??梢钥闯?,只在中斷中耗費了CPU的一點資源用來計算,其余全是自動完成,而且在兩次調制之間沒有任何延遲。

          3 系統(tǒng)實驗
          3.1 實驗硬件電路
          實驗硬件電路包括主控芯片及外圍電路、MOS驅動器和由6個MOS管組成的逆變器。其部分電路如圖4所示。ADUM3223驅動器的輸入來自F103VET6中TIM1的CH1和CH1N,兩者為互補輸出。使能輸入端連接到芯片的PE15引腳,并且有一個4.7 KΩ的上拉電阻。在輸出端的高端設計了一個泵電源,保證高端MOS管能夠可靠導通。R1用來保證充電速度不會過快,可根據(jù)實際需求更改大小。在MOS管的柵極有一個限流電阻,用來防止MOS管漏源極電壓dv/dt太大,導致?lián)p壞。

          e.JPG


          3.2 實驗結果
          由于的輸入為αβ坐標系下的Uα和Uβ,在讓矢量運行軌跡為圓形時特別困難,所以在輸入端前加入了一個Park變換算法,使其變?yōu)閁d和Uq。這樣只需要設置合成矢量的角度和大小,而角度可以人為設為一個勻速圓周運動的值。圖5為第一扇區(qū)下的調制輸出波形。圖6為矢量圓周運動時,輸出相電壓濾波后的馬鞍波形。

          結語
          由實驗結果可知,該設計方案可以方便地實現(xiàn)SVPWM輸出,計算量并不大。其功能主要是靠硬件實現(xiàn),所以占用CPU資源很少,完全可以當作一個模塊應用到其他場合中。

          51單片機相關文章:51單片機教程


          上拉電阻相關文章:上拉電阻原理
          矢量控制相關文章:矢量控制原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();