背景介绍
近年来,融合物理机理的物联网(AIOT)技术在航空航天领域具有越来越广泛的应用,例如:1. 结构在线监测:工程师通过安装在飞机机翼的应变片,监测飞行器的结构变形等物理参数,进而获取飞行器的运行状态;2.热力耦合实验:对于高超声速飞行器,部分实验的迭代成本很高,通过物联网加数值仿真,给设计人员提供理论支撑,加快研发进程。近来,结合实际项目对结构应力应变监测方案相关的技术进行汇总,具体如下所示:
图1 飞行器结构应力应变监测系统架构
系统架构
图1展示了飞行器结构监测的系统架构,主要包含:1.传感器选型及安装:购买市面上现有的应变片,后续采用胶水进行粘贴;2.数据采集系统:上图中采用了两种数据采集方案,其中,方案一(图1-f)内置有电源和4G通信模组,能够将传感器采集的数据直接上传到E-twin物联网平台;方案二采用应变采集仪和网关实现数据的预处理和上传,网关中内置有Ubuntu系统,支持边缘计算,具有更好的运行速度及可靠性;3.物联网平台:采用企业自研的物联网平台E-twin,将传感器采集的数据和数值仿真结合到一起,进而服务于航空航天及生命科学领域,加快飞行器迭代优化的速度。
我们先展示方案二的具体实施方案,通过边缘计算将传感器采集的应变数据转化为有限元模型的边界条件。其中,边缘网关采用Ubuntu系统,后续采用python语言,建立多通道应变采集仪和网关之间的接口,具体采用的代码如下所示:
from pymodbus.client import ModbusSerialClient as ModbusClient
from pymodbus.exceptions import ModbusException
import logging
# 创建 Modbus RTU 客户端
client = ModbusClient(method='rtu', port='COM8', baudrate=9600, timeout=10, parity='N', stopbits=1, bytesize=8)
try:
# 连接到从机
if client.connect():
# 读取寄存器(使用功能码 03 或 04,这里以 03 为例)
# 起始地址为 0,读取 2 个寄存器
response = client.read_holding_registers(0, 2, slave=1) # unit 是从机地址
if not response.isError():
# 计算长整形数据
high_word = response.registers[0]
low_word = response.registers[1]
long_value = (high_word << 16) + low_word
print("读取的数据:", long_value)
else:
print("读取错误:", response)
else:
print("无法连接到从机")
except ModbusException as e:
print(f"发生Modbus错误: {e}")
except Exception as e:
print(f"发生其他错误: {e}")
finally:
# 断开连接
client.close()
上述代码能够远程获取传感器的实施结果,后续转化为力学工程师熟悉的数据形式,方便对问题进行分析定位。
附1:这个是企业的主线任务,过去几年里,跟合作伙伴一起完善优化了嵌入式采集节点,实现微弱信号的采集;具备整套流程需要的全部产品,与市面上方案相比,最核心优势在算法这块,我们这边在性能受限的网关中部署AI算法,实现数据的预处理,具有更好的数据安全性,能够适用于国防等领域。另外,希望未来能够能够做的更小巧(20-20mm)。
附2:其次,2023年与合作伙伴一起,自研的有物联网本地平台,能够与有限元软件进行深度融合,相关代码10万行以上~
附3:之前一直感觉主业做的不是那么完善,汇总整理比较少~
附4:回答一下前段时间研究生同学黄瑞的问题(马老师现在做的跟研究生做的方向偏差很大呀!):咋说呢,毕业后更偏向于实际工程应用,更多考虑技术能够给客户、合作伙伴带来哪些价值,另外,相关工作算是研究生工作内容的深化,现在依然需要用到计算力学这一套,特别是ABAQUS软件的二次开发,UMAT和UEL子程序相关等。