ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:327.65KB ,
资源ID:18224623      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18224623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(地震仪器排列监管系统设计与实现第4章下文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

地震仪器排列监管系统设计与实现第4章下文档格式.docx

1、排列信息分发模块将异常排列信息广播发送至各个手持终端,功能实现流程如图4.10所示。系统首先读取每条信息的线号和桩号,并对照排列范围数据表,确定信息所属终端ID号和对应的查线员,依据数据通讯协议将提取到的异常数据进行封装。信息封装完成后,系统将文本文件存储至工程文件目录下并根据数据类型关键字将异常排列信息分类存储至异常道数据表和电瓶低点数据表。图4.10 排列信息分发模块功能流程图工作人员在系统主界面工具栏中点击自动发送图标后,系统定时查询工程文件下是否有待发送文件,若存在待发送文件,系统调用数据发送线程start()函数启动线程。实现网络通信时,使用QUdpSocket类完成数据的发送和接收

2、。QUdpSocket类继承自QAbstractSocket,提供了UDP套接字API,用来接收和发送UDP数据报。创建QUdpSocket对象后,调用成员函数writeDatagram()写入待发送数据,发送方式设置为QHostAddress:Broadcast并且填入设定端口号,只要向网络写入了一个数据报,SOCKET就产生一个bytesWritten()信号,触发槽函数updateClientProgress()来更新进度条并接着发送剩余数据。实现串口通信时,使用第三方类qextserialport为写入待发送数据,创建Win_QextSerialPort类对象mycom,设置波特率,数

3、据位,奇偶校验,停止位,数据流控制等各项参数,然后调用open()函数以只写方式打开串口,最后将待发送数据写入write()函数中完成数据的发送。4.5.5 终端请求处理模块终端请求模块负责处理接收到的终端数据查询和测试请求,向通讯管理模块发送数据及测试指令。服务器和手持终端采用即时信息方式传输查询指令和测试请求。服务器开启数据接收线程,同时建立UDP和串口数据接收通道,建立QUdpSocket循环监听设定端口。针对串口数据接收,创建Win_QextSerialPort对象后设定定时器QTimer,定时调用槽函数readAll()获取数据。服务器根据终端发送的登陆或退出请求将终端实时工作状态修

4、改为在线或离线。服务器向终端发送即时消息时,首先查看终端当前工作状态,后台工作人员仅向在线终端发送即时消息,发送即时信息时,用户首先在查线工列表中选中要发送的对象,然后在即时信息输入框中输入信息内容,点击发送后将即时信息发送至指定手持终端。4.5.6 界面显示模块排列监管服务器主界面布局层次如图4.11所示。本文采用手工编写创建界面代码,使用Qt Designer界面编辑器两种方式完成对界面的设计。使用手工创建代码时,需要从Qt已有的QDialog、QWidget、QMainWindow等GUI类库中选择一个作为主窗体,然后创建其它所需控件,并使用布局管理器布局这些控件,最后将该布局设置为主窗

5、体的布局。图4.11 服务器界面层次图本地显示模块由异常道显示区、电瓶低电显示区、排列范围显示区、即时信息显示区和进度栏组成,各区域显示内容及字段说明如表4.8所示。表4.8 界面显示区域说明区域名称显示内容字段说明异常道显示区系统提取的异常道信息终端ID号、线号、站号、桩号、电阻、埋置、漏电、时间、查线员姓名电瓶低电显示区系统提取的电瓶低点信息终端ID号、线号、站号、桩号、电压、时间、查线员姓名排列范围显示区各终端工作范围规划情况终端ID号、起始站号、起始桩号、终止站号、终止桩号、日期、查线员姓名即时信息接收区从终端接收的短消息终端ID号、信息内容、查线员姓名、时间即时信息显示区向终端发送的

6、短消息终端ID号、信息内容进度栏数据处理和数据发送进度无4.6 手持终端模块实现4.6.1 参数控制模块 参数控制模块负责对手持终端通讯参数进行配置。本设计通过配置软件完成对手持终端应用程序的参数配置。对手持终端进行参数配置时,将手持终端通过USB接口与PC端连接,在PC端运行配置软件,通过输入相应参数完成对服务器IP地址、服务器端口号、本地端口号、波特率和串口号的设置。手持终端软件启动时,会先从初始化文件中读取各参数值完成系统软件配置。4.6.2 通信管理模块 手持终端集成3G模块与无线串口模块,正常工作状态下,手持终端主要采用3G网络完成与服务器间的通信,在网络信号弱的区域,自动切换为无线

7、串口通信模式完成数据的收发,同时,查排列人员可以根据工作需要手动切换通信模式。自动切换通信模式情况下,手持终端在3G模块工作时不断获取实时3G网络信号强度来控制3G模块的工作状态,本文通过AT指令获取3G模块所在位置信号强度,并合理制定通信模式切换门限值控制3G网络与无限串口通信模式的切换。本文采用每隔2分钟发送指令的方式获取3G信号强度,获取3G模块实时信号强度值步骤如下:1. 连接3G模块对应串口,设置串口通信参数;2. 调用write()函数向3G模块发送AT+CSQ指令,AT+CSQ指令表示检查网络信号强度和SIM卡情况,命令格式为AT+CSQ;3. 调用readAll()函数获取回复

8、命令,命令格式为AT+CSQ:,RSSI(Received Signal Strength Indication)表示接收的信号强度指示,rssi值应在0到31之间,99表示无信号,数值越大表示信号质量越好,ber为误码率,值应为99;4. 根据rssi值计算实时信号强度,计算公式为:信号强度=-133dBm+(rssi*2)。5. 对照表4.9判断当前网络状况。参照相关介绍,结合实际实验,设定信号强度门限值。表4.9 3 G模块信号强度对照表信号强度网络状况大于-91dBm优秀-91dBm至-101dBm良好-101dBm至-103dBm较好-103dBm至-107dBm正常-107dBm至

9、-113dBm弱小于-113dBm脱网通信模式自动切换模块旨在提高数据传输的可靠性,减少通信过程中数据丢失的概率。然而,在数据传输的过程中,通信模式实时切换同样会影响数据接收的完整性。针对此类问题,本文设计两套切换机制以保证数据的完整接收。1. 部分数据重传机制部分数据重传机制原理图如图4.12所示。 图4.12 部分数据重传机制实现流程图针对2G/3G/4G网络切换至电台通信的情况,当获取的信号强度值低于门限值时,系统首先根据接收数据标志位判断线程是否正在接收数据,如果在接收数据,则先将已收到的部分数据缓存后切换通信模式,然后判断已收到的部分数据中是否含有本终端的完整数据,如果包含本终端的部

10、分数据或没有本终端数据,则向服务器发送数据重传请求。服务器根据终端发送的数据重传请求,发送属于其终端的数据。数据重传机制保证了通信模式的实时切换,并且保证了数据的可靠传输,但是,要求服务器在待发送数据中提取需要重传的数据段,这就为服务器增加了工作量,同时,广播数据的发送也为其它终端增加了功耗。2. 延时切换机制延时切换机制原理如图4.13。图4.13 延时切换机制实现流程图延时切换机制优先保证当前数据的接收,检测到当前信号强度下可以收到数据,则认为当前网络仍具有接收完整数据的能力。延时切换机制实现难度较小,不会为服务器增加工作负荷并且不会增加其它终端功耗,但存在数据接收不完整的风险。通过对两种

11、机制的对比分析和多次实验,本设计采用延时切换机制实现通信模式切换功能,同时适当提高信号强度门限值以保证数据传输的可靠性,本文设定信号强度值低于-107dBm时,将3G通信模式切换为无线串口通信。4.6.3 数据处理模块数据处理模块将接收到的数据进行分析,并且对处理后的数据分类保存。数据处理流程如图4.14所示。图4.14 数据处理模块功能流程图启动手持终端后,系统通过通信模式标识符判断当前通信模式,并且开启当前模式下的数据监听。手持终端软件采用全部接收、分段处理的方式对接收的数据进行处理。在实现过程中,开启线程实时切换通信方式,并监听端口是否有数据。当收到数据时,根据字符串sended对数据进

12、行分段,将sended之前的数据进行处理,同时继续接收sended之后的数据。进行数据分析时,首先读取终端ID号字段,判断是否是发给本终端的数据;再根据数据类型关键字判断数据类型进行数据分类存储。对地震道数据进行处理时,先将整段数据根据CDATA和dataok分条处理,再通过“/”对每条排列信息进行分割,最后将提取所需字段存入后台地震道数据表相应字段中;对电瓶电压数据和排列范围数据处理方式与地震道数据处理方式相同,这里不再赘述。4.6.4 数字地图模块数字地图模块提供当前待排查点与本终端位置关系。查排列人员选中某一行待检查排列信息,进入信息详情页面后,界面将显示当前待排查点与查排列人员的位置关

13、系,包括距离和方位。进入信息详情页面时,系统通过串口获取手持终端当前位置信息。GPS数据协议采用统一的NMEA协议,数据格式如表4.10所示。表4.10 $GPGGA协议结构说明字段0语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS定位信息字段1UTC时间,hhmmss.sss,时分秒格式字段2纬度ddmm.mmmm,度分格式(前导位数不足则补0)字段3纬度N(北纬)或S(南纬)字段4经度dddmm.mmmm,度分格式(前导位数不足则补0)字段5经度E(东经)或W(西经)字段6GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无

14、效PPS,6=在估算字段7正在使用的卫星数量(00-12)(前导位数不足则补0)字段8HDOP水平精度因子(0.5-99.9)字段9海拔高度(-9999.9-99999.9)字段10地球椭球面相对大地水准面的高度字段11差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)字段12差分站ID号0000-1023(前导位数不足则补0,如果不是差分定位将为空)字段13校验值将获取的GPS数据按照“,”分割后生成字符串列表GPS_StringList,根据列表GPS_StringList.at(2)、GPS_StringList.at(3)、GPS_StringList.at(4)和

