智能粮库曲面建模的设计与实现

2012-02-19 02:53任工昌郭海春
陕西科技大学学报 2012年1期
关键词:粮库粮仓插值

杨 勇, 任工昌,2 , 郭海春

(1.陕西科技大学机电工程学院, 陕西 西安 710021;2.陕西农产品加工技术研究院, 陕西 西安 710021)

0 引 言

在自动化监管等领域的曲面建模中,现实中的场景需要借助一定的数学模型与软件在计算机中进行有效的表示[1].计算机必须通过一定的传感器件获取对象的足够信息,并能动态地反映对象的变化,始终忠实于物体模型.智能粮库计量系统是智能粮库监管的重要手段之一,而本项目中粮食的质量是通过间接测量粮食的高度并运用数学积分求和得到的,它需要M×M个矩阵点,也即需要M×M个超声波传感器测得M×M个高度值,这样不仅成本非常巨大而且得到的数据也异常庞大,不利于分析与监管,因此采用数学建模并通过计算机进行曲面建模就显得非常必要.

图1 粮仓简化模型图

1 系统的总体设计

要完成曲面建模,首先要建立计量的数学模型.本项目的数学模型将从定量的角度分析和研究计量问题,在深入调查研究、了解对象信息后作出简化假设、分析内在规律的基础上,建立合适的数学模型[2],然后运用Matlab编程语言将数学模型式转化为合理的程序代码,最后运用Matlab绘图函数还原出粮食表面的三维图形并计算出粮食的质量.

在本项目中,粮仓为长70 m,宽20 m,高10 m的矩形区域,其中屯粮高度一般不超过8 m,因此在数学建模时可将粮仓简化为一矩形区域并预先设定坐标轴,简化模型如图1所示.

本项目计量的一个重要目的是定量地得到粮食的体积,进而定量地计算出粮库储粮的质量.在实际计量中只需要有限个点的高度值,但实际考察中我们发现储粮表面基本上是一平面,起伏不大,所以其余的点即可据此推算出,求粮食的体积即可简化为求足够多个点的高度问题.

图2 计量数据采集流程图

2 计量数据的产生与处理

2.1 计量数据的采集

根据粮仓监控的实际情况,粮食入库后具有变动小、不需要连续计量的特点,粮仓计量采取主从式结构[3].根据主从式结构设计,计量系统在两种情况下进行计量:(1)监控中心发送指令,计量系统完成一次计量;(2)触发器触发后发送指令,计量系统完成一次计量.计量系统数据采集流程如图2所示.

2.2 数学模型的建立

本项目中采用超声波传感器以非均匀、重点区域(门窗等可能盗取粮食的部位)布点方式测距,一共有6个点,即已知粮面6个点的三维坐标.根据本项目的实际情况,选用拉格朗日插值法进行函数插值[4].

拉格朗日插值法是基于基函数的插值方法,插值多项式可表示为:

其中li(x)称为i次基函数:

则一般离散数据(xi,yi),i=0,1,2,…,n的拉格朗日插值多项式如下:

3 曲面模型的实现

3.1 曲面拟合

由于计量系统中获取的数据是有限的,为弥补数据的不足,可采用多项式插值法得到足够多的点,再用Matlab分别拟合出Y=0,1,…,20时Z=f(x)的曲线,进一步就可以得到20×70个空间点的坐标,最后根据得到的矩阵点就可以还原出粮食表面的三维曲面.

将拉格朗日插值函数转化成名为Language的M-File程序代码文件,调用上述Language函数进行插值运算,得到一系列坐标值,再用polyfit函数进行曲面拟合.粮面三维曲面能直观高效地反映粮库储粮情况,利用上面得到的方程可以得到20×70的矩阵,再用Matlab就可以拟合出所需曲面,曲面拟合程序如下:

axis([0 70 0 20 0 10])

grid on

x=[0∶1∶70];

y=[0∶1∶20];

