面向船舶结构健康监测的数据采集与处理系统(一)系统架构

news2024/11/24 9:42:48
世界贸易快速发展起始于航海时代,而船舶作为重要的水上交通工具,有
其装载量大,运费低廉等优势。但船舶在运营过程中出现的某些结构处应力值
过大问题往往会给运营部门造成重大的损失,甚至造成大量的人员伤亡和严重
的环境污染,因此实时掌握船舶的监测点应力状况,跟踪船舶各个重要监测点
的应力信息将会提高船舶的运营安全,避免因船体结构的损坏而产生重大的经
济损失。
数据采集与处理系统中上位机采用 C/S 架构,下位机采用 B/S 架构,共分
为四个部分,分别是传感器、解调仪、下位机、上位机,下位机能够做到系统
的所有功能,上位机只实现系统的部分功能,包括应力、应变查询等功能的显
示。上位机和下位机之间的数据通讯通过 TCP/IP 协议实现,而解调仪与下位机
之间的通讯则通过 socket 实现。
2.1 需求分析
本系统中需求分析主要包括功能需求和非功能需求,其中系统需要实现什
么功能是功能需求的要讲述的内容,而保证软件的可靠、稳定则是非功能需求
要考虑的问题。目的是为系统的功能需求提供保证。
2.1.1 功能需求
根据船厂的具体要求,系统的数据采集依靠光纤光栅传感器,通过一定的
采样频率将采集到的数据传送到光纤解调器进行处理,解调仪则将光纤光栅传
感器采集的数据实时调制,原理是将光纤光栅传感器采集的光信号转变成传感
器安装位置应变的大小,再通过复合材料实验室提供的力学知识将应变信息转
变成应力信息。每个监测点包括四个传感器,其中 1 2 3 、号是应变传感器,
4 号是温度补偿传感器,传感器部署方式如图 2-1 所示。因为应力和温度的改变
都能够引起光纤光栅传感器的应变变化,而在本系统中只需要考虑应力引起的
光波改变即可,因此在计算监测点应力时要将监测点温度引起的应变剔除掉。
应变、应力的大小是我们需要进行处理和存储的数据。系统共有 24 个位置需要
进行应力监测,每个位置有 4 个传感器,因此总共有 96 个传感器,当然,为了
系统的可扩展性,系统有增加监测点的功能。为了节省系统的存储空间,除了
需要将系统数据库中的数据定期导出到系统之外,还应使系统具备采集数据频
率可变的功能,因为当船舶在行驶过程中如果海面风平浪静,各个监测点的应
力变化情况会很小,此时需要的采样频率就会低一些,船厂要求的采样频率在
10Hz~100Hz 之间。
各个传感器应变的大小通过光纤光栅解调器输出之后,先将数据进行诊断,
判断传感器是否在正常工作,当传感器发生故障时,系统就采集不到原始数据,
在本系统中,传感器采集的数据是基础性工作,为后续所有工作做支撑,为了
确保传感器安全可用,可以在重要监测点位置部署双路光纤。当传感器没有发
生故障时,将某一位置的传感器数据进行计算,得出该点的应力大小,并将数
据与标准判据进行对比,查看相应船舶结构处的应力大小是否出现过大等情况,
如果应力超过标准判据,进行过载报警,并将实时监测到的应力数据以及该监
测点的正常应力范围显示在界面上。系统还应该具有历史数据显示的功能,当
船舶的运行人员要了解过去一段时间的应力情况,或者是有相应船舶需要设计
建造时对以往船舶进行参考时,系统应该能够将历史数据清晰的显示出来。
在系统运行以前,或者是有监测点需要添加时就要对监测点及传感器的信
息进行配置。监测点配置主要包括监测点编号、各个监测点能够承受的应力范
围、应力的初始值、监测点坐标位置、监测点所在通道编号以及监测点位置信
息描述等,传感器配置包括传感器的 ID 、初始波长、计算监测点应力时所需要
的参数以及传感器的位置信息等。
下位机是整个系统的核心部位,本系统将全部功能安装在下位机上,下位
机对数据做处理及存储工作,处理主要分为以下几个方面。首先下位机通过网
络与解调仪实现连接,得到的是传感器的应变信息,将得到的应变数据与实际
传感器位置相对应,每个传感器都有一个固定的 ID 和中心波长,传感器的 ID
命名方法是“通道编号 + 监测点编号 + 监测点内部编号 + 中心波长 ,传感器采集
的数据固定在以中心波长为中心的范围之内,每个传感器采集的数据都不会超
过自己的中心范围,在同一个通道的传感器因为中心波长不同,进而不会造成
不同传感器额定应变范围的交集,通过编程使得监测点内部的四个传感器应变
数据转变成应力数据,对实时的应力数据进行判断,通过得到的应力值与每个
监测点标准应力范围想对比,判断监测点实时应力是否超过该监测点的标准应
力值,报警分为几个级别,实时应力的不同范围表示报警的不同等级,通过不
同的级别提示系统运行人员当前船体结构的危险程度,而且报警要有默认处理
方式,方便运行人员操作。于此同时,将得到的应变及应力数据传送给示波器,
通过示波器的显示使得系统运行人员能够直观的了解到各个传感器和监测点的
应变及应力大小,当要进行实时数据显示时,系统将传感器采集到的数据经过
处理之后直接发送给示波器显示,如果要显示的是历史数据,先要判断要显示
时间范围内的数据是否在系统的数据库中,如果不在则先要将数据从系统外部
导入到系统数据库中再进行显示,而且显示的方式也会因为要显示的时间段长
度的不同而不同,因为系统的数据量非常大,当选择的时间段非常长时,示波
器会显示不出所有数据,所以要采用包络图的形式进行显示,即当要显示的时
间段大于十分钟时只显示每分钟之内的最大值和最小值,当要显示的时间段小
于十分钟时则将数据都显示出来。最后,数据的存储是重量级工作,系统要记
录各个传感器的应变以及监测点的应力信息,所以,数据量非常大,因此要定
期的将系统中的数据导出到系统外部磁盘,使得系统有足够的空间接受传感器
采集的数据,系统设定当数据库中的数据达到系统磁盘存储量的 80% 时则给出
备份提示,用户可以通过界面选择备份路径等信息,将系统数据库中的表导出
到系统外部之后,要将系统数据库中较久远的表删除掉。上位机的功能是方便
于用户查看,不承担全部的功能,只起到显示部分功能的作用,例如历史及实
时数据的查询、报警信息显示和处理等功能。简言之,上位机做到查询和简单
处理的作用,下位机则供系统运行人员操作使用。
界面设计要求简洁、方便,在进入系统时,默认的主界面是一号监测点所
受应力的大小的实时波形图,在左侧有一个选择框,该选择框中包含所有监测
点,在每个监测点中又有一个树形结构,显示出四个传感器,当要对监测点或
者是传感器进行配置时,可以将鼠标放在监测点上选择右键,转到监测点配置
和传感器配置等界面。
2.1.2 非功能需求
非功能需求要考虑到软件的可用性和易用性。其中可靠性、可维护性以及
适应性是系统密不可分几个部分。
1 )可靠性是系统在用户错误操作的情况下或者系统出现故障的情况下可
以支持系统恢复,在网络不稳定或者使用过程中异常中断的情况下系统应该有
相应的容错功能,这些都是在非功能需求中要考虑。
2 )易用性直接影响到软件的使用体验,因此在软件开发过程中要充分考
虑,包括系统界面的美工、交互式设计等内容,界面要易于操作,不能繁琐复
杂,以用户的角度去考虑软件在使用过程中的人机交互友好性,同时系统中功
能设计不要隐藏的太深,系统的所有功能应在主菜单处显示出来,也就是软件
的易见性要好,而无论是易用性还是易见性,都要做到以用户为中心进行设计,
而软件的可靠性和易用性将会在系统的详细设计及实现的过程中充分考虑。
3 )稳定性和可靠性对于监测系统至关重要,为了达到稳定性和可靠性,
系统在完成实现之后要进行压力测试。在硬件部署上传感器布线可以在相应位
置采用双线结构,当一条光纤的传感器发生故障之后可以快速的切换到另一条
光纤上,选用双通路的原则是选择传感器安装困难的监测点,或者比较重要的
监测点。为了提高系统的可靠性,可采用双下位机系统,如果正在运行的下位
机发生故障时可以手动或者自动的切换到另一个下位机上去。系统采用的是
Mysql 数据库,引起具有容量小的特性,因此要定期的将系统数据库中的数据
导出到系统外部磁盘,在将系统数据库中的数据导出到外部磁盘的过程中要保
证读取在 4Mb/s 以上,系统在正常运行时,不能经常性的死机,对数据的处理
要及时高效,为了保证系统的稳定性及可靠性,采取双下位机,正常情况下一
台机器正常工作,另一台机器处于热备份状态,当工作的下位机故障时,手动
将另一台机器接入到系统当中。在系统实现之后将重点测试压力测试,使系统
达到要求的稳定性和可靠性。
2.2 系统总体设计
2.2.1 系统拓扑设计
船舶结构健康监测系统主要由四 部分组成,分别为传感器、解调仪、下位
机、上位机,各个部分各司其职又相互联系。光纤光栅传感器采集各个监测点
的原始数据,在船舶结构处每个监测点有四个传感器,其中前三号是应变传感
器,第四号是温度传感器,这些传感器通过光纤实现连接。解调仪的工作是读
取光纤光栅传感器采集的数据,数据的单位是应变的大小,本系统采用 sm130
型号解调仪,它共有四个通道,但是每个通道可以通过光开关再扩展四个通道,
因此该光纤解调仪可以扩展成 16 个通道,每个通道通过一个光纤连接起来,可
以有若干个传感器,但传感器的个数必须是 4 的整数倍,也就是每个通道应构
成整数个监测点。下位机实现系统的所有功能,本次开发的软件就是安装在下
位机上,下位机与解调仪之间的通讯通过 Socket 通讯实现,通过 TCP/IP 协议
实现了下位机与上位机之间数据的传输,且上位机与下位机之间采用 C/S 架构。
系统的拓扑结构图如图 2-2 所示 :
2.2.2 软件体系结构设计
本系统共分为三层,分别为上位机、下位机以及数据采集系统,其中:
数据采集系统:是系统基础部分,该部分将传感器部署到船体的各个结构
处,采集各个监测点处传感器的实时应变数据,光纤光栅解调仪能够将传感器
部署位置处由应力引起的传感器光波波长的变化采集出来,下位机与解调仪之
间的通讯通过 Socket 通讯实现。
下位机系统:下位机是系统的核心部分,数据的处理、存储、显示等都在
该层实现,首先下位机中的解调仪客户端将光纤光栅解调仪将采集到各个监测
点位置的 4 个传感器应变数据转化成各个监测点的应力数据,之后将传感器的
应变数据和监测点的应力数据分为两路,一部分用于数据的实时显示,并在实
时显示过程中判断此时的数据是否超过标准判据,如果超过标准判据则启动报
警模块进行报警;另一部分则是将数据存储在数据库中,用于后续数据的处理,
当有历史数据需要显示时,通过访问本地数据库获取数据。
上位机系统:上位机实现系统的部分功能,主要是系统的显示功能,例如
历史及实时数据的显示,报警的处理等,其中,当有实时数据进行显示时,上
位机通过 Socket 通讯与下位机进行通讯,将下位机实时显示部分传送到上位机
进行显示,当有历史数据进行显示时,上位机通过远程数据库连接得到下位机
数据库中的历史数据,系统软件体系结构图如图 2-3 所示:
2.2.3 系统功能结构
船舶结构健康检测系统的系统由四部分组成,分别为数据的采集、系统配
置、数据的显示、数据处理、数据挖掘等部分,其中数据的采集则是下位机调
用光纤光栅解调仪提供的 DLL 文件,与解调仪建立连接,是本系统的基础,在
数据采集之前应该保证每个传感器采集的数据都是在正常的,即传感器是可用
的。数据存储时要求传感器采集的数据的频率是可变的,船厂要求的数据采集
频率在 10~100HZ 之间。数据的显示包括历史数据显示、实时数据显示,包括
每个监测点的应力显示,也包括每个传感器的应变数据显示。数据挖掘是本系
统的理论研究部分,通过数据挖掘技术对数据进行分析,对每个监测点的应力
大小以及频率分别分析,通过分析得来的数据与该监测点的状态对比,当有类
似船舶建造时,可以起到指导的作用。系统功能结构图如图 2-4 所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1333181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Fastjson 常用语法