15、GPS_StringList.at(5)得到手持终端当前经纬度值,其中北纬为正值,南纬为负值,东经为正值,西经为负值,根据经纬度值计算两点间球面距离: 式中,手持终端所在位置经度值手持终端所在位置纬度值待检查点经度值待检查点纬度值地球平均半径,本文采用6371.393千米待排查点与手持终端所在位置的方位关系由待排查点相对于手持终端所在位置的方位角表示,方位角又称地平经度(Azimuth, Az),是指从某点的指北方向线起,依顺时针方向到目标方向线之间的水平夹角42。根据已知两点的经纬度后,计算两点间连线与水平线的夹角将弧度制角转化为角度制角得到的角度并不总符合我们对方位角的定义,因此要根据B相

16、对于A的位置在四个象限两个轴上进行讨论,依据不同情况对计算结果进行不同处理。假设A点固定于原点,则方位角Azimuth在不同情况下的取值如表4.12所示:表4.11 坐标方位对照表Bj-Aj0,Bw-Aw东北Bj-Aj=0,Bw-Aw正北Bj-Aj西北Bj-Aj=0,Bw-Aw正南0,Bw-Aw西南0,Bw-Aw=0正东东南正西4.6.5 查排列线路规划模块最优路径规划模块为查排列人员提供最短查排列路线,将待排查点重新排列,生成最优组合序列,减少查排列工作时间,提高查线员工作效率。本设计将模拟退火算法与功能模块相结合,将排查点的坐标值输入到模拟退火算法中生成最优排查点序列。1. 模拟退火算法原

