尤向陽
(1.三門峽職業技術學院;2.河南科技大學應用工程學院,河南三門峽472000)
專用集成PWM芯片雖然能夠用于超聲波電機的控制,但其無法滿足實時性能要求高的位置控制和需要在線辨識參數的精確調速控制場合[1]。DSP芯片因其實時、高速、低功耗和高集成度的特點,被廣泛應用在電機控制領域。由于超聲波電機通常工作在諧振頻率附近,以DSP56F801作為核心控制器的超聲波電機驅動控制裝置產生的PWM信號滿足了超聲波電機諧振頻率,此PWM信號經過雙推挽驅動電路可驅動超聲波電機[2]。實現超聲波電機閉環控制時,轉速的實時檢測與諧振頻率的在線跟蹤是必須首先解決的兩個重要問題。本文說明了基于DSP56F801產生PWM信號的方法,并在此基礎上對電機測速的算法和頻率自動跟蹤的算法進行設計,通過軟件實現在線測速和實時頻率跟蹤。
超聲波電機驅動控制系統采用雙推挽逆變電路,根據超聲波電機的驅動電壓波形需求和推挽逆變電路的工作特點,要求DSP能夠產生頻率、相位差、占空比均可調的PWM信號,通過實時正確配置DSP56F801的PWM模塊中各寄存器的值可產生所需PWM信號[3]。PWM模塊有6個輸出通道,從PWM0-PWM5,超聲波電機驅動用到PWM0-PWM3,將其配置為兩對互補通道對;將PWM4、PWM5屏蔽,即通道占空比為0%。PWM0-PWM3信號如圖1所示。

圖1 PWM模塊輸出信號
為了保證推挽式逆變電路正常工作,需要對PWM模塊的死區寬度寄存器和標志位進行設置,保證生成一組自帶死區的互補PWM信號。根據設定的死區時間DT以及PWM波的周期可以計算PWM信號的占空比。死區時間DT按公式(1)進行設置。

式中,P為PWM模塊的預分頻值。PMDEADTM為PWM模塊的死區控制字。IPBus時鐘頻率為40MHz。設P=2,PMDEADTM=200,同時取PWM周期的50%等于PMDEADTM的值,則輸出頻率為50KHz的PWM信號,才能滿足實驗用USM的諧振頻率要求。模塊中各寄存器正確賦值后,將PWMEN位置1,使PWM發生器工作,并在每半周期重載中斷程序中載入不同的值,實現頻率、占空比、相位差的實時調整,實現超聲波電機的速度控制。PWM信號的軟件流程圖如圖2所示。

圖2 PWM信號軟件流程圖
在主程序中完成對PWM模塊寄存器的初始化;并賦初值給 Period、Deadtime 、Intercount、Phavalue。
PWM信號的頻率:

其中IPBUS時鐘頻率為40MHz;P為預分頻值,這里P=2;Period表示計數模寄存器PWMCM中的值。
PWM信號的占空比:

其中Deadtime表示死區控制寄存器PMDEADTM中的值。
超聲波電機兩相輸入交流電壓間的相位差主要由PWM0和PWM2之間的相位差來決定,可由下式(4)求得.

當重載中斷發生時,根據Intercount的值,將不同的值載入,計數值寄存器PWMVAL2,Intercount的值為1時將Phavalue中的值送入計數值寄存器PWMVAL2;當Intercount為0時,將(Period-Phavalue)中的值送入計數值寄存器PWMVAL2。
本文中轉速測量是用DSP中內置外圍模塊中的TIMER定時器在一定的時間內對光電編碼器輸出的脈沖進行計數,然后進行數據運算得出轉速數據。DSP56F801內設兩個定時器,每個定時器內部包括4個16位的計數器/定時器;每個計數器有單獨的分頻器,并且它們可以級聯使用;每個計數器都有捕捉和比較功能。定時器控制寄存器(TMRCTRL)中的13~15位可設置計數器的工作模式,將此3位設置為100時,計數器工作在相位檢測模式,即可對編碼器輸出的A、B相脈沖進行4倍頻,并可判斷旋轉方向。其計數和方向判斷原理圖如圖3所示。狀態和控制寄存器(SCR)中的Capture Mode可用來設置輸入沿的捕捉模式。定時器D的計數器有自己固定的3個I/O引腳,將碼盤信號直接連接到這3個引腳TD0-TD2。

