0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以反饋信號控制的步進(jìn)電機(jī)XY平臺選型

西西 ? 來源:博客園 ? 作者:V·Shawn ? 2020-09-10 15:43 ? 次閱讀

1.序言

半年沒寫過博客了,不過這對于我的博客來說似乎是常態(tài)?這半年來忙著做畢業(yè)論文,沒弄什么自己的研究,而實驗室的東西實在是不好泄露出來,所以我也是“雖欲言無可進(jìn)者”了。

上星期趁著論文提交的空擋,把一直拖著的一個小項目開了個頭,其實是朋友有個外快小項目要做,具體內(nèi)容不說,項目的基礎(chǔ)是XY平臺的視覺控制,因此在前期研究中主要要做平臺選型、控制購買、接線研究、模擬實驗等工作,這里記述下來以防忘記,順便也給其他人做個參考。

本次控制通過相機(jī)采集圖像,以此為反饋信號做控制,使平臺上的某個點(diǎn)位移到指定的位置。然后本文寫得更像隨筆形式,內(nèi)容可能有點(diǎn)雜亂,見諒了。

2.平臺選型與硬件接線

2.1 XY平臺選型

項目中需要做到精度較高的位移控制,且承重要求3kg以上,因此XY平臺選型時主要考慮步進(jìn)電機(jī)的XY平臺,淘寶上一搜就是一大片。

從中挑選了一臺二手日本平臺,由于價錢便宜店家不提供技術(shù)支持,接線什么的得自己搞。

2.2 步進(jìn)電機(jī)驅(qū)動

步進(jìn)電機(jī)驅(qū)動不需要購買,我手上有一塊前輩留下來的,正好可以用,同樣沒有任何資料。從其電路板上發(fā)現(xiàn)驅(qū)動芯片是TA8435H,于是查到其引腳功能表。

根據(jù)這個功能表可以確定驅(qū)動上幾個引腳的功能,并用一個四相步進(jìn)電機(jī)測試,發(fā)現(xiàn)驅(qū)動板功能完好。

電機(jī)供電上,考慮到要驅(qū)動兩臺步進(jìn)電機(jī),并獲得足夠的驅(qū)動力,因此我試用了一個12V 4.5A的開關(guān)電源

2.3采集卡

為了使計算機(jī)能夠控制電機(jī)驅(qū)動,這里還需要一個電腦IO卡,我用的依然是以前留下來mc100 USB Card,方便好用還便宜,淘寶上一搜一大把。這個東西IO口波紋比較大,而且沒做好隔離容易燒,不過既然是實驗用,那就將就一下了,實際產(chǎn)品中是肯定不能用這個的。

2.4平臺接線

平臺到貨后檢查發(fā)現(xiàn)電機(jī)型號查不到,只知道是三洋1.5A的步進(jìn)電機(jī),沒辦法只好電機(jī)的線給撥了,用物理方法來測極性。撥開線后發(fā)現(xiàn)步進(jìn)電機(jī)是8相的,于是要測出四組通路,通過萬用表測通,發(fā)現(xiàn)相通的幾根線是這樣的:

紅-綠

藍(lán)-白

黃-棕

黑-灰

為了測出四組線的相性,需要進(jìn)行多次接線測試,并匯總結(jié)果得到下表(只保留了幾組數(shù)據(jù),實際中我為了完全確認(rèn)相性,各種接線組合都測了):

根據(jù)這個表,可以確定最終的接線方法,此處使用的是并聯(lián)接法,連線如下表。

8相步進(jìn)電機(jī)還有另外一種串聯(lián)接法如下圖:

2.5硬件組裝結(jié)果

最后把兩個電機(jī)都接到步進(jìn)電機(jī)驅(qū)動上,USB采集卡插好,XY平臺鎖死,相機(jī)固定。

得到了個凌亂的實驗現(xiàn)場,圖中上面那坨黑的是工業(yè)相機(jī)。

3.平臺控制算法

控制這一塊我已經(jīng)丟了差不多三年了,現(xiàn)在再撿起來發(fā)現(xiàn)PID都不會寫了,再加上步進(jìn)電機(jī)的控制我也沒做過,總之是不好弄啊。

首先極力回憶一下本科時微機(jī)原理課程設(shè)計里做步進(jìn)電機(jī)控制那題是什么做控制的,想起有兩種控制方式,一是控制步進(jìn)電機(jī)的步長,二是控制其步數(shù)。那么這里既然要控制的是位移量,那么控制步數(shù)應(yīng)該是比較好的選擇。但對步進(jìn)電機(jī)來說,每秒走1000步幾乎已經(jīng)是極限了,再快的話電機(jī)扭矩會不夠,而1000步轉(zhuǎn)換到XY平臺上實際也就位移了1cm,所以當(dāng)位移量較大時,控制的滯后環(huán)節(jié)可能會較大。但走幾步就再控制一下也不現(xiàn)實,畢竟相機(jī)的采樣時間擺在那,幾步就采樣控制一下那么控制花費(fèi)的時間可能會較長……