17、理模拟退火算法将物理中固体物质降温原理应用于求解组合优化问题,将组合优化问题解空间中的一个解对应于固体降温过程中的一个状态,将目标函数对应于该状态下的能量。以控制参数T来模拟固体的温度。在每一个温度值下进行“解变换产生新解准则判别新解取舍”的迭代过程,根据Metropolis准则决定是否保留当前解,随着温度的降低,该算法有可能从局部最优解区域跳出,得到全局最优解43。2. 最优查排列线路求解过程根据算法原理,求解最优路径的问题可以划分为以下三步操作:解空间的生成:解空间表示遍历每个排查点当且仅当一次的所有路径,表示为,是的一个排列,指的是从点出发,经过点后返回出发点的路径序列。目标函数的建立:

18、在模拟退火算法中,将闭合路径的值作为目标函数,使用目标函数来评价新解的优劣,保证了产生新解的质量。根据对问题的描述,目标函数定义为第条路径路径中的第个排查点个点到个点的距离中的排查点数量新路径的产生:随机产生1和之间的两个相异数和,设,则原路径变为,采用这种方式交换两个排查点在路径序列中的位置。结合模拟退火算法计算最优查排列路径流程如图4.15所示,具体步骤如下图4.15 最优路径计算流程图(1) 定义并初始化算法基础参数,参考已有文献,具体参数值如表4.13所示:表4.12 模拟退火算法参数说明参数名称关键字参数值说明MAXNconst int501最大排查点数量INIT_Tconst do

