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

?

基于CANopen的制退機(jī)液壓阻力控制方案設(shè)計(jì)

2020-07-07 00:59楊凈宇林志宸潘孝斌
兵器裝備工程學(xué)報(bào) 2020年6期
關(guān)鍵詞:插值編碼器活塞

楊凈宇,林志宸,趙 德,潘孝斌

(南京理工大學(xué) 機(jī)械工程學(xué)院, 南京 210094)

制退機(jī)是火炮反后坐裝置的主要部件,對(duì)反后坐裝置及火炮整體的性能有非常重要的影響。現(xiàn)有的節(jié)制桿式制退機(jī)通過機(jī)械調(diào)節(jié)改變節(jié)制環(huán)上流液孔面積的大小從而調(diào)節(jié)液壓阻力[1],仍然存在不能在相同射角和不同裝藥量的情況下調(diào)節(jié)后坐長(zhǎng)度等缺陷。文中的研究對(duì)象是一種新型閥控式制退機(jī),其優(yōu)勢(shì)在于可根據(jù)不同發(fā)射工況實(shí)現(xiàn)流液孔隙的改變,對(duì)液壓阻力變化規(guī)律進(jìn)行預(yù)先調(diào)節(jié)。為了獲得理想的液壓阻力曲線,在制退機(jī)上應(yīng)用電機(jī)控制技術(shù)以使反后坐裝置能夠按照預(yù)設(shè)的目的對(duì)火炮的后坐阻力進(jìn)行控制[2]。

火炮后坐過程十分短暫,為保證液壓阻力的變化平穩(wěn),流液孔面積的變化必須擁有極高的控制精度、響應(yīng)性和實(shí)時(shí)性。直流伺服電機(jī)利用脈沖精確定位,響應(yīng)時(shí)間短,速度、位置控制具有很高的精確度。CAN現(xiàn)場(chǎng)總線技術(shù)相較傳統(tǒng)的伺服控制技術(shù)而言實(shí)時(shí)性和可靠性更強(qiáng),CANopen協(xié)議是基于CAN總線的應(yīng)用層協(xié)議,因此本文提出了一種基于CANopen協(xié)議的伺服電機(jī)控制方案。

1 新型制退機(jī)工作原理

電機(jī)控制活塞調(diào)節(jié)液壓阻力的原理如圖1所示,將電機(jī)安裝在制退桿的內(nèi)腔,減速器固定在桿內(nèi)并與機(jī)械傳動(dòng)軸相連,傳動(dòng)軸外側(cè)連接動(dòng)活塞,動(dòng)活塞與定活塞上按相同格局布有大小相等的漏口,即流液孔。定活塞上有機(jī)械限位保證兩者錯(cuò)開角度在一定范圍內(nèi)。電機(jī)另一側(cè)經(jīng)套筒向外引線與驅(qū)動(dòng)器、電源和嵌入式微控制器相連接,嵌入式微控制器與上位機(jī)通過串口連接用于接收實(shí)時(shí)數(shù)據(jù)。

工作時(shí)制退桿固定不動(dòng),外側(cè)制退筒受力運(yùn)動(dòng)擠壓工作腔的液體,同時(shí)微控制器接收到觸發(fā)信號(hào),驅(qū)動(dòng)電機(jī)帶動(dòng)傳動(dòng)軸控制動(dòng)活塞上流液孔按照預(yù)設(shè)規(guī)律運(yùn)動(dòng)與定活塞小孔錯(cuò)開一定角度,工作腔中的制退液經(jīng)兩孔錯(cuò)開的縫隙進(jìn)入非工作腔,非工作腔因制退桿抽出而產(chǎn)生真空,形成液壓阻力。

1.動(dòng)活塞;2.定活塞;3.減速器;4.伺服電機(jī);5.活塞筒套;6.活塞定位端蓋;7.傳動(dòng)軸;8.機(jī)械限位;9.流液孔

圖1 制退機(jī)結(jié)構(gòu)示意圖

2 CANopen協(xié)議伺服控制解析

2.1 CANopen設(shè)備模型