想來想去也沒想到一個最佳的控制方案,總之先用PID控制試試看。

于是搜索增量式PID公式,花十幾分鐘把C++版本的PID控制器寫出來:

然后設(shè)計控制周期為100ms,死區(qū)5個像素,胡亂設(shè)置一下PID參數(shù),只做x方向的平臺控制。結(jié)果…好嘛,不管怎么樣調(diào)試系統(tǒng)震蕩都很嚴(yán)重,大概是這樣子的:

最后我實在是懶得整定PID參數(shù)了,于是重新設(shè)計控制算法。

當(dāng)誤差大于50像素,用PD控制快速移動平臺。

當(dāng)誤差在50像素以內(nèi)時,根據(jù)事先做好的標(biāo)定[注1],查表獲得位移的步長進(jìn)行一次移動。

移動完成后再次檢查還有多少誤差,以1的步長慢慢消除該誤差。

[注1]這里目標(biāo)點(diǎn)的位置是固定的,因此可以實現(xiàn)進(jìn)行多次標(biāo)定,確定圖像上各個坐標(biāo)上的點(diǎn)要位移目標(biāo)點(diǎn)處需要走多少步,但考慮到相機(jī)畸變這個標(biāo)定是無法完全準(zhǔn)確的,因此為盡量減少畸變造成的誤差,位移的目標(biāo)點(diǎn)應(yīng)放在相機(jī)視野中心,且只做該點(diǎn)半徑50像素內(nèi)的點(diǎn)的位移步數(shù)標(biāo)定。

根據(jù)上述控制流程,能夠較為快速地完成控制,控制精度可在0.5像素以內(nèi),具體可以達(dá)到多少由于現(xiàn)在相機(jī)的安裝位置角度都沒定下來,所以我暫時也沒仔細(xì)測了。

4.程序結(jié)構(gòu)設(shè)計

XY平臺涉及到X方向與Y方向的控制,兩個控制是相互獨(dú)立的,因此我采用了兩個線程對它們分別控制,下面是隨手亂畫的結(jié)構(gòu)圖:

程序運(yùn)行后開辟三個線程,其中兩個分別負(fù)責(zé)驅(qū)動兩臺電機(jī),主線程則負(fù)責(zé)計算控制量,該控制量也就是另外兩個控制線程的步數(shù)。

在架構(gòu)上尚未做設(shè)計,但為了提高程序的可拓展性(畢竟實用化后相機(jī)、采集卡都得換),項目內(nèi)的幾個操作類都通過基類設(shè)計好了統(tǒng)一的接口,以方便今后更換硬件。

5.圖像處理算法

這里圖像處理算法偷懶了,采用的是《相機(jī)位姿估計2:[應(yīng)用]實時位姿估計與三維重建相機(jī)姿態(tài)》中跟蹤紅點(diǎn)的方法,原理是差不多的,只是這里改成了追蹤黑點(diǎn)而已,就不詳細(xì)寫了。

實際項目里圖像算法當(dāng)然不會那么簡單,不過這里目前還是一片空白,是下一步的工作重點(diǎn)了。

6.實驗截圖

最后隨便給兩張程序運(yùn)行時的截圖,控制臺坐標(biāo)是當(dāng)前黑點(diǎn)坐標(biāo),控制目標(biāo)是[500,500],u1是x平臺的控制量,u2是y平臺的控制量。

運(yùn)行過程中

兩秒后完成位移,黑點(diǎn)被移動到設(shè)定位置。