19、uble2000初始温度RATE0.95温度衰减率FINAL_T10-10终止温度IN_LOOP13000内层循环次数OUT_LOOP外层循环次数P_LIMIT10000概率选择次数为满足系统的实时性要求,考虑实际应用中对查排列线路规划的效率问题,本文通过定义P_LIMIT概率选择次数降低算法复杂度,当判定算法多次得到同一值时,提前跳出循环,将当前值作为最优解结束计算,这种改进大大减少计算时间,并且对上百个点计算结果的精确度满足实际应用要求。 (2) 定义初始温度,定义结构体path,创建初始路径bestpath,计算初始路径长度curpath.Length。(3) 定义当前路径curpath

20、和新路径newpath,将初始路径作为当前路径curpath。(4) 调用qswap()函数交换newpath.Cityx和newpath.Cityy两点顺序,其中x,y=rand()%N+1,且xy,生成新序列作为newpath,计算序列长度newpath.Length,得到路径长度差delta。(5) 如果deltarandom(0,1)接受newpath作为curpath。(6) 判断是否满足内部循环终止条件,若满足则跳转至步骤(7),否则跳转至步骤(3)。(7) 判断是否满足外部循环终止条件,若满足则跳转至步骤(8),否则按规则T=T*RATE降温,然后跳转至步骤(3)。(8) 返回c

21、urpath即为最优路径解,输出最优序列,结束。3. 最优路径规划模块实现最优查排列路径模块实现流程如图4.16所示,在实现的过程中,使用排列信息测试数据作为计算初始解,计算最优路径下各点序列,排列信息列表如图4.16所示。通过重载重载当前窗体类的keyPressEvent方法,实现按键事件的响应。调用key()函数判断键值正确后,系统访问后台数据库表dz_channel,通过query函数执行SQL查询语句,获取表中坐标字段列数据,调用QFile类成员函数write()将获取的坐标数据写入初始解文件,同时在数据库中创建临时数据表dz_start_route,表中字段包括序号number和坐标

22、position,通过函数init()设置算法参数后,调用算法接口sa()计算最优查排列路径,算法得到最优路径序列后,将各坐标值按最优序列写入最优解文件f_zuobiao.txt,同时创建临时数据表dz_final_route,表中按最优顺序存放个点坐标。最后调用query.exec()函数执行关联查询,将数据表dz_channel各行数据按表dz_final_route中坐标序列排序后,显示在地震道数据界面,完成一次最优路径规划操作。图4.16 最优路径规划模块功能流程图4.7 本章小结本章在介绍排列监管系统各个功能模块设计的基础上详细阐述了各个功能模块的具体实现过程。本章首先完成整体数据库设计,提出服务器平台的E-R模型,列举部分数据表的内容及创建过程。其次对系统通讯协议的实现进行具体描述。最后对服务器和手持终端软件模块分别进行介绍,并且对通信管理、最优路径规划等重点模块的实现流程和编码过程进行详细阐述。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1