国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32多維腰椎牽引裝置控制系統(tǒng)設(shè)計與實(shí)現(xiàn)

2022-05-05 07:22杜妍辰喻洪流
智能計算機(jī)與應(yīng)用 2022年3期
關(guān)鍵詞:編碼器報文線程

杜妍辰,周 琦,喻洪流

(1上海理工大學(xué) 健康科學(xué)與工程學(xué)院,上海 200093;2上海理工大學(xué) 康復(fù)工程與技術(shù)研究所,上海 200093)

0 引 言

腰椎牽引作為椎間盤突出癥的治療方法,是治療背痛和腿痛患者的常見方式。根據(jù)腰椎牽引原理,已有大量牽引設(shè)備出現(xiàn)在市面上。如:機(jī)械式牽引床、電動式牽引床、自重式牽引床等。但是,該類設(shè)備普遍存在牽引維度單一,牽引力不足的劣勢,由于運(yùn)動維度的限制,無法實(shí)現(xiàn)手法牽引。為解決這些問題,本設(shè)備實(shí)現(xiàn)了多維的牽引,包括成角牽引、擺角牽引、旋角牽引和手法牽引。另外,用液壓驅(qū)動代替?zhèn)鹘y(tǒng)的電機(jī)驅(qū)動,能方便地實(shí)現(xiàn)無級調(diào)速,而且輸出推力轉(zhuǎn)矩更大。

本文基于STM32F103ZET6芯片,針對多維腰椎牽引裝置,設(shè)計了相關(guān)牽引裝置的控制系統(tǒng)。該系統(tǒng)由軟硬件兩部分組成。底層硬件包括RS485通訊電路、液壓電磁閥控制電路、液壓調(diào)節(jié)電路以及傳感器信號變送電路。軟件方面采用RT-THREAD實(shí)時操作系統(tǒng),以及多線程架構(gòu)。為了提高控制精度,系統(tǒng)中包含多個傳感器,實(shí)時提供位置信號和拉壓力數(shù)據(jù),形成閉環(huán)控制。另外,還配備了移動端上位機(jī),通過WIFI與設(shè)備通訊,實(shí)現(xiàn)無線操作。

1 硬件設(shè)計

系統(tǒng)控制主板主要由電源模塊、液壓電磁閥控制模塊、通訊模塊、傳感器采集模塊和液壓調(diào)節(jié)模塊構(gòu)成,其結(jié)構(gòu)如圖1所示。

1.1 單片機(jī)選型

STM32F103ZET6單片機(jī),是32位基于Arm的Cortex-M3微控制器,具有全面的外設(shè)選擇。該芯片同時保持完全集成和易于開發(fā)兩種特點(diǎn),其MCU的最大系統(tǒng)時鐘可達(dá)72 MHz,可在外圍搭建IO控制電路、模擬量采集電路以及RS485通訊電路,能夠滿足本系統(tǒng)的設(shè)計需求。而且該單片機(jī)引腳數(shù)充足,體積小,既能夠滿足功能又能夠減小控制主板的整體大小,其具有強(qiáng)大的實(shí)時功能,也可對數(shù)字信號進(jìn)行相關(guān)處理。

圖1 控制主板結(jié)構(gòu)圖Fig.1 Control board structure diagram

1.2 RS485通訊電路設(shè)計

RS485(TIA-485(-A)/EIA-485)采用2線通訊,允許半雙工數(shù)據(jù)傳輸,數(shù)據(jù)可以在兩個方向上一次向一個方向往返于設(shè)備;RS485能夠在長距離和電噪聲環(huán)境中有效使用。

設(shè)計中采用MAX485芯片,搭建了能夠自收發(fā)的RS485電路,如圖2所示。本電路能夠最小化EMI,減少不良終端對電路產(chǎn)生的干擾,其傳輸頻率最高可達(dá)2.5 Mbps。

1.3 液壓控制電路設(shè)計

控制系統(tǒng)液壓調(diào)節(jié)模塊中使用了24 V的直流有刷電機(jī),作為壓力調(diào)節(jié)電機(jī)。通過對電機(jī)的控制,改變內(nèi)部閥口的開合大小,控制內(nèi)部壓力,進(jìn)而控制運(yùn)動速度。

圖2 RS485電路原理圖Fig.2 RS485 circuit schematic diagram

該模塊基于全集成、大電流半橋BTS7970,設(shè)計的電機(jī)驅(qū)動電路如圖3所示。由于p通道高壓側(cè)開關(guān)無需電荷泵,從而將EMI降至最低。集成驅(qū)動IC易于與微控制器接口,具有邏輯電平輸入、電流檢測診斷、轉(zhuǎn)換率調(diào)整、死區(qū)時間生成功能。在過熱、過壓、欠壓、過流和短路的情況下,能夠?qū)﹄娐菲鸬奖Wo(hù)作用。當(dāng)電機(jī)驅(qū)動需要大電流驅(qū)動時選擇BTS7970,能夠優(yōu)化電路、降低電路板空間消耗。

圖3 BTS7970驅(qū)動電路圖Fig.3 BTS7970 driving circuit diagram

