基于DSP的雙足機(jī)器人運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 系統(tǒng)概述
雙足機(jī)器人每條腿設(shè)有5個(gè)自由度,這樣既可以實(shí)現(xiàn)基本的步行功能,又盡可能的簡(jiǎn)化了控制變量,系統(tǒng)整體結(jié)構(gòu)如圖1所示,L1~L5分別對(duì)應(yīng)左腿髖側(cè)向、髖前向、膝前向、踝前向、踝側(cè)向關(guān)節(jié)電機(jī),R1~R5對(duì)應(yīng)右腿??紤]到成本因素和驅(qū)動(dòng)性能,選用Maxon的EC-max系列三相無刷直流電機(jī)來驅(qū)動(dòng)關(guān)節(jié)活動(dòng),其中1號(hào)和5號(hào)電機(jī)選用EC-max35型,其他均為EC-max30型。受安裝空間所限,每條腿的運(yùn)動(dòng)控制器都為獨(dú)立的個(gè)體,各運(yùn)動(dòng)控制器通過主控計(jì)算機(jī)進(jìn)行協(xié)調(diào)控制并可基于運(yùn)動(dòng)指令單獨(dú)完成動(dòng)作,類似于人類反射弧的原理,減輕主控計(jì)算機(jī)的工作量,加快反應(yīng)速度,主控計(jì)算機(jī)和運(yùn)動(dòng)控制器之間通過CAN總線來傳遞數(shù)據(jù)。
機(jī)器人雙足步行時(shí),主控計(jì)算機(jī)根據(jù)運(yùn)動(dòng)周期向底層運(yùn)動(dòng)控制器發(fā)送運(yùn)行和停止等指令,完成對(duì)行走狀態(tài)的監(jiān)控和數(shù)據(jù)運(yùn)算。單個(gè)運(yùn)動(dòng)控制器由DSP處理和電機(jī)控制兩部分組成:DSP處理電路負(fù)責(zé)與主控計(jì)算機(jī)和傳感器之間交換各類信息、分析接收到的數(shù)據(jù)并運(yùn)算輸出相應(yīng)關(guān)節(jié)電機(jī)的控制信號(hào);電機(jī)控制電路根據(jù)控制信號(hào)驅(qū)動(dòng)相應(yīng)的電機(jī)動(dòng)作,達(dá)到要求的速度和角度,并對(duì)光電編碼器信號(hào)進(jìn)行處理,將執(zhí)行結(jié)果反饋給DSP形成閉環(huán)控制,保證執(zhí)行的精度。
數(shù)據(jù)處理器選用的是TMS320F2812,它擁有基于C/C++高效32位DSP內(nèi)核,提高了運(yùn)算的精度;時(shí)鐘頻率高達(dá)150 MHz,增強(qiáng)了系統(tǒng)的處理能力;集成了128 KB的FLASH存儲(chǔ)器、4 KB的引導(dǎo)ROM、數(shù)學(xué)運(yùn)算表以及2 KB的OTP ROM,改善了芯片應(yīng)用的靈活性;兩個(gè)事件管理器模塊為電機(jī)及功率變換控制提供了良好的控制功能;16通道高性能12位ADC單元提供了兩個(gè)采樣保持電路,可以實(shí)現(xiàn)雙通道信號(hào)同步采樣,適合整個(gè)運(yùn)動(dòng)控制器的開發(fā)需求,其代碼和指令與F24x系列完全兼容,更是保證了項(xiàng)目開發(fā)和產(chǎn)品設(shè)計(jì)的可延續(xù)性。[!--empirenews.page--]
2 電機(jī)調(diào)速原理
系統(tǒng)用PWM波形給出無刷直流電機(jī)的轉(zhuǎn)速信息,即利用電路一周期內(nèi)的占空比變化,達(dá)到平均電壓值的改變,以對(duì)應(yīng)電機(jī)不同的速度值。
在TMS320F2812中可以通過配置定時(shí)周期寄存器的周期值和比較單元的比較值來產(chǎn)生PWM,周期值用于產(chǎn)生PWM波的頻率,比較值用于產(chǎn)生PWM波的脈寬,改變比較值可以改變PWM波的占空比,改變周期值可以改變PWM波的頻率。以事件管理器A為例,單路PWM信號(hào)的產(chǎn)生過程如下:
定時(shí)器1作為產(chǎn)生PWM信號(hào)的時(shí)基,通過控制寄存器T1CON和周期寄存器TlPR設(shè)置時(shí)鐘周期,通過寄存器COMCONA設(shè)置比較單元的各個(gè)參數(shù),產(chǎn)生出三角波信號(hào),在寄存器CMPRl和ACTRA中分別設(shè)置比較值和比較輸出方式,設(shè)定的比較值實(shí)時(shí)與三角波信號(hào)比較,得到相應(yīng)占空比的PWM信號(hào)。將定時(shí)器計(jì)數(shù)器T1CNT設(shè)置為連續(xù)增計(jì)數(shù)方式時(shí),產(chǎn)生非對(duì)稱PWM波形,設(shè)定為連續(xù)增減計(jì)數(shù)方式時(shí),可以得到對(duì)稱的PWM波形。
圖2所示是對(duì)稱PWM波形產(chǎn)生的原理:若PWM輸出為高電平有效,則當(dāng)三角波的當(dāng)前值小于比較值時(shí)輸出為低電平,當(dāng)三角波的當(dāng)前值大于比較值時(shí)輸出為高電平;低電平有效時(shí),則反之。
如果在寄存器DBTCONx中設(shè)置了死區(qū)時(shí)間值,則相應(yīng)事件管理器所有PWM輸出通道使用同一個(gè)死區(qū)值。由于加入了死區(qū),PWM波高電平脈沖的寬度減少了一個(gè)死區(qū)時(shí)間,但是周期沒有變化,所以高有效和低有效的PWM波形的占空比可分別用式(1)和(2)來計(jì)算。
通過調(diào)節(jié)占空比,可以調(diào)節(jié)輸出電壓,用這種無級(jí)連續(xù)調(diào)節(jié)的輸出電壓可以給出速度信息,因此可以通過調(diào)整PWM信號(hào)有效電平的寬度達(dá)到控制轉(zhuǎn)速的目的。
3 硬件設(shè)計(jì)
整個(gè)硬件電路包括DSP芯片TMS320F2812、電源、JTAG仿真接口、通訊、RAM、PWM、A/D、I/O擴(kuò)展、備用端口、電機(jī)驅(qū)動(dòng)和光電信號(hào)處理等模塊,其控制系統(tǒng)結(jié)構(gòu)如圖3所示。
雙足機(jī)器人總電源采用24 V直流電源,為了滿足DSP及外圍電路的需要,需將電源轉(zhuǎn)換成5 V,3.3 V和1.8 V。首先使用DC-DC變換器將24 V轉(zhuǎn)換成5 V,再選用TPS767D318電源轉(zhuǎn)換芯片將5 V轉(zhuǎn)換成1.8 V和3.3 V。該芯片專門針對(duì)DSP設(shè)備提供穩(wěn)壓電源,為雙電源輸出,每路電源的最大輸出電流為1 A,此外該芯片的電壓漂移非常低,在最大輸出電流為1 A的情況下為350 mV,每路輸出還有過熱保護(hù)、復(fù)位和監(jiān)控輸出電壓等功能,能滿足系統(tǒng)對(duì)電源性能的要求。
系統(tǒng)特別留有JTAG接口電路,使控制器可以通過TDS510仿真器連接到計(jì)算機(jī),其仿真信號(hào)采用JTAG標(biāo)準(zhǔn)IEEEll49.1,使用雙列14腳的插座,并將DSP上的EMU0和EMU1上拉連接至Vcc。
TMS320F2812自身集成CAN總線的控制模塊,所以在外圍電路中加入CAN總線收發(fā)器SN65HVD251D即可實(shí)現(xiàn)DSP與CAN總線的通信功能。為了確保在CAN總線傳輸信號(hào)的完整性,設(shè)計(jì)時(shí)在CAN總線的兩根傳輸線之間加上150 Ω的電阻進(jìn)行阻抗匹配,可以提高CAN總線傳輸信號(hào)的精度。
利用XINTF的區(qū)域O和區(qū)域1擴(kuò)展一塊存儲(chǔ)容量為(64K×16)b的RAM存儲(chǔ)器IS61LV6416-10T。其數(shù)據(jù)存取時(shí)間為10 ns,能滿足高速運(yùn)行的需要,工作電壓為3.3 V,與DSP工作電壓一致,無需電平轉(zhuǎn)換電路。
此外,DSP控制系統(tǒng)中的I/0端口電壓絕大部分為3.3 V,而外部信號(hào)一般為5 V,因此需要將外部5 V信號(hào)轉(zhuǎn)換為符合DSP芯片要求的3.3 V信號(hào),系統(tǒng)使用總線驅(qū)動(dòng)器74LVX4245進(jìn)行電平轉(zhuǎn)換。
電機(jī)驅(qū)動(dòng)電路采用全橋驅(qū)動(dòng)三相無刷直流電機(jī)的控制方式,由于要獨(dú)立控制5個(gè)電機(jī),系統(tǒng)需按照前面的原理由DSP事件管理器生成PWM,并用其波形占空比給出轉(zhuǎn)速信息,該信息結(jié)合轉(zhuǎn)向、制動(dòng)等信號(hào)通過控制電路轉(zhuǎn)換后進(jìn)行電機(jī)的調(diào)速,這里使用三相無刷直流電機(jī)控制器MC33035。驅(qū)動(dòng)電機(jī)時(shí),MC33035的輸出信號(hào)施加到三相橋功率電路MPM3003上,決定功率開關(guān)器件開關(guān)頻度及換流器換相時(shí)機(jī),使其產(chǎn)生出供電機(jī)正常運(yùn)行所需的三相方波,根據(jù)速度電壓MC33035可改變底部半橋輸出脈沖寬度,相當(dāng)于改變供給繞組的平均電壓,從而控制轉(zhuǎn)速。[!--empirenews.page--]
4 軟件設(shè)計(jì)
運(yùn)動(dòng)控制系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵是接收到主控計(jì)算機(jī)傳來的運(yùn)動(dòng)控制指令后,電機(jī)是否能夠達(dá)到要求的速度和角度,考慮到整個(gè)系統(tǒng)運(yùn)行過程中不可避免的誤差,特別引入補(bǔ)償算法,實(shí)現(xiàn)速度和位置雙閉環(huán)PID控制,其具體的控制流程如圖4所示。
主控計(jì)算機(jī)根據(jù)步態(tài)規(guī)劃的數(shù)據(jù),發(fā)出運(yùn)動(dòng)指令,生成下一個(gè)運(yùn)動(dòng)周期各個(gè)電機(jī)的轉(zhuǎn)動(dòng)方向和角度等控制參數(shù),運(yùn)動(dòng)控制器接收到新的數(shù)據(jù)之后,PWM控制根據(jù)數(shù)據(jù)計(jì)算出占空比信息并生成相應(yīng)的PWM波,進(jìn)而控制電機(jī)轉(zhuǎn)動(dòng),隨后將電機(jī)光電編碼器傳送回的信號(hào)轉(zhuǎn)換成關(guān)節(jié)位置和速度等信息,補(bǔ)償控制針對(duì)速度和位置誤差采用PID算法進(jìn)行調(diào)節(jié),計(jì)算需要的執(zhí)行量,調(diào)整PWM波形,在每一個(gè)運(yùn)動(dòng)周期內(nèi)使電機(jī)達(dá)到指定的速度,并使運(yùn)動(dòng)中的關(guān)節(jié)電機(jī)能夠克服機(jī)器人重力和外力的影響,保持在設(shè)定的角度。圖5是CCS仿真調(diào)試時(shí),程序運(yùn)行后在指定的擺動(dòng)角度下監(jiān)控到的單關(guān)節(jié)電機(jī)速度跟蹤曲線,其響應(yīng)時(shí)間和穩(wěn)定性基本滿足雙足步行的要求。
5 結(jié)語(yǔ)
介紹了一種基于DSP的無刷直流電機(jī)運(yùn)動(dòng)控制系統(tǒng),在控制方案的具體實(shí)現(xiàn)過程中,根據(jù)機(jī)器人腿部系統(tǒng)的自身特點(diǎn),將控制器圍繞DSP處理和電機(jī)控制電路來分別設(shè)計(jì),這樣既方便設(shè)計(jì)和調(diào)試,又增強(qiáng)了系統(tǒng)的靈活性和擴(kuò)展性。電機(jī)驅(qū)動(dòng)采用速度和位置雙閉環(huán)控制,保證運(yùn)轉(zhuǎn)精度。經(jīng)測(cè)試,系統(tǒng)基本滿足運(yùn)動(dòng)控制的要求,為雙足步行規(guī)劃提供了試驗(yàn)平臺(tái)。