李以聰++戴福全++肖明偉++陳劍枰++陳志偉++吳國安



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