日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 電子設計自動化

  0引 言

  在石油鉆井中,準確測量井眼姿態(tài)是進行井眼軌跡控制的前提。為此,本文充分結(jié)合單片機和MATLAB的優(yōu)點,基于事件驅(qū)動的通信機制,提出了一種MATLAB環(huán)境下基于GUI的PC與片上系統(tǒng)C8051F060實時串行通信的可視化數(shù)據(jù)處理方法,并實現(xiàn)了對井眼姿態(tài)的監(jiān)測。該方法極大地簡化了開發(fā)流程,提高了系統(tǒng)開發(fā)效率。更重要的是MATLAB的運算能力,為數(shù)據(jù)處理提供了保障。

  1 系統(tǒng)介紹

  在本系統(tǒng)中,上位機是PC,下位機采用silabs公司推出的高速片上系統(tǒng)(SoC)C8051F060,使用三軸加速度計來敏感井眼姿態(tài)的變化。三軸加速度計兩兩正交,輸出正方向滿足右手螺旋法則,將三軸加速度的輸出值通過坐標間的相互轉(zhuǎn)換,利用三角關(guān)系式即可得到當前井眼空間姿態(tài)。由于PC串口與SoC的UART使用的是不同的電壓標準,所以兩者間通過電壓轉(zhuǎn)換芯片sp3223相連。三軸加速度敏感到的姿態(tài)信號經(jīng)過調(diào)理電路和多路開關(guān)后,被SoC內(nèi)部的A/D采樣,采集得到的數(shù)據(jù)存儲到片外存儲器。數(shù)據(jù)的存儲設備采用三星公司生產(chǎn)的超大容量存儲器K9K8G08U0M,滿足了系統(tǒng)長時間采集存儲的需要。

  借助GUI開發(fā)的上位機軟件通過串口實現(xiàn)與下位機間的命令及數(shù)據(jù)傳輸,并對下位機采集的數(shù)據(jù)進行處理。

  2硬件系統(tǒng)

  C8051060是完全集成的混合信號片上系統(tǒng)型MCU,其內(nèi)部CIP-51內(nèi)核采用流水線結(jié)構(gòu),指令執(zhí)行速度可達25 MIPS。使用如此高性能的單片機使得系統(tǒng)硬件電路設計大為簡化,單片機的UART、串口通過電壓轉(zhuǎn)換模塊SP3223與PC進行通信,而C8051060的雙串口為多系統(tǒng)的級聯(lián)提供了方便。數(shù)據(jù)采集功能由其內(nèi)部的ADC完成,采集的數(shù)據(jù)通過口線存儲到片外的大容量存儲器K9K8G08U0M。

  系統(tǒng)硬件框圖如圖1所示,其中實線為數(shù)據(jù)流,虛線為控制流。系統(tǒng)工作時,由上位機通過命令來控制下位機進行相應的操作。進行數(shù)據(jù)采集時,單片機控制電源給傳感器供電。各路信號經(jīng)過各自的調(diào)理電路后被送入多路開關(guān)。單片機通過控制多路開關(guān)來選擇所要采樣的信號,并將其送入SoC內(nèi)置的ADC進行采樣。采樣值被存儲后等待與上位機的通信。

  

  3下位機軟件

  下位機SoC接收到PC的下發(fā)消息后,通過串口中斷程序轉(zhuǎn)入相應的子程序,執(zhí)行相應操作,最后返回一個握手信號做為狀態(tài)標志,確認命令是否被正確執(zhí)行。

  C8051060使用UART0與PC進行串行通信。將該串口的工作方式設置為方式3,具有硬件地址識別和多處理器通訊的功能,并且用定時器1作為波特率發(fā)生器,設定波特率為115 200 b/s,每幀數(shù)據(jù)占11位--1個起始位,8個數(shù)據(jù)位,1個可編程的第九位,1個結(jié)束位。

  該軟件的子程序包括:清參數(shù)區(qū)、清數(shù)據(jù)區(qū)、發(fā)送參數(shù)、接收參數(shù)、開始采集、接收數(shù)據(jù)、復位等,各子程序的具體實現(xiàn)在此不進行詳細描述。軟件框圖如圖2所示。

  

  4上位機軟件

  本系統(tǒng)使用MATLAB提供的圖像用戶界面開發(fā)環(huán)境(GUIDE)完成界面設計及上位機軟件編制。GUI"所見即所得"的編程方式簡單明快,非常容易上手。本軟件借助MATLAB自帶的工具箱和系統(tǒng)中的Activex控件,編制了菜單欄和工具欄及各功能模塊,實現(xiàn)了命令、參數(shù)以及數(shù)據(jù)的雙向傳輸及顯示、數(shù)據(jù)的濾波處理及繪圖。

  4.1串行通信的實現(xiàn)

  MATLAB本身是一個跨平臺的軟件,并不具備直接訪問硬件的能力,但是可以通過對serial類的操作,實現(xiàn)MATLAB對串口的支持。

  要想在MATLAB中使用串行口,首先要借助serial類建立串口對象,并在使用前將該串口對象打開。數(shù)據(jù)傳輸完畢后,需關(guān)閉該串口對象,避免影響其他程序無法對該串口對象的使用。在系統(tǒng)不再使用該串口或者退出系統(tǒng)時,需要將該串口對象清除并從MATLAB工作空間清除,避免占用內(nèi)存和影響其他系統(tǒng)使用。

  在使用串口進行數(shù)據(jù)傳輸時,需要對串口進行讀寫操作。讀寫串口的方式分為二進制、文本兩種,類似于一般的文件操作。為了提高傳輸?shù)乃俣?,結(jié)合實際情況,本系統(tǒng)采用串口二進制異步讀寫方式。MATLAB程序通過串行口將命令發(fā)送到下位機,并通過串行口接收下位機上傳的握手信號及數(shù)據(jù)。

  串行通信的部分源碼如下:

  

  

  使用串口進行讀寫操作時,還需注意的一點就是對串口數(shù)據(jù)校驗方式屬性(Parity)的設置,如果該設置與下位機軟件不匹配,將造成讀寫錯誤而又難以查找原因。

  4.2 GUI界面中activx控件的使用

  在MATLAB的GUIDE中所提供的基本控件非常少,難以滿足本系統(tǒng)的需要。因此本系統(tǒng)調(diào)用系統(tǒng)中的Activex控件FlexArray、FlexGrid實現(xiàn)了數(shù)據(jù)在表格中的顯示,調(diào)用axes控件實現(xiàn)了數(shù)據(jù)圖形繪制。

  本程序中用到的控件(包括Activex控件),在其創(chuàng)建及屬性設置過程中,使用了全程序法、GUIDE屬性法和兩者相結(jié)合的方法。全程序法是只借助MATLAB提供的句柄功能創(chuàng)建及設置控件。而GUIDE屬性法類似VB的設計風格,容易上手,但是這種方法使得m文件過于依賴fig文件。兩者結(jié)合的方法使得設計更加靈活。下面以GUIDE屬性法和全程序法相結(jié)合的方法創(chuàng)建、調(diào)用FlexArray控件為例,講解本系統(tǒng)中的數(shù)據(jù)顯示部分?;究丶牟僮鞅容^簡單,在此不進行詳述。

  FlexArray控件的全稱是,該控件的文件即C:\WINDOWS\System32\VSFLEX3.OCX,如果本機上沒有的話,可以到網(wǎng)上下載,或到其他機子上復制,然后使用regsvr32.exe注冊即可。做好這些準備工作之后,點擊GUI左側(cè)的工具箱中的Activex按鈕后,在設計區(qū)拖拉,彈出"Select an Activex Control"對話框,對話框中的"Activex Control List"列表框列出了在當前計算機上注冊的所有Activex控件,在該列表框中選中 控件,單擊"Create"按鈕,該控件便在GUI的空白編輯區(qū)被創(chuàng)建。

  創(chuàng)建成功后,GUI自動為該控件生成的句柄做為圖形窗口句柄handles的成員被存儲,對于第N個被創(chuàng)建的Activex控件,其句柄為handles.activexN,以后借用該句柄就可以通過函數(shù)來調(diào)用對應的Activex控件??丶膶傩栽O置可以通過雙擊控件或者右鍵菜單打開屬性設置窗口來進行,也可以通過在m文件中通過set命令設定。通過get可以獲取Activex控件的屬性。

  要讀取或設定FlexArray控件表格中某單元格的內(nèi)容時,首先通過handles.activexl.row=i;handles.activexl.col=j;語句指向目標單元格,然后通過fa=get(handles.activexl,′text′);fa=str2num(fa);語句將目標單元格中的內(nèi)容轉(zhuǎn)換為數(shù)值賦給變量fa.通過set命令設置目標單元格中的內(nèi)容,也可以設置固定欄標題,只是注意對于行固定欄的行號是0,列固定欄的列號是0。

  4.3濾波處理及圖形繪制

  如果使用采集到的傳感器輸出數(shù)據(jù)直接計算井眼姿態(tài),將會造成較大的誤差。主要原因是:(1)在鉆進中,由于鉆進環(huán)境惡劣,振動和旋轉(zhuǎn)都會對傳感器輸出造成較大影響;(2)電路本身的電氣噪聲,對采集數(shù)據(jù)存在一定的影響。

  在消除旋轉(zhuǎn)對實驗數(shù)據(jù)的影響后,再借助MATLAB語言實現(xiàn)濾波功能,具體實現(xiàn)流程如下:根據(jù)實驗數(shù)據(jù),在MATLAB的FDAtool工具箱中設計濾波器,濾波效果與實際情況吻合后,將該濾波器的傳遞函數(shù)使用MATLAB語言實現(xiàn),添加到"數(shù)據(jù)處理"功能按鈕對應的程序中,完成數(shù)據(jù)處理的全部功能。

  將濾波前后的數(shù)據(jù)借助axeS控件繪圖顯示,可以看到數(shù)據(jù)處理前后對真實井眼姿態(tài)描述的差異。

  5應用實例

  本系統(tǒng)已經(jīng)應用于智能旋轉(zhuǎn)導向系統(tǒng)的室內(nèi)實驗,圖3是在室內(nèi)直井鉆井平臺上進行模擬鉆井實驗的鉆進過程中,利用本軟件進行操作的截圖。該圖較好地展示了該軟件的功能:數(shù)據(jù)、命令的雙向傳輸及顯示、數(shù)據(jù)的后續(xù)處理功能。圖中曲線顯示區(qū)域黑線代表的是采集到的y軸重量加速度的數(shù)值GY,紅線代表的是經(jīng)過數(shù)據(jù)處理后的GY,不難發(fā)現(xiàn),后者的波動范圍明顯縮小,曲線更為光滑。然后利用處理過的三軸加速度數(shù)值,對鉆井工具的空間姿態(tài)角進行計算,能夠得到與實際情況較為吻合的空間姿態(tài),為礦井的鉆進中空間姿態(tài)的準確測量,提供了一個可供借鑒和參考的方法,能夠使鉆井過程中減少停鉆次數(shù),為提高鉆井效率和鉆井安全增加了保證。

  

  6結(jié)論

  具有數(shù)據(jù)處理、串口操作控制功能和Activex控件合理調(diào)用功能的上位機軟件,再加上高性能片上系統(tǒng)C8051F060作為主芯片的井下電路,兩者組成了模擬鉆井姿態(tài)采集處理系統(tǒng),在115200的串口波特率下,實現(xiàn)了對多路井下信號的采集、處理,從實驗結(jié)果來看,井斜角、工具面角等空間角度的計算結(jié)果與實際情況較為符合,完全適用于鉆井工具的空間姿態(tài)測量應用。強大的數(shù)據(jù)處理功能,再加上人機操作界面,這使得MATLAB在工業(yè)現(xiàn)場監(jiān)控方面將獲得更廣闊的應用。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在現(xiàn)代工業(yè)與生活的諸多場景中,電鉆作為一種不可或缺的工具,發(fā)揮著至關(guān)重要的作用。從工業(yè)制造中的精細裝配到建筑施工里的強力鉆孔,從家庭 DIY 的便捷操作到新能源領(lǐng)域的新興需求,電鉆的高效穩(wěn)定運行成為關(guān)鍵。航順 HK32M...

