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