虚拟模态实验室的设计与实现

2022-02-25 00:44丁翔宇王彤
机械制造与自动化 2022年1期
关键词:频响数组时域

丁翔宇,王彤

(南京航空航天大学 机械结构力学及控制国家重点实验室,江苏 南京 210016)

0 引言

模态试验又称为试验模态分析,是为确定线性振动系统的模态参数所进行的振动试验[1-3]。结构模态分析理论发展到今天已经广泛运用于航空、航天等诸多军工领域和汽车、电子、机械、土木工程的各个领域。常用的模态参数辨识方法分为:1)频域法,主要通过测试得到系统的相应信号,经快速傅里叶变换处理后得到系统的相应函数,再经识别后得到有关的模态参数;2)时域法,通过利用系统的自由衰减振动时域模型来识别系统模态参数,后发展成应用随机减量特征技术从系统的随机振动响应中获取随机减量特征,进而从随机减量特征函数中提取模态参数的方法。传统实验室作为一种资源高度密集的综合系统,在实验仪器的更新和环境的维护上,需要投入大量的人力、物力和财力,这使它的发展受到很大限制。随着现代计算机虚拟现实技术的快速发展,虚拟实验室应运而生。虚拟实验[4-7]不同于常规实验,彻底打破时间、空间的限制,实际操作之前可以在虚拟实验环境中多次模拟和创新设计,然后再到实验室进行实际操作。

Unity3D引擎是目前建立的虚拟仿真实验室使用最普遍的引擎。刘忠凯等[8]曾使用Unity3D设计了装甲车辆虚拟现实运动的系统,在三维软件3DMax 中建立装甲车辆的三维模型图,将装甲车辆的模型图导入到Unity3D引擎中,在Unity3D中完成模型导入后的虚拟场景漫游,通过C#编写脚本,实现装甲车辆在场景中的运动与碰撞以检测算法。通过建立硬件系统,并实现硬件系统的输入对虚拟现实场景中装甲车辆运动的控制。

综合上述研究成果,本文提出了一种基于Unity3D的模态测试与结构动力修改[9]一体的虚拟仿真实验室。在虚拟测试过程中输出虚拟的力信号与时域信号,保存成UFF58[10]格式;再由模态测试软件N-Modal读取数据输出固有频率、模态振型、模态质量,并根据固有频率改变的目标值计算在节点处所需增加的质量或者刚度;也可以根据测试的振型数据预测修改后的结构固有频率。在修改过程中只需要在节点增加刚度或者集中质量,其操作简单、修改方便,具有很强的实用意义。

1 理论背景

1.1 基于模态试验的测试原理

由单位脉冲激励法测试结构模态参数,主要是依据输入与输出信号求解频率响应函数。要获取虚拟输入与输出信号就要有测试结构的各种参数。因此首先根据测试结构建立有限元模型如图1所示,使用求解模块Substructuring求解,提取参数得到结构刚度矩阵M、质量矩阵K与阻尼矩阵C。

图1 Ansys有限元模型

根据部件属性与大小,测试模态阶数,设置分析频率fs,采样点数N,得到频率取值间隔为

(1)

根据K、M、C与带入频率值求解动刚度矩阵的逆矩阵,并由单位激励和测试点位置,再求出对应点的频响函数幅值(i=0,1,2,…,N):

fre(i)=(K-w(i)2M+w(i)C·i)-1|(x2,x1)

(2)

由频响函数幅值数组fre做中心对成共轭处理得到频谱数组FD,再将数组FD傅里叶逆变换得到时域数组TD。

考虑实际过程中噪声的影响与锤击力的大小,将时域数组乘以一个调节系数a模拟单位激励力的大小;生成噪声数组并加入到时域数组中,以此来模拟噪声。本文所采用的加噪声方法为按百分比加噪声:噪声分为白色噪声与有色噪声,设白色噪声百分比为npw,有色噪声百分比为npc,如式(3)-式(4)所示。

npw=pw/100n

(3)

npc=pc/100n·(a·TD)

(4)

n为正态分布数组,加入噪声后得到新的频域数组N_TD如式(5)所示。

N_TD=a·TD+npw+npc

(5)

将新的时域信号经傅里叶变换得到新的频响函数N_Fre,由新的频响函数生成相干函数如式(6)所示,其中j为力锤敲击次数,N_Fre(j)表示每敲击一次产生的频响函数数组。

(6)

由上述公式建立完整的虚拟模态测试理论基础,在此基础上又加入了结构动力修改功能,在测点处添加集中质量,即在刚度矩阵对应位置修改值,就可实现对频率的改变。

1.2 算法实现

1)基于C#语言的脚本程序编写

C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言,是运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通信领域。用C#编写虚拟信号算法流程如图2所示。

图2 虚拟信号算法流程

2)结构动力修改功能的实现