CAN現(xiàn)場(chǎng)總線是用于解決工業(yè)現(xiàn)場(chǎng)智能儀器、控制器和執(zhí)行機(jī)構(gòu)之間數(shù)字通信和與控制系統(tǒng)之間傳遞信息問題的一種工業(yè)數(shù)據(jù)總線。在基于CAN總線的工業(yè)自動(dòng)化應(yīng)用中,CANopen協(xié)議為CAN網(wǎng)絡(luò)提供了標(biāo)準(zhǔn)、統(tǒng)一的通訊模式,在應(yīng)用層面為驅(qū)動(dòng)設(shè)備、控制器、可編程控制器或編碼器等標(biāo)準(zhǔn)設(shè)備定義了相應(yīng)的功能[3]。DS301是CANopen協(xié)議的基礎(chǔ)協(xié)議,其中描述的設(shè)備模型為CANopen程序設(shè)計(jì)提供了整體框架,其模型如圖2所示。

通信對(duì)象指具體服務(wù)中可能要用到的參數(shù),包括了傳送數(shù)據(jù)用的不同類型的CAN報(bào)文[4]。CANopen中定義了4種通信對(duì)象:網(wǎng)絡(luò)管理對(duì)象(NMT)負(fù)責(zé)主從站間的狀態(tài)管理、服務(wù)數(shù)據(jù)對(duì)象(SDO)負(fù)責(zé)配置節(jié)點(diǎn)參數(shù)、過程數(shù)據(jù)對(duì)象(PDO)負(fù)責(zé)實(shí)時(shí)傳輸數(shù)據(jù)、特殊功能對(duì)象(同步對(duì)象SYNC、應(yīng)急對(duì)象EMCY等)用于同步通信對(duì)象和處理錯(cuò)誤報(bào)警等。

通信對(duì)象的集合就是對(duì)象字典。對(duì)象字典是CANopen協(xié)議的核心概念,它預(yù)定義了一個(gè)設(shè)備所有的功能參數(shù)和通信參數(shù),就像一個(gè)設(shè)備接口,可以讓別的設(shè)備從中讀懂該設(shè)備的內(nèi)容[5]。對(duì)象字典中的每個(gè)對(duì)象都有一個(gè)16進(jìn)制的地址(索引)可供尋址,其中索引0x1000到0x1FFFF的通信協(xié)議對(duì)象在DS301協(xié)議中有詳細(xì)描述,索引0x6000到0x9FFFF對(duì)應(yīng)的標(biāo)準(zhǔn)設(shè)備協(xié)議區(qū)在伺服驅(qū)動(dòng)子協(xié)議DSP402中有詳細(xì)描述。

圖2 CANopen設(shè)備模型示意圖

2.2 控制方案研究

運(yùn)動(dòng)控制方案的設(shè)計(jì)基于對(duì)火炮后坐運(yùn)動(dòng)規(guī)律的分析。制退機(jī)內(nèi)部的流體運(yùn)動(dòng)十分復(fù)雜,為了獲得理想后坐長(zhǎng)度,液壓阻力在后坐過程中需不斷變化。相較于機(jī)械調(diào)節(jié)的穩(wěn)定快速,電控方案對(duì)響應(yīng)和執(zhí)行速度提出精確要求,即要在后坐過程的200 ms左右時(shí)間內(nèi)完成對(duì)流液孔面積的非線性變化控制。

傳統(tǒng)的電機(jī)轉(zhuǎn)速控制技術(shù)在連續(xù)調(diào)速時(shí)存在過渡時(shí)間,無法滿足制退機(jī)的極短工作時(shí)間要求。從制退機(jī)工作原理的角度出發(fā)分析,流液孔面積的改變對(duì)應(yīng)兩個(gè)活塞的錯(cuò)開角度,編碼器輸出端脈沖數(shù)可經(jīng)減速器轉(zhuǎn)化為轉(zhuǎn)動(dòng)軸轉(zhuǎn)角,因此若要在規(guī)定時(shí)間內(nèi)讓活塞轉(zhuǎn)到指定角度,就要讓電機(jī)轉(zhuǎn)到指定位置,即編碼器在對(duì)應(yīng)時(shí)刻輸出對(duì)應(yīng)的脈沖。

