本發(fā)明涉及機(jī)器人舵機(jī)領(lǐng)域,尤其涉及一種舵機(jī)鎖位控制方法及舵機(jī)。
背景技術(shù):
機(jī)器人是根據(jù)控制器發(fā)送的控制指令執(zhí)行相應(yīng)動作的機(jī)器設(shè)備。舵機(jī)是機(jī)器人的動力元件,是構(gòu)建機(jī)器人關(guān)節(jié)部件的關(guān)鍵元件。機(jī)器人根據(jù)控制器的控制指令執(zhí)行相關(guān)動作后,需使舵機(jī)齒輪轉(zhuǎn)動到特定位置并固定,以完成鎖位操作。具體地,現(xiàn)有舵機(jī)鎖位控制過程中,通過舵機(jī)內(nèi)的主控電路和角度傳感器配合,以完成將舵機(jī)齒輪轉(zhuǎn)動到特定位置并固定的目的。但這種舵機(jī)鎖位控制方法只能通過主控電路和角度傳感器配合以實現(xiàn)控制舵機(jī)齒輪鎖位,控制方式不靈活。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有舵機(jī)鎖位控制方法存在的缺陷,提供一種舵機(jī)鎖位控制方法及舵機(jī)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種舵機(jī)鎖位控制方法,包括如下步驟:
舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài);
判斷當(dāng)前角度偏移值是否在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值;
若所述當(dāng)前角度偏移值在第一預(yù)設(shè)時間內(nèi)均大于所述預(yù)設(shè)角度偏移值,舵機(jī)進(jìn)入弱鎖位狀態(tài);
判斷當(dāng)前角度變化值是否在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值;
若所述當(dāng)前角度變化值在第二預(yù)設(shè)時間內(nèi)均小于所述預(yù)設(shè)角度變化值,舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)。
優(yōu)選地,所述“舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)”步驟后還包括:
判斷舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)是否超過強(qiáng)鎖位預(yù)設(shè)穩(wěn)定用時;若是,則判斷當(dāng)前角度偏移值是否在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值;若否,則繼續(xù)執(zhí)行本步驟。
優(yōu)選地,所述“判斷當(dāng)前角度偏移值是否在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值”包括步驟:
記錄舵機(jī)的最新鎖位目標(biāo)值;
每隔單位時間采集一次舵機(jī)的當(dāng)前角度值并保存;
根據(jù)所述最新鎖位目標(biāo)值和所述當(dāng)前角度值計算所述當(dāng)前角度偏移值。
優(yōu)選地,還包括步驟:
將每一所述當(dāng)前角度偏移值與所述預(yù)設(shè)角度偏移值進(jìn)行比較,并判斷所述當(dāng)前角度偏移值是否大于所述預(yù)設(shè)角度偏移值;
若所述當(dāng)前角度偏移值大于所述預(yù)設(shè)角度偏移值,則使角度偏差計數(shù)加1,并判斷所述角度偏差計數(shù)是否大于第一計數(shù)閾值;若所述角度偏差計數(shù)大于所述第一計數(shù)閾值,則所述當(dāng)前角度偏移值在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度值。
優(yōu)選地,所述“判斷所述當(dāng)前角度偏移值是否在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值”還包括:
若所述當(dāng)前角度偏移值不大于所述預(yù)設(shè)角度偏移值,則使所述角度偏差計數(shù)清零,并判斷下一單位時間的角度偏移值是否大于所述預(yù)設(shè)角度偏移值;
若所述角度偏差計數(shù)不大于所述第一計數(shù)閾值,則判斷下一單位時間的角度偏移值是否大于所述預(yù)設(shè)角度偏移值。
判斷所述當(dāng)前角度偏移值是否在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值;
優(yōu)選地,所述“舵機(jī)進(jìn)入弱鎖位狀態(tài)”步驟還包括:若所述當(dāng)前角度偏移值在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值,則所述舵機(jī)進(jìn)入弱鎖位狀態(tài),并將所述第一預(yù)設(shè)時間內(nèi)最后一個所述當(dāng)前角度值更新為最新鎖位目標(biāo)值。
優(yōu)選地,所述步驟“判斷當(dāng)前角度變化值是否在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值”包括:
每隔單位時間采集一次舵機(jī)的當(dāng)前角度值并保存;
根據(jù)本次采集的當(dāng)前角度值與上一次采集的當(dāng)前角度值計算當(dāng)前角度變化值。
優(yōu)選地,還包括步驟:
將每一所述當(dāng)前角度變化值與所述預(yù)設(shè)角度變化值進(jìn)行比較,并判斷所述當(dāng)前角度變化值是否小于預(yù)設(shè)角度變化值;
若所述當(dāng)前角度變化值小于所述預(yù)設(shè)角度變化值,則使角度變化計數(shù)加1,并判斷所述角度變化計數(shù)是否大于第二計數(shù)閾值;若所述角度變化計數(shù)大于所述第二計數(shù)閾值,則所述角度變化值在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值。
優(yōu)選地,還包括步驟:
若所述當(dāng)前角度變化值不小于所述預(yù)設(shè)角度變化值,則使所述角度變化計數(shù)清零,并判斷下一單位時間的所述當(dāng)前角度變化值是否小于所述預(yù)設(shè)角度變化值;
若所述角度變化計數(shù)不大于所述第二計數(shù)閾值,則判斷下一單位時間的所述當(dāng)前角度變化值是否小于所述預(yù)設(shè)角度變化值
優(yōu)選地,所述“舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)”步驟還包括:將所述第二預(yù)設(shè)時間內(nèi)最后一個所述當(dāng)前角度值更新為所述最新鎖位目標(biāo)值。
本發(fā)明還提供一種采用所述舵機(jī)鎖位控制方法的舵機(jī),包括主控電路、伺服電機(jī)、角度傳感器、減速齒輪和輸出軸,所述角度傳感器采集輸出角度信息,所述主控電路執(zhí)行所述舵機(jī)鎖位控制方法控制所述伺服電機(jī)轉(zhuǎn)動,通過所述減速齒輪和輸出軸輸出。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點:本發(fā)明所提供的舵機(jī)鎖位控制方法,可通過外力使得舵機(jī)的當(dāng)前角度偏移值在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值,即可使得舵機(jī)在強(qiáng)鎖位狀態(tài)下進(jìn)入弱鎖位狀態(tài);若當(dāng)前角度變化值在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值,則進(jìn)入強(qiáng)鎖位狀態(tài)。該舵機(jī)鎖位控制方法可通過外力控制舵機(jī)的當(dāng)前角度值以實現(xiàn)對舵機(jī)齒輪的鎖位控制,可實現(xiàn)舵機(jī)在強(qiáng)鎖位狀態(tài)和弱鎖位狀態(tài)靈活轉(zhuǎn)換,控制方式簡單靈活。
本發(fā)明所提供的采用舵機(jī)鎖位控制方法的舵機(jī),該舵機(jī)中的主控電路執(zhí)行舵機(jī)鎖位控制方法,可對舵機(jī)齒輪的強(qiáng)鎖位狀態(tài)和弱鎖位狀態(tài)的轉(zhuǎn)換控制,控制方式簡單靈活,使得舵機(jī)更容易滿足其使用需求。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1是本發(fā)明實施例1中的舵機(jī)鎖位控制方法的一流程圖;
圖2是本發(fā)明實施例2中的舵機(jī)鎖位控制方法的另一流程圖;
圖3是本發(fā)明實施例2中的舵機(jī)鎖位控制方法的一局部流程圖;
圖4是本發(fā)明實施例2中的舵機(jī)鎖位控制方法的另一局部流程圖。
具體實施方式
為了對本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對照附圖詳細(xì)說明本發(fā)明的具體實施方式。
實施例1
圖1示出本實施例中的舵機(jī)鎖位控制方法的流程圖。如圖1所示,該舵機(jī)鎖位控制方法包括如下步驟:
S11:舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)。具體地,舵機(jī)上電后,接收來自控制器的首次鎖位指令,并根據(jù)該首次鎖位指令使舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)。其中,強(qiáng)鎖位狀態(tài)是指舵機(jī)內(nèi)主控電路控制齒輪轉(zhuǎn)動到并保持在鎖位目標(biāo)值位置,若檢測到齒輪轉(zhuǎn)動的位置偏離鎖位目標(biāo)值位置,則控制舵機(jī)齒輪的輸出力矩,給舵機(jī)齒輪施加與偏離方向相反的力,從而使舵機(jī)齒輪在收到新的鎖位指令之前一直保持在鎖位目標(biāo)值位置的狀態(tài)。
S12:判斷當(dāng)前角度偏移值是否在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值。其中,當(dāng)前角度偏移值為當(dāng)前角度值與最新鎖位目標(biāo)值的差值的絕對值。預(yù)設(shè)角度偏移值是預(yù)先設(shè)置的用于判定舵機(jī)齒輪偏離鎖位目標(biāo)值的角度偏移值。若當(dāng)前角度偏移值大于預(yù)設(shè)角度偏移值,則說明有較大的外力使得舵機(jī)齒輪偏離鎖位目標(biāo)值。
S13:若當(dāng)前角度偏移值在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值,舵機(jī)進(jìn)入弱鎖位狀態(tài)。其中,弱鎖位狀態(tài)是指舵機(jī)內(nèi)主控電路控制齒輪轉(zhuǎn)動到鎖位目標(biāo)值位置后,若檢測到有一長時間大于預(yù)定值(使舵機(jī)齒輪偏移鎖位目標(biāo)值位置的當(dāng)前角度偏移值大于預(yù)設(shè)角度偏移值)的外力存在,則舵機(jī)減弱齒輪的輸出力矩,并改變舵機(jī)鎖位目標(biāo)值位置,使其隨當(dāng)前角度值的變化而變化的狀態(tài)。
可以理解地,若當(dāng)前角度偏移值大于預(yù)設(shè)角度偏移值,則說明有較大的外力作用在舵機(jī)上,以使舵機(jī)齒輪偏離鎖位目標(biāo)值;若在第一預(yù)設(shè)時間內(nèi)根據(jù)采集到的當(dāng)前角度值計算出的當(dāng)前角度偏移值均大于預(yù)設(shè)角度偏移值,將說明在第一預(yù)設(shè)時間內(nèi)一直有外力作用在舵機(jī)上,使舵機(jī)齒輪長時間偏離鎖位目標(biāo)值,退出強(qiáng)鎖位狀態(tài)而進(jìn)入弱鎖位狀態(tài)。
S14:判斷當(dāng)前角度變化值是否在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值。其中,當(dāng)前角度變化值為本次采集的當(dāng)前角度值與上一次采集的當(dāng)前角度值的差值的絕對值。預(yù)設(shè)角度變化值是預(yù)先設(shè)置的用于判定舵機(jī)齒輪輸出角度變化程度的參考值;若當(dāng)前角度變化值小于預(yù)設(shè)角度變化值,則說明舵機(jī)本次采集的當(dāng)前角度值與上一次采集的當(dāng)前角度值之間差值較小,基本保持靜止不動。
S15:若當(dāng)前角度變化值在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值,舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)??梢岳斫獾兀舢?dāng)前角度變化值在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值,則說明舵機(jī)輪齒的角度在第二預(yù)設(shè)時間內(nèi)處于較穩(wěn)定的狀態(tài),此時恢復(fù)舵機(jī)的輸出力矩,使舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài),有利于保證舵機(jī)的正常工作。
本實施例所提供的舵機(jī)鎖位控制方法,可通過外力使得舵機(jī)的當(dāng)前角度偏移值在第一預(yù)設(shè)時間內(nèi)均大于預(yù)設(shè)角度偏移值,即可使得舵機(jī)在強(qiáng)鎖位狀態(tài)下進(jìn)入弱鎖位狀態(tài);若當(dāng)前角度變化值在第二預(yù)設(shè)時間內(nèi)均小于預(yù)設(shè)角度變化值,則進(jìn)入強(qiáng)鎖位狀態(tài)。該舵機(jī)鎖位控制方法可通過外力控制舵機(jī)的當(dāng)前角度值以實現(xiàn)對舵機(jī)齒輪的鎖位控制,可實現(xiàn)舵機(jī)在強(qiáng)鎖位狀態(tài)和弱鎖位狀態(tài)靈活轉(zhuǎn)換,控制方式簡單靈活。
實施例2
圖2示出本實施例中的舵機(jī)鎖位控制方法的流程圖。如圖2所示,該舵機(jī)鎖位控制方法包括如下步驟:
S21:舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)。具體地,舵機(jī)上電后,接收來自控制器的首次鎖位指令,并根據(jù)該首次鎖位指令使舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài),記錄舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)時的最新鎖位目標(biāo)值α0。具體地,強(qiáng)鎖位狀態(tài)是指舵機(jī)內(nèi)主控電路控制齒輪轉(zhuǎn)動到并保持在鎖位目標(biāo)值位置,若檢測到齒輪轉(zhuǎn)動的位置偏離鎖位目標(biāo)值位置,則控制舵機(jī)齒輪的輸出力矩,給舵機(jī)齒輪施加與偏離方向相反的力,從而使舵機(jī)齒輪在收到新的鎖位指令之前一直保持在鎖位目標(biāo)值位置的狀態(tài)。
S22:在舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)時,判斷舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)是否超過強(qiáng)鎖位預(yù)設(shè)穩(wěn)定用時。若是,執(zhí)行步驟S23判斷當(dāng)前角度偏移值ε1是否在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0;若否,則保持強(qiáng)鎖位狀態(tài),繼續(xù)執(zhí)行步驟S22??梢岳斫獾兀捎诙鏅C(jī)上電初始化時,可能出現(xiàn)較大幅度的擺動,使得舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)可能鎖位不理想,因此要求舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)后要先等待一段時間(即強(qiáng)鎖位預(yù)設(shè)穩(wěn)定用時)使舵機(jī)鎖位穩(wěn)定下來,再去檢測是否有較大的外力使得當(dāng)前角度偏移值ε1是否在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0??梢岳斫獾?,步驟S22的設(shè)置,可有效防止因誤檢測而使舵機(jī)在上電初始化時,因舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)時鎖位不理想,而直接進(jìn)入弱鎖位狀態(tài),影響舵機(jī)的性能。
S23:判斷當(dāng)前角度偏移值ε1是否在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0。其中,預(yù)設(shè)角度偏移值ε0是預(yù)先設(shè)置的用于判定舵機(jī)齒輪偏離鎖位目標(biāo)值的角度偏移值。若當(dāng)前角度偏移值ε1大于預(yù)設(shè)角度偏移值ε0,則說明有較大的外力作用在舵機(jī)上,以使舵機(jī)齒輪偏離鎖位目標(biāo)值;若在第一預(yù)設(shè)時間Δt1內(nèi)根據(jù)采集到的當(dāng)前角度值β1計算出的當(dāng)前角度偏移值ε1均大于預(yù)設(shè)角度偏移值ε0,將說明在第一預(yù)設(shè)時間Δt1內(nèi)一直有外力作用在舵機(jī)上,使舵機(jī)齒輪長時間偏離鎖位目標(biāo)值,退出強(qiáng)鎖位狀態(tài)而進(jìn)入弱鎖位狀態(tài)??梢岳斫獾?,舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)時會不斷執(zhí)行步驟S23,以確定在第一預(yù)設(shè)時間Δt1(連續(xù)時間)內(nèi)所檢測到的當(dāng)前角度偏移值ε1是否均大于預(yù)設(shè)角度偏移值ε0。具體包括如下步驟:
S231:記錄舵機(jī)的最新鎖位目標(biāo)值α0??梢岳斫獾?,在舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)時,即記錄舵機(jī)的最新鎖位目標(biāo)值α0
S232:每隔單位時間t1采集到的當(dāng)前角度值β1。
S233:根據(jù)最新鎖位目標(biāo)值α0和當(dāng)前角度值β1計算當(dāng)前角度偏移值ε1。具體地,每隔單位時間t1,通過設(shè)置在舵機(jī)齒輪上的角度傳感器采集一次舵機(jī)的當(dāng)前角度值β1并保存,并計算獲取當(dāng)前角度偏移值ε1。其中,當(dāng)前角度偏移值ε1為當(dāng)前角度值β1與最新鎖位目標(biāo)值α0的差值的絕對值,即ε1=|β1-α0|。
S234:將每一當(dāng)前角度偏移值ε1與預(yù)設(shè)角度偏移值ε0進(jìn)行比較,并判斷當(dāng)前角度偏移值ε1是否大于預(yù)設(shè)角度偏移值ε0。
S235:若當(dāng)前角度偏移值ε1大于預(yù)設(shè)角度偏移值ε0,則使角度偏差計數(shù)n1加1,并判斷角度偏差計數(shù)n1是否大于第一計數(shù)閾值N1;若角度偏差計數(shù)n1大于第一計數(shù)閾值N1,則當(dāng)前角度偏移值ε1在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度值ε0。可以理解地,由于每一當(dāng)前角度偏移值ε1為當(dāng)前角度值β1與最新鎖位目標(biāo)值α0的差值的絕對值,而當(dāng)前角度值β1每隔單位時間t1采集一次,若當(dāng)前角度偏移值ε1大于預(yù)設(shè)角度偏移值ε0,則使角度偏差計數(shù)n1加1,通過計算單位時間t1與角度偏差計數(shù)n1的乘積即可獲得當(dāng)前角度偏移值ε1均大于預(yù)設(shè)角度偏移值ε0的時間,并將其與第一預(yù)設(shè)時間Δt1進(jìn)行比較,即可判斷當(dāng)前角度偏移值ε1是否在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0。其中,第一計數(shù)閾值N1可以為第一預(yù)設(shè)時間Δt1與單位時間t1的商值,通過比較角度偏差計數(shù)n1是否大于第一計數(shù)閾值N1,即可確定當(dāng)前角度偏移值ε1是否在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0,計算過程簡單方便。
S236:若當(dāng)前角度偏移值ε1不大于預(yù)設(shè)角度偏移值ε0,則使角度偏差計數(shù)n1清零,并判斷下一單位時間的當(dāng)前角度偏移值ε1是否大于預(yù)設(shè)角度偏移值ε0??梢岳斫獾兀羧我粏挝粫r間的當(dāng)前角度偏移值ε1不大于預(yù)設(shè)角度偏移值ε0,則其不可能在第一預(yù)設(shè)時間Δt1內(nèi)的當(dāng)前角度偏移值ε1均大于預(yù)設(shè)角度偏移值ε0,故使角度偏差計數(shù)n1清零,并判斷下一單位時間的當(dāng)前角度偏移值ε1是否大于預(yù)設(shè)角度偏移值ε0。
S237:若角度偏差計數(shù)n1不大于第一計數(shù)閾值N1,則判斷下一單位時間的當(dāng)前角度偏移值ε1是否大于預(yù)設(shè)角度偏移值ε0??梢岳斫獾?,只需使角度偏差計數(shù)n1大于第一計數(shù)閾值N1,即可認(rèn)定第一預(yù)設(shè)時間Δt1內(nèi)的當(dāng)前角度偏移值ε1均大于預(yù)設(shè)角度偏移值ε0,因此,若角度偏差計數(shù)n1不大于第一計數(shù)閾值N1,則需計算下一單位時間的當(dāng)前角度偏移值ε1是否大于預(yù)設(shè)角度偏移值ε0,直到角度偏差計數(shù)n1大于第一計數(shù)閾值N1。
S24:若當(dāng)前角度偏移值ε1在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0,則舵機(jī)進(jìn)入弱鎖位狀態(tài)。即在第一預(yù)設(shè)時間Δt1這一連續(xù)時間內(nèi)所檢測到的當(dāng)前角度偏移值ε1均大于預(yù)設(shè)角度偏移值ε0??梢岳斫獾?,弱鎖位狀態(tài)是指舵機(jī)內(nèi)主控電路控制齒輪轉(zhuǎn)動到鎖位目標(biāo)值位置后,若檢測到有一長時間大于預(yù)定值(使舵機(jī)齒輪偏移鎖位目標(biāo)值位置的當(dāng)前角度偏移值ε1大于預(yù)設(shè)角度偏移值ε0)的外力存在,則舵機(jī)減弱齒輪的輸出力矩,并改變舵機(jī)鎖位目標(biāo)值位置,使其隨當(dāng)前角度值β1的變化而變化的狀態(tài)??梢岳斫獾?,若當(dāng)前角度偏移值ε1在第一預(yù)設(shè)時間Δt1內(nèi)沒有均大于預(yù)設(shè)角度偏移值ε0,則舵機(jī)不進(jìn)入弱鎖位狀態(tài),則繼續(xù)執(zhí)行步驟S23。
可以理解地,當(dāng)舵機(jī)處于強(qiáng)鎖位狀態(tài)時,若當(dāng)前角度偏移值ε1在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0,則舵機(jī)由強(qiáng)鎖位狀態(tài)進(jìn)入弱鎖位狀態(tài),并將第一預(yù)設(shè)時間Δt1內(nèi)最后一個當(dāng)前角度值β1更新為最新鎖位目標(biāo)值α0,以使舵機(jī)實現(xiàn)由強(qiáng)鎖位狀態(tài)到弱鎖位狀態(tài)的靈活變換,使舵機(jī)的控制方式更簡單靈活。
S25:將第一預(yù)設(shè)時間Δt1內(nèi)最后一個當(dāng)前角度值β1更新為最新鎖位目標(biāo)值α0。在下一單位時間t1,以第一預(yù)設(shè)時間Δt1內(nèi)最后一個當(dāng)前角度值β1更新為最新鎖位目標(biāo)值α0。
S26:判斷當(dāng)前角度變化值θ1是否在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0。其中,當(dāng)前角度變化值θ1為本次采集的當(dāng)前角度值與上一次采集的當(dāng)前角度值的差值的絕對值。預(yù)設(shè)角度變化值θ0是預(yù)先設(shè)置的用于判定舵機(jī)齒輪輸出角度變化程度的參考值。若當(dāng)前角度變化值θ1小于預(yù)設(shè)角度變化值θ0,則說明舵機(jī)本次采集的當(dāng)前角度值與上一次采集的當(dāng)前角度值之間差值較小,基本保持靜止不動。
S261:每隔單位時間t1采集一次舵機(jī)的當(dāng)前角度值β1并保存。
S262:根據(jù)本次采集的當(dāng)前角度值與上一次采集的當(dāng)前角度值計算當(dāng)前角度變化值。本實施例中,角度傳感器采集到的本次舵機(jī)的當(dāng)前角度值可以用β1來表示,上一次采集到的當(dāng)前角度值可以用來β0表示,下一次采集到的當(dāng)前角度值可以用β2來表示。其中,當(dāng)前角度變化值θ1為本次采集的當(dāng)前角度值β1與上一次采集的當(dāng)前角度值β0的差值的絕對值,即θ1=|β1-β0|。
S263:將每一當(dāng)前角度變化值θ1與預(yù)設(shè)角度變化值θ0進(jìn)行比較,并判斷當(dāng)前角度變化值θ1是否小于預(yù)設(shè)角度變化值θ0。
S264:若當(dāng)前角度變化值θ1小于預(yù)設(shè)角度變化值θ0,則使角度變化計數(shù)n2加1,并判斷角度變化計數(shù)n2是否大于第二計數(shù)閾值N2;若角度變化計數(shù)n2大于第二計數(shù)閾值N2,則當(dāng)前角度變化值θ1在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0。可以理解地,每一當(dāng)前角度變化值θ1為本次采集的當(dāng)前角度值β1與上一次采集的當(dāng)前角度值β0的差值的絕對值,而當(dāng)前角度值β1每隔單位時間t1采集一次,若當(dāng)前角度變化值θ1小于預(yù)設(shè)角度變化值θ0,則使角度變化計數(shù)n2加1,通過計算單位時間t1與角度變化計數(shù)n2的乘積即可獲得當(dāng)前角度變化值均小于預(yù)設(shè)角度變化值θ0的時間,并將其與第二預(yù)設(shè)時間Δt2進(jìn)行比較,即可判斷當(dāng)前角度變化值θ1是否在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0。其中,第二計數(shù)閾值N2可以為第二預(yù)設(shè)時間Δt2與單位時間t1的商值,通過比較角度變化計數(shù)n2是否大于第二計數(shù)閾值N2,即可確定當(dāng)前角度變化值θ1是否在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0。
S265:若當(dāng)前角度變化值θ1不小于預(yù)設(shè)角度變化值θ0,則使所述角度變化計數(shù)n2清零,并判斷下一單位時間的所述當(dāng)前角度變化值θ1是否小于所述預(yù)設(shè)角度變化值θ0??梢岳斫獾兀羧我粏挝粫r間的當(dāng)前角度變化值θ1不小于所述預(yù)設(shè)角度變化值θ0,則其不可能在第二預(yù)設(shè)時間Δt2內(nèi)的當(dāng)前角度變化值θ1均小于預(yù)設(shè)角度變化值θ0,故使所述角度變化計數(shù)n2清零,并判斷下一單位時間的所述當(dāng)前角度變化值θ1是否小于所述預(yù)設(shè)角度變化值θ0。
S266:若角度變化計數(shù)n2不大于第二計數(shù)閾值N2,則判斷下一單位時間的當(dāng)前角度變化值θ1是否小于預(yù)設(shè)角度變化值θ0??梢岳斫獾兀恍枋菇嵌茸兓嫈?shù)n2大于第二計數(shù)閾值N2,即可認(rèn)定第二預(yù)設(shè)時間Δt2內(nèi)的當(dāng)前角度變化值θ1均小于預(yù)設(shè)角度變化值θ0。因此,若角度變化計數(shù)n2不大于第二計數(shù)閾值N2,則判斷下一單位時間的當(dāng)前角度變化值θ1是否小于預(yù)設(shè)角度變化值θ0。
S27:若當(dāng)前角度變化值θ1在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0,則舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài)。當(dāng)前角度變化值θ1在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0,則說明舵機(jī)在第二預(yù)設(shè)時間Δt2內(nèi)前后N2個單位時間內(nèi)的當(dāng)前角度變化值θ1均小于預(yù)設(shè)角度變化值θ0,舵機(jī)齒輪的角度處于較穩(wěn)定的狀態(tài),此時恢復(fù)舵機(jī)的輸出力矩,使舵機(jī)進(jìn)入強(qiáng)鎖位狀態(tài),有利于保證舵機(jī)的正常工作??梢岳斫獾?,若當(dāng)前角度變化值θ1在第二預(yù)設(shè)時間Δt2內(nèi)沒有均小于預(yù)設(shè)角度變化值θ0,則繼續(xù)執(zhí)行步驟S26。
S28:將第二預(yù)設(shè)時間Δt2內(nèi)最后一個當(dāng)前角度值更新為最新鎖位目標(biāo)值α0。在下一單位時間t1采集到的當(dāng)前角度值β1并計算當(dāng)前角度偏移值ε1時,以當(dāng)前角度值β1與更新后的最新鎖位目標(biāo)值α0的差值的絕對值作為當(dāng)前角度偏移值ε1。
可以理解地,當(dāng)舵機(jī)處于弱鎖位狀態(tài)時,若當(dāng)前角度變化值θ1在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0,則舵機(jī)由弱鎖位狀態(tài)進(jìn)入強(qiáng)鎖位狀態(tài),并將第二預(yù)設(shè)時間Δt2內(nèi)最后一個當(dāng)前角度值更新為最新鎖位目標(biāo)值,以使舵機(jī)實現(xiàn)由弱鎖位狀態(tài)到強(qiáng)鎖位狀態(tài)的靈活轉(zhuǎn)換,使舵機(jī)的控制方式更簡單靈活。
本實施例所提供的舵機(jī)鎖位控制方法,可通過外力使得舵機(jī)的當(dāng)前角度偏移值ε1在第一預(yù)設(shè)時間Δt1內(nèi)均大于預(yù)設(shè)角度偏移值ε0,即可使得舵機(jī)在強(qiáng)鎖位狀態(tài)下進(jìn)入弱鎖位狀態(tài);若當(dāng)前角度變化值θ1在第二預(yù)設(shè)時間Δt2內(nèi)均小于預(yù)設(shè)角度變化值θ0,則進(jìn)入強(qiáng)鎖位狀態(tài)。該舵機(jī)鎖位控制方法可通過外力控制舵機(jī)的當(dāng)前角度值的變化以實現(xiàn)對舵機(jī)齒輪的強(qiáng)鎖位狀態(tài)和弱鎖位狀態(tài)的轉(zhuǎn)換控制,控制方式簡單靈活,使得舵機(jī)更容易滿足其使用需求。
實施例3
本實施例公開一種采用實施例1或?qū)嵤├?中的舵機(jī)鎖位控制方法的舵機(jī)。該舵機(jī)包括主控電路、伺服電機(jī)、角度傳感器、減速齒輪和輸出軸,角度傳感器采集輸出角度信息,主控電路執(zhí)行實施例1或2中的舵機(jī)鎖位控制方法控制伺服電機(jī)轉(zhuǎn)動,通過減速齒輪和輸出軸輸出。該舵機(jī)中的主控電路執(zhí)行舵機(jī)鎖位控制方法,可對舵機(jī)齒輪的強(qiáng)鎖位狀態(tài)和弱鎖位狀態(tài)的轉(zhuǎn)換控制,控制方式簡單靈活,使得舵機(jī)更容易滿足其使用需求。
本發(fā)明是通過上述具體實施例進(jìn)行說明的,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,在不脫離本發(fā)明范圍的情況下,還可以對本發(fā)明進(jìn)行各種變換和等同替代。另外,針對特定情形或具體情況,可以對本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具體實施例,而應(yīng)當(dāng)包括落入本發(fā)明權(quán)利要求范圍內(nèi)的全部實施方式。