航天“星星指向跟蹤控制系統(tǒng)”中的運動控制部分,為基于稀土永磁步進電機的雙自由度(俯仰、方位)位置伺服系統(tǒng)。系統(tǒng)總體設計思想使用計算機控制2臺步進電機,每臺步進電機代表天線運動的一個自由度,使天線指向任意給定位置,指向位置由旋轉變壓器測量。
系統(tǒng)單個自由度由2路模擬電壓給定目標位置,經微型計算機采樣、A/D轉換,再按一定控制規(guī)律控制稀土永磁步進電機,實現高精度的位置伺服精度。
控制軟件用VD++6.0編寫,通過軟件操作,改變Intel 8253計數器工作狀態(tài),實現步進電機調速及位置伺服控制,具體實現方法:
(1)步進電機起動
步進電機驅動器使能端加載合適的控制信號后,起動步進電機只需對Intel8253所選用的計數器寫入方式3控制字,然后寫入所需計數值。計數器便會連續(xù)輸出頻率f=f0/N的脈沖信號,驅動器就能驅動步進電機按一定轉速運行。
設nBase為Intel8253基址,LSB和MSB分別為要寫入的計數值的低8位和高8位數據,C++操作程序如下:
outp(nBase+3,0x36);//0#計數器工作于方式3
outp(nBase,LSB);//0#計數器寫入計數值低8位
outp(nBase,MSB);//0#計數器寫入計數值高8位
(2)步進電機轉速調節(jié)
只需對8253的計數器寫入新的計數值,計數器輸出頻率就會發(fā)生相應變化,進而改變驅動器產生的時序脈沖的頻率,實現了步進電機轉速的調節(jié)。
由前面算式可以知道,電機轉速為:
n=kf=kf0/N
注意在步進電機運行過程中要始終保持8253計數器門控端GATE為高電平。C++操作程序為:
outp(nBase,newLSB);//0#計數器寫入新計數值低8位
outp(nBase,newMSB);//0#計數器寫入新計數值高8位
(3)步進電機轉動停止
以步進電機為執(zhí)行機構的位置伺服系統(tǒng),當執(zhí)行機構運行到目標位置后,步進電機需停止轉動并保持在該位置,這時切斷提供給步進電機驅動器的脈沖信號f0,步進電機停止轉動,同時仍有一定保持轉矩。有兩種方法:
一是將8253計數器的門控端GATE置為低電平,這時GATE端需定義為計算機系統(tǒng)的一個數字輸出(DO)通道;二是將8253計數器工作方式改變?yōu)槠渌绞剑粚懭胄碌挠嫈抵?,這時8253計數器因等待新計數值的寫入而停止工作,這種情況下,GATE門控端只需接高電平。
運動控制系統(tǒng)中,采用了第二種方法,通過改變計數器工作方式使Intel 8253停止輸出數字脈沖信號。程序為:outp(nBase+3,0x36);//0#計數器設為方式0,等待寫入計數值,停止輸出。