DSP402是用于描述伺服驅(qū)動(dòng)與運(yùn)動(dòng)控制的CANopen子協(xié)議。對(duì)基于DSP402協(xié)議的電機(jī)控制模式進(jìn)行比較分析,其中的位置插值模式(Interpolated Position Mode)是一種基于標(biāo)準(zhǔn)位置模式的算法,其原理如圖3所示:主機(jī)在同步周期內(nèi)向驅(qū)動(dòng)器軸發(fā)送插值運(yùn)動(dòng)數(shù)據(jù),驅(qū)動(dòng)器軸根據(jù)接收數(shù)據(jù)計(jì)算從一個(gè)位置點(diǎn)到下一個(gè)位置點(diǎn)所需的速度、加速度,有足夠多的插值點(diǎn)電機(jī)就能按規(guī)定軌跡運(yùn)行。

位置插值從理論上符合本文所研究的基于預(yù)設(shè)目標(biāo)驅(qū)動(dòng)電機(jī)按步運(yùn)動(dòng)的控制方案。通過前期流場(chǎng)仿真得到一定 后坐速度和流液孔面積下工作腔的壓力值解出液壓阻力系數(shù)K,再由式(1)和式(2)采用迭代方法計(jì)算出后坐速度和后坐阻力隨時(shí)間的變化關(guān)系,從而得到流液孔面積關(guān)于動(dòng)活塞轉(zhuǎn)速的變化規(guī)律[6]。

(1)

FR=FΦh+Ff+FT+F

(2)

(3)

圖3 位置插值算法原理示意圖

活塞轉(zhuǎn)角與編碼器輸出脈沖的關(guān)系如下

(4)

式中;P為編碼器脈沖數(shù);θ為活塞轉(zhuǎn)角;i為減速器減速比;N為編碼器分辨率,電機(jī)采用的行星齒輪減速器減速比為81,增量式編碼器的分辨率為2000PPR。計(jì)算得到一次后坐運(yùn)動(dòng)中要求的電機(jī)運(yùn)動(dòng)參數(shù)如表1所示。

表1 后坐運(yùn)動(dòng)時(shí)間與電機(jī)運(yùn)動(dòng)參數(shù)

為了準(zhǔn)確監(jiān)測(cè)試驗(yàn)結(jié)果,需要以插值數(shù)據(jù)點(diǎn)為基礎(chǔ)計(jì)算出電機(jī)的運(yùn)動(dòng)軌跡,即編碼器的輸出脈沖數(shù)曲線。3次樣條插值是一種通過已知點(diǎn)來模擬未知函數(shù)的算法,在Matlab軟件中利用spline插值函數(shù)可以將表1中的數(shù)據(jù)點(diǎn)擬合成完整的編碼器輸出曲線,如圖4所示。

圖4 編碼器輸出曲線

3 控制系統(tǒng)設(shè)計(jì)

3.1 硬件配置

控制系統(tǒng)的核心是基于Cortex-M4內(nèi)核的STM32F407ZGT6嵌入式微控制器,運(yùn)行速度最高達(dá)到168 MHz,擁有1 MB程序存儲(chǔ)器和192 KB的RAM,該控制板具有強(qiáng)大的外設(shè)功能,通過板載的CAN接口就可以實(shí)現(xiàn)與驅(qū)動(dòng)器的CAN通信,無需額外的硬件電路設(shè)計(jì)。ST公司開發(fā)了專用于STM32F4系列控制器的固件庫(kù)代碼并將其集成到了Keil MDK編程開發(fā)環(huán)境中[7]。STM32配置包括時(shí)鐘使能、GPIO引腳分配、中斷優(yōu)先級(jí)管理等,下載固件庫(kù)源碼到MDK工程中編譯即完成了系統(tǒng)的硬件配置。

3.2 中間層設(shè)計(jì)