一.Json数据格式回顾 1.1 什么是json JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSO…

现代控制理论-李雅普诺夫

现代控制理论-李雅普诺夫 单输入单输出系统(BIBO)的系统函数如下: 则,该系统的能控标准型(能空性)为: 能观性: 李雅普诺夫下的稳定性: 李雅普诺夫下的渐进稳定性&a…

AIGC:大语言模型LLM的幻觉问题

引言 在使用ChatGPT或者其他大模型时,我们经常会遇到模型答非所问、知识错误、甚至自相矛盾的问题。 虽然大语言模型(LLMs)在各种下游任务中展示出了卓越的能力,在多个领域有广泛应用,但存在着幻觉的问题&#xff1a…

Unity动画系统学习笔记(二)根运动、动画事件与状态机行为

一、根运动 在学习根运动前需要了解两个名词: 身体变换:身体变换是角色的质心。它用于 Mecanim 的重定向引擎,并提供最稳定的移位模型。身体方向是相对于 Avatar T 形姿势的下身和上身方向的平均值。身体变换和方向存储在动画剪辑中&#x…

使用VisualStutio2022开发第一个C++程序

使用VisualStudio2022创建C项目 第一步:新建C的控制台应用 第二步:填写项目名称和代码存放位置,代码的存放目录不要有中文名 第三步:点击创建,VisualStudio会自动开始帮我们创建项目 第四步:项目创建好以后&…