圖3 定時器相位檢測模式工作原理
常用的能兼顧高低轉速的數字測速方法為M/T法[4]。M/T法測速既記錄測速時間內碼盤輸出的脈沖數M1,又檢測同一時間間隔內高頻時鐘脈沖數M2,是一種綜合性能最佳的測速方法。M/T法測速原理如圖4所示,它利用光電編碼器輸出的脈沖上升沿啟動采樣周期定時器工作,同時啟動高頻脈沖計數器。當采樣周期定時結束時,重新捕捉光電編碼器上升沿,當捕捉到上升沿時停止高頻脈沖計數器。其定時器的同步和捕獲功能保證了測速的精度。
采用M/T法測得電機轉速可表示為式(5)。

式中f0表示高頻時鐘脈沖頻率,PN表示碼盤光柵數。
采用M/T法測速的相對誤差與轉速無關,表達式如式(6)所示。


圖4 M/T法測速原理
采用M/T法實現電機測速的程序流程圖如圖5所示。
為使電機獲得較高的工作效率,其輸入兩相電壓的頻率應位于電機的固有諧振頻率附近,否則驅動電流將與正壓電效應產生的反饋電流發生向量疊加,進而削弱電機驅動能力[5]。而超聲波電機隨著運行時間的加長,由于溫升、負載變化及周圍環境變化等原因將導致電機的諧振頻率發生漂移。因此,驅動系統中加入頻率檢測電路來檢測電機諧振頻率的漂移,并以此調整電機的驅動頻率,能實現頻率跟蹤,保證系統穩定運行。
由超聲波電機開環實驗結果可知,在電機諧振頻率附近的區域內,檢測信號的電壓值峰值比較高,在30V以上;其他區域電壓值都較低,在25V以下。在諧振頻率附近,電機輸入端電壓峰值減小,反饋電壓峰值增大。通過測試出反饋回來的電壓可以實現電機的頻率跟蹤。

圖5 電機速度測試程序流程圖
本文的頻率跟蹤功能利用A/D模塊與PWM模塊聯合實現。DSP56F801的ADC包括8個輸入通道和兩個獨立的采樣保持電路,轉換精度為12位,轉換的最大值是32760。ADC的時鐘是從總線時鐘獲得,它和總線時鐘的關系是可編程的;轉換速度最快為每次同時掃描需要5.3us;有同時和順序兩種采樣模式;模數轉換器有2個獨立的轉換器,8個輸入通道分為兩組:AN0~AN3,AN4~AN7,每組都有各自獨立的一個采樣保持電路,可保持本組內一路信號。VREF參考電壓源經電感濾波接到3.3V直流電源。
采用電壓反饋式頻率跟蹤方法,通過反饋回來的電壓實現電機的頻率跟蹤。通過對孤極反饋電壓進行采樣,獲得反饋電壓的峰值與設定值進行比較,當采樣得到的值小于設定值時,通過改變PWM計數模寄存器(PWMCM)中的值改變PWM信號的頻率,從而實現電機諧振頻率的自動跟蹤。圖6為PWM信號波形與孤機反饋電壓波形,電機工作在諧振狀態時,反饋電壓的最大值出現在PWM信號為高電平期間。

圖6 PWM信號波形與孤機反饋電壓波形
程序實現時,在PWM模塊重載中斷發生且PWM1信號在中斷結束后輸出將為高電平,在此時的PWM重載中斷程序中觸發ADC模塊,對反饋電壓進行采樣。設置AD模塊寄存器時,允許掃描結束中斷;使ADC模塊工作在最大時鐘頻率5MHZ,且只允許sample0-sample2,都對AN0進行采樣,采樣連續進行4個周期,獲得12個采樣值。當掃描結束時,掃描結束中斷標志位置1,向CPU申請中斷,經裁決后,進入中斷服務程序,在程序中取12個采樣值中的最大值作為反饋電壓的最大值與參考值進行比較,若小于參考值,使PWM計數模寄存器(PWMCM)加1,使頻率減小一個頻率單位;若大于參考值,則維持PWMCM中的值不變,保持原驅動頻率不變。
頻率跟蹤的程序流程圖如圖7所示。在主程序中定義全局變量Adsam、Sample[3]、Feedback、refervalue;其中Adsam代表掃描中斷次數;Sample[3]表示3次采樣值;Feedback表示12次采樣得到的最大值;refervalue表示設定的參考值(諧振時反饋電壓的最大值)。

圖7 諧振頻率自動跟蹤程序流程圖
基于DSP56F801說明了超聲波電機驅動控制系統PWM信號產生方法。在此基礎上設計了電機測速的算法和頻率自動跟蹤的算法并通過軟件實現在線測速和實時頻率跟蹤。該自動測速和頻率跟蹤算法實現簡單,計算量小,運行效率高。在此基礎上,下一步可結合各種控制策略對超聲波電機進行閉環控制研究,來實現對超聲波電機運行的高效實時控制。