动态管理模拟

2024-05-20

动态管理模拟(精选6篇)

动态管理模拟 篇1

引言

能源与环境是困扰人类的两大问题。煤和石油的燃烧造成环境污染, 产生大量的CO2, 致使气候发生了显著变化。近年来, 随着“雾霾”天气的频频出现, 原本最常见的蓝天白云成为奢望。天然气是一种高效、清洁、优质的能源, 对改善环境污染起到了积极作用。随着“西气东输”“俄气中输”等工程的建成, 逐渐形成地区性或全国性的天然气管网供气系统。燃气输送管道与储存设备是燃气进行输配的载体, 为保证合理地向用户供气, 降低运行费用, 需掌握燃气管道的流动规律。燃气输送管道流动动力系统中的很多状态参数是未知的。掌握这些参数, 了解它们之间的规律, 对于实际生产、科研都很有裨益[1]。

1模型的建立

燃气输气管道末端的压力就是城市储配站的压力, 流量就是配气站向城市的供气量。这个压力和流量随着城市的耗气量在一定范围内时刻变化着。由于气体的可压缩性, 压力、流速和密度这些参数的变化随管道长度衰减, 因而输气管工况始终处于动态流动。

输气管的直径在很长距离上是不变的, 管路曲率半径比直径大很多, 垂直于流线的气体特性变化率同沿着流线的变化率相比可以忽略不计, 所以流动可以假定为一维的[2]。对于一维流动, 流动运动参数压力p、密度ρ、速度v, 只是时间t和沿管道轴线长度x的函数。

1.1基本方程

描述气体管流状态的参数有三个:压力p、密度ρ和速度v。为求解这些参数有三个基本方程:连续性方程、运动方程和气体状态方程[2-4]。

连续性方程 (1)

运动方程 (2)

运动方程中对流向影响小, 可以忽略。当标高的差值不太大时, 运动方程中的重力项一般也可忽略不计[5], 并与式 (1) 和 (3) 联立简化为:

1.2中心隐式差法计算

由式 (4) 与式 (5) 组成的方程组为非线性方程组。解析法虽然计算简单[6], 但是存在较大误差, 主要用于计算机不很发达的年代。本文采用中心隐式差分进行计算。隐式差分法同时考虑所有节点和管道内部网格点, 建立统一非线性方程组, 运算增加, 所需计算机存储量增加, 但是可以保证数值稳定性。

1.2.1差分方程

如图1为隐式法的t-x网格图, 其中横坐标表示管道的长度, 根据需要可划分成步长为∆x的网格图;纵坐标表示时间, 计算时离散成时间步长为∆t的网格。对每一个网格节点, 用两个整数去描述它, 其中第一个表示管段网格数, 第二个数表示时步数。在图1中的四个网格节点上, 已知变量为pi, j, pi+1, j, Mi, j, Mi+1, j, 未知变量pi, j+1, pi+1, j+1, Mi, j+1, Mi+1, j+1。中心隐式差分法是将不稳定流方程以有限差分形式应用于位居四点网格中心的点子。即:

式中:A, b为变量。

将式 (6) 、 (7) 代入式 (4) 和式 (5) , 可得每个管段单元的差分格式。

1.2.2边界条件和初始条件

(1) 边界条件

(1) 管道起点 (一般为起点) 的压力为定值或为时间函数 (已知) ;

(2) 已知管道末端流量为时间的函数, 可根据城市用气量的实时参数即可。

(2) 初始条件

理论上, 初始条件对动态问题的数值计算结果影响不大。但是, 对一实际的数值计算格式, 若所取初边值条件不恰当, 将影响格式的收敛速度, 有时甚至会导致计算发散。在没有实测数据或预测数据作为初始条件下, 按稳态计算结果作为初值。

(3) 方程组求解

由前面分析可知, 当规定边界值后, 由各网格方程式以及边界条件和初始条件可组成一封闭的方程组。对整个管道系统的节点和剖面上的变量统一编号, 待求变量以向量X表示, 其增量用∆X表示, 各方程用F表示。迭代方程可写为:

式中:∆X为修正向量;F为函数向量;J (X) 为雅可比矩阵。

