0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-09-29 08:03 次阅读

1 、引 言

在石油钻井中,准确测量井眼姿态是进行井眼轨迹控制的前提。为此,本文充分结合单片机MATLAB的优点,基于事件驱动的通信机制,提出了一种MATLAB环境下基于GUI的PC与片上系统C8051F060实时串行通信的可视化数据处理方法,并实现了对井眼姿态的监测。该方法极大地简化了开发流程,提高了系统开发效率。更重要的是MATLAB的运算能力,为数据处理提供了保障。

2 、系统介绍

在本系统中,上位机是PC,下位机采用silabs公司推出的高速片上系统(SoC)C8051F060,使用三轴加速度计来敏感井眼姿态的变化。三轴加速度计两两正交,输出正方向满足右手螺旋法则,将三轴加速度的输出值通过坐标间的相互转换,利用三角关系式即可得到当前井眼空间姿态。由于PC串口与SoC的UART使用的是不同的电压标准,所以两者间通过电压转换芯片sp3223相连。三轴加速度敏感到的姿态信号经过调理电路和多路开关后,被SoC内部的A/D采样,采集得到的数据存储到片外存储器。数据的存储设备采用三星公司生产的超大容量存储器K9K8G08U0M,满足了系统长时间采集存储的需要。

借助GUI开发的上位机软件通过串口实现与下位机间的命令及数据传输,并对下位机采集的数据进行处理。

3 、硬件系统

C8051060是完全集成的混合信号片上系统型MCU,其内部CIP-51内核采用流水线结构,指令执行速度可达25 MIPS。使用如此高性能的单片机使得系统硬件电路设计大为简化,单片机的UART、串口通过电压转换模块SP3223与PC进行通信,而C8051060的双串口为多系统的级联提供了方便。数据采集功能由其内部的ADC完成,采集的数据通过口线存储到片外的大容量存储器K9K8G08U0M。

系统硬件框图如图1所示,其中实线为数据流,虚线为控制流。系统工作时,由上位机通过命令来控制下位机进行相应的操作。进行数据采集时,单片机控制电源传感器供电。各路信号经过各自的调理电路后被送入多路开关。单片机通过控制多路开关来选择所要采样的信号,并将其送入SoC内置的ADC进行采样。采样值被存储后等待与上位机的通信。

基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计

4 、下位机软件

下位机SoC接收到PC的下发消息后,通过串口中断程序转入相应的子程序,执行相应操作,最后返回一个握手信号做为状态标志,确认命令是否被正确执行。

C8051060使用UART0与PC进行串行通信。将该串口的工作方式设置为方式3,具有硬件地址识别和多处理器通讯的功能,并且用定时器1作为波特率发生器,设定波特率为115 200 b/s,每帧数据占11位--1个起始位,8个数据位,1个可编程的第九位,1个结束位。

该软件的子程序包括:清参数区、清数据区、发送参数、接收参数、开始采集、接收数据、复位等,各子程序的具体实现在此不进行详细描述。软件框图如图2所示。

基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计

5 、上位机软件

本系统使用MATLAB提供的图像用户界面开发环境(GUIDE)完成界面设计及上位机软件编制。GUI“所见即所得”的编程方式简单明快,非常容易上手。本软件借助MATLAB自带的工具箱和系统中的Activex控件,编制了菜单栏和工具栏及各功能模块,实现了命令、参数以及数据的双向传输及显示、数据的滤波处理及绘图。

5.1 串行通信的实现

MATLAB本身是一个跨平台的软件,并不具备直接访问硬件的能力,但是可以通过对serial类的操作,实现MATLAB对串口的支持。

要想在MATLAB中使用串行口,首先要借助serial类建立串口对象,并在使用前将该串口对象打开。数据传输完毕后,需关闭该串口对象,避免影响其他程序无法对该串口对象的使用。在系统不再使用该串口或者退出系统时,需要将该串口对象清除并从MATLAB工作空间清除,避免占用内存和影响其他系统使用。

在使用串口进行数据传输时,需要对串口进行读写操作。读写串口的方式分为二进制、文本两种,类似于一般的文件操作。为了提高传输的速度,结合实际情况,本系统采用串口二进制异步读写方式。MATLAB程序通过串行口将命令发送到下位机,并通过串行口接收下位机上传的握手信号及数据。

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

基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计

基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计

使用串口进行读写操作时,还需注意的一点就是对串口数据校验方式属性(Parity)的设置,如果该设置与下位机软件不匹配,将造成读写错误而又难以查找原因。

5.2 GUI界面中activx控件的使用

