本發(fā)明屬于編碼器,更具體地,涉及一種具有絕對(duì)式編碼器的伺服電機(jī)驅(qū)動(dòng)方向判斷方法及設(shè)備。
背景技術(shù):
1、絕對(duì)式編碼器:編碼器是對(duì)旋轉(zhuǎn)角度及線性位移位置編碼的傳感器。檢測(cè)旋轉(zhuǎn)角度的編碼器稱(chēng)為旋轉(zhuǎn)編碼器,而檢測(cè)線性位移的編碼器稱(chēng)為線性編碼器。編碼器按檢測(cè)方法分為機(jī)械式(接觸式)、廣電式、磁性式、電感式。編碼器有兩種方式檢測(cè)位移與位置信息:相對(duì)位置檢測(cè)和絕對(duì)位置檢測(cè)。檢測(cè)從一個(gè)位置到下一個(gè)位置的移動(dòng)量稱(chēng)為相對(duì)式編碼器。直接檢測(cè)距離起始位置有多遠(yuǎn)的編碼器稱(chēng)為絕對(duì)式編碼器。絕對(duì)式編碼器斷電后重新啟動(dòng),可以檢測(cè)到重新啟動(dòng)時(shí)的位置。在絕對(duì)式編碼器中有兩種輸出方式,一種是將二進(jìn)制碼作為數(shù)字信號(hào)輸出;另一種是將二進(jìn)制碼轉(zhuǎn)換為模擬電壓并輸出。此外,對(duì)于數(shù)字信號(hào)也是有兩種輸出方式的,一種是并行輸出,通過(guò)多個(gè)信號(hào)線從多個(gè)狹縫中得到的二進(jìn)制代碼原樣輸出;另一種是串行輸出,使用一個(gè)信號(hào)線傳輸,同時(shí)將并行輸出的多個(gè)信號(hào)轉(zhuǎn)換為串行數(shù)據(jù),并隨時(shí)間順序依次傳輸。
2、伺服電機(jī)是伺服機(jī)構(gòu)中使用的電機(jī),為了精確控制電機(jī)的旋轉(zhuǎn)角度,部分伺服電機(jī)通過(guò)絕對(duì)式編碼器檢測(cè)位置。伺服控制器根據(jù)當(dāng)前編碼位置及目標(biāo)編碼位置判斷電機(jī)驅(qū)動(dòng)的方向。編碼器可以不直接檢測(cè)電機(jī)位置而是通過(guò)檢測(cè)與電機(jī)輸出端連接的具有固定傳動(dòng)比的傳動(dòng)機(jī)構(gòu)位置間接檢測(cè)電機(jī)位置。如圖4所示,在絕對(duì)式編碼器精度較低,即位置編碼較少時(shí),可以通過(guò)嵌套式判斷語(yǔ)句實(shí)現(xiàn),例如若存在3個(gè)位置編碼依次為x、y和z,從x到z為正轉(zhuǎn),從z到x為反轉(zhuǎn),通常使用下列方法實(shí)現(xiàn)驅(qū)動(dòng)方向的判斷:首先判斷目標(biāo)位置編碼是否為x,是則判斷當(dāng)前位置編碼是否為y,是則反轉(zhuǎn),否則判斷當(dāng)前位置編碼是否為z,是則反轉(zhuǎn),否則退出;若目標(biāo)位置編碼不為x,則判斷目標(biāo)位置編碼是否為y,是則判斷當(dāng)前位置編碼是否為x,是則正轉(zhuǎn),否則判斷當(dāng)前位置編碼是否為z,是則反轉(zhuǎn),否則退出;若目標(biāo)位置編碼不為y,則判斷目標(biāo)位置編碼是否為z,是則判斷當(dāng)前位置編碼是否為x,是則正轉(zhuǎn),否則判斷當(dāng)前位置編碼是否為y,是則正轉(zhuǎn),否則退。
3、上述方法在編碼值數(shù)量為n時(shí),最多將進(jìn)行超過(guò)n^2次判斷,才可獲得當(dāng)前電機(jī)驅(qū)動(dòng)的方向。在編碼器精度較高時(shí),即編碼位置較多時(shí),代碼量將急劇增加。如某電機(jī)絕對(duì)式位置編碼器具有30個(gè)位置編碼值,如按上述方法,獲得當(dāng)前電機(jī)驅(qū)動(dòng)方向最多可能需要進(jìn)行超過(guò)900次判斷。該方法耗費(fèi)時(shí)間長(zhǎng),代碼量大,在控制系統(tǒng)中對(duì)內(nèi)存的占用也更大。對(duì)于控制芯片的性能要求更高。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種具有絕對(duì)式編碼器的伺服電機(jī)驅(qū)動(dòng)方向判斷方法及設(shè)備,其能夠以較少的步驟實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)方向的判斷,在編碼值數(shù)量為n時(shí),最多進(jìn)行約2n次判斷,可以減少控制系統(tǒng)中的代碼量及運(yùn)算次數(shù),縮短計(jì)算時(shí)間,減少對(duì)于伺服控制器控制芯片性能要求。
2、為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提出了一種具有絕對(duì)式編碼器的伺服電機(jī)驅(qū)動(dòng)方向判斷方法,包括以下步驟:
3、步驟一,將絕對(duì)式位置編碼器編碼值按照其實(shí)際順序依次排列存入一維編碼數(shù)組中;
4、步驟二,獲取當(dāng)前編碼值及目標(biāo)編碼值,判斷當(dāng)前編碼值是否合法,若前編碼值合法,若合法,進(jìn)入步驟三,否者結(jié)束判斷;
5、步驟三,分別計(jì)算當(dāng)前編碼值及目標(biāo)編碼值在編碼數(shù)組的位置;
6、步驟四,判斷當(dāng)前編碼值在編碼數(shù)組中所處的位置與目標(biāo)編碼值在編碼數(shù)組中的所處的位置,若當(dāng)前編碼值在編碼數(shù)組中所處的位置大于目標(biāo)編碼值在編碼數(shù)組中的所處的位置,則伺服電機(jī)驅(qū)動(dòng)方向?yàn)榉崔D(zhuǎn),結(jié)束判斷,輸出判斷結(jié)果,若當(dāng)前編碼值在編碼數(shù)組中所處的位置小于目標(biāo)編碼值在編碼數(shù)組中的所處的位置,則伺服電機(jī)驅(qū)動(dòng)方向?yàn)檎D(zhuǎn),結(jié)束判斷。
7、作為進(jìn)一步優(yōu)選的,步驟一中,編碼數(shù)組中,每個(gè)編碼值都有唯一一個(gè)位置索引與其對(duì)應(yīng),并且相鄰編碼值位置差值為固定的值。
8、作為進(jìn)一步優(yōu)選的,步驟一中,當(dāng)前編碼值根據(jù)絕對(duì)式編碼器輸出方式通過(guò)不同的采樣電路實(shí)現(xiàn)采集,目標(biāo)編碼值根據(jù)伺服控制器控制需求,從伺服控制器外部或內(nèi)部獲取。
9、作為進(jìn)一步優(yōu)選的,所述判斷當(dāng)前編碼值是否合法包括:
10、將當(dāng)前編碼值與編碼值數(shù)組中每一個(gè)編碼值進(jìn)行對(duì)比,若當(dāng)前編碼值與編碼值數(shù)組中的某一個(gè)編碼值相等,則當(dāng)前編碼值合法,若當(dāng)前編碼值與編碼值數(shù)組中的任何一個(gè)編碼值不相等則當(dāng)前編碼值非法。
11、作為進(jìn)一步優(yōu)選的,所述計(jì)算當(dāng)前編碼值在編碼數(shù)組的位置包括:
12、(1)獲取編碼值數(shù)組中相鄰編碼值位置的差值;
13、(2)將計(jì)數(shù)器的初始值設(shè)置為編碼值數(shù)組的第一個(gè)編碼值的位置索引;
14、(3)將當(dāng)前編碼值與編碼值數(shù)組中所述計(jì)數(shù)器作為位置索引對(duì)應(yīng)的編碼值進(jìn)行對(duì)比;
15、(4)若相等,則當(dāng)前編碼值在編碼值數(shù)組中的位置為該計(jì)數(shù)器值,退出計(jì)算,否則,計(jì)數(shù)器在自身基礎(chǔ)上增加一個(gè)所述差值,并將該值作為新的計(jì)數(shù)器值;
16、(5)重復(fù)上述步驟(3)和(4),直至退出計(jì)算,輸出當(dāng)前編碼值在編碼數(shù)組的位置。
17、作為進(jìn)一步優(yōu)選的,所述計(jì)算目標(biāo)編碼值在編碼數(shù)組的位置包括:
18、(1)獲取編碼值數(shù)組中相鄰編碼值位置的差值;
19、(2)將計(jì)數(shù)器的初始值設(shè)置為編碼值數(shù)組的第一個(gè)編碼值的位置索引;
20、(3)將目標(biāo)編碼值與編碼值數(shù)組中所述計(jì)數(shù)器作為位置索引對(duì)應(yīng)的編碼值進(jìn)行對(duì)比;
21、(4)若相等,則目標(biāo)編碼值在編碼值數(shù)組中的位置為該計(jì)數(shù)器值,退出計(jì)算,否則,計(jì)數(shù)器在自身基礎(chǔ)上增加一個(gè)所述差值,并將該值作為新的計(jì)數(shù)器值;
22、(5)重復(fù)上述步驟(3)和(4),直至退出計(jì)算,輸出目標(biāo)編碼值在編碼分?jǐn)?shù)組的位置。
23、作為進(jìn)一步優(yōu)選的,步驟四中,設(shè)定伺服電機(jī)驅(qū)動(dòng)方向?yàn)檎D(zhuǎn)時(shí),將導(dǎo)致當(dāng)前編碼值在編碼數(shù)組中的位置索引增大,伺服電機(jī)驅(qū)動(dòng)方向?yàn)榉崔D(zhuǎn)時(shí),將導(dǎo)致當(dāng)前編碼值在編碼數(shù)組中的位置索引減小。
24、按照本發(fā)明的另一個(gè)方面,還提供了一種具有絕對(duì)式編碼器的伺服電機(jī)驅(qū)動(dòng)方向判斷系統(tǒng),包括:
25、第一主控模塊,用于將絕對(duì)式位置編碼器編碼值按照其實(shí)際順序依次排列存入一維編碼數(shù)組中;
26、第二主控模塊,用于獲取當(dāng)前編碼值及目標(biāo)編碼值,判斷當(dāng)前編碼值是否合法性,并將判斷結(jié)果傳輸給第三主控模塊;
27、第三主控模塊,用于在當(dāng)前編碼值合法時(shí),分別計(jì)算當(dāng)前編碼值及目標(biāo)編碼值在編碼數(shù)組的位置;
28、第四主控模塊,用于判斷當(dāng)前編碼值在編碼數(shù)組中所處的位置與目標(biāo)編碼值在編碼數(shù)組中的所處的位置,若當(dāng)前編碼值在編碼數(shù)組中所處的位置大于目標(biāo)編碼值在編碼數(shù)組中的所處的位置,則伺服電機(jī)驅(qū)動(dòng)方為反轉(zhuǎn),結(jié)束判斷,輸出判斷結(jié)果,若當(dāng)前編碼值在編碼數(shù)組中所處的位置小于目標(biāo)編碼值在編碼數(shù)組中的所處的位置,則伺服電機(jī)驅(qū)動(dòng)方為正轉(zhuǎn),結(jié)束判斷。
29、按照本發(fā)明的另一個(gè)方面,還提供了一種電子設(shè)備,包括:
30、至少一個(gè)處理器、至少一個(gè)存儲(chǔ)器和通信接口;其中,
31、所述處理器、存儲(chǔ)器和通信接口相互間進(jìn)行通信;
32、所述存儲(chǔ)器存儲(chǔ)有可被所述處理器執(zhí)行的程序指令,所述處理器調(diào)用所述程序指令,以執(zhí)行上述任意實(shí)施例或者多個(gè)實(shí)施例組合的一種具有絕對(duì)式編碼器的伺服電機(jī)驅(qū)動(dòng)方向判斷方法。
33、按照本發(fā)明的另一個(gè)方面,還提供了一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,所述計(jì)算機(jī)指令使所述計(jì)算機(jī)執(zhí)行上述任意實(shí)施例或者多個(gè)實(shí)施例組合的一種具有絕對(duì)式編碼器的伺服電機(jī)驅(qū)動(dòng)方向判斷方法。
34、總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,主要具備以下的技術(shù)優(yōu)點(diǎn):
35、1.本發(fā)明通過(guò)簡(jiǎn)化伺服電機(jī)驅(qū)動(dòng)方向的判斷流程,減少了控制系統(tǒng)中的代碼量和運(yùn)算次數(shù),在編碼值數(shù)量為n時(shí),最多進(jìn)行約2n次判斷。這種優(yōu)化不僅縮短了計(jì)算時(shí)間,還提高了伺服電機(jī)對(duì)控制指令的響應(yīng)速度,從而實(shí)現(xiàn)了更加精確和迅速的位置控制,這對(duì)于需要快速且精確定位的應(yīng)用場(chǎng)景尤為重要。
36、2.本發(fā)明減少了計(jì)算量和代碼復(fù)雜性,相應(yīng)地降低了對(duì)伺服控制器控制芯片性能的要求。即使是性能較低的控制芯片也能夠?qū)崿F(xiàn)高效的電機(jī)驅(qū)動(dòng)方向判斷,從而降低了系統(tǒng)成本,使得高性能伺服電機(jī)控制系統(tǒng)更加經(jīng)濟(jì)實(shí)惠,易于普及。
37、3.本發(fā)明通過(guò)將編碼值存入一維數(shù)組并采用簡(jiǎn)單的計(jì)數(shù)器方法來(lái)確定編碼值的位置,減少了可能由于復(fù)雜算法導(dǎo)致的錯(cuò)誤。簡(jiǎn)化的邏輯流程降低了系統(tǒng)出錯(cuò)的概率,增強(qiáng)了伺服電機(jī)控制系統(tǒng)的可靠性和穩(wěn)定性。