基于CAN總線(xiàn)的分布式控制器設計和實(shí)現
以主控制模塊的軟件為例對上述構架進(jìn)行說(shuō)明,如圖5。
每個(gè)任務(wù)獨自運行,將各自的計算數據放入數據通道中,或者從數據通道中獲得相應數據進(jìn)行計算,這樣的構架結構清晰,柔性強。
4 控制器應用實(shí)例
筆者將該控制系統應用于輪系機器人的尋線(xiàn)控制上,即讓機器人跟蹤地面上一定寬度的引導線(xiàn)。
4.1 硬件選擇
根據控制要求,硬件上需要信號輸入模塊,主控模塊和伺服驅動(dòng)模塊。
4.2 傳感器安置和信號輸入模塊
筆者采用光電傳感器,利用不同顏色對于光的反射效果不同的原理,區分出地面的指引線(xiàn),光電傳感器布局如圖6。
機器人采用14個(gè)光電傳感器(數字量),黑色點(diǎn)表示在引導線(xiàn)上為0,白色點(diǎn)表示在引導線(xiàn)外為1,并且通過(guò)光電傳感器間距和引導線(xiàn)寬度之間的關(guān)系,保證最多只有3個(gè)光電傳感器在引導線(xiàn)內,從這樣的一系列邏輯組合就可以知道機器人現在的姿態(tài)。信號輸入模塊中的算法任務(wù)對采集信號做濾波,過(guò)濾誤信號,之后將數據傳輸給信息輸出任務(wù),打包后發(fā)向總線(xiàn)。
4.3 尋線(xiàn)算法和主控模塊
主控模塊的信息接受任務(wù)獲得上述信息后,解包并將相關(guān)的數據扔向數據通道,算法任務(wù)獲得數據進(jìn)行運算。
由圖6可知,7個(gè)光電傳感器和引導線(xiàn)之間有9種狀態(tài),上下兩組狀態(tài)就可以確定目前機器人的姿態(tài),其構成一個(gè)9×9的二維矩陣,易知共有81種不同的組合。通過(guò)這個(gè)二維矩陣可獲得機器人現在的狀態(tài),用左極偏、左大偏、左中偏、左小偏、正常、右小偏、右中偏、右大偏和右極偏九種狀態(tài)來(lái)表示,對應整數-4~+4。
給出機器人尋線(xiàn)控制PID表達式:
其中ΔVk是第k時(shí)刻需要的左右輪速度差,即在總線(xiàn)上傳輸的電機速度參數;e表示偏移狀態(tài)和正常狀態(tài)之間的差,在這里就是狀態(tài)所對應的整數;kp,kI,kD分別為比例、積分和微分常數。
算法任務(wù)將ΔVk扔到數據通道中,由信息輸出任務(wù)將其打包后發(fā)送給CAN總線(xiàn)。
4.4 輸出驅動(dòng)和伺服驅動(dòng)模塊
該模塊接收到ΔVk之后采用“均分原理”,把差速均分增加在左右輪電機上,即:
VL和VR分別為左右輪的輸出轉速,Vm為無(wú)偏移情況下的左右輪輸出。
算法任務(wù)將VL和VR變?yōu)榉螸M629的參數格式之后發(fā)送到數據通道,信息輸出任務(wù)獲得該數據之后直接對LM629進(jìn)行驅動(dòng)。
整個(gè)基于CAN總線(xiàn)多任務(wù)構架的控制系統信息流圖如圖7所示。
CAN總線(xiàn)在多任務(wù)操作系統的構架下可以看成是透明的,模塊之間的通訊可以簡(jiǎn)單地看成各個(gè)任務(wù)之間的通訊,做到了各個(gè)模塊之間的無(wú)縫連接。在用該控制器進(jìn)行機電系統設計時(shí),設計者的注意力只需要放在各模塊的算法任務(wù)部分。本系統可以很好地滿(mǎn)足在校生科技創(chuàng )新的需求,方便學(xué)生構架機電系統或者機器人的控制器,讓設計者把更多的精力放在機電控制算法上面。
伺服電機相關(guān)文章:伺服電機工作原理
pid控制器相關(guān)文章:pid控制器原理
評論