FPGA在直流電機位置控制中的應(yīng)用
在工作時鐘的作用下,驅(qū)動模塊會不斷地檢測EN信號和stopinter信號是否有效,如果:EN有效,并且stopinter無效的時候,模塊的輸出 controi_outA,cont-orl_outB取決于電機控制輸入信號derect[1..0]的狀態(tài),當(dāng)derect[1..0]為“01” 時,control_outA輸出為“0”;control_outB輸出為“1”,表示控制電機反轉(zhuǎn)。當(dāng)derect[1..0]為“10”時, control_outA輸出為“1”;con-trol_outB輸出為“O”,表示控制電機正轉(zhuǎn)。驅(qū)動控制模塊一旦檢測到stop信號有效, control_outA和control_outB的輸出都為“O”,表示控制電機剎車并停止。在EN和stop信號都無效的時候, control_outA和con-trol_outB的輸出都為“1”,表示對電機不做任何控制。
如圖4所示,當(dāng)EN和stopinter信號都為“0”時,模塊的輸出control_outA,contorl_outB都為“1”,對電機不做任何控制。當(dāng)EN信號變?yōu)椤?”時,表示電機開始運動,模塊的輸出control_outA為“O”,Contorl_outB為“1”,與direction [1..0]中的值“01”相同,此時電機反轉(zhuǎn)。當(dāng)stopinter信號變?yōu)椤?”時,模塊的輸出control_outA為“O”; contorl_outB也為“O”,此時電機剎車并停止。當(dāng)EN信號為“1”,stopinter信號再次為“0”時,電機再次開始運動,模塊的輸出 control_outA為“1”;con-torl_outB為“0”,與direction[1..O]中的值“10”相同,此時電機反轉(zhuǎn)。
1.2.3 延時模塊
圖4中,EN為延時的使能信號,也就是計數(shù)比較模塊的輸出信號stopinter;inclk為工作時鐘;stop為電機停止信號對外部的輸出信號。延時模塊(如圖5所示)的工作原理如下:當(dāng)延時模塊檢測到stopinter信號為“1”時,模塊內(nèi)的計數(shù)器開始工作,計數(shù)器時鐘即模塊的工作時鐘10 kHz,當(dāng)記滿300后,模塊輸出信號為“1”。延時模塊檢測到stopinter信號為“0”時,模塊內(nèi)計數(shù)器不工作,模塊輸出信號為“0”。
當(dāng)電機剎車時,由于存在慣性,電機不會立即停止,會有一段滑行的過程,在這個過程中,電機仍然會通過磁編碼器返回反饋脈沖,只是因為電機的轉(zhuǎn)速下降,反饋脈沖的頻率大大降低。當(dāng)stopinter信號變?yōu)椤?”時,電機開始剎車,如果此時立刻讀取feedback[15..O]端口上的反饋脈沖數(shù)值,計算出電機所帶負載的位置,那么必然會丟失掉滑行過程中的反饋脈沖。這樣就會導(dǎo)致讀回的反饋脈沖數(shù)與實際電機返回的反饋脈沖數(shù)不相等,從而嚴(yán)重地影響控制精度,所以必須在stopinter信號變?yōu)椤?”后,延長一段時間,確保電機停止不動后,再給出STOPTEST信號,作為讀取反饋脈沖數(shù)值的有效信號,這時用讀回的反饋脈沖數(shù)值計算出負載的實際位置是準(zhǔn)確的。
通過實驗,在電機以最高轉(zhuǎn)速運行時,讓電機剎車,用邏輯分析儀抓出反饋脈沖的波形,找出反饋脈沖頻率開始突然下降直到反饋脈沖消失的那段時間,就是所需要的延時。通過反復(fù)進行實驗,測試出這段時間為30 ms,其間的反饋脈沖個數(shù)為20個。因此把要控制的位移量換算成反饋脈沖的個數(shù)后,用這個值減去20作為比較模塊給定值,就可以抵消滑行過程中增加的20 個脈沖。這樣對電機的控制能夠達到一次到位,不需要進行再次調(diào)節(jié)。延時模塊仿真圖如圖6所示。
2 結(jié) 語
現(xiàn)場可編程門陣列(FPGA)器件體積小、速度快、集成度高,能夠用硬件電路來實現(xiàn)算法。使用FPGA控制電機,能夠保證控制的實時性和可靠性。它作為一種有效的數(shù)字化控制方法必將廣泛地為人們所接受和使用。
評論