本文采用MATLAB进行编程, 可计算出燃气管道中各点每个时刻的流量、压力。

2结果验证

本文以文献[7]中所列数据 (某输气管道储气不稳定流实测数据) 为依据进行验证。应用本文计算方法进行计算, 计算结果跟文献中的末端压力相近, 误差在±5%以内, 可以认为本文的计算是正确的。

计算结果跟原数据有差距, 产生这些误差的主要原因可以归结为如下几点: (1) 本文在计算时采用了简化模型, 对其影响不大的惯性项、对流项及高差项忽略不计; (2) 每个小时内始端的压力及末端的流量均按一定的数值计算, 但是实际情况是这两个参数时刻在变化; (3) 管道中, 实际上每个时刻每点内的摩阻系数均不相同, 本文计算时采用了一个固定的摩阻系数。 (4) 管道中燃气的温度是变化的, 但为了计算方便, 本文采用了定温处理。

3结论

燃气输送管道是燃气输配的载体。为了合理供气、降低运行费用, 需掌握管道的流动规律。本文针对管道流动系统, 应用连续性方程、运动方程和气体状态方程建立模型, 进行合理简化, 采用稳定性、准确性较好的中心隐式差分法进行数值计算, 可得到管道中任一点的压力、流量等参数, 并可应用模拟结果计算得到管道储气量。最后, 文章应用该模型以文献[7]所列数据为依据进行计算, 计算结果与文献数据对比, 误差在5%以内, 吻合性较好。

参考文献

[1]徐彦峰.燃气管网仿真、优化的研究与开发[M].哈尔滨:哈尔滨建筑大学, 1999.

[2]姚光镇.输气管道设计与管理[M].青岛:石油大学出版社, 1991.

[3]江茂泽, 徐羽镗, 王寿喜, 曾自强.输配气管网的模拟与分析[M].北京:石油工业出版社, 1995.

[4]李长俊.天然气管道输送[M].青岛:石油工业出版社, 2003.

[5]周游, 田贯三, 张增刚.数值解法模拟长输管道末端储气规律[J].油气储运, 2004, (7) :29-34.

[6]孙建国, 王寿喜.气体管网的动态仿真[J].油气储运, 2001, (8) :18-21.

[7]李猷嘉.长输管道末段储气量的计算与分析[J].煤气与热力, 2002, (1) :8-11.

动态管理模拟 篇2

江苏省东海高级中学 韩程明

东海县教育局教研室 王愫懿,东海县房山中学 周婷

一、设计思想

金属晶体相关知识是苏教版《物质结构与性质》中重要知识点,通过几年的教学实践后,我们感觉到这部分内容也是学生的学习难点。其主要原因是学生对晶体的相关知识贮存很少,以及微观粒子的空间结构想象力不足。

Flash 8.0可以用小球表示金属原子或金属离子,再配置恰当的动画效果,就可以将金属晶体微粒的排列方式,金属键的形成,金属键的变化进行展示,有利于学生对金属键知识的理解;用动画叠加的形式,将几种金属晶体的堆积方式演示一下,加深对金属几种晶体堆积方式的记忆。

二、课件内容及特点

1.课件内容简介

本课件用flash演示。

(1)展示了金属晶体中金属离子与电子间的相互作用;

(2)展示了金属键变化过程中微粒间作用与距离的变与不变;

(3)展示了金属晶体中的简单立方堆积的形成过程;

(4)展示了金属晶体中的体心立方堆积的形成过程;

(5)展示了金属晶体中的面心立方堆积的形成过程;

(6)展示了金属晶体中的六方堆积的形成过程。

2.课件特点介绍

(1)将不可见的微观粒子运动与堆积方式,直观明了、生动形象地呈现出来。

(2)通过金属键的形成与变化,让学生从本质上了解金属键的特征。

(3)可循环、可控的动画操作,让学生对晶体的堆积方式有深刻的了解。

三、制作过程

1.下载与安装flash 8.0/下载与安装flash播放软件;

2.制作金属小球与电子;

3.用flash动画设计完成动画制作;

4.用PPT播放时,在幻灯片中插入flash动画相应的说明文字。

四、运行环境

Windows 2003/xp/vista/7等等