另外,電磁閥控制模塊主要實(shí)現(xiàn)對液壓回路中電磁換向閥的控制,從而控制整個設(shè)備的成角、擺角、旋角以及牽引運(yùn)動。電路中主要采用ULN2803達(dá)靈頓晶體管陣列,每一對達(dá)林頓集的電極電流額定值為500 ma,足以驅(qū)動30 ma繼電器。達(dá)林頓(復(fù)合)管原理如圖4所示。其中,COM端是為了連接感性負(fù)載時所需續(xù)流而用;鉗位二極管具有電路保護(hù)作用。

圖4 達(dá)林頓(復(fù)合)管原理圖Fig.4 Darlington(composite)tube schematic diagram

1.4 傳感器采集模塊

系統(tǒng)所用傳感器包括光電式編碼器和拉壓力傳感器。其中,光電式編碼器主要用于檢測設(shè)備進(jìn)行成角、擺角和旋角運(yùn)動時的位置信息,從而實(shí)現(xiàn)對運(yùn)動位置的精準(zhǔn)控制;拉壓力傳感器用于觀察牽引過程中牽引力的變化情況?;诶瓑毫鞲衅鞯姆答佇畔?,可以實(shí)現(xiàn)牽引力的閉環(huán)控制。

光電式編碼器利用的是光電轉(zhuǎn)換原理,通過內(nèi)部光電傳感器產(chǎn)生電信號,輸出3組方波脈沖。其中,A、B相輸出脈沖相位之間相差90°,脈沖的先后可以用于判斷旋轉(zhuǎn)方向,Z相脈沖的一個周期對應(yīng)電機(jī)旋轉(zhuǎn)一圈。STM32內(nèi)部自帶通用定時器的編碼器模式,可以直接連接編碼器,對其輸出脈沖計數(shù),從而直接獲取旋轉(zhuǎn)角度值。

由于拉壓力傳感器的輸出形式為電壓差分信號,單片機(jī)無法通過內(nèi)部AD轉(zhuǎn)換直接讀取信號值,因此需要相關(guān)的儀表放大電路進(jìn)行信號處理。INA128芯片是常用的儀表放大器芯片,能夠保護(hù)輸入電路,具有輸入緩沖放大器,起到差動放大作用。使用INA128芯片時,不需要對輸入阻抗進(jìn)行特意匹配,放大倍數(shù)可以根據(jù)公式(1)計算,使其放大器特別適用于測量和測試設(shè)備。

其中,為放大倍數(shù),為外部增益設(shè)置電阻器,控制實(shí)際放大倍數(shù),具體電路如圖5所示。

圖5 INA128儀表放大器電路圖Fig.5 INA128 instrumentation amplifier circuit diagram

2 軟件設(shè)計

2.1 RS485通訊程序設(shè)計

控制系統(tǒng)使用RS485,通過WIFI串口服務(wù)器連接,實(shí)現(xiàn)與上位機(jī)的無線通訊。對RS485通訊的相關(guān)基礎(chǔ)配置在程序初始化中完成,保證通訊的正常啟動。通訊初始化包括單片機(jī)對應(yīng)引腳的配置、內(nèi)部時鐘使能、相關(guān)標(biāo)志位設(shè)置、接收中斷優(yōu)先級以及RS485的工作模式設(shè)置。RS485正常工作模式下,波特率為115200,采用自擬的通訊協(xié)議格式。

RS485處于接收狀態(tài)時,先在中斷函數(shù)內(nèi)完成上位機(jī)下發(fā)的指令報文接收,并驗(yàn)證報文是否符合正常報文格式。符合則進(jìn)入報文解析函數(shù),對報文進(jìn)行解析,其中包括頭幀、ID號、功能碼、數(shù)據(jù)幀以及16位的CRC校驗(yàn);否則返回錯誤報文信息。當(dāng)RS485處于發(fā)送狀態(tài)時,會對數(shù)據(jù)信息進(jìn)行打包處理,報文格式與接收報文格式相同。協(xié)議格式見表1。

表1 通訊協(xié)議表Tab.1 Communication protocol table

2.2 位置反饋液壓控制方案

根據(jù)輸入指令,確定設(shè)備所需要進(jìn)行的動作,通過控制繼電器驅(qū)動電磁閥開合,實(shí)現(xiàn)設(shè)備具體動作(如成角、旋角、擺角等牽引);在動作進(jìn)行過程中,能夠通過編碼器實(shí)時采集位置角度信息,不斷更新實(shí)際位置與預(yù)定位置的誤差值θ,控制運(yùn)動速度,使其能更精準(zhǔn)的到達(dá)設(shè)定角度或是牽引位置。位置控制框架如圖6所示。

圖6 PID控制框圖Fig.6 PID control block diagram

由于PID算法具有簡單實(shí)用、響應(yīng)快、對靜態(tài)誤差有抑制效果等優(yōu)勢,所以采用PID算法進(jìn)行控制器設(shè)計。為了便于程序?qū)崿F(xiàn),將公式離散化??刂破鞯膶?shí)現(xiàn)形式為:

式中,K為比例增益;K為積分時間常數(shù);K為微分時間常數(shù);()是當(dāng)前周期位置偏差;(1)為上周期的位置偏差。

