一種基于ARM 單片機與CPLD的數字軸角轉換方法(一)
3 軟件設計
系統主要分為軸角粗精角度分離取整.占空比計算以及PWM 信號生成三部分.系統工作流程如圖3所示.
3.1 軸角粗精分離設粗精同步機系統表示的軸角為θ,根據粗精傳動比例k將其分為精確同步機軸角度θ精和概略同步機軸角度θ粗,這一過程稱為軸角粗精角度分離.實際中,概略同步機軸角度θ粗=θ,精同步機的軸角度計算公式為:
3.2 查表法計算占空比根據公式(1),以正弦調制波為例,其輸出式子為:
URS = KRUmsinωtsinθ,PWM 波形頻率為f1 =20kHz,DSC角度更新速率為f2 =50Hz,因此在每個調制波周期內有N1 =f1/f2=400個PWM信號.CPLD采用時鐘計數.CPLD采用時鐘計數方法產生不同占空比的PWM 信號,由于CPLD的時鐘頻率為f3 =32.768 MHz,因此產生20kHz的PWM 信號時,最大計數值為N2 =f3/f1=1638,以中間數值為零值點,即為Z0 =819.
為了減小計算量及加快反應速度,需建立sinωt 值對應占空比的表格,表中
間正整數.同時,將sinθ值存于另一表,表中
間正整數,表示0~6000mil間的正弦值對應的占空比值,在粗精分離后,將粗精角度取整后即可通過查此表得到對應θ的正弦值.
由以上兩表值,可得調制波URS的對應占空比計算公式為;
3.3 PWM 信號生成
STM32F4單片機通過總線方式向CPLD發(fā)送占空比及選通通道信息,其總線寫操作時序如圖4所示.
根據寫時序,在整個寫時序中,地址信號常有效,數據信號出現在R/W#信號拉低后,因此可用此信號作為CPLD程序中時鐘計數開始標志位,通過對地址譯碼,進行通道選擇.
在QuartusⅡ中利用VHDL語言編寫CPLD程序,在R/W#的下降沿讀取地址,在R/W#的上升沿讀取數據,而后進行時鐘脈沖計數以得到對應占空 比的PWM 信號.程序仿真結果如圖5所示,由圖中可以看出,對應不同地址和占空比,不同通道輸出相應的PWM 信號 .
4 誤差分析及測試
4.1 響應實時性分析
PWM 信號頻率為20kHz,步長為50μs,因此,系統響應總時延必須遠小于50μs.系統總時延主要包括三個部分:
MCU內部運算時延.總線數據發(fā)送時延以及CPLD邏輯電路產生PWM 信號時延.全橋電路中MOS管開斷時延非常小,基本可忽略,此處不予考慮.
圖6 (a)為STM32F4做20萬次乘法運算所用時間,經測算時間大約為20ms,每次運算時間約為0.1μs;圖6 (b)為STM32總線操作時間,經測算時間大約為250ns.二者總時間延遲約為350ns左右.本著減小時延的原則,CPLD型號 EPM7512AETC144-7,綜合時延為7ns左右.由上所述,總時延不會超過400ns,相較于50μs基本可忽略,故可滿足系統實時性要求,可 準確反應實時軸角信息.
4.2 動態(tài)精度分析
DSC軸角度以50Hz的速率更新數據,與其相連的隨動系統或同步機具有慣性平滑作用,可將步進階梯平滑濾除,但是會產生動態(tài)誤差,它與角度的變化率有關,可通過動態(tài)測量,計算角度變化率的方法以軟件方式補償.
設ti時刻考慮動態(tài)補償的DSC輸出角度為θ′i ,ti+1時刻不考慮動態(tài)補償的DSC輸出角度為θi+1 ,則角度變化率ωi為:
則考慮動態(tài)補償后ti+1時刻應向DSC輸出的角度為:
4.3 測試結果
圖8為實測輸出調制波結果,從圖中可以看出,輸出信號波形較好,頻率穩(wěn)定,實時性較好,動態(tài)精度良好,滿足使用要求。
5 結束語
設 計了一種以ARM Cortex-M4內核的新型STM32F4微控制器和可編程邏輯器件CPLD為核心的數字-軸角轉換系統.利用PWM 信號控制全橋橋電路提供大功率輸出,進而驅動同步機指向對應軸角.經高炮系統控制實驗驗證,該系統運轉平穩(wěn),效率高,改進了原系統功耗較高.發(fā)熱量大的缺 點,且具有較高精度及效費比,實測靜態(tài)轉換誤差小于0.5密位(20:1粗精組合),達到實際要求,為其它數字-軸角轉換系統實現提供了一種新的方法,具 有一定推廣價值.
評論