在MATLAB的GUIDE中所提供的基本控件非常少,难以满足本系统的需要。因此本系统调用系统中的Activex控件FlexArray、FlexGrid实现了数据在表格中的显示,调用axes控件实现了数据图形绘制。

本程序中用到的控件(包括Activex控件),在其创建及属性设置过程中,使用了全程序法、GUIDE属性法和两者相结合的方法。全程序法是只借助MATLAB提供的句柄功能创建及设置控件。而GUIDE属性法类似VB的设计风格,容易上手,但是这种方法使得m文件过于依赖fig文件。两者结合的方法使得设计更加灵活。下面以GUIDE属性法和全程序法相结合的方法创建、调用FlexArray控件为例,讲解本系统中的数据显示部分。基本控件的操作比较简单,在此不进行详述。

FlexArray控件的全称是,该控件的文件即C:\WINDOWS\System32\VSFLEX3.OCX,如果本机上没有的话,可以到网上下载,或到其他机子上复制,然后使用regsvr32.exe注册即可。做好这些准备工作之后,点击GUI左侧的工具箱中的Activex按钮后,在设计区拖拉,弹出“Select an Activex Control”对话框,对话框中的“Activex Control List”列表框列出了在当前计算机上注册的所有Activex控件,在该列表框中选中 控件,单击“Create”按钮,该控件便在GUI的空白编辑区被创建。

创建成功后,GUI自动为该控件生成的句柄做为图形窗口句柄handles的成员被存储,对于第N个被创建的Activex控件,其句柄为handles.activexN,以后借用该句柄就可以通过函数来调用对应的Activex控件。控件的属性设置可以通过双击控件或者右键菜单打开属性设置窗口来进行,也可以通过在m文件中通过set命令设定。通过get可以获取Activex控件的属性。

要读取或设定FlexArray控件表格中某单元格的内容时,首先通过handles.activexl.row=i;handles.activexl.col=j;语句指向目标单元格,然后通过fa=get(handles.activexl,′text′);fa=str2num(fa);语句将目标单元格中的内容转换为数值赋给变量fa.通过set命令设置目标单元格中的内容,也可以设置固定栏标题,只是注意对于行固定栏的行号是0,列固定栏的列号是0。

5.3 滤波处理及图形绘制

如果使用采集到的传感器输出数据直接计算井眼姿态,将会造成较大的误差。主要原因是:(1)在钻进中,由于钻进环境恶劣,振动和旋转都会对传感器输出造成较大影响;(2)电路本身的电气噪声,对采集数据存在一定的影响。

在消除旋转对实验数据的影响后,再借助MATLAB语言实现滤波功能,具体实现流程如下:根据实验数据,在MATLAB的FDAtool工具箱中设计滤波器,滤波效果与实际情况吻合后,将该滤波器的传递函数使用MATLAB语言实现,添加到“数据处理”功能按钮对应的程序中,完成数据处理的全部功能。

将滤波前后的数据借助axeS控件绘图显示,可以看到数据处理前后对真实井眼姿态描述的差异。

6 、应用实例

本系统已经应用于智能旋转导向系统的室内实验,图3是在室内直井钻井平台上进行模拟钻井实验的钻进过程中,利用本软件进行操作的截图。该图较好地展示了该软件的功能:数据、命令的双向传输及显示、数据的后续处理功能。图中曲线显示区域黑线代表的是采集到的y轴重量加速度的数值GY,红线代表的是经过数据处理后的GY,不难发现,后者的波动范围明显缩小,曲线更为光滑。然后利用处理过的三轴加速度数值,对钻井工具的空间姿态角进行计算,能够得到与实际情况较为吻合的空间姿态,为矿井的钻进中空间姿态的准确测量,提供了一个可供借鉴和参考的方法,能够使钻井过程中减少停钻次数,为提高钻井效率和钻井安全增加了保证。

基于MATLAB GUI的钻井工具姿态采集

7 、结论

具有数据处理、串口操作控制功能和Activex控件合理调用功能的上位机软件,再加上高性能片上系统C8051F060作为主芯片的井下电路,两者组成了模拟钻井姿态采集处理系统,在115200的串口波特率下,实现了对多路井下信号的采集、处理,从实验结果来看,井斜角、工具面角等空间角度的计算结果与实际情况较为符合,完全适用于钻井工具的空间姿态测量应用。强大的数据处理功能,再加上人机操作界面,这使得MATLAB在工业现场监控方面将获得更广阔的应用。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    175

    文章

    2922

    浏览量

    228440
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161986
  • soc
    soc
    +关注

    关注

    38

    文章

    3745

    浏览量

    215678
