金振華,王京華,韓愛(ài)民,成志新,陳劍英,李尚賓,孫謙
(山東省藥學(xué)科學(xué)院,濟(jì)南 250101)
當(dāng)今中國(guó)隨著老齡化的加劇,越來(lái)越多的人因?yàn)槟X卒中等疾病導(dǎo)致下肢運(yùn)動(dòng)障礙。研究表明,下肢運(yùn)動(dòng)障礙患者能夠通過(guò)積極的康復(fù)訓(xùn)練獲得較好的治療效果[1-4]。
傳統(tǒng)的康復(fù)訓(xùn)練治療的方法存在一些不足,傳統(tǒng)康復(fù)訓(xùn)練通常由康復(fù)醫(yī)師進(jìn)行按摩和訓(xùn)練的方式來(lái)治療,患者增多造成康復(fù)醫(yī)師的數(shù)量短缺,并且按摩治療作為一種高強(qiáng)度治療方式,對(duì)醫(yī)師的精力及體力均具有較大的挑戰(zhàn),康復(fù)訓(xùn)練受到醫(yī)師主觀條件的制約和限制,治療中的運(yùn)動(dòng)參數(shù)無(wú)法準(zhǔn)確反饋及控制等一系列問(wèn)題[5-9]。
目前國(guó)內(nèi)外在此領(lǐng)域進(jìn)行了諸多研究,如蘇黎世Balgrist醫(yī)學(xué)骨髓康復(fù)中心研制的LOKOMAT康復(fù)機(jī)器人,通過(guò)機(jī)電設(shè)備輔助患者進(jìn)行行走訓(xùn)練[10];南洋理工大學(xué)設(shè)計(jì)的BWSLT步行訓(xùn)練設(shè)備,通過(guò)為患者進(jìn)行步行訓(xùn)練讓患者恢復(fù)運(yùn)動(dòng)能力[11]等一系列的運(yùn)動(dòng)康復(fù)訓(xùn)練設(shè)備;國(guó)內(nèi)研究有浙江大學(xué)設(shè)計(jì)的用于康復(fù)治療下肢外骨骼輔助行走機(jī)構(gòu)[12],哈爾濱工程大學(xué)研制的助行機(jī)器人等[13]。
針對(duì)下肢運(yùn)動(dòng)障礙患者的康復(fù)訓(xùn)練的需求,我們?cè)O(shè)計(jì)了一套下肢智能康復(fù)訓(xùn)練系統(tǒng)。通過(guò)借助計(jì)算機(jī)技術(shù)和自動(dòng)控制理論,利用單片機(jī)來(lái)控制伺服電機(jī)系統(tǒng),帶動(dòng)行走機(jī)構(gòu)模擬正常人體的行走運(yùn)動(dòng),實(shí)現(xiàn)對(duì)患者進(jìn)行科學(xué)有效的下肢康復(fù)訓(xùn)練治療。
本系統(tǒng)通過(guò)單片機(jī)控制兩臺(tái)伺服電機(jī)分別獨(dú)立控制左右雙腿,在訓(xùn)練過(guò)程中兩臺(tái)伺服電機(jī)進(jìn)行相反方向的運(yùn)動(dòng),并設(shè)定起始位置和終點(diǎn)位置,分別在起始位置和終點(diǎn)位置間不間斷循環(huán)往復(fù),并且運(yùn)動(dòng)方向相反,來(lái)實(shí)現(xiàn)分別控制雙腿交替向前和向后運(yùn)動(dòng),實(shí)現(xiàn)模擬人體正常步行的功能。訓(xùn)練中的時(shí)間、速度參數(shù)以及開(kāi)始和結(jié)束訓(xùn)練由上位機(jī)設(shè)置,通過(guò)上位機(jī)按下開(kāi)始按鈕,命令便傳導(dǎo)給下位機(jī)開(kāi)始按照設(shè)定的速度和時(shí)間,控制兩臺(tái)伺服電機(jī)開(kāi)始按照交替向前和向后的方式帶動(dòng)雙腿開(kāi)始運(yùn)動(dòng),當(dāng)?shù)竭_(dá)設(shè)定的時(shí)間便停止運(yùn)動(dòng)。以此方式來(lái)實(shí)現(xiàn)對(duì)下肢運(yùn)動(dòng)功能障礙患者進(jìn)行行走康復(fù)訓(xùn)練。
下肢智能訓(xùn)練系統(tǒng)分為上位機(jī)系統(tǒng)和下位機(jī)系統(tǒng)兩部分,上位機(jī)用來(lái)設(shè)定治療時(shí)間、速度及痙攣靈敏度等治療參數(shù),開(kāi)始及結(jié)束治療,記錄患者資料數(shù)據(jù)庫(kù)及儲(chǔ)存治療記錄等,并通過(guò)與下位機(jī)進(jìn)行通信來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)控制,包含人機(jī)交互界面模塊、通信模塊、控制模塊和數(shù)據(jù)庫(kù)系統(tǒng)模塊;下位機(jī)通過(guò)接收上位機(jī)傳來(lái)的控制參數(shù)及控制命令,來(lái)驅(qū)動(dòng)伺服控制系統(tǒng)進(jìn)行運(yùn)動(dòng),并實(shí)時(shí)讀取傳感器反饋數(shù)據(jù)來(lái)實(shí)現(xiàn)閉環(huán)控制,并將運(yùn)動(dòng)數(shù)據(jù)實(shí)時(shí)反饋上位機(jī),以及通過(guò)急停按鈕使系統(tǒng)緊急停止。包括核心控制模塊、伺服控制模塊、電源模塊、傳感器模塊和緊急停止模塊等,系統(tǒng)的總體結(jié)構(gòu)圖見(jiàn)圖1。
圖1下肢智能訓(xùn)練系統(tǒng)總體結(jié)構(gòu)圖
Fig1Theoverallstructureoflegsintelligenttrainingsystem
下位機(jī)系統(tǒng)硬件主要為單片機(jī)核心控制模塊、伺服驅(qū)動(dòng)模塊、A/D信號(hào)采集模塊、緊急停止模塊等部分。下位機(jī)硬件電路編輯采用Altium Designer軟件工具進(jìn)行繪制,下位機(jī)軟件采用ICCAVR環(huán)境下C語(yǔ)言進(jìn)行編寫(xiě)。核心控制芯片采用ATmega16單片機(jī),來(lái)實(shí)現(xiàn)對(duì)下位機(jī)系統(tǒng)的核心控制功能,實(shí)現(xiàn)AD數(shù)據(jù)采集、驅(qū)動(dòng)伺服控制器以及控制算法實(shí)現(xiàn)等功能,是整個(gè)下位機(jī)系統(tǒng)的核心[14]。伺服驅(qū)動(dòng)模塊是單片機(jī)對(duì)伺服驅(qū)動(dòng)器的控制電路,通過(guò)給伺服控制器脈沖信號(hào)及其他驅(qū)動(dòng)信號(hào)來(lái)驅(qū)動(dòng)伺服電機(jī)進(jìn)行運(yùn)動(dòng)[15]。
伺服電機(jī)系統(tǒng)采用松下A5系列伺服電機(jī)作為動(dòng)力系統(tǒng),可滿足高精度、高性能的系統(tǒng)動(dòng)力需求。其中,伺服電機(jī)控制系統(tǒng)是采用位置控制模式下,通過(guò)給伺服控制器一定頻率的脈沖來(lái)驅(qū)動(dòng)伺服電機(jī)轉(zhuǎn)動(dòng),然后由伺服電機(jī)帶動(dòng)行走機(jī)構(gòu)進(jìn)行運(yùn)動(dòng)治療。
通過(guò)AVR單片機(jī)T1定時(shí)器工作在CTC模式下,并將AVR單片機(jī)引腳OC1A和OC1B設(shè)定為信號(hào)輸出模式,便可在單片機(jī)引腳OC1A和OC1B分別產(chǎn)生方波脈沖信號(hào)輸出作為伺服電機(jī)脈沖控制信號(hào),通過(guò)調(diào)整T1定時(shí)器的寄存器參數(shù)可調(diào)整脈沖頻率大小,來(lái)調(diào)節(jié)伺服電機(jī)速度,并通過(guò)AVR單片機(jī)PB1和PB2端口的高低信號(hào)來(lái)分別控制左右腿伺服電機(jī)運(yùn)動(dòng)方向。此時(shí),將伺服電機(jī)工作方式設(shè)置為位置模式,PULS引腳和SIGN引腳分別接收單片機(jī)發(fā)來(lái)的脈沖信號(hào)和方向信號(hào),脈沖PULS信號(hào)和方向SIGN信號(hào)分別控制伺服電機(jī)的運(yùn)動(dòng)速度和運(yùn)動(dòng)正反向來(lái)控制伺服電機(jī)的運(yùn)動(dòng)。
A/D(模擬/數(shù)字信號(hào)轉(zhuǎn)換)信號(hào)采集模塊采用AVR單片機(jī)自身攜帶的A/D寄存器,A/D通過(guò)角度傳感器獲取左右雙腿運(yùn)動(dòng)的角度位置信號(hào),通過(guò)角度位置信息來(lái)判斷雙腿當(dāng)前運(yùn)動(dòng)位置,判斷是否運(yùn)動(dòng)到指定的角度位置,如判斷已到達(dá)指定起終點(diǎn)位置,便驅(qū)動(dòng)雙腿伺服電機(jī)進(jìn)行反轉(zhuǎn)來(lái)實(shí)現(xiàn)往復(fù)循環(huán)運(yùn)動(dòng)。A/D模塊通過(guò)運(yùn)算放大器對(duì)信號(hào)進(jìn)行濾波并放大來(lái)實(shí)現(xiàn)對(duì)傳感器信號(hào)的采集,并將采集到的信號(hào)送入單片機(jī)進(jìn)行讀取以及進(jìn)一步處理;A/D信號(hào)濾波及放大電路設(shè)計(jì)圖見(jiàn)圖2。
圖2 A/D信號(hào)采集電路
同時(shí)會(huì)不間斷檢測(cè)系統(tǒng)急停狀態(tài),患者按下緊急停止按鈕,便會(huì)觸發(fā)一個(gè)低電平信號(hào),此信號(hào)與AVR單片機(jī)外部中斷引腳INT0連接,當(dāng)AVR單片機(jī)檢測(cè)到該信號(hào)時(shí),便會(huì)自動(dòng)觸發(fā)AVR單片機(jī)進(jìn)入外部中斷處理程序,控制伺服電機(jī)停止運(yùn)動(dòng),使系統(tǒng)停止運(yùn)動(dòng)。
下位機(jī)啟動(dòng)后,就將等待接收上位機(jī)傳來(lái)的控制參數(shù)及控制命令,當(dāng)下位機(jī)檢測(cè)到上位機(jī)傳來(lái)的數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行處理,按照上位機(jī)設(shè)定的參數(shù)及控制命令向伺服驅(qū)動(dòng)器發(fā)出控制命令。同時(shí)開(kāi)始讀取角度傳感器數(shù)值,對(duì)當(dāng)前運(yùn)動(dòng)角度進(jìn)行檢測(cè),來(lái)與系統(tǒng)設(shè)定值作對(duì)比,將差值根據(jù)PID(比例-積分-微分控制器)控制算法計(jì)算輸出控制量,精確控制伺服驅(qū)動(dòng)器按照上位機(jī)設(shè)定的參數(shù)進(jìn)行治療。
伺服系統(tǒng)采用閉環(huán)負(fù)反饋控制方式,通過(guò)數(shù)字PID增量型控制算法來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)行走機(jī)構(gòu)運(yùn)動(dòng)的精確控制。數(shù)字PID增量控制算法是在PID控制算法的基礎(chǔ)上經(jīng)過(guò)離散化得到的,便于微處理器計(jì)算的一種控制算法,本系統(tǒng)數(shù)字增量型PID控制器控制框圖見(jiàn)圖3[16]。
圖3系統(tǒng)數(shù)字增量型PID控制器結(jié)構(gòu)圖
Fig3SystemdigitalincrementalPIDcontrollerstructure
PID控制器算法的微分方程為:
其中e(t)=r(t)-c(t)
將其離散化為數(shù)字PID控制算法表達(dá)式為:
為便于微處理器進(jìn)行計(jì)算,采用數(shù)字增量式PID控制算法進(jìn)行計(jì)算,數(shù)字增量型PID控制器運(yùn)算方程為:
Δu(n)=u(n)-u(n-1)
將系統(tǒng)運(yùn)動(dòng)設(shè)定運(yùn)動(dòng)角度值r(t)與系統(tǒng)經(jīng)傳感器反饋回來(lái)的實(shí)際角度值c(t)進(jìn)行求差,得出系統(tǒng)運(yùn)動(dòng)的角度偏差值e(t),然后通過(guò)PID控制算法進(jìn)行計(jì)算求出需要對(duì)伺服系統(tǒng)給出的控制量Δu(n)大小,來(lái)控制伺服電機(jī)帶動(dòng)行走機(jī)構(gòu),以實(shí)現(xiàn)對(duì)系統(tǒng)精確的運(yùn)動(dòng)控制。
上位機(jī)由人機(jī)交互界面、通信模塊、控制模塊以及患者數(shù)據(jù)庫(kù)系統(tǒng)組成。上位機(jī)軟件采用Visual Basic語(yǔ)言進(jìn)行編寫(xiě),編程環(huán)境采用微軟Visual Studio。人機(jī)交互界面用來(lái)實(shí)現(xiàn)用戶與計(jì)算機(jī)之間數(shù)據(jù)交互的目的,用戶可以在上位機(jī)軟件界面上設(shè)置治療參數(shù),操作開(kāi)始治療及結(jié)束治療,以及查看治療記錄等功能。
用戶通過(guò)點(diǎn)擊軟件界面上的上下箭頭按鈕,調(diào)整設(shè)定左右腿運(yùn)動(dòng)的角度范圍,并通過(guò)調(diào)整界面上的左右箭頭調(diào)整運(yùn)動(dòng)速度和治療時(shí)間參數(shù)。當(dāng)這些參數(shù)設(shè)定完成后,通過(guò)點(diǎn)擊“開(kāi)始”按鈕,開(kāi)始治療。此時(shí),用戶設(shè)定的“活動(dòng)范圍”“速度”“治療時(shí)間”等參數(shù)以及開(kāi)始命令參數(shù)將通過(guò)通信模塊傳遞給下位機(jī),上位機(jī)與下位機(jī)之間通信采用232串行總線通信協(xié)議實(shí)現(xiàn),上述數(shù)據(jù)及命令將會(huì)轉(zhuǎn)換成十六進(jìn)制數(shù)據(jù)并組織為一個(gè)隊(duì)列按字節(jié)傳遞給單片機(jī),當(dāng)這些數(shù)據(jù)到達(dá)單片機(jī)時(shí),單片機(jī)便會(huì)觸發(fā)串行數(shù)據(jù)接收中斷,將這些數(shù)據(jù)按照統(tǒng)一協(xié)議重新轉(zhuǎn)換為相應(yīng)數(shù)據(jù)和命令,并按照相應(yīng)的數(shù)據(jù)和命令驅(qū)動(dòng)伺服電機(jī)開(kāi)始工作。同時(shí)單片機(jī)啟動(dòng)定時(shí)器進(jìn)行計(jì)時(shí),當(dāng)治療時(shí)間到達(dá)設(shè)定的時(shí)間之后,同樣會(huì)將一個(gè)結(jié)束命令傳遞給上位機(jī),上位機(jī)接收到結(jié)束的信號(hào)時(shí),便結(jié)束治療過(guò)程。
本系統(tǒng)攜帶患者數(shù)據(jù)庫(kù)系統(tǒng),數(shù)據(jù)庫(kù)采用微軟Access數(shù)據(jù)庫(kù)系統(tǒng),通過(guò)Visual Basic中的(active data objects data base,ADODB)對(duì)象實(shí)現(xiàn)建立數(shù)據(jù)庫(kù)的連接、存儲(chǔ)和讀取工作,用戶可以在患者信息界面將患者信息錄入各關(guān)鍵字段作為一條記錄錄入數(shù)據(jù)庫(kù),同時(shí)每次治療,系統(tǒng)都會(huì)將此時(shí)的患者信息和治療參數(shù)作為一條記錄進(jìn)行自動(dòng)存儲(chǔ),作為患者治療記錄進(jìn)行備案。系統(tǒng)界面見(jiàn)圖4。
圖4 上位機(jī)程序控制界面圖
Fig4Hostcomputerprogramcontrolinterfacediagram
在上位機(jī)界面上用戶可以對(duì)痙攣靈敏度進(jìn)行設(shè)置,設(shè)置是數(shù)據(jù)會(huì)通過(guò)232串行總線傳遞給下位機(jī),下位機(jī)通過(guò)檢測(cè)伺服電機(jī)反饋的力矩參數(shù),來(lái)判斷患者是否出現(xiàn)痙攣,當(dāng)力矩參數(shù)超過(guò)正常范圍一定比例時(shí),系統(tǒng)便判斷患者出現(xiàn)痙攣,此時(shí)便會(huì)結(jié)束治療。
本研究針對(duì)下肢運(yùn)動(dòng)功能障礙患者康復(fù)訓(xùn)練需求,通過(guò)結(jié)合計(jì)算機(jī)和單片機(jī)技術(shù),利用伺服控制系統(tǒng)設(shè)計(jì)了一種下肢智能訓(xùn)練系統(tǒng)。給出了系統(tǒng)的整體模塊結(jié)構(gòu)圖,并對(duì)系統(tǒng)下位機(jī)軟件和硬件及上位機(jī)軟件進(jìn)行了詳細(xì)分析。相對(duì)于目前傳統(tǒng)治療及其他類似產(chǎn)品,本系統(tǒng)極大的減輕了醫(yī)療人員的工作強(qiáng)度,簡(jiǎn)潔易用的界面更便于患者操作,通過(guò)計(jì)算機(jī)及PID控制算法提高了伺服系統(tǒng)控制精確度,并且通過(guò)自動(dòng)痙攣檢測(cè)功能有效的保護(hù)了患者不受傷害,通過(guò)數(shù)據(jù)庫(kù)有效存儲(chǔ)了患者治療數(shù)據(jù)作為后續(xù)治療參照。經(jīng)過(guò)實(shí)驗(yàn),本系統(tǒng)對(duì)于下肢運(yùn)動(dòng)障礙患者具有較好的訓(xùn)練效果,滿足了對(duì)患者進(jìn)行精確康復(fù)訓(xùn)練治療的需求。