五、操作说明

双击《金属晶体结构动态模拟》,点击幻灯片放映即可。

六、使用效果

卫星信号模拟器技术研究动态分析 篇3

卫星信号模拟器是一种精确度非常高的信号发射装置, 发射出来的信号能够被一些特殊的卫星所接收作为导航信息使用, 为导航接收装置的开发研究、数据测试创造了良好的条件, 是导航接收装置在设计与开发过程必不可少的部分。

1 卫星信号模拟器国内外研究动态

1.1 卫星信号模拟器在国内的研究状态

根据卫星导航信号模拟器可模拟的卫星通道数量的不同, 可以将模拟器分为单通道模拟器和多通道模拟器两种类型。在国家政策的支持与扶持下, 多个科研机构第一时间展开了与GPS卫星信号模拟器相关的研究。这种型号的GPS信号模拟器与以往的GPS卫星信号模拟器存在一定的差异, 根据GPS信号发射装置、计算机和信号接收装置共同组成, GPS信号发生装置由多种不同的硬件组成, 这种信号发生装置能够在同一时间产生多种多样的通道的信号。信号接收装置是GPS信号发生器核心组成部分, GPS信号发生装置所用到的各种信号都是从仿真软件计中整理得出的。

1.2 卫星信号模拟器在国外的研究状态

我国GPS卫星信号模拟器的研制相对国外一些发达国家起步较晚, 但是, 现在已经很多厂家提供多个系列的产品, 比如英国Spirent公司开发研究的GSS和STR系列卫星信号模拟设备、美国CAST公司开发研究的数字信号系列的卫星模拟装置、雅虎公司研制的GJ100、GS600、GS5410系列等。从这些产品可以看出目前国际上高端GPS卫星信号模拟器的开发研究状况。

2 卫星信号模拟器研究的技术现状及发展趋势

2.1 卫星信号模拟器技术现状

从现在的市场发展状况可以看出卫星信号模拟器的发展模式, 主要有下列两种。

1) 基于软件的模式:在这种运营模式下, 所有和导航相关的信息和信号都是通过计算机处理获得, 包括对各种模型的数据和信号都是通过计算机软件进行计算处理后, 存储在相关设备中进行保存。

2) 基于软硬件结合的模式:在这种运营模式下, 计算机软件主要负责整理和计算相关的信息与信号, 然后运用与信号相一致的参数控制硬件对整理的信息进行分析, 发射出卫星信号。北京航空航天大学张其善等研究开发的高动态信号模拟器就是运用了这种模式。卫星信号模拟器的这两种形式都存在各自的优点, 对我国卫星信号模拟器的研究和发展有很大的帮助。

2.2 卫星信号模拟器发展趋势

卫星信号模拟器是一个全新的系统装置, 就目前来看, 其功能还无法满足所有用户同时接受信号的要求, 还有很多关键技术不够成熟, 需要进一步进行完善。对于目前卫星信号模拟器存在的问题和缺陷, 对未来卫星信号模拟器进一步发展我们需要做到以下几点:开发使用多模卫星信号收集整理功能, 对于多模卫星接收机的GPR功能、定点收索能力进行验证和测试;监视和掌控接收机在高频率环境中对信号收集、跟踪和识别的能力, 特别是在频率突然变化的状态下对卫星信号进行准确的定位与识别;运用仿真器发射一种专门跟踪一些特殊信号的装置, 对接收机系统程序的分析准确程度进行更加科学有效的验证。建立不同类型的误差模型, 然后根据对误差模型进行具体细致的实验与测试, 并根据实验所得结果逐渐完善各种误差模型, 使信号模拟器的工作环境与具体效果相互对应;减少接收机运动模型在工作过程中的误差和错误。除此之外, 可以根据实验所得结果增加信号接收机对多种错误信息的识别和筛选;另一方面, 则根据信号模拟器的运动轨迹对数据构建进行筛选和识别;使卫星导航的定位与追踪功能得到更新和升级。在开发研究定位与跟踪卫星信号模拟接收器方面, 为跟踪和定位导航计划的检验和测试提供经验和方法。选取正确有效的差分信息整理收集方案, 充分发挥出信号模拟器的测量系统功能, 使天线模型功能更加完整。并着重研究天线方向敏感程度及覆盖面积对信号的干扰问题, 构建出科学有效的数学模型, 从而对天线信号的敏感程度进行深入研究, 分析不同载体形态对卫星信号的接受方式。有些信号载体在飞行测试期间姿态角变会随着时间的变化而改变, 使得接收机天线对空间的覆盖面积也出现一些错误的判断, 严重的时候就会导致部分或全部卫星无法正常接受和处理信号。