關(guān)鍵字: 電鉆 工業(yè)制造 工具

電機測試系統(tǒng)是一種用于評估電機性能和質(zhì)量的重要工具。通過對電機進行全面的測試,可以確保其能夠在各種條件下安全、可靠地運行。本文將詳細介紹電機測試系統(tǒng)的定義以及一些常見的設計方案。

關(guān)鍵字: 電機 工具 測試系統(tǒng)

數(shù)值計算方法是一種用于解決數(shù)學問題的方法,涉及到數(shù)值近似、數(shù)值逼近、數(shù)值積分、數(shù)值微分等等。算法設計是數(shù)值計算方法的核心,它包括了數(shù)值方法的數(shù)學原理和計算機實現(xiàn)的算法,能夠有效地解決各種數(shù)學問題。

關(guān)鍵字: matlab 算法設計 數(shù)值積分

仿真的基本思想是利用物理的或數(shù)學的模型來類比模仿現(xiàn)實過程,以尋求過程和規(guī)律。它的基礎是相似現(xiàn)象,相似性一般表現(xiàn)為兩類

關(guān)鍵字: matlab 程序仿真 仿真模式

本文利用Matlab GUI設計通過串口進行數(shù)據(jù)發(fā)送和接收的界面,并利用內(nèi)置于Matlab的串口通信API實現(xiàn)串口數(shù)據(jù)發(fā)送與接收功能。