板級(jí)支持包BSP(Board Support Package)介于主板硬件和軟件驅(qū)動(dòng)程序之間,用于實(shí)現(xiàn)對(duì)操作系統(tǒng)的支持,為控制板的硬件功能提供統(tǒng)一的接口。BSP的設(shè)計(jì)以不同的嵌入式操作系統(tǒng)為基礎(chǔ),遵循簡(jiǎn)潔原則,保證系統(tǒng)的正常啟動(dòng)[8]。BSP程序的主要設(shè)計(jì)流程如圖5所示。

圖5 BSP設(shè)計(jì)流程框圖

3.3 軟件層設(shè)計(jì)

完成STM32硬件配置和中間層設(shè)計(jì)的基礎(chǔ)上進(jìn)行CANopen協(xié)議軟件設(shè)計(jì)。軟件層設(shè)計(jì)主要包括操作系統(tǒng)和CANopen通信協(xié)議兩部分。

RTOS(Real Time Operating System)實(shí)時(shí)多任務(wù)操作系統(tǒng)是嵌入式應(yīng)用軟件的基礎(chǔ)開發(fā)平臺(tái)。RTOS是嵌入在代碼中的一段程序,為在單片機(jī)上運(yùn)行的嵌入式控制系統(tǒng)調(diào)度任務(wù),優(yōu)化CPU分配,加快系統(tǒng)響應(yīng)時(shí)間。常用的嵌入式操作系統(tǒng)包括Linux、uC/OS-Ⅱ、FreeRTOS等,其中FreeRTOS實(shí)時(shí)操作系統(tǒng)具有源碼公開、多平臺(tái)支持、調(diào)度策略靈活等特點(diǎn),非常適合在單片機(jī)上運(yùn)行[9]。FreeRTOS提供了五種內(nèi)存分配方案用于不同的應(yīng)用場(chǎng)合,其中內(nèi)存管理策略heap_4采用最佳匹配算法靈活申請(qǐng)調(diào)用和釋放內(nèi)存,同時(shí)用合并算法將剩余內(nèi)存合并成新的大塊,適用于在應(yīng)用代碼中直接使用移植層內(nèi)存分配方案的應(yīng)用程序且可以重復(fù)分配和刪除具有相同堆??臻g的任務(wù),便于后期實(shí)驗(yàn)調(diào)整電機(jī)運(yùn)動(dòng)參數(shù),因此選擇此內(nèi)存分配策略。

CANopen協(xié)議棧設(shè)計(jì)以官方提供的CanFestival開源協(xié)議棧源碼為基礎(chǔ)移植到所使用的STM32F4開發(fā)板中。協(xié)議棧中定義了3.1節(jié)中描述的通信對(duì)象的功能。主控程序設(shè)計(jì)首先進(jìn)行PDO和SDO的配置。PDO配置包括RPDO和TPDO,根據(jù)DS301協(xié)議中的索引1 400~1 403 h、1 600~1 601 h、1 800~1 803 h和1A00進(jìn)行設(shè)置。所有控制報(bào)文均由SDO寫入,包括電機(jī)的操作模式、目標(biāo)位移、運(yùn)行速度、加速度等參數(shù)。配置完成后處理設(shè)備狀態(tài)機(jī),狀態(tài)機(jī)用于描述設(shè)備狀態(tài)和驅(qū)動(dòng)器控制順序,只有當(dāng)驅(qū)動(dòng)器使能時(shí)控制程序才能啟動(dòng),用控制字6 040 h可以更改狀態(tài)并用6 041 h讀取設(shè)備狀態(tài)。最后進(jìn)入工作狀態(tài),通過索引6 060 h將工作模式轉(zhuǎn)換到插值模式[10],將表1中的參數(shù)按順序?qū)懭氩逯党绦蛑?,完成程序設(shè)置。控制程序設(shè)計(jì)流程如圖6所示。

圖6 插值位置程序設(shè)計(jì)流程框圖

4 運(yùn)行測(cè)試

將所有配置完成的硬件進(jìn)行連接即可進(jìn)行運(yùn)行測(cè)試,如圖7所示。

