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