3 结语

我国关于卫星信号模拟器的研究还处于初级阶段, 虽然进展显著, 但是还有一些技术性问题尚未突破, 在下一阶段, 需要针对卫星信号模拟器的技术规范与指标要求进行深入研究, 促进卫星信号模拟器技术水平的提升。

摘要:详细介绍卫星信号模拟器在国内外的研究状况, 总结得出一些相关的理论知识, 根据这些理论知识对卫星信号模拟器未来的发展趋势进行详细的探讨。

关键词:卫星信号模拟器,技术研究,应用

参考文献

[1]孙亚伟, 曹乃森.全球卫星导航系统GPS GLONASS伽利略的对比研究[J].信阳农业高等专科学校学报, 2009 (2) .

[2]王克平, 边少锋, 翟国君, 等.Galileo与GPS卫星导航系统的性能比较研究[J].海洋测绘, 2008 (6) .

[3]常青, 张伯川, 陈向东, 等.高动态GPS信号模拟器信号强度问题研究[J].电子与信息学报, 2007 (4) .

动态管理模拟 篇4

黄河宁夏段COD及氨氮污染动态分布模拟探讨

通过对近10年来黄河宁夏段污染源的`统计和分析,选择在最不利的水文条件下,利用一维和二维水质模型对COD及氨氮污染动态分布进行了模拟,结果发现,用一维水质模型模拟黄河宁夏段COD及氨氮的沿程浓度与实际监测值有较好的一致性.同时探讨了模型的降解系数、边界条件及黄河宁夏段COD和氨氮的沿程浓度的动态变化.

作 者:云飞 李燕 杨建宁 杨振西 Yun Fei Li Yan Yang Jianning Yang Zhenxi  作者单位:云飞,杨建宁,Yun Fei,Yang Jianning(宁夏环境信息中心,宁夏,银川,750004)

李燕,杨振西,Li Yan,Yang Zhenxi(宁夏环境监测中心站,宁夏,银川,750021)

刊 名:宁夏大学学报(自然科学版)  ISTIC PKU英文刊名:JOURNAL OF NINGXIA UNIVERSITY(NATURAL SCIENCE EDITION) 年,卷(期):2005 26(3) 分类号:X21 关键词:黄河   COD   氨氮   模型   模拟  

动态训练模拟器液压控制装置系统 篇5

长期以来,坦克手的培训都是利用真实的坦克和场地进行的,这样的训练尽管具有实地演练优势,但是坦克行进路线和路况少,耗油量大。坦克兵动态训练模拟器正是为了弥补实地演练的一些缺点,辅助培训坦克驾驶员而设计的。本文以美国战后第三代主站坦克M1A1艾布拉姆斯坦克为目标,介绍了一种坦克兵动态训练模拟器液压控制部分的设计流程。为了增加模拟训练的真实感,模拟器采用高性能嵌入式控制系统实现液压系统的控制,增加训练模拟器的动作实时性和地面多种行驶姿态,并利用三个液压缸支撑一个平面的设计,形成三自由度的运动姿态模拟。

模拟训练器的液压伺服系统如果采用模拟系统,其响应快,但由于参数调整非常难,自适应性差,以及参数漂移等问题使得模拟系统难以保证长期可靠运行。用数字系统代替模拟系统的难点在于三路油缸的实时和同步控制。本文设计了一种嵌入式控制器——嵌入式平板电脑ZY-100作为人机界面和控制器,以期实现液压伺服系统的可靠性和实时性要求。三自由度控制的复杂运算采用烟台中宇航空液压有限公司的嵌入式控制器完成,实现计算机、PLC和触摸屏显三合一,这样使集成化高、连线少、体积小、厚度只有20 cm,而一般的三自由度控制器都比较厚,虽然嵌入式液压控制研究已有许多在国内外公开发表的文章[1,2,3,4] ,但具有如此小体积、高集成化、三自由度复杂运算的控制器在国内期刊上鲜见发表。

1 动态训练模拟器的工作原理

坦克兵动态训练模拟器液压部分是由三个液压伺服缸支撑一个平面,使其能形成三自由度的运动,以模拟坦克在不同的地面上的行驶姿态。其中,三个油缸的运动轨迹由用户在人机界面预先设置,计算机产生三路数字电压信号,分别经过D/A变换、放大,转换成电流信号去控制三个伺服阀的开度和方向,从而独立控制三个油缸的运动方向和速度,使底部的三路油缸控制顶部平台做三自由度的运动。为了能够正确调整油缸的移动,通过与油缸相连的位移传感器的反馈信号构成各自由度位置闭环控制,将油缸位移电压信号与计算机输出信号比较,然后根据差值信号,纠正油缸移动的实际位置。因此,位移传感器输出的是负反馈信号。本文计算机经D/A转换后的输出电压为0~10 V。开路状态下, D/A转换后的输出电压0~10 V对应油缸移动距离0~200 ms,且D/A输出与油缸移动距离成正比;位移传感器的输出为0~10 V,对应油缸0~200 ms的移动距离,且与油缸移动距离成正比。

为保证油的顺利流动和油泵的正常工作,在油箱里油泵到油缸的通道中设置了人工控制溢流阀。溢流阀中的油压及油泵中的液位将通过压力传感器和液位传感器送到计算机实时监控。如果发现油压过高或过低,通过旋转溢流阀开关,可以改变输油管管口的大小,调整油压,使油压满足正常工作要求。如果液面过低,计算机将产生报警信号,同时送出关机信号,关掉油泵驱动电机。

另外,油温的范围也会影响油泵的正常工作,系统通过油箱中的温度传感器提取温度信号,并送计算机处理;当油温较高时,系统将输入冷水使油降温;如果油温超过一定温度,计算机将报警。当油温较低时,停止送水。

整个系统的原理框图如图1所示。

2 系统设计

2.1 硬件

坦克兵动态训练模拟器的硬件系统包括开关电源、嵌入式控制器、液压缸、放大器、伺服阀、油缸、液位传感器、温度传感器、压力传感器、位移传感器、油箱、油泵、溢流阀等。

2.1.1 计算机

系统采用了嵌入式平板电脑ZY-100作为人机界面和控制器,它集微处理器、PLC、触摸屏、A/D转换、D/A转换为一体。模拟训练器通过底部的三路油缸控制顶部平台的运动,油缸的运动轨迹由给定的计算公式得出,控制的难点在于三路油缸的实时和同步。该油缸是通过伺服阀的开度和方向以及位移传感器的反馈来确定运动位置,达不到实时性要求就无法对油缸位置进行精确的控制。平台的位置由三路油缸共同决定,如果不能做到三路油缸同步,也就无法得到设想的运动轨迹,达不到预定的目的。

液压伺服系统控制效果好是因为采用模拟系统(响应快),但由于参数调整非常难,自适应性差,以及参数漂移等问题使模拟系统难以保证长期可靠运行,用数字系统代替模拟系统时,只有当数字系统采样时间和响应(循环周期)时间达到1~2 ms时基本上与模拟系统一样,达到1 ms时,效果更好。为了满足液压系统的实时性和稳定性要求,先后试验过工控机、PLC 等多种控制平台,但是大多不能满足苛刻的实时性要求,最终采用自行研制的响应快、可靠性高的嵌入式系统,设计了嵌入式控制器——嵌入式平板电脑ZY-100作为人机界面和控制器。

该控制器通过选用12位高精度的模拟量输入/输出端口,直接与CPU进行通信,响应速度快。位移传感器送过来的电流信号,能迅速转化成位移量,获得油缸的当前位置,与给定的目标位置进行比较输出,控制油缸的运动。在CPU强大的计算能力支持下,从采集、转换、比较到输出,总共耗时不到0.5 ms。采用ZY-100外部选配的模拟量输入/输出端口,不但很好地满足了实时性要求,也降低了硬件成本。

ZY-100带有色彩丰富的人性化界面,可以对设备的运行情况进行实时监控。简单方便的触摸屏控制方式,使安装和操作变得十分简单。

嵌入式控制器指标如下:

(1) 24路可编程TTL电平开关量输入输出;

(2) 16路单端/8路双端模入;

(3) 4路独立模出;

(4) 3路计数通道。

2.1.2 电源与接地

本文采用明伟牌开关电源,输出电压分别为±9 V,±24 V,+5 V。其中,±9 V供给三路电压/电流放大器;24 V供给溢流阀和三路伺服阀。

系统配有UPS,保证系统不断电。为了保证可靠接地,本文采用了模块化布局。

启动电机时有三角型接法到星型接法的转换,需要延时6 s;电机启动后需要延时2 s再启动通道阀和系统阀,同时给稳压电源通电。

2.1.3 PLC

为了增加带负载的能力,微处理器产生的控制和报警信号通过PLC输出。该输出控制电机启动、停止;控制溢流阀的开启、停止;当温度过高时,输出报警信号。

2.2 软件

系统软件在LabWindows/CVI软件平台开发,支持的操作系统是Windows 9x和Windows 2000,硬件要求 Intel Pentium 166 B,内存128 MB,128 MB以上CF卡和多功能数据采集卡。该软件可根据设定的曲线模式,输出数据到电液伺服阀,模拟坦克的颠簸振动效果。系统可实现数据采集、状态检测、曲线显示、闭环反馈输出等功能。

软件的功能之一是使计算机产生不同的电压波形,以控制伺服阀的开度和方向有:时速45 km/s,67 km/s颠簸路面;时速30 km/s;49 km/s凹凸路面;加速行驶;左后、右后左前、右前倾斜。

3 结 论

本文实现了M1A2主战坦克的各项参数指标模拟包括:时速67 km/s颠簸路面;时速48.3 km/s凹凸路面;7 s的时间内将速度由0~32 km/s加速;爬坡31°,通过高1 m的左垂直墙、左后、右后、左前、右前倾斜。

该设计主要有三个特点:

(1) 三自由度控制这种程度的复杂运算来用烟台中宇航空液压有限公司的平板电脑完成,实现了计算机、PLC和触摸屏三合一,集成化高、连线少、性能稳定、体积小、厚度只有20 cm,较一般的三自由度控制器体积小得多,并且克服了用模拟控制系统实现时由于参数调整非常难,自适应性差以及参数漂移等问题使得模拟系统难以保证长期可靠运行的缺点,克服了一般用数字系统代替模拟系统时难于三路油缸的实时和同步控制的缺点。另外,数字控制系统较模拟控制系统更加灵活,在以后进一步的研制中,可以根据具体情况,通过编程,增加更多的控制功能。

(2) 软件编程使人机界面操作平台实现了傻瓜式操作,减少学习设备的训练强度。

(3) 模拟的道路状况可通过实时采集数据输入到计算机。目前,正在进行该产品的升级换代,将使新一代产品的功能更加完善,性能更加稳定。

本文设计的M1A2型主战坦克的坦克兵动态训练模拟器,界面操作简单,运行稳定,实时性好,较好地满足了对坦克手的模拟训练要求。实验效果表明,该坦克兵动态训练模拟器可以灵活地模拟坦克经过的各种地形,可以成功地用于坦克兵动态模拟训练。

本文的研究成果不仅为坦克兵训练模拟器的进一步完善打下基础,也为诸如飞机、太空舱等其他类型的训练模拟器的研究提供了参考。

参考文献

[1]邵明,李光炀,杨惠灵.基于FPGA的嵌入式数控系统功能模块设计[J].机床与液压,2010,38(16):68-71.

[2]杨惠灵.嵌入式数控系统中PLC模块的设计与实现[J].福州工程学院学报,2009(3):287-303.

[3]WILBER A,ENRICO C,STEFANO M.Embedded modelcontrol applied to mobile hydraulic systems[C]//2010 18thMediterranean Conference on Control&Automation(MED).Marrakech:[s.n.],2010,7:715-720.

[4]WAN Jia-fu,LI Di,YE Feng,et al.Multitask schedulabi-lity simulation research of hydraulic embedded control sys-tem[C]//IEEE International Conference on Control andAutomation.Guangzhou:IEEE,2007,5:352-355.

[5]张建惠,何强,韩壮志.基于嵌入式系统的典型雷达航迹仿真与实现[J].现代电子技术,2010,33(20):153-156.

[6]林继民,吴怡,林萧.基于Linux嵌入式系统开发平台的构建及应用[J].现代电子技术,2010,33(18):30-34.

[7]徐艾,谭宝成,廉春原.智能轮式移动机器人嵌入式控制系统设计[J].电子设计工程,2008,16(11):30-32.

动态无线传感器应用模拟系统设计 篇6

关键词:多线程模拟,语义解释器,传感器网络

1 本文思路与研究现状

目前无线传感器网络作为新兴技术,受到越来越多人的关注。但是可以各类模拟程序并不能完全满足用户的各类需求,商业模拟软件往往庞大而且费用较高。网络模拟常用的NS2只能在linux和unix下运行(在Windows下只能使用虚拟机),而且只善于做低层协议的模拟,在应用层的模拟设计较为困难且不便,所以我们需要一种简单易用而免费的,可跨平台的,侧重于应用层模拟功能的模拟系统。

2 底层通信模块设计思路

模拟传感器结点的分布式流程,结点的独立通信是其中最重要的一环,每个结点需要独立的发送消息和监听消息。如果使用传统的编程方法,是无法做到结点通信的独立性的,所以我们将每个结点作为独立的通信单元,使用多线程模型控制通信过程。

我们采用了一种灵活的设计方法,采用目共享通信模块的方法来模拟底层通信。这种方法可以根据模拟环境的硬件水平和模拟要求灵活调节线程池的规模,在系统开销和并发性上进行平衡,以适应更多的情况。这类方法也有两种思路:

第一种是为线程配备线程池,流程线程为相对短小的处理线程,结点发送消息时,直接由线程池中空闲的监听线程接收消息,并交由结点处理。这种方法基本思想就是创建一个容纳线程的容器(少于实际需要的线程),每当请求到来的时候,如果容器内没有空闲的线程,而且总线程数未到达容器上限时,创建线程来处理请求,当流程结束将线程并不直接销毁,而是回收到线程池中,改为空闲状态等待下一个到来的请求。当有请求到达时,而线程池内所有线程都处于工作状态,而且数量已达到上限时,请求将被阻塞,等待直到出现空闲线程。

第二种方法也需要一个缓冲区是存放消息,不同于第一种方法的是不需要线程池来控制线程的数量,而是打开固定数量的循环监听线程,持续监听队列中的消息,一旦发现队列中存在消息就将其取出交给结点处理,如果不存在则进入阻塞状态,所以需要一个阻塞队列作为缓冲区。阻塞队列不同于一般的队列,可以自动完成同步工作,即同时有多个请求队首数据的线程到达时,会自动互斥,将数据分配给请求线程,而当队列为空时,请求数据的线程会自动阻塞。

考虑到无线传感器结点的特点与这两种方法的优缺点,我们采用建立二级缓存结合两种方法建立模拟通信模块。首先消息的发送过程只是将数据包放至第一级缓存中。在消息的传递上我们采用阻塞队列作为线程之间通信的渠道。结合监听器的线程池模型,这里我们采用单队列多服务台策略处理结点之间的消息通信。即根据结点数目与其他因素创建一定数量的搜索线程,运用上面提到的第二种处理方式,将一级缓存中的数据取出进行拆包和再封装,将处理后的数据包投放至二级缓存中(如果运用了分布式模拟模式,这一步会将数据包分别分发至各个模拟客户端机)。然后,由一个单独的提取线程将数据从二级缓存中取出,交给负责处理消息业务流程的线程池,由线程池控制创建实际的业务流程线程,如果线程池内线程全部处于工作状态则阻塞提取线程。最后由业务流程处理消息,完成通信过程。

3 结点功能性组件设计

在大规模的结点模拟过程中,无疑结点对象是整个模拟程序占用内存最多的部分,随着结点数量的增加,内存的占用也会大幅度增加。所以有效控制结点对象的内存消耗是降低空间复杂度的最重要的一步。

考虑结点的组成,结点对象内部主要由静态字段和功能性模块组成。结点的功能性模块有每个模拟程序实体采用单例模式创建,在所有结点之间共享,实现享元设计模式,有效地节省内存开销。主要的功能性模块有三个:监听器、消息识别器和消息处理器。

监听器内置一个一级缓存区,负责监听任何发送至结点的消息包,然后存放至缓存区内。消息包是结点通信的基本单位,里面封装了消息发送方与接收方的地址与消息数据。一个模拟实例共享一个监听器,也就是说所有结点的通信包都存在在一个缓冲区呢。为了节省存储空间,每个结点发送的消息包,无论是发送至单个结点或是多个结点,都共享一个消息包。

消息识别器内置一个有固定数量线程的消息识别线程组。消息识别线程负责识别一级缓存区内的消息包内的地址信息,并将消息包拆为消息数据,如果采用了多主机分布式模拟方式,将消息数据分发至目标结点所在主机的消息处理器内的二级缓存区内。

消息处理器里面提供了二级缓存功能和一个消息处理线程池。消息处理器自身不断从二级缓存内提取消息数据,交给线程池内的消息处理线程然后返回继续提取。消息处理线程根据事先设定好的消息头的处理命令,对消息进行处理然后返回线程池内待命。

4 语义分析器模块

本系统提供了用户自由设计结点工作流程的功能,以便于传感器网络的应用层等上层协议的模拟工作。所有程序的业务流程都可以分解为由命令组成。无线传感器结点的业务流程和监听触发器也可以分解为命令。本模拟程序就是设计了用户自定义命令的功能。我们把组成一个业务流程的命令称为命令集。而命令集由若干命令构成,而命令是业务执行的基本单位。

为了实现这样的功能,我们运用解释器模式设计了一套抽象的语义表达式,代表一个命令。我们将命令分为三大类:条件性命令,循环命令和元命令。条件性命令相当于程序语言中的if语句,循环命令相当于while语句,一个条件性命令和循环命令由触发条件和一定数量的元命令组成,所有类型的命令均可以相互嵌套。而元命令代表真正的业务内容,相当于一个动作,如发送消息、控制结点休眠、设置某些字段或变量的值。元动作由系统给出,包括各类结点和运算功能,能够满足大多数模拟工作的需要。

作为一个完整的元命令必须要有实施动作的主体与动作内容,有时还需要动作客体。在无线传感器网络中命令的主体往往是结点,所以在设计过程中命令的运行都需要结点参数。而其他的动作客体或是对象需要在创建或运行命令时指定。我们规定元命令的参数不是任意的对象,是系统中自定义的一种实体对象。实体对象可以是基本数据类型,如整数,浮点,布尔等,也可以是是结点对象,另外用户可以按照一定条件自定义结点组或是某种集合,但范围由模拟程序限定,不能使用程序规定以外的对象。

在设计上,我们采用代理模式设计所有实体对象。在每个实体对象内部设置一个字段代表他的模式类型,每个实体对象在实际需要时才会返回实际内容,根据创建模式的不同,在返回实际值时采用不同的获取方式,如常量模式则从自身内部获取,而变量模式则会从变量列表中读取数据。

5 结语

本系统通过内存的共享机制大限度地降低了多线程程序对系统资源的消耗,通过解释器模式使得用户可以自由设计结点的业务流程,并提供了丰富的元命令组件有相当的灵活性。

参考文献

[1]C.Song,M.Guizani,H.Sharif,Adaptive clustering in wireless sensornetworks by mining sensor energy data,Computer Communications,30(14-15)(2007)2968-2975.

[2]Ok,C.,Lee,S.,Mitra,P.,Kumara,S.:Distributed Routing in WirelessSensor Networks Using Energy Welfare Metric,Information Sciences 180(9),1656--1670(2010).

[3]E Gamma,R Helm,R Johnson,J Vlissides:Design Patterns:Elementsof Reusable Object-Oriented Software,China Machine Press,2007.3.

上一篇:为农服务下一篇:工程改造