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