2.3 系統(tǒng)程序工作流程

本控制程序采用RT-Thread實(shí)時操作系統(tǒng),搭建了多線程的架構(gòu)。其中包括:RS485通訊線程、傳感器數(shù)據(jù)采集線程、調(diào)壓電機(jī)控制線程,以及繼電器控制線程。線程之間通過消息隊(duì)列進(jìn)行通信,發(fā)送線程將消息發(fā)送到消息隊(duì)列控制模塊中,從而喚醒被掛起的線程接收并處理消息。

系統(tǒng)啟動后,先對線程初始化并創(chuàng)建消息隊(duì)列。RS485通訊線程最先啟動,保持接收狀態(tài)。當(dāng)接收到上位機(jī)發(fā)來報文時,對報文進(jìn)行處理,提取其中的功能指令和數(shù)據(jù)信息,將其放入消息隊(duì)列;繼電器控制線程獲取功能指令,控制對應(yīng)繼電器;傳感器數(shù)據(jù)采集線程獲取數(shù)據(jù)信息,不斷更新當(dāng)前傳感器的數(shù)據(jù);調(diào)壓電機(jī)控制線程根據(jù)實(shí)時運(yùn)動位置信息變化,對調(diào)壓電機(jī)進(jìn)行控制,調(diào)整系統(tǒng)內(nèi)部壓力,從而控制運(yùn)動速度。系統(tǒng)控制流程如圖7所示。

圖7 系統(tǒng)程序控制流程圖Fig.7 System program control flow chart

3 實(shí)驗(yàn)及結(jié)果分析

控制系統(tǒng)搭建安裝完成后,對整機(jī)進(jìn)行了功能試驗(yàn)。圖8的電路安裝在設(shè)備側(cè)面的門板上,占用極少的設(shè)備內(nèi)部空間。

圖8 控制系統(tǒng)主板和樣機(jī)實(shí)物圖Fig.8 The physical diagram of the control system

在實(shí)驗(yàn)過程中,上位機(jī)發(fā)送指令,控制設(shè)備進(jìn)行成角、擺角、旋角以及牽引動作的實(shí)現(xiàn)。實(shí)時采集編碼器反饋的位置信號,并通過最后停止位置與設(shè)定位置進(jìn)行比較。經(jīng)5次檢測實(shí)驗(yàn),最終結(jié)果數(shù)據(jù)見表2。

由表中數(shù)據(jù)可知,各個角度和牽引動作的誤差基本保持在1%左右,驗(yàn)證了該控制系統(tǒng)能夠準(zhǔn)確控制裝置進(jìn)行三維牽引。另外,也表明控制系統(tǒng)對整體的液壓控制是可行的。

表2 實(shí)驗(yàn)數(shù)據(jù)表Tab.2 Experimental data table

4 結(jié)束語

本文針對多維腰椎牽引裝置,設(shè)計了基于STM32的液壓控制系統(tǒng)。采用RS485實(shí)現(xiàn)了與上位機(jī)的通信,配合電磁閥驅(qū)動電路、液壓調(diào)節(jié)模塊與傳感器采集模塊,構(gòu)成多維腰椎牽引裝置的硬件系統(tǒng)。軟件系統(tǒng)方面,采用了實(shí)時操作系統(tǒng),多線程的程序架構(gòu)??刂破魇褂昧薖ID算法,通過編碼器獲取位置偏差,對內(nèi)部液壓進(jìn)行調(diào)整,提高裝置的精確度。經(jīng)多次實(shí)驗(yàn),驗(yàn)證了控制系統(tǒng)的可行性。

猜你喜歡
編碼器報文線程
基于ResNet18特征編碼器的水稻病蟲害圖像描述生成
實(shí)時操作系統(tǒng)RT?Thread啟動流程剖析
海法新港一期自動化集裝箱碼頭電子數(shù)據(jù)交換報文系統(tǒng)設(shè)計與實(shí)現(xiàn)
基于報文類型的限速值動態(tài)調(diào)整
基于TMS320F28335的絕對式光電編碼器驅(qū)動設(shè)計
用戶設(shè)備進(jìn)行組播路徑追蹤的方法及系統(tǒng)
采用ScheduledThreadPoolExecutor執(zhí)行定時重試任務(wù)時內(nèi)存溢出的分析及解決
Java的多線程技術(shù)探討
具備DV解碼功能的DVD編碼器——數(shù)字視頻刻錄應(yīng)用的理想選擇
明光市| 鄂托克旗| 德保县| 龙川县| 长宁区| 天水市| 常德市| 达孜县| 手游| 南昌市| 平凉市| 卢湾区| 潍坊市| 达孜县| 杭锦旗| 南昌市| 句容市| 安达市| 宁阳县| 东山县| 界首市| 秦安县| 微山县| 鄂伦春自治旗| 宜宾市| 邓州市| 晋州市| 昌宁县| 东乌珠穆沁旗| 静海县| 绥宁县| 长治县| 郧西县| 岳普湖县| 张家界市| 张家港市| 陇川县| 哈密市| 乃东县| 卢氏县| 招远市|