航海羅經模擬器的組成結構原理是:船舶舵輪的轉動引起了船舶航向的改變,同時也就引起了船舶羅經讀數的變化。當羅經模擬器要求轉動的角度偏大時,設計應用變頻轉動的方法來克服轉動時間過長的缺點,也就是給出一個具體需要轉動的航向值,該模擬器能夠迅速有效地按照要求轉到該值。 步進電機的選用與設計 步進電機具有轉矩大、慣性小、響應頻率高等優點,具有瞬間起動與急速停止的優越特性。與其他驅動元件相比,有明顯優點:通常不需要反饋就能對位移或速度進行精確控制;輸出的轉角或位移精度高,誤差不會積累;控制系統結構簡單,與數字設備兼容,價格便宜。它每轉一周有固定步數,能夠精確控制步進和接收數字量。為了便于數據的處理和驅動,設計了由步進電機帶動減速齒輪,再由齒輪帶動羅經數據轉盤,為了提高數據精度和提高電機的負載能力,將減速比設計為:1:90(比值越小,精度越高,但是比值太小對控制和響應頻率要求就太高了)。步進電機的通電方式可采用三相雙六拍通電方式,即按照a、ab、b、bc、c、ca順序循環通電,這樣步進電機中每個脈沖能驅動1.5度。三相雙六拍通電的控制模型如表1。 ![]() 軟件設計中脈沖波的要求 這里利用mcs-51系列單片機中的p1口來進行控制,因為p1是8位準雙向i/o口,每一位可以獨立地定義為輸入或輸出,所以,既可以對p1口進行字節操作也可以進行位的操作。mcs-51系列單片機中有兩個16位的可編程定時器/計數器,定時器/計數器ct0由計數器th0和tl0組成,ct1由th1和tl1組成,th、tl分別為8位計數器,若拼接在一起就可組成16位計數器。 計算tl、th初值 應用cto產生1ms的定時,并使p1產生2ms的方波,設系統晶振頻率為12mhz。設12m晶振的周期:t=12/fosc=12/(12×10-6)=1×10-6(us)設定時初值為x,則有:(216-x)×1×10-6=10-3解算得x=65036=fe0c(h);所以tl0初值設為0ch;th0初值設為feh,這樣每秒能產生1000個方波。當改變初值x時,就能改變延時時間,x值越小,延時時間就越長,脈沖寬度也越寬。 計算并設置轉動數據 因為模擬航海羅經的精度為一格(即0.1度),同時減速裝置是1:90,所以電機每步應轉動9度,又因為每個脈沖使電機轉動1.5度,所以每步要求有6個脈沖,因此步長要設置為6。按照上表得知若以a、ab、b、bc、c、ca、a循環,則控制脈沖為:01h,03h,02h,06h,04h,05h;編程時采用查表法來實現,首先將步進電機通電方式運行邏輯數據列成表格,存入計算機指定內存,并設置數據指針,指針自動向下移動或向上移動一組數據,使步進電機按規定的通電勵磁方式運行。這樣正轉模型按照地址順序的分配分別為:01h、03h、02h、06h、04h、05h、00h;同樣,反轉模型地址中的分配分別為:05h、04h、06h、02h、03h、01h、00h。 在快速轉動不同角度時的變頻設計思路 因為該模擬羅經需要在任意時刻都能夠設置,所以當在設置狀態和轉動數據大,使步進電機在短時間內以比較快的速度運轉而不出現失步,就要求采用小于或等于步進電機的響應頻率,在該頻率之下,步進電機可以隨意地啟動、停止或反轉而不發生失步現象。而步進電機的響應頻率通常比較低,當步進電機要求走轉動的度數比較多時,就對該電機提出了要求:低速啟動,高速運轉,然后降低速度,最后停止。這樣才能解決“快速而不失步”的要求。依照該思路,采用改變輸出脈沖寬度的方法,也就是改變控制定時器的延時,如圖1。 ![]() 按照附表得出高速運行階段:頻率為1000hz,2s能產生2000個脈沖,能使電機運轉最大度數為:2000×1.5=3000°,所以在高速階段2s內電機能驅動羅經轉動3000/90=34°,該數值已經完全滿足模擬器轉動要求了。 程序設計 該模擬器的步進電機進行控制的一個重要條件是,計算當前需要步進電機轉動的角度是多少,然后按照需要轉動的角度進行設置不同的電機所需要的三個階段的頻率即:升頻運行階段(啟動)、高速運行階段、降頻運行階段(減速)。程序的設計流程圖如圖2所示:其中針對需要正向或逆向轉動不同的角度,就需要選擇合適的脈沖值,也就是tl0和th0的初值就能夠輕松實現。 ![]() 利用步進電機和單片機來設計航海羅經模擬器的方案是充分利用單片機的特點以及采用變頻的控制原理。此設計采用的硬件比較少,軟件采用模塊化結構,利于修改,并為將來程序功能的擴展留下了很好的余地。本設計對該模擬羅經驅動效果為:連續工作20小時,誤差僅在2°以內,完全符合模擬器的要求。 |