基于DSP的欠驅(qū)動體操機器人的搖起控制設(shè)計
根據(jù)拉格朗日運動方程式可推導(dǎo)出三關(guān)節(jié)機器人的動力學(xué)模型:本文引用地址:http://www.ex-cimer.com/article/163867.htm
τ為系統(tǒng)的廣義外力,體操機器人在運動過程中的總能量為:
Ki,Pi分別為第f個關(guān)節(jié)(手臂、軀干、腿)的動能和勢能。
在整個搖起過程,為保證能量不斷增加須滿足,能量的導(dǎo)數(shù)必須滿足如下條件:
根據(jù)文獻的研究結(jié)果:利用M(q)一C(q,q)為反對稱矩陣,有:
顯然,為滿足能量不斷增加的不等式條件,搖起控制轉(zhuǎn)矩可選擇為:
式中sgn()為取符號函數(shù),Ni為附加力。
實驗證明采用正弦和斜坡函數(shù),此算法位于基于能量搖起模塊void swing_up()中,這些數(shù)據(jù)分別從運.動控制器的2、1通道輸入,需說明的是,在對體操機器人系統(tǒng)進行數(shù)學(xué)建模時已明確,體操機器人系統(tǒng)是一個力控設(shè)備,根據(jù)牛頓第二定律,力與加速度成正比,因此給系統(tǒng)施加的控制量就是加速度,而速度則是一個事先設(shè)定的較大數(shù)值,在控制過程中,一般不會達到這個速度值。這樣保證產(chǎn)生的附加力隨能量的增加而減小,可搖起體操機器人到倒立平衡位置。
4 控制系統(tǒng)軟件設(shè)計
實施控制時,主要是控制軟件的編寫與控制其參數(shù)的調(diào)節(jié)。由于體操機器人控制系統(tǒng)的實時性要求較高,控制軟件必須滿足實時性的要求,本系統(tǒng)控制周期為6ms。控制軟件必須在準(zhǔn)確的控制周期內(nèi)完成數(shù)據(jù)采樣,處理并且發(fā)出控制信號給運動控制器。
首先由上位PC機設(shè)置好控制參數(shù),系統(tǒng)開始運行并完成初始化工作。底層控制器對各轉(zhuǎn)動關(guān)節(jié)進行位置采樣,同時接收來自上位PC機的控制指令,并把兩者結(jié)合在一起進行分析,通過編寫進去的控制算法生成相應(yīng)的轉(zhuǎn)矩控制信號,經(jīng)功率放大后送給執(zhí)行電機,同時把各關(guān)節(jié)的運動信息上傳給PC機,如此反復(fù),完成整個閉環(huán)運動控制。
下位機控制器上電后主程序進行控制器初始化操作、禁止看門狗、設(shè)置關(guān)鍵寄存器、設(shè)置中斷向量和中斷寄存器、初始化事件管理器、基于能量搖起、進行實時控制模塊等。其中實時控制模塊中用到ADSP2181可編程定時器,它能夠產(chǎn)生周期性的定時中斷,定時間隔是處理器時鐘周期的整數(shù)倍。當(dāng)定時器被使能后,一個16位的計數(shù)寄存器TCOUNT每隔m個周期就會減1,其初始化程序如下:
void init_interrupt()
{disable0;∥關(guān)閉中斷(在初始化中斷過程中嚴(yán)禁產(chǎn)生中斷)
outportb(0x43,0x36);//寫中斷控制字
outportb(0x40,0xf6);∥寫數(shù)據(jù)寄存器:0x40為數(shù)據(jù)寄存器內(nèi)存映射地址
outportb(0x40,0xlb);∥數(shù)據(jù)為16位時鐘細分比率,先寫入低字節(jié)0xf6,后寫入高字節(jié)0xlb
oldhandler=getvect(INTR);∥保存原有的中斷服務(wù)程序句柄
setvect(INTR,handler);//設(shè)置新的中斷服務(wù)程序句柄
enable();∥打開中斷}
上述中斷初始化代碼創(chuàng)建一個6毫秒的定時器中斷,即當(dāng)打開中斷后,將每隔6毫秒對體操機器人系統(tǒng)進行一次實時控制。6毫秒的定時時間是通過向數(shù)據(jù)寄存器寫入0x1bf6=7158獲得的。
5 結(jié)語
基于高性能ADSP2181的控制器設(shè)計能夠滿足機器人的搖起控制要求,且由于采用PC+控制器分級控制和模塊化設(shè)計思想,將有利于軟、硬件升級,及大大縮短開發(fā)周期。系統(tǒng)在實驗室進行機器人搖起實驗時,各電機軸運轉(zhuǎn)平穩(wěn),動作協(xié)調(diào)軌跡跟蹤實時性好,機器人沒有出現(xiàn)抖動、喘振等現(xiàn)象。
今后還需要探討更多的搖起與平衡控制策略,完善DSP的控制程序。
伺服電機相關(guān)文章:伺服電機工作原理
pid控制器相關(guān)文章:pid控制器原理
評論