收藏 人收藏

    评论

    相关推荐

    关于c8051f060单片机扩展62256的问题

    我使用c8051f060单片机进行大量数据运算,由于空间不够,所以扩展了一片62256,但是只能进行1024个float数据(也就是8K的数据)的运算,再增加数据量的时候,输出的数据就不对了,是存在什么问题呢?
    发表于 01-06 15:39

    c8051f060测量1k-10k脉冲幅度测不准

    本人设计单片机c8051f060,用内部比较器 cp0+接输入脉冲信号,cp-接da信号设置门值,脉冲信号通过运放进入ad0和ad1进行测幅,当cp0+〉cp0-时,ad0busy=1
    发表于 01-14 09:56

    基于uCOS II嵌入式系统C8051F060应用

    随着集成电路的高速发展和CMOS工艺水平的不断提高,系统级芯片SOC已经开始成为设计的主流。C8051F060单片机由美国Cygnal公司设计并制造,是一款完全集成的混合信号片上系统SOC,具有
    发表于 07-16 06:53

    基于uCOS II嵌入式系统C8051F060应用

    随着集成电路的高速发展和CMOS工艺水平的不断提高,系统级芯片SOC已经开始成为设计的主流。C8051F060单片机由美国Cygnal公司设计并制造,是一款完全集成的混合信号片上系统SOC,具有
    发表于 07-17 06:30

    怎么学习c8051f060内置can通信?

    初入传感器生产企业,接到一个有关can通信的项目,请问各位如何能快速学习c8051f060内置can通信?由于本人水平较低,仅停留在天祥老师的10天学会单片机水平,求各位朋友能推荐一适合我学习的相关资料,视频最好,或者通过哪些渠道可以进行这方面的学习?
    发表于 03-24 22:40

    18位AD7674与C8051F060之间并口通信的接口电路设计

    18位 AD7674与 C8051F060 之间并口通信的接口电路设计
    发表于 12-22 07:49

    单片机C8051F060相关资料下载

    概述:C8051F060是一款与51系列单片机内核兼容的单片机,其内核采用流水线结构,速度可达25MIPS(25MHz晶振),比普通的51单片机快10倍;其指令与标准系列51单片机兼容,因而掌握开发过程非常容易;该芯
    发表于 04-06 08:34

    采用AD7674和C8051F060构成的数据采集系统,不看肯定后悔

    AD7674和C8051060简介AD7674与C8051F060的接口介绍AD7674如何采用NORMAL模式进行数据采样转换?
    发表于 04-08 06:40

    请问如何利用单片机C8051F060设计直流电机转速测量系统

    本文介绍了一种由单片机C8051F060作为主控制器,使用霍尔传感器进行测最的直流电机转速测量系统
    发表于 04-09 06:47

    请问AD7674与C8051F060的接口是如何设计的?

    AD7674和C8051060分别是什么?AD7674与C8051F060的接口是如何设计的?怎样去设计AD7674与C8051F060的软件?
    发表于 04-20 06:27

    基于新型高速高集成度单片机C8051F060

    简要介绍了智能励磁功率柜的概念及C8051F060单片机的特点,详细论述了基于C8051F060的智能励磁功率柜的结构、原理以及与CAN总线通信的实现方法.该控制方案系统集成度高、硬件
    发表于 04-24 14:56 101次下载

    基于C8051F060的数据采集存储系统的设计

    介绍一种基于C8051F060单片机和NAND Flash的数据采集存储系统,该系统实现3路信号采样,每路采样率为5KS/s,通过异步串行通信接口
    发表于 12-23 16:21 91次下载

    采用单片机C8051F060的智能功率柜的原理及设计

    采用单片机C8051F060的智能功率柜的原理及设计 概述:简要介绍了智能励磁功率柜的概念及C8051F060单片机的特点,详细论述了基于C8051F060的智能
    发表于 03-06 17:13 1343次阅读
    <b class='flag-5'>采用</b>单片机<b class='flag-5'>C8051F060</b>的智能功率柜的原理及设计

    C8051F060设计的超声波导盲系统

    C8051F060设计的超声波导盲系统  盲人既是普通人民中的一员,又是一个特殊群体,他们由于先天的生理缺陷在日常生活中比常人会遇到更多的不
    发表于 05-11 10:04 1678次阅读
    <b class='flag-5'>C8051F060</b>设计的超声波导盲<b class='flag-5'>系统</b>

    基于C8051F060的碱浓度计的研制_周怡君

    基于C8051F060的碱浓度计的研制_周怡君
    发表于 03-19 11:33 11次下载