【PostGIS】PostgreSQL15+对应PostGIS安装教程及空间数据可视化

一、PostgreSQL15与对应PostGIS安装 PostgreSQL15安装:下载地址PostGIS安装:下载地址(选择倒数第二个) 1、PostgreSQL安装 下载安装包;开始安装,这里使用默认安装,一直next直到安装完成&…

接口测试的持续集成的工具(git代码管理工具,jenkins持续集成)

持续集成的概念:大白话就是持续的做一件事情,使其使用起来更加流畅;结合测试来讲就是说用工具管理好代码的同时,使代码运行的更加自动以及智能;提升测试效率。 ⽹址:https://git-scm.com/downloads 长这个…

SpringSecurity6 | 失败后的跳转

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容: SpringSecurity6 | 失败后的跳转 📚个人知识库: Leo知识库,欢迎大家访问 学习…

【网络安全/CTF】unseping 江苏工匠杯

该题考察序列化反序列化及Linux命令执行相关知识。 题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($thi…

TypeScript学习笔记归纳(持续更新ing)

文章目录 前言 二、TypeScript的优势体现在哪里&#xff1f; 1、执行时间上的区别 2、基础数据类型区别 3、TS优势 三、TypeScript的关键特性 四、TypeScript的类型系统 1、什么是类型注释&#xff1f; 2、类型系统核心 - 常用类型 1&#xff09; 基本类型&#xff0…

vue 自定义的通用的表格组件(使用div)

vue 自定义的通用的表格组件(使用div) 做项目的时候由于传统的table及elementUI的el-table的tr和td没办法设置间距,满足不了UI提供的设计稿,为了还原,自己封装了该组件 该表格组件的特点 表头排序功能:支持点击表头进行升序、降序排序,并显示相应的排序图标。复选框功能…

【unity】关于unity3D摄像机视角移动的几种方式详解

目录 一、前言 二、Transform基础 1、几种坐标系 2、position和localPosition属性 3、rotation属性 三、摄像机的平移 1、键盘控制平移 2、鼠标控制平移 3、整合 四、摄像机的旋转 1、绕自身旋转 2、绕目标物体旋转 3、整合 五、优化功能 1、调整速率 2、切换…

【数据结构】布隆过滤器原理详解及其代码实现

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

差生文具多之(二): perf

栈回溯和符号解析是使用 perf 的两大阻力&#xff0c;本文以应用程序 fio 的观测为例子&#xff0c;提供一些处理它们的经验法则&#xff0c;希望帮助大家无痛使用 perf。 前言 系统级性能优化通常包括两个阶段&#xff1a;性能剖析和代码优化&#xff1a; 性能剖析的目标是寻…

【期末考试】计算机网络、网络及其计算 考试重点

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 计算机网络及其计算 期末考点 &#x1f680;数…

Netty Review - 深入理解Netty: ChannelHandler的生命周期与事件处理机制

文章目录 概述CodeLifeCycleInBoundHandler 验证 概述 Netty的ChannelHandler是处理网络事件&#xff08;如数据读取、数据写入、连接建立、连接关闭等&#xff09;的核心组件。 在Netty中&#xff0c;ChannelHandler的生命周期与Channel的状态紧密相关&#xff0c;主要涉及到…

从mice到missForest:常用数据插值方法优缺点

一、引言 数据插值方法在数据处理和分析中扮演着至关重要的角色。它们可以帮助我们处理缺失数据&#xff0c;使得数据分析更加准确和可靠。数据插值方法被广泛应用于金融、医疗、社会科学等领域&#xff0c;以及工程和环境监测等实际应用中。 在本文中&#xff0c;我们将探讨三…

制作小米导航实验

一、实验题目 制作一个小米"手机"的标签&#xff0c;当鼠标移动到"手机"上后&#xff0c;显示右边的白色菜单&#xff0c;当鼠标离开"手机"时&#xff0c;菜单消失。 二、实验代码 <!DOCTYPE html> <html lang"en"> <…

高级人工智能之群体智能:蚁群算法

群体智能 鸟群&#xff1a; 鱼群&#xff1a; 1.基本介绍 蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;是一种模拟自然界蚂蚁觅食行为的优化算法。它通常用于解决路径优化问题&#xff0c;如旅行商问题&#xff08;TSP&#xff09;。 蚁群算法的基本步骤…

python分割字符串 split函数

split函数用于字符串的分割&#xff0c;可以完成基于特定字符将字符串分割成若干部分并存于列表中 url "http://localhost:5000/static/images/DICOMDIR 5.26-6.1/10283674_GOUT_5_0_2.png" # 获取最后一个_的前一个数字 parts url.split(/) print(parts)在这里讲…