關(guān)鍵字: matlab GUI 串口通信

信號處理工程師在開發(fā)工作的所有階段都使用 MATLAB? 和 Simulink? — 從分析信號和探索算法,到評估設計實現(xiàn)的權(quán)衡,最終構(gòu)建實時信號處理系統(tǒng)。

關(guān)鍵字: matlab 通信系統(tǒng)

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于數(shù)據(jù)分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統(tǒng)等領(lǐng)域。

關(guān)鍵字: matlab 程序設計 計算機視覺

表示機器的浮點運算誤差限,在Matlab仿真實驗開發(fā)中,eps的精度達到2.2204*10^-6,當運算的誤差精度下于這個數(shù)值的時候,可以認為誤差為零。

關(guān)鍵字: matlab 控制系統(tǒng) Matlab仿真

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于數(shù)據(jù)分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統(tǒng)等領(lǐng)域。

關(guān)鍵字: matlab 工具箱 信號處理

在科研以及應用軟件領(lǐng)域,LabVIEW和MATLAB作為比較常用的2款工具,相信很多人都用過吧。簡單的概括一下,LabVIEW側(cè)重測試測量和數(shù)據(jù)采集,MATLAB側(cè)重科學計算和數(shù)據(jù)分析。

關(guān)鍵字: LabVIEW matlab 混合編程
關(guān)閉