z= [z0(0) z0(1) z0(2) z0(3) … z0(69) z0(70);

z1(0) z1(1) z1(2) z1(3) … z1(69) z1(70);

z2(0) z2(1) z2(2) z2(3) … z2(69) z2(70);

z3(0) z3(1) z3(2) z3(3) … z3(69) z3(70);

z4(0) z4(1) z4(2) z4(3) … z4(69) z4(70);

z5(0) z5(1) z5(2) z5(3) … z5(69) z5(70);

z6(0) z6(1) z6(2) z6(3) … z6(69) z6(70);

z7(0) z7(1) z7(2) z7(3) … z7(69) z7(70);

z8(0) z8(1) z8(2) z8(3) … z8(69) z8(70);

z9(0) z9(1) z9(2) z9(3) … z9(69) z9(70);

z10(0) z10(1) z10(2) z10(3) … z10(69) z10(70);

z11(0) z11(1) z11(2) z11(3) … z11(69) z11(70);

z12(0) z12(1) z12(2) z12(3) … z12(69) z12(70);

z13(0) z13(1) z13(2) z13(3) … z13(69) z13(70);

z14(0) z14(1) z14(2) z14(3) … z14(69) z14(70);

z15(0) z15(1) z15(2) z15(3) … z15(69) z15(70);

z16(0) z16(1) z16(2) z16(3) … z16(69) z16(70);

z17(0) z17(1) z17(2) z17(3) … z17(69) z17(70);

z18(0) z18(1) z18(2) z18(3) … z18(69) z18(70);

z19(0) z19(1) z19(2) z19(3) … z19(69) z19(70);

z20(0) z20(1) z20(2) z20(3) … z20(69) z20(70)]

surf(x,y,z)

xlabel('X'),ylabel('Y'), zlabel('Z')

x1=0∶0.2∶70; % 对函数进行插值处理,得到光滑图形

y1=0∶0.2∶20;

[x2,y2]=meshgrid(x1,y1);

t11=interp2(x,y,z,x2,y2,'cubic');

surf(x1,y1,t11) % 图像再生

view(30,75) % 视角调整

title(“粮仓曲面拟合”)

最后用函数interp2对拟合曲面进行光滑处理,得到的粮仓曲面图形拟合图形如图3所示.

图3 粮仓曲面拟合图 图4 粮食体积计算模型简化图

3.2 体积计算

智能粮库计量系统的一个重要指标是能得到粮食的质量,只要能求出粮食的体积就能得到它的质量.现在已经求得粮面的21条曲线,利用这21条曲线就能得到合适精度的体积.在求体积时将粮库粮食模型进行简化,如图4所示.图4为求粮食体积可将粮堆分为n个小体积块,分别求出每个小体积块的体积,然后用∑求和即可,其中n根据精度要求设定.在本模型中将每一小块设置为底面x轴方向为0.04 m,y轴方向为1 m的长方形(如图4中绿色方块所示),其高度取长方形四顶点(如图4中圆圈所示)平均值的长方体,一共是对20×70×50个长方块求体积和.

根据上述原理得出求粮食体积的部分程序代码如下所示:

v=0;

f0=inline('-0.000 1*x^2+0.008 2*x+7.724 1') % f0-f20为已求得的曲线方程

f1=inline('-0.000 1*x^2+0.008 3*x+7.832 5')

…………

f20=inline('-0.000 9*x^2-0.004 1*x+8.525 2')

for i=0∶1/25∶70-1/25

v=v+1/(25*4)*(f0(i)+f0(i+ 1/25)+f1(i)+f1(i+1/25));

…………

v=v+1/(25*4)*(f19(i)+f19(i+1/25)+f20(i)+f20(i+1/25));

end

disp(v) %显示结果

1.147 0e+004

即求得粮食体积为11 470 m3,体积乘以粮食比重即可得到粮食质量.

4 结束语

本系统按照计算机辅助监测、测量与综合管理系统相结合的方式进行设计,通过数学建模与Matlab仿真动态地还原出粮面的三维信息,并能精确地计算出储粮的体积.在技术方面,采用超声波测距等技术实现数据的采集,并采用成熟的通信技术保证数据的接收,所以本系统不论是在理论上还是技术上都是可行的.

参考文献

[1] 黄 芳,樊晓平,周 知,等.面向散乱数据点的超二次曲面建模与识别综述[J].计算机工程与应用,2008,(22):175-179.

[2] 宋印军,岳天祥.基于多重网格法求解的高精度曲面建模模型[J].武汉大学学报,2009,34(6):711-714.

[3] 黎 闯.软件开发过程的模型选择[J].计算机系统应用,2005,(3):91-95.

[4] 龚 纯,王正林.MATLAB语言常用算法程序集[M].北京:电子工业出版社,2008:68-70.

猜你喜欢
粮库粮仓插值
好粮仓就是硬底气
粮仓
基于Sinc插值与相关谱的纵横波速度比扫描方法
粮库竣工
粮库里的机器人
粮仓
智能化粮库现场见闻
树懒的粮仓
我为抗日政府管粮库
一种改进FFT多谱线插值谐波分析方法