李以聰++戴福全++肖明偉++陳劍枰++陳志偉++吳國安
文章編號:2095-6835(2017)10-0027-02
摘 要:目前,針對協(xié)作機(jī)器人的柔順控制、零力控制問題,提出了一種基于以ST公司的STM32為微控制器的協(xié)作機(jī)器人機(jī)械臂控制系統(tǒng)。該系統(tǒng)采用數(shù)字PID閉環(huán)算法改善機(jī)械臂的柔順運(yùn)動(dòng),增強(qiáng)其穩(wěn)定、可靠性能,并加上力矩傳感器或電流檢測電路感知外界的力矩變換情況,補(bǔ)償機(jī)械臂的自重,實(shí)現(xiàn)零力控制,為機(jī)器人的快速示教奠定基礎(chǔ)。實(shí)驗(yàn)結(jié)果表明,將STM32系列微控制器作為主控制器具有可行性,可以應(yīng)用于協(xié)作機(jī)器人的機(jī)械臂控制系統(tǒng)中,且具有廣闊的應(yīng)用前景,并最終將其運(yùn)用于實(shí)際工業(yè)生產(chǎn)加工中。
關(guān)鍵詞:機(jī)械臂;協(xié)作機(jī)器人;PID;STM32
中圖分類號:TP242 文獻(xiàn)標(biāo)識碼:A DOI:10.15913/j.cnki.kjycx.2017.10.027
一直以來,控制器都是機(jī)器人控制系統(tǒng)的核心,但是,國外相關(guān)產(chǎn)業(yè)公司對我國實(shí)行嚴(yán)厲的保密措施。隨著微處理器行業(yè)的快速發(fā)展,市面上陸續(xù)出現(xiàn)了高性能、高性價(jià)比的32位微處理器,它們的性能能夠滿足機(jī)械臂對控制器的運(yùn)算需求。針對目前協(xié)作機(jī)器人控制系統(tǒng)資源匱乏,價(jià)格昂貴且工作不穩(wěn)定等問題,提出了一種改進(jìn)設(shè)計(jì),以滿足中小企業(yè)對機(jī)械臂的控制需求。在設(shè)計(jì)該控制系統(tǒng)時(shí),首先提出了電機(jī)的硬件驅(qū)動(dòng)電路設(shè)計(jì)方案。主控芯片采用一種抗干擾能力比較強(qiáng)、運(yùn)算速度快、價(jià)格合理的STM32微控制器,相比現(xiàn)在廣泛使用的電機(jī)控制的DSP,STM32成本比較低,自帶能產(chǎn)生電機(jī)控制所必須的PWM輸出的TIM,且外圍電路較為簡單,適用于機(jī)械臂的電機(jī)控制。接著分析機(jī)械臂電機(jī)伺服控制所需要的PID位置環(huán)算法,最后通過實(shí)物樣機(jī)試驗(yàn)機(jī)械臂的運(yùn)動(dòng)柔順度,通過Matlab進(jìn)行電機(jī)旋轉(zhuǎn)位置的數(shù)據(jù)擬合,得出響應(yīng)曲線,并最終證實(shí)了該設(shè)計(jì)方案的可行性。
1 硬件驅(qū)動(dòng)電路設(shè)計(jì)
機(jī)械臂的電機(jī)驅(qū)動(dòng)電路是整個(gè)研究的基礎(chǔ),具有良好的啟動(dòng)和調(diào)速性能,而其穩(wěn)定控制也成了重要的研究對象。
1.1 電機(jī)的選型
本文研究選用的是直流有刷電機(jī)。與無刷直流電機(jī)相比,有刷電機(jī)具有更好的啟動(dòng)和調(diào)速性能以及控制簡單、價(jià)格低廉等特性,常被應(yīng)用于對啟動(dòng)和調(diào)速有較高要求的場合,例如精密機(jī)床和工業(yè)機(jī)器人裝配等場合。
1.2 電機(jī)位置傳感器的選用
編碼器有增量型編碼器和絕對型編碼器2種。增量型編碼器是測量以前一個(gè)時(shí)刻為基點(diǎn)測角的位移增量,它測量的小角度準(zhǔn),測量的大角度則有誤差累計(jì);絕對型編碼器是測量從開始工作后的角位移量,它測量小角度不準(zhǔn),但是,測量的大角度沒有累計(jì)誤差。因?yàn)闄C(jī)械臂轉(zhuǎn)動(dòng)角度不大,所以,取舍后采用增量型編碼器,以減少小角度的測量誤差。
1.3 電機(jī)控制電路設(shè)計(jì)
電機(jī)驅(qū)動(dòng)采用的是H橋電路,選用4個(gè)常見的功率開關(guān)器件MOSFET作為H橋中的4條腿,電機(jī)為H中的橫桿。另外,采用2塊IR2106S作為自舉電路的驅(qū)動(dòng)芯片,提供對2對上下橋臂的開斷控制。由于單片機(jī)輸出的PWM信號功率不足以驅(qū)動(dòng)IR2106S,因此,需配合芯片74ACT244的驅(qū)動(dòng)增強(qiáng)電路,將單片機(jī)輸出信號驅(qū)動(dòng)增強(qiáng)再后引入IR2106S的輸入端。驅(qū)動(dòng)電路如圖1所示。
2 系統(tǒng)軟件算法設(shè)計(jì)
如果硬件作為控制的基礎(chǔ),那么,軟件算法則為控制的核心,控制著機(jī)械臂控制系統(tǒng)的中樞神經(jīng)。機(jī)械臂控制主要包括以下3點(diǎn):①實(shí)時(shí)性。在控制機(jī)械臂時(shí),要想實(shí)現(xiàn)實(shí)時(shí)控制,就需要確保機(jī)械臂數(shù)據(jù)的實(shí)時(shí)性。只有確保設(shè)備的整體實(shí)時(shí)性,才能確保機(jī)械臂不會(huì)出現(xiàn)死區(qū)等故障。②穩(wěn)定性。穩(wěn)定性是判定一個(gè)檢驗(yàn)程序的重要指標(biāo),為了提高其穩(wěn)定性,在設(shè)計(jì)程序的過程中,需要考慮運(yùn)行時(shí)可能出現(xiàn)的不正常問題,并加以解決。③可再開發(fā)性。好的程序軟件不是一次就可以設(shè)計(jì)調(diào)試完成的,需經(jīng)過多次修改后才能達(dá)到系統(tǒng)的設(shè)計(jì)要求。所以,在開發(fā)過程中,要規(guī)范程序設(shè)計(jì)結(jié)構(gòu),以便多次調(diào)試。
系統(tǒng)軟件主要由主程序和中斷子程序構(gòu)成,如圖2所示。為了控制機(jī)械臂電機(jī)和檢測電機(jī)的實(shí)時(shí)位置,主程序主要完成系統(tǒng)初始化和電機(jī)控制參數(shù)初始化,包括配置必要的TIM1的互補(bǔ)PWM輸出和TIM3的電機(jī)編碼器捕獲模式等。中斷服務(wù)子程序主要采用了2個(gè)中斷,即接受電機(jī)控制指令的CAN中斷和TIM2定時(shí)PID運(yùn)算中斷。其中,TIM2定時(shí)中斷是10 ms一次。在主循環(huán)中,等待CAN口接收到控制指令后,進(jìn)入中斷,在中斷子程序中判斷是否符合控制指令協(xié)議,并提取機(jī)械臂相關(guān)的控制量。等待TIM2進(jìn)入中斷后,提取電機(jī)編碼器反饋的位置數(shù)據(jù),進(jìn)行PID運(yùn)算,得出當(dāng)前PWM控制量,將當(dāng)前PWM控制量配置如TIM1后,將控制電機(jī)轉(zhuǎn)到指定位置。
PID控制器是通過比例、積分、微分3個(gè)環(huán)節(jié)的串聯(lián)控制系統(tǒng)偏差的控制器,如圖3所示。STM32作為一個(gè)微控制器,無法直接對偏差做積分、微分,只能通過轉(zhuǎn)換的方法,在一定時(shí)間里處理采集到的數(shù)據(jù),使系統(tǒng)作出響應(yīng),時(shí)間分割得越小,系統(tǒng)響應(yīng)越快,機(jī)械臂控制就越流暢。如果要采用PID算法,只需利用微積分思想,把時(shí)間分割得很小,將當(dāng)前的編碼器位置減去電機(jī)的指定位置做誤差,對誤差求和來代替積分,對當(dāng)前誤差和上一次誤差差分來代替微分。時(shí)間分割得越小,系統(tǒng)響應(yīng)也就越快,電機(jī)超調(diào)量也就越小,機(jī)械臂運(yùn)動(dòng)就會(huì)越流暢。在程序中,利用TIM2產(chǎn)生10 ms定時(shí)中斷,在中斷中做PID運(yùn)算,就相當(dāng)于對時(shí)間進(jìn)行細(xì)化分割,再對各項(xiàng)值乘上相應(yīng)的比例、積分、微分系數(shù)。與此同時(shí),需要對積分和PWM控制量限位,防止過飽和造成系統(tǒng)響應(yīng)滯后。
3 實(shí)驗(yàn)調(diào)試
實(shí)際調(diào)試樣機(jī)為如圖4所示的自由度機(jī)械臂。為了確定PID各個(gè)參數(shù)的取定,取單個(gè)機(jī)械臂系統(tǒng)分析,程序中先給定PID比例系數(shù),積分系數(shù)和微分系數(shù)先取0,在電腦sscom32串口通訊軟件輸入指令后,機(jī)械臂開始運(yùn)動(dòng),最終旋轉(zhuǎn)穩(wěn)定后,保存串口窗口返回的位置信息,導(dǎo)入Matlab進(jìn)行數(shù)據(jù)擬合,得到擬合后的曲線,并適當(dāng)增大比例系數(shù),重復(fù)多次,觀察對比擬合后的曲線,如圖5所示。如果曲線出現(xiàn)超調(diào)量增大,振蕩次數(shù)增加,調(diào)節(jié)時(shí)間增加的情況,就需要適當(dāng)減小比例系數(shù),增大積分系數(shù),從而減小穩(wěn)態(tài)誤差。如果PI控制效果不夠理想,可以適當(dāng)增大微分系數(shù),減小超調(diào)量,以增強(qiáng)系統(tǒng)的穩(wěn)定性。如果結(jié)合比例、積分、微分后,控制效果始終不理想,可以適當(dāng)縮短采樣時(shí)間,也就是TIM2的定時(shí)周期,從而提高響應(yīng)速度。如果最終得到的曲線超調(diào)量不大,震蕩次數(shù)少,則可以確定PID參數(shù)大小。
4 結(jié)論
實(shí)驗(yàn)證明,本文的協(xié)作機(jī)器人機(jī)械臂控制系統(tǒng)設(shè)計(jì)可行,可以滿足中小型協(xié)作機(jī)器人對機(jī)械臂控制的需求,具有控制精準(zhǔn)、動(dòng)作靈活等優(yōu)點(diǎn)。加入力矩傳感器,即可實(shí)時(shí)檢測機(jī)械臂的力矩,實(shí)現(xiàn)對力矩的限制,并可實(shí)現(xiàn)對機(jī)械臂的零力控制。一旦力矩超出了預(yù)設(shè)的力矩值,機(jī)械臂則停止工作,以防誤傷工作人員。在此過程中,仍然存在一些不足需要改進(jìn),主要包括以下2點(diǎn):①算法的完善。對算法的冗余和處理方面仍需改進(jìn),以便后期的參數(shù)調(diào)試,改善機(jī)械臂的運(yùn)作。②電路的簡化。電路板走線布局在滿足功率要求的前提下,需要繼續(xù)簡化,改善電路板工作的穩(wěn)定性。
針對上述問題,相關(guān)工作人員要不斷改進(jìn)和完善,逐漸提高機(jī)械臂的穩(wěn)定性和可靠性。
參考文獻(xiàn)
[1]王直,丁超.基于STM32的自動(dòng)涂裝機(jī)伺服控制系統(tǒng)研究[J].江蘇科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2000(4).
[2]吳紅星.電機(jī)驅(qū)動(dòng)與控制專用集成電路及應(yīng)用[M].北京:中國電力出版社,2006.
[3]王曉明.電動(dòng)機(jī)的單片機(jī)控制[M].第二版.北京:北京航空航天大學(xué)出版社,2007.
[4]崔更申,李傳明,尹鵬,等.基于STM32F4的電機(jī)控制系統(tǒng)設(shè)計(jì)計(jì)算機(jī)測量與控制[J].計(jì)算機(jī)測量與控制,2015,23(10):31.
[5]吳大衛(wèi).基于開放式運(yùn)動(dòng)控制器的數(shù)控系統(tǒng)的硬件設(shè)計(jì)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2006(12).
[6]謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測試[M].第二版.武漢:華中理工大學(xué)出版社,2000.
[7]趙亮亮,馬振書,穆希輝,等.危險(xiǎn)作業(yè)機(jī)器人機(jī)械臂設(shè)計(jì)及其運(yùn)動(dòng)學(xué)分析[J].機(jī)械設(shè)計(jì)與制造,2011(8).
〔編輯:白潔〕