STM32的醫(yī)療康復機器人手臂控制系統(tǒng)
摘要:醫(yī)療康復機器人是近年出現(xiàn)的一種新型機器人,主要功能是幫助患者完成各種運動功能恢復訓練。為此提出通過STM32微控制器控制無刷直流電機來控制機器手臂的運轉(zhuǎn),并通過Simulink建立PID模型,運用XPC_Target和控制板進行通信,以此得到電機在調(diào)速過程中合適的PID參數(shù),使機器手臂在運轉(zhuǎn)的過程中更加平滑。實際的臨床試驗操作證明,該系統(tǒng)能夠較好地完成手臂的醫(yī)療康復訓練。
本文引用地址:http://cafeforensic.com/article/201808/386548.htm隨著我國逐漸步入老年社會,對各類康復設備的需求日益增大,對性價比高的醫(yī)療康復設備控制系統(tǒng)的需求尤為迫切。基于DSP芯片的成本相對較高、設計復雜、研發(fā)周期長,芯片的尺寸會導致印刷電路板的體積變大。
本文基于STM32微控制器設計的醫(yī)療康復機器人手臂控制系統(tǒng),具有杰出的功耗控制和電機控制的高級定時器,能產(chǎn)生3對可配置并互補輸出的PWM信號。通過在Simulink上建立雙閉環(huán)PID算法模型,得到合適的PID參數(shù)來改變PWM波的占空比,進而精確地實現(xiàn)電機的調(diào)速,保證了機器人手臂運行軌跡平滑,運行速度穩(wěn)定。由于無刷直流電機具有體積小、性能穩(wěn)定等優(yōu)點,其機器手臂尺寸能夠更加符合人體運動學設計理念。
1 總體方案設計
醫(yī)療康復機器人手臂可以模擬日常生活中手臂的一些動作,通過創(chuàng)造虛擬工作環(huán)境實現(xiàn)對手臂各個關節(jié)的運動訓練、肌肉的鍛煉,以及神經(jīng)功能的恢復訓練。以STM32微控制器為控制核心,機器手臂控制總體設計方案如圖1所示。
通過運用IR2130柵極驅(qū)動芯片,對STM32輸出的6路PWM信號進行特殊處理,滿足H橋中IRF3808高功率MOS管工作的需求。
STM32微控制器通過不斷地檢測無刷直流電機中霍爾信號來改變換相時序,以此來控制電機的運轉(zhuǎn)。當電機在堵轉(zhuǎn)的時候會產(chǎn)生大電流,通過ADC對其電流值進行采樣,當其值超過閥值的時候可以停止電機工作,此時IR2130會自動進入自我保護狀態(tài),關斷輸出信號,保證手臂運行的安全。
2 硬件電路設計
2.1 柵極驅(qū)動
柵極驅(qū)動芯片采用的是美國國際整流器公司的IR2130芯片,它具有高電壓、高速度,并有3個獨立的高、低側(cè)功率MOSFET驅(qū)動輸出通道。其輸入和輸出信號時序如圖2所示。其具有過電流保護、欠壓鎖定功能,并能及時關斷6路輸出。在出現(xiàn)異常狀態(tài)時,逆變電路處于關斷狀態(tài),這樣可以保護電機不被燒壞,且具有自我保護功能。
6路輸出信號中的3路具有電平轉(zhuǎn)換功能,因而它既能驅(qū)動橋式電路中低壓側(cè)的功率器件,又能驅(qū)動高壓側(cè)的功率元件。如圖3所示,將STM32輸出驅(qū)動H橋的3對互補PWM信號提高至能夠驅(qū)動MOSFET開關電壓電平。
1片IR2130可取代3片IR2110,且僅需要一個輸入級電源,就能夠自動產(chǎn)生成上、下側(cè)驅(qū)動所必需的死區(qū),時間為2.5μs,并得到更好的控制性能。
2.2 H橋功率電路
高功率場效應管可以輸出高電壓。逆變電路主要由6個大功率場效應管IRF3808組成,如圖4所示。每個場效應管都并聯(lián)了反接的快速恢復二極管,具有保護和續(xù)流的作用。對于24 V電壓的電機,場效應管的VDS至少需要40 V電壓,而漏極電流必須足夠高,以應對電機啟動電流。由于軟件中實現(xiàn)的軟加速機制(小幅提升至所需速度),啟動電流可以進一步降低。
2. 3 電流檢測電路
運用一個0.01 Ω的電流檢測電阻或者是一段蛇形地線,經(jīng)過電機和MOSFET的電流全都從它那里經(jīng)過并流向地。如圖5所示,經(jīng)過電機的總電流經(jīng)過這個小阻值的電阻而流向地,這個電流檢測電阻的阻值很小,但如果電流夠大的時候,會在其兩端產(chǎn)生一個小的電壓,經(jīng)過RC形成的一階低通濾波電路可以濾去一些偶爾產(chǎn)生的瞬時高頻分量。其截止頻率可以由RC的具體值算出。最后可以把其接入STM32的ADC通道進行電流采集。
2.4 電機轉(zhuǎn)矩
對電機來說,機器人手臂在運轉(zhuǎn)時是處于負載狀態(tài)下運行,所以要有足夠的轉(zhuǎn)矩以保證手臂運行正常。跟速度控制一樣,轉(zhuǎn)矩也由通過定子線圈的電流大小決定。最大轉(zhuǎn)矩、定子和轉(zhuǎn)子磁場之間的角度,應保持在90°。梯形換相如圖6所示,控制分辨率為60°,定子和轉(zhuǎn)子磁場間的角度在-30?!?30。的范圍內(nèi),這會產(chǎn)生轉(zhuǎn)矩脈動。
電流檢測過程中的RC低通濾波器可以濾除流入電機的高頻瞬時脈沖,并改善電機轉(zhuǎn)矩特性。在改變運轉(zhuǎn)方向的時候,為了得到比較大的轉(zhuǎn)矩選擇直接改變運轉(zhuǎn)方向,不會選用運行一停止一反向運行的方式來進行機器人手臂方向的改變。這樣可防止機器人手臂在轉(zhuǎn)向時候出現(xiàn)抖動現(xiàn)象,也防止了再次啟動的時候啟動電流過大,容易出現(xiàn)堵轉(zhuǎn)現(xiàn)象,對硬件電路和電機都會造成損害。
3 軟件設計
3.1 μC/OS—II操作系統(tǒng)
為了讓軟件架構(gòu)更加穩(wěn)定清晰,運用一個可固化、可裁剪的、占先式多任務實時操作系統(tǒng)μC/OS—II。它是基于優(yōu)先級調(diào)度的搶占式的實時內(nèi)核,并在這個內(nèi)核之上提供最基本的系統(tǒng)服務,如信號量、郵箱、消息隊列、內(nèi)存管理、中斷管理等。
在μC/OS-II嵌入式操作系統(tǒng)上,對無刷直流電機中霍爾信號的捕捉中斷、上位機通信中斷、ADC采集中斷、PID速度調(diào)節(jié)中斷的優(yōu)先級進行分配,并且通過創(chuàng)建醫(yī)療康復手臂運轉(zhuǎn)方向、啟動、停止、上位機通信、PID調(diào)節(jié)等任務使軟件運行上更加模塊化。任務與任務之間通過郵箱、消息隊列等傳遞信息,并且可以相互掛起和啟動相應任務,使任務之間能夠協(xié)調(diào)的工作、軟件架構(gòu)更清晰。
3.2 電機速度測量和六步換相
無刷直流電機的實際轉(zhuǎn)速可通過測量霍爾傳感器信號得到。在電機轉(zhuǎn)動過程中,通過120°分布在電機中的3個霍爾傳感器可以得到如圖7所示的3路周期信號。
電機每轉(zhuǎn)一圈,每個霍爾傳感器產(chǎn)生2個周期的方波信號,且其周期與電機轉(zhuǎn)速成反比。其結(jié)構(gòu)比在外圍添加編碼器更加方便靈活。
STM32微控制器的定時器具有檢測霍爾信號的端口,通過定時器對檢測到的3路霍爾信號進行異或處理,當其能捕捉到上升沿時觸發(fā)一次中斷請求,在中斷中記錄產(chǎn)生此次中斷需要的時間,并進行定時器清零??刂屏鞒滩僮魅鐖D8所示,通過幾次中斷時間求取平均值,把得到的時間平均值轉(zhuǎn)化成電機運行的速度值。通過檢測到的3個翟爾傳感器的高低電平值來進行電機6步換相時序,能夠使無刷直流電機按時序要求進行運轉(zhuǎn)。
3.3 電機PID算法
由于人體手臂和機器手臂結(jié)構(gòu)都有重量,在電機運行的時候?qū)⑹艿狡溆绊?,導致電機運行速度不斷變化,不利于機器手臂的穩(wěn)定運行,因此需要把測量到的速度值和設定的速度值進行雙閉環(huán)PID運算,使電機運轉(zhuǎn)速度一直保持設定的速度值。如圖9所示,電機的PID算法是運用改變相電壓脈寬調(diào)制(PWM)波的占空比來實現(xiàn),通過增大或減小占空比,每個換相步驟會有部分電流流過定子線圈,這會影響定子磁場和磁通密度,從而改變轉(zhuǎn)子和定子的之間的力。
通過得到無刷直流電機速度的設定值(上位機設置)和實際檢測到的電機轉(zhuǎn)速值之間的差值,使其經(jīng)過速度PID控制環(huán)和電流PID控制環(huán)進行PID調(diào)節(jié)來改變STM32輸出驅(qū)動電機運轉(zhuǎn)信號的PWM波的占空比,機器手臂能夠平滑和穩(wěn)定地運行。
4 PID模型設計
運用MathWorks公司開發(fā)的基于RTW體系框架的實時目標系統(tǒng)XPC_Target建模,其提供了一種低廉成本、性能較高的可便捷實時應用的系統(tǒng)。采用宿主機+目標機的技術(shù)實現(xiàn)途徑,即“雙機”模式。宿主機和目標機可以是不同類型的計算機,兩者之間通過以太網(wǎng)實現(xiàn)通信。其實現(xiàn)模型如圖10所示。
根據(jù)工作原理,其實現(xiàn)分為如下步驟:
(1)用U盤創(chuàng)建DOS目標啟動盤
啟動盤有FDD、HDD和ZIP三種模式,在制作的過程中根據(jù)目標機支持的模式選擇。通過選用XPC_Target的嵌入式選項來制作目標啟動盤。通過U盤來調(diào)用和啟動XPC_Target的實時內(nèi)核,可以使每次系統(tǒng)啟動后自動運行目標應用程序。
(2)Simulink模型建立
在宿主機的Simulink上通過添加各個驅(qū)動模塊建立電機調(diào)速過程中電流環(huán)、速度環(huán)的PID模型和下位機的串口通信模塊,然后用RTW代碼生成器和C編譯器來生成可執(zhí)行代碼,在目標機上進行實時運行。
(3)信號采集過程
通過XPC_Target實時內(nèi)核將目標應用程序的信號數(shù)據(jù)存儲在目標機的RAM中,并且在目標機的顯示界面上對信號進行監(jiān)視、記錄、跟蹤,并且繪制出圖像。當下位機通過串口發(fā)送速度測量值給目標機上運行的通過Simulink中建立的PID模型生成的可執(zhí)行代碼時,通過可執(zhí)行代碼程序進行速度調(diào)節(jié),把其調(diào)節(jié)后的數(shù)據(jù)通過目標機發(fā)送給下位機,從而改變驅(qū)動電機運轉(zhuǎn)信號的PWM波占空比。當其速度測量值能夠穩(wěn)定到速度設定值的時候,Simulink中設置的 PID參數(shù)就是所需要的速度調(diào)節(jié)的PID參數(shù)值。否則,需要改變Simulink中建立的PID參數(shù)模型。
結(jié)語
本文提出了基于STM32微控制器的醫(yī)療康復機器人手臂的控制系統(tǒng)。目前,本系統(tǒng)的樣機已經(jīng)進行了臨床試驗,并得到很好的試驗效果。試驗中的機器人手臂有 3個自由度,能實現(xiàn)肩關節(jié)、肘關節(jié)等的訓練。通過使用IR2130柵極驅(qū)動芯片,板子尺寸、系統(tǒng)穩(wěn)定性和設計靈活性都得到改善。在Simulink上設計 PID參數(shù)模型,通過STM32微控制器驅(qū)動板驅(qū)動無刷直流電機,在末端帶動訓練者的手臂分別在水平面和垂直平面的固定軌跡訓練,并且把采集的運行軌跡、速度圖像,以及預先設置的手臂運行軌跡和速度圖像進行對比和觀察,機器手臂運行平滑,PID參數(shù)穩(wěn)定,進一步增強了系統(tǒng)的穩(wěn)定性和靈活性。
- STM32單片機中文官網(wǎng)
- STM32單片機官方開發(fā)工具
- STM32單片機參考設計
評論