由于Ansys输出的质量矩阵与刚度矩阵每行都可以明确定位到相应的自由度。因此本文所采用的结构动力修改方法是在测试节点上随机添加的添加质量,利用Unity3D事件监听与实时输入功能,在运行虚拟实验室时实时输入修改参数,由事件监听功能获取字符串;最后利用C#解析字符串把数值加入到质量矩阵与刚度矩阵对应的位置上,同时在测试部件上显示加载的集中质量,力锤敲击时就可使用修改后的质量矩阵与刚度矩阵计算。

2 建立虚拟实验室

2.1 虚拟实验室设计流程

基于Unity3D软件开发虚拟模态测试的过程,实质上也就是开发虚拟现实内容的过程。按照模态测试的测试流程,首先应用三维建模软件建立力锤、传感器、数据采集仪和测试部件等三维模型,然后将三维模型导入到Unity3D软件中,使用C#编程控制力锤移动,并播放敲击动画功能,显示力信号、加速度信号、相干函数、频响函数。系统开发流程如图3所示。

图3 Unity3D开发流程

2.2 虚拟实验室设计与实现

使用3DMax建立虚拟实验室所需要的数据采集仪、测试部件简支梁、传感器,并设计力锤动画,动画以绕轴线60°转动,如图4所示。

图4 虚拟实验室所需组件

绘制出模态测试过程中所需要的各种函数图形,如图5所示。由于Unity3D本身并不自带绘制函数图形,因此要外部制作一个坐标轴图,插入到界面中。函数图形是使用软件自带画线条的功能,线条最多可插入1 000个点,由此可根据坐标系在界面中的位置将计算出的函数值插入线条中并缩放到坐标系中。坐标轴上的数值由计算得出,利用软件中的UI功能显示到桌面上。

图5 图形显示

为了实现结构动力修改功能,添加修改功能如图6所示。由于Unity3D脚本是基于C#语言的输入,修改质量和位置,修改质量和位置必须保证一致。C#再解析字符串数组,即可在相应位置添加。反映到脚本中就是根据修改位置数据找到对应刚度矩阵或者质量矩阵加上对应的修改量,如图7所示。

图6 噪声与修改功能

图7 结构动力学修改功能实现

修改后可以明显看到频响函数曲线的变化,符合实际情况,即质量增大、频率降低,测试范围内的频率阶数会相应地增加。有了这一项功能可以自由改变结构观察到频率振型的变化,如图8所示。

图8 修改后频响函数

为了能够模拟虚拟力的大小,将敲击动画延迟1.5 s播放,根据鼠标点击时间设置敲击动画的播放速度,当点击时间超过1.5 s或时间过短时,提示敲击过载或者力过小未触发。模拟锤击动画如图9所示,再点击测点之前动画在New State状态之下,点击之后进入Any State 状态并获取点击时间,等到点击时间>1.5s后进入din 动画播放,动画播放完成后再次进入New State状态。

图9 虚拟实验室测试界面

实现以上模态测试主要功能后就能够搭建整个模态测试界面如图10所示。根据模态试验实际过程中的数据记录方式,将虚拟模态实验的力信号与时域信号随着敲击过程,每敲击一次保存一次数据,数据以Uff58格式保存成unv文件。

图10 虚拟实验室测试界面

2.3 虚拟实验数据分析

测出的虚拟数据直接导入N-Modal模态分析软件,再对数据进行信号处理与分析得到频响函数以及前4阶振型如图11所示。

图11 虚拟数据分析结果

3 结语

1)如上所示基于Unity3D 的模态试验虚拟仿真教学系统,由虚拟实验到最后的数据处理一套流程就完善了。可以应用到模态试验课程教学上,分析一些结构变化对模态参数的影响,无需再做具体实验。使用 Unity3D 开发完成后将其发布到 PC 端,使用者可以自由安装体验实验过程,伴随教师的讲解,使得学习者对模态试验过程的认识更加深入。

2)随着三维建模技术和虚拟现实技术的不断发展,对于虚拟现实内容的开发会变得越来越简便,虚拟模态试验各种实验条件会越来越完善,为模态试验的学习与实践提供重要的补充。

3)虚拟仿真实验系统并不能涵盖到所有实验内容,在实际实验中总会遇到各种各样的问题;在虚拟仿真学习的基础上,应该尽可能地让学习者实践接触,虚实结合、互相补充。

猜你喜欢
频响数组时域
JAVA稀疏矩阵算法
改进的浮体运动响应间接时域计算方法
基于频响函数预测法的车内振动传递路径分析
基于分块化频响函数曲率比的砌体房屋模型损伤识别研究
JAVA玩转数学之二维数组排序
基于复杂网络理论的作战计划时域协同方法研究
美团外卖哥
网络分析仪时域测量技术综述
变压器绕组变形的检测
更高效用好 Excel的数组公式