完成控制

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    150

    文章

    3090

    瀏覽量

    147280
  • 反饋信號
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8209
收藏 人收藏

    評論

    相關(guān)推薦

    步進(jìn)電機(jī)驅(qū)動器有哪些類型?該如何分類?

    : 基于控制方式的分類 : 開環(huán)驅(qū)動器 :不需要反饋信號,直接根據(jù)輸入的脈沖信號控制電機(jī)
    的頭像 發(fā)表于 10-24 13:35 ?156次閱讀

    步進(jìn)電機(jī)如何自適應(yīng)控制?步進(jìn)電機(jī)如何細(xì)分驅(qū)動控制

    步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的電機(jī),廣泛應(yīng)用于各種自動化控制系統(tǒng)中。為了提高步進(jìn)
    的頭像 發(fā)表于 10-23 10:04 ?254次閱讀

    步進(jìn)電機(jī)如何在加減速過程中控制技術(shù)?

    步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的電機(jī),廣泛應(yīng)用于各種自動化控制系統(tǒng)中。在加減速過程中,
    的頭像 發(fā)表于 10-23 10:02 ?152次閱讀

    步進(jìn)電機(jī)轉(zhuǎn)速怎么控制高低

    步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖
    的頭像 發(fā)表于 10-22 15:55 ?274次閱讀

    步進(jìn)電機(jī)控制技術(shù)及發(fā)展概況有哪些?

    步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換為角位移或線位移的執(zhí)行元件,廣泛應(yīng)用于各種自動化控制系統(tǒng)中。步進(jìn)電機(jī)
    的頭像 發(fā)表于 10-22 11:50 ?156次閱讀

    步進(jìn)電機(jī)控制器電路圖 步進(jìn)電機(jī)控制器的分類及其特點(diǎn)

      步進(jìn)電機(jī)控制器是一種專門用于控制步進(jìn)電機(jī)的設(shè)備,它通過發(fā)出脈沖
    的頭像 發(fā)表于 06-24 17:12 ?2605次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>器電路圖 <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>器的分類及其特點(diǎn)

    什么是步進(jìn)電機(jī)控制器?步進(jìn)電機(jī)控制器電路圖

    步進(jìn)電機(jī)控制器是一種專門用于控制步進(jìn)電機(jī)運(yùn)行的裝置。步進(jìn)
    的頭像 發(fā)表于 06-20 16:14 ?1436次閱讀
    什么是<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>器?<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>器電路圖

    如何正確選擇步進(jìn)電機(jī)驅(qū)動器

    步進(jìn)電機(jī)驅(qū)動器是步進(jìn)電機(jī)系統(tǒng)中的重要組成部分,它負(fù)責(zé)將控制信號轉(zhuǎn)換為
    的頭像 發(fā)表于 06-05 18:04 ?2046次閱讀

    什么是步進(jìn)電機(jī)的細(xì)分控制?步進(jìn)電機(jī)為什么要細(xì)分,如何細(xì)分?

    什么是步進(jìn)電機(jī)的細(xì)分控制?步進(jìn)電機(jī)為什么要細(xì)分,如何細(xì)分? 步進(jìn)
    的頭像 發(fā)表于 02-18 09:39 ?6933次閱讀

    arduino控制步進(jìn)電機(jī)代碼

    Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設(shè)備,包括步進(jìn)電機(jī)。步進(jìn)電機(jī)
    的頭像 發(fā)表于 02-14 16:29 ?1845次閱讀

    步進(jìn)電機(jī)控制器電路圖分享

    步進(jìn)電機(jī)控制器是一種能夠發(fā)出均勻脈沖信號的電子產(chǎn)品,主要用于控制步進(jìn)
    的頭像 發(fā)表于 02-07 17:57 ?4411次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>器電路圖分享

    步進(jìn)電機(jī)控制方法 步進(jìn)電機(jī)和伺服電機(jī)的區(qū)別

    步進(jìn)電機(jī)控制方法 步進(jìn)電機(jī)是一種將電信號轉(zhuǎn)化為機(jī)械轉(zhuǎn)動的電動機(jī),其輸出轉(zhuǎn)角是按照電脈沖
    的頭像 發(fā)表于 01-22 17:18 ?1085次閱讀

    步進(jìn)電機(jī)控制方法 步進(jìn)電機(jī)控制器參數(shù)設(shè)置

    控制,需要使用步進(jìn)電機(jī)控制器。步進(jìn)電機(jī)控制器是一種電
    的頭像 發(fā)表于 01-19 10:50 ?2636次閱讀

    arduino如何驅(qū)動步進(jìn)電機(jī)

    隨著物聯(lián)網(wǎng)的不斷發(fā)展,電機(jī)控制技術(shù)得到了廣泛應(yīng)用,其中步進(jìn)電機(jī)作為一種常見的電機(jī)類型,在各行各業(yè)中得到了廣泛應(yīng)用。而作為一種強(qiáng)大、靈活的開源
    的頭像 發(fā)表于 01-14 16:37 ?3402次閱讀

    步進(jìn)電機(jī)控制方法及需要哪些控制信號

    步進(jìn)電機(jī)是一種將電子信號轉(zhuǎn)化為機(jī)械運(yùn)動的電動機(jī),廣泛應(yīng)用于機(jī)器人、打印機(jī)、數(shù)碼相機(jī)等領(lǐng)域。步進(jìn)電機(jī)由于其精度高、固有扭矩大、容易
    的頭像 發(fā)表于 12-20 11:21 ?3157次閱讀