电梯上下运行一个周期中的拉力和加速度变化
2013-07-15 00:00
183 查看
加速度信号调理电路
示功图测试仪的位移和冲程是通过加速度双重积分得到的,考虑到油杆上下周期性运动的特点,将一个周期加速度测量值减去其平均值,令边界条件为零,对修正后的加速度积分得到速度;令边界条件为零,对修正后的速度积分得到冲程[2]。
由于必须对原始加速度信号进行相应的滤波处理,去除边界的双重积分算法较复杂,......
示功仪加速度在两次去除边界积分后并不能得到准确的冲程,往往对于同一口井会得出两个差异很大的冲程。
因为加速度量的电压信号很小,3V供电系统造成加速度与电压的比例系数很小(0.56V/g),MCU采集加速度电压信号受干扰严重。所以必须对采集的加速度信号进行合适的滤波后再双重积分得到冲程。
首先,将采集到一个周期的加速度的数据存放在RAM中,对加速度数据进行奇异值的滤除;然后对加速度量进行3次7点平滑窗滤波,最大限度地将噪声信号滤除;最后,应用周期去边界的双重积分得到各点的位移值.
加速度信号的复合滤波方法
示功仪采用加速度信号进行双重积分算法得到位移和冲程,但是,加速度信号由于电源纹波和信号干扰的影响引起波形的微小畸变,经过双重积分后冲程累积误差增大。
......
改进的滑动滤波法
传统的滑动平滑滤波只采样一次,将这一次采样值与过去若干次采样值一起求平均,若取N 个采样值求平均,RAM中必须开辟N 个数据的暂存区。
由于冲次(1分钟内抽油机上下往返的次数)通过判断加速度的两个最高点的计算得出(两个最高点之间的点数乘以采样周期50ms得到抽油机运行周期,冲次=60/周期)。使用传统的滑动滤波方法最高点的误判率高,难以得出准确的周期。本文采用了一种改进的滑动滤波方法,很好的解决了以上问题。
选用MSP430F1611(10K RAM)定义1800大小浮点数数组用来存储90s的加速度原始信号。
经过3次滑动平滑滤波,公式如下:
3点滑动块:
(1≤K≤N-1)
7点滑动块:
(3≤K≤N-3)
式中:XK 表示第K 次采集的加速度数据;N 表示采集数据个数;K 表示当前加速度信号的序号。
加速度双重积分算法
示功图测试仪利用加速度信号间接得到位移和冲程信息。得到加速度的测量值后,要计算抽油杆运动的相对位移还必须解决两个问题:加速度的零点校正和积分求速度时边界条件的确定。因只需得到抽油杆运动的相对位移,由速度积分求位移时,可将边界条件置为零。
经过理论上的综合推导,由加速度求位移或冲程的算法可简要表述为:
(1)将一个周期内加速度的测量值减去其平均值,令边界条件为零,对修正后的加速度积分(在MSP430中采用数值积分)得到速度;
(2)将所求的速度减去其平均值,令边界条件为零,对修正后的速度积分(在MSP430中采用数值积分),即得到相对位移或冲程。
针对游梁式抽油机和皮带式抽油机两种不同类型的抽油机井型,先后进行了多次现场测量和数据分析,以冲程测量为例的数据与分析如表1所示。游梁式抽油机属于旋转运动转化为抽油杆上下运动,往复一次的运动规律接近正弦波变化,且冲程较短;皮带式抽油机直接驱动抽油杆上下运动,运动规律接近矩形波变化,且冲程较长。
现场试验结果表明,本文研究的位移或冲程测量技术适用于冲程从2.1m~5m,冲次从0.8冲~5冲的不同抽油机井型,而且具有较高的测量精度;但是,对于冲次<0.8冲的稠油井抽油机,测量误差偏大。
相关文章推荐
- Linux周期运行一个命令的脚本
- 如何实现用Java编写程序,设计一个模拟电梯运行的类
- 基于LOOK磁盘调度算法写一个电梯运行模拟器
- iOS程序运行时上下各有一个黑色部分,屏幕不满的问题
- 我从16ASPX上下了一个程序在运行时出错是怎么回事?运行时出现用户SA登陆失败,但是我已经把数据库导入SQL
- 一个电梯运行的模拟实现
- IIS7运行.net3.5程序遇到一个语言问题
- 简单代码实现C#中运行另外一个程序
- 该程序在运行时会创建一个JOB,并且将该自己以JOB后台方式运行,并且可以从前台传递参数到后台JOB
- 一个Ajax页面的新生命周期
- C#应用程序只运行一个实例的代码
- Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接
- Android之 如何在退出一个activity后,很好的取消AsyncTask继续运行
- 【云计算】K8S DaemonSet 每个node上都运行一个pod
- 试图运行项目时出错:未能加载文件或程序集 或它的某一个依赖项。该模块应包含一个程序集清单 .
- 修复:SQL Server 2008 在表运行一个 INSERT SELECT 语句时的错误
- VC程序只运行一个实例,并在打开多个时激活原窗口
- c#WinForm 程序单实例运行并打开前一个实例(Mutex+API)
- SDL控件随窗口变化(解决编译无错误但运行不出来!!)
- 计算一个程序的运行时间