圖7 電機(jī)運(yùn)行測(cè)試

結(jié)果監(jiān)測(cè)根據(jù)位置插值模式所用的索引6 064 h從編碼器中讀取電機(jī)的實(shí)際位置(Position_Actual_Value),將傳輸數(shù)據(jù)對(duì)象TPDO的位置數(shù)據(jù)采樣周期設(shè)置為10 ms。根據(jù)上位機(jī)實(shí)際獲取的編碼器端輸出脈沖數(shù)據(jù)計(jì)算出程序控制下的實(shí)際運(yùn)動(dòng)曲線如圖8所示,與2.2節(jié)理論計(jì)算結(jié)果對(duì)比,電機(jī)運(yùn)行過程中活塞轉(zhuǎn)角誤差在±0.009°以內(nèi)保持平穩(wěn),在啟動(dòng)時(shí)由于響應(yīng)原因產(chǎn)生滯后誤差,最大為+0.046°,根據(jù)式(3)可知啟動(dòng)時(shí)流液孔面積為最大,其變化率對(duì)結(jié)果值影響可以忽略。制動(dòng)時(shí)產(chǎn)生超調(diào)誤差,最大為-0.049°,在后續(xù)研究中可以考慮采用機(jī)械限位等方法予以彌補(bǔ)。

圖8 上位機(jī)監(jiān)測(cè)結(jié)果

5 結(jié)論

針對(duì)傳統(tǒng)控制方法的不足之處提出了基于CANopen和STM32微控制器的電機(jī)控制制退機(jī)液壓阻力方案,根據(jù)仿真計(jì)算的某工況下活塞流液孔面積變化規(guī)律推得活塞轉(zhuǎn)角即編碼器輸出脈沖數(shù)隨時(shí)間的變化關(guān)系,通過基于位置插值算法的控制模式完成了所要求的電機(jī)控制程序,并通過上位機(jī)的反饋數(shù)據(jù)將實(shí)際運(yùn)行結(jié)果與理論值進(jìn)行了比較。

運(yùn)行測(cè)試結(jié)果表明程序具有一定控制精度,采用位置插值模式的控制系統(tǒng)方案能夠驅(qū)動(dòng)電機(jī)按照預(yù)設(shè)目標(biāo)運(yùn)行到設(shè)定好的目標(biāo)點(diǎn)。在此基礎(chǔ)上可以進(jìn)行后續(xù)的墜落模擬試驗(yàn)探究液壓阻力控制效果,并且考證電機(jī)體積、震動(dòng)在實(shí)際工況下的可行性問題。

猜你喜歡
插值編碼器活塞
WV3650M/WH3650M 絕對(duì)值旋轉(zhuǎn)編碼器
滑動(dòng)式Lagrange與Chebyshev插值方法對(duì)BDS精密星歷內(nèi)插及其精度分析
WDGP36J / WDGA36J編碼器Wachendorff自動(dòng)化有限公司
基于Beaglebone Black 的絕對(duì)式編碼器接口電路設(shè)計(jì)*
舞臺(tái)機(jī)械技術(shù)與設(shè)備系列談(二)
——編碼器
基于pade逼近的重心有理混合插值新方法
不同空間特征下插值精度及變化規(guī)律研究
底特律活塞
基于混合并行的Kriging插值算法研究
活塞銷的連接配合與故障分析
安福县| 涞水县| 浦东新区| 广丰县| 秦皇岛市| 兴隆县| 达日县| 开化县| 巴林右旗| 奉节县| 乌拉特前旗| 长子县| 金坛市| 卢氏县| 通江县| 五峰| 杂多县| 阿勒泰市| 岱山县| 杨浦区| 巴林右旗| 新沂市| 庄河市| 阿克| 锦屏县| 田林县| 淮滨县| 射阳县| 城固县| 建湖县| 红原县| 西青区| 许昌市| 屯门区| 涡阳县| 郴州市| 阿勒泰市| 铜陵市| 兴化市| 绥芬河市| 成安县|