APP下载

基于C#.NET的NVH动刚度及传函分析后处理效率提升研究

2017-05-30兰斌旋常光宝李书阳梁静强

企业科技与发展 2017年2期

兰斌旋 常光宝 李书阳 梁静强

【摘 要】针对NVH动刚度及传函分析后处理工作重复操作多、耗费时间过长的情况,文章提出了基于C#.NET开发软件提高后处理效率的解决方案。通过分析后处理需求,使用C#作为开发语言、visual studio 2012作为开发工具完成软件开发。通过测试,开发的后处理软件能够在1 min内快速地完成原先需数小时的后处理工作。通过软件开发可以实现动刚度及传函分析后处理自动化,达到缩短分析周期和提升工作效率的目的。

【关键词】NVH后处理;C#.NET;动刚度;噪声传函;振动传函

【中图分类号】TP311.11 【文献标识码】A 【文章编号】1674-0688(2017)02-0100-05

0 引言

随着用户对汽车噪声、振动和舒适性方面的性能要求越来越高,车企对NVH分析的重视度也随之提高[1-2]。CAE分析流程可以分为3个阶段:前处理、分析计算、后处理。其中,后处理是对分析结算结果进行分析、整理、归纳的过程。后处理存在很多重复性劳动,浪费大量时间,分析效率低下,常占整个CAE分析工作量比重的20%~40%,甚至更多。计算结果通常是一堆海量的数据,很难直观地理解数据代表的意义,通常需要接触类似Hyperview等后处理软件进行结果的整理和显示[3-4]。不少企业常通过Hyperworks、ABAQus等CAE软件平台进行二次开发,实现分析结果后处理的自动化[5-6]。

NVH分析属于CAE分析范畴,但相比较于其他CAE分析,后处理工作量往往要大很多,特别是NVH中的动刚度分析和传函分析。通过解析分析计算结果数据结构和后处理需求,本文提出了不借助CAE平台二次开发,而是基于C#.NET技术开发软件来实现后处理自动化的解决方案。

1 分析后处理需求分析

1.1 计算结果数据结构分析

动刚度及传函分析经过Radioss、Nastran等计算软件计算后一般得到的是“.pch”格式的数据结果,数据可通过文本编辑器打开。频响类分析计算结果为各工况下,不同响应点在不同频率激励下的响应值的集合。图1为打开某个结果文件的截图,通过分析可以清晰地看到结果文件的规律性。

(1)数据按照工况ID和响应点ID组合进行分组(图1中第1—1207行为一组数据)。

(2)每组数据前7行表明了工况ID、响应点ID、数据类型等信息。

(3)每组数据第8行开始到结尾为各频率下的响应值(图1中第8—1207行为300个频率值对应的300组响应数值)。

(4)输出的响应值类型有位移、加速度、速度3种。

因此,计算结果其实就是在工况、响应点、频率3个影响因子下的响应值集合。

1.2 分析后处理[7-8]

动刚度分析、振动传函分析、噪声传函分析是常见的整车NVH分析,本文将对这3种分析后处理做需求分析并实现软件设计。

1.2.1 动刚度分析

对于线性系统,用施加在系统上的力除以位移,即得到刚度。刚度是系统的固有特征,与外界施加力和响应没有关系,即静止状态就存在,所以称之为“静刚度”。在外力作用下,系统运动起来,其刚度特性随着输入的频率而发生变化。此时,刚度是随着频率而变化的,它不是一个固定值,此时的刚度称为动刚度。动刚度取决于系统的质量、阻尼和静刚度。

动刚度结果后处理要求:运用1/3倍频法获取所有响应点的动刚度值;输出所有响应点的频率响应曲线。

1.2.2 振动传函和噪声传函分析

对于任何一个系统,施加了输入,就会得到输出。输入常被称为激励,输出被称为响应。对于一个动态结构系统或声学系统,输入信号和输出信号都是频率的函数。传递函数定义为输出信号与输入信号的比值,也是频率的函数,它表征了动态系统的固有特征,即每个动态系统都存在传递函数。

振动传递函数,简称VTF,是指车内振动响应与车身上受到激励力的比值。噪声传递函数,简称NTF,是值车内噪声相应与车身上受激励力的比值。声学上常用对数坐标衡量声压,以声压级SPL表示:

SPL=20Log(位移响应值×1011/2)dB

传函分析结果后处理要求:所有工况下,各响应点在指定频率范围内的传函极大值及对应的频率。所有工况下,各响应点的频率响应曲线。其中,振动函数极大值从响应点速度值集合中取值;而噪声传函极大值从响应点位移值集合中取值,且数值需通过声压级函数转换。

2 主要实现技术

2.1 C#.NET

C#是一种精确、简单、类型安全、面向对象的语言,它使企业程序员得以构建广泛的应用程序。C#还凭借以下功能,提供了生成持久系统级组件的能力[9]。

.NET框架类库是一个由Miscrosoft.NET框架SDK中包含的类、接口和值类型组成的库。该库提供对系统功能的访问,并且被设计为NET框架应用程序、组建和控件的生成基础。若要使用接口的功能,既可以创建实现接口的类,也可以从某个实现接口的.NET框架类中派生类。

2.2 NPOI

所谓NPOI是POI项目的.NET版本,可以从网上下载到它的最新版本[10]。NPOI的功能非常强大,不仅能创建Excel文件,而且能更深入地执行Excel文件的各种操作[11]。

3 软件设计

3.1 框架设计

软件框架设计图如图2所示。其中,NVH类库为软件开发成功的核心要素。NVH类库包含了从频响类分析需求中抽象出的点类和后处理方法类。使用NVH类库的好处是它能支持通过B/S模式和C/S模式的软件系统。不管是Web应用程序还是winform应用程序,都能够非常方便地添加NVH类库,通过类库提供的函数接口,即可实现软件后处理的功能。在软件开发设计时,还会经常用到一些通用辅助类和方法,如数据读取类、数据转换类、Excel操作类等。本软件框架通过对通用类(Utils)的引用,可將开发过程中积累的方法快速运用到项目中,提升代码复用。

3.2 抽象出NVH类

根据对需求分析可知,该类计算结果后处理过程大致如图3所示,后处理的过程数据为各类点的数据集合,这些数据集合可以通过C#语言抽象出对应的类,使过程数据结构清晰。

3.2.1 NVH基础点类(BasicPoint)

通过对计算文件分析得知计算结果可以看成是在工况、响应点、频率影响下的点集合,在此称该类点为基础点。通过C#类将基础点抽象为BasicPoint类,代码如下:

public class BasicPoint

{

public int PointIndex { get; set; }//序号,唯一性,用于识别点位置

public string Title { get; set; }//标题,对应PCH文件$TITLE内容

public string SubTitle { get; set; }//工况标题,对应PCH文件$SUBTITLE内容

public string Label { get; set; }//标签,对应PCH文件$LABEL内容

public string Types { get; set; }//数值类型,包括位移、速度、加速度。

public string OutPut { get; set; }//输出类型,对应$MAGNITUDE-PHASE OUTPUT行

public string IncentiveDirection { get; set; }//激励方向,对应$LABEL内容

public string IncentivePointId { get; set; }//激励点Id,对应$LABEL内容

public string SubId { get; set; }//工况Id,对应$SUBCASE ID内容

public string PointId { get; set; }//響应点Id,对应$POINT ID内容

public int Frequency { get; set; }//频率

public double MagTransX { get; set; }//实数X向(或位移)响应值

public double MagTransY { get; set; }//实数Y向响应值

public double MagTransZ { get; set; }//实数Z向响应值

}

3.2.2 频响计算结果类(NVHPoint)

计算结果文件是基础点的集合,因此也相当于是BasicPoint类的集合。一般结果文件至少包括位移、速度和加速度3类响应数据之中的一种,现定义NVHPoint类,该类包括了类型都为BasicPoint的响应点位移值集合、响应点速度值集合、响应点加速度值集合、单个响应点包含的频率总数、加速度响应点数、位移的响应点数、速度的响应点数。通过转换,一个计算结果文件可以等效于一个NVHPoint类实体。NVHPoint类代码如下:

public class NVHPoint

{

public BasicPoint[] AccelerationPoints;//响应点加速度值集合

public BasicPoint[] DisplacementsPoints;//响应点位移值集合

public BasicPoint[] VelocityPoints;//响应点速度值集合

public int PointOfFrequency;//单点包含的频率数

public int NumsOfAccelerationPoints;//加速度的响应点数

public int NumsOfDisplacementsPoints;//位移的响应点数

public int NumsOfVelocityPoints;//速度的响应点数

}

3.2.3 极值点类(MaxorMinPoin)

极大值为某个工况下,相应点在指定频率区间内最大的响应值。该类的设计主要针对噪声传递函数分析和振动传递函数分析。MaxorMinPoint类代码如下。

public class MaxorMinPoint

{

public int PointIndex { get; set; }//序号,唯一性,用于识别点位置

public string IncentiveDirection { get; set; }//激励方向

public string IncentivePointId { get; set; }//激励点Id

public string SubId { get; set; }//工况Id

public string PointId { get; set; }//响应点Id

public double MagTransX { get; set; }//X向(或位移)极值

public double MagTransY { get; set; }//Y向极值

public double MagTransZ { get; set; }//Z向极值

public int IndexX { get; set; }//X向(或位移)极值对应频率

public int IndexY { get; set; }//Y向极值对应频率

public int IndexZ { get; set; }//Z向极值对应频率

public int Begin { get; set; }//取极值频率区间的开始频率

public int End { get; set; }//取极值频率区间的结束频率

}

3.2.4 动刚度值点类(DyPoint)

该类的设计主要针对动刚度分析,以便于结果的输出。DyPoint类代码如下。

public class DyPoint

{

public string PointId { get; set; }//响应点Id

public double Frequency { get; set; }//频率

public double Xvalue { get; set; }//X向动刚度值

public double Yvalue { get; set; }//Y向动刚度值

public double Zvalue { get; set; }//Z向动刚度值

}

3.3 Npoi实现数据导出

3.3.1 NPOI定义单元格颜色的方法

ICellStyle red = hssfworkbook.CreateCellStyle();//创建单元格样式

red.FillForegroundColor = HSSFColor.Red.Index;//设置单元格颜色

red.FillPattern = FillPattern.SolidForeground;//设置单元格填充类型

red.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");

NpoiUtil.GetSafeCell(1, 1).CellStyle = red;

3.3.2 输出NTF结果的实现

FileStream file = new FileStream(NtfPath,FileMode.Open,FileAccess.Read);

HSSFWorkbook hf= new HSSFWorkbook(file);

ISheet sheet = hf.GetSheetAt(0); //NTF模版的读取

IRow row = sheet.GetRow(1);

double NtfValue = 20*Math.Log10(MaxOutput[i].MagTransX *100000000000 / 2);

NpoiUtil.GetSafeCell(row,1).SetCellValue(NtfValue); // NTF结果填入特定单元格

sheet.ForceFormulaRecalculation = true;

NpoiUtil.WriteToFile(NewPath,hf); //保存NTF结果文件

3.4 搭建Web测试环境

当NVH类库项目完成开发后,可通过Web程序或者Winform程序调用NVH类库来实现相关分析的后处理。为了便于测试,本文通过搭建一个Web程序进行测试。

4 软件后处理测试

测试软件已经实现了NTF(噪声传函)分析、VTF(振动传函)分析、动刚度分析后处理,考虑篇幅,下文仅通过NTF做举例。

4.1 NTF后处理

噪声传递函数(NTF)分析后处理为Web界面。如图4所示,可通过Web界面选择待处理文件,再设定极大值取值的频率区间、预警值和超标值,再点“开始处理”按钮,程序就开始进行后处理了。后处理完成后,将生成NTF结果文件和数据曲线文件。

分别打开生成的2个文件,图5左侧为NTF响应值数据,其中深阴影数据表示响应值超过最大目标值,浅阴影数据表示响应值超过预警值;图5右侧为9000002响应点在工况1、工况2、工况3下的曲线图。

4.2 软件后处理效率分析

通过使用后处理软件进行后处理花费用时进行测试,后处理用时不到1 min。人工处理和软件后处理平均用时的对比情况如下。

(1)动刚度后处理:人工约1.5 h,软件为11 s,软件用时是人工用时的1/540。

(2)噪声传函后处理:人工约5 h,软件为52 s,软件用时是人工用时的1/360。

(3)振动传函后处理:人工约15 h,软件为45 s,软件用时是人工用时的1/1230。

可见,软件后处理效率惊人,可大大缩短分析周期。

5 结论

NVH分析后处理工作量非常巨大,提升后处理效率已经是缩短CAE分析周期的关键要素。本文通过C#.Net编程技术,提出了软件设计和解决方案。

(1)所有频响类分析计算结果的数据结构是一致的,可以看成是某工况某频率下响应点的响应值集合;通过C#类可以将数据结构表达出来。

(2)NPOI導出Excel格式数据文件的功能很强大,使用也方便。

(3)软件实现后处理的效率远远高于人工处理。

(4)频响类分析后处理通过软件完成,不仅能够加快工作进度,保证时间节点,还能降低工程师的工作负荷,使他们有更多的时间和精力集中于方案的设计和优化上,达到提升方案质量和数量的目的。

(5)软件后处理可以避免人工在重复性工作过程中犯错的情况,从而保证结果的准确性。

参 考 文 献

[1]廖毅,吕兆平.基于悬置支架动刚度分析的整车NVH性能分析及改进[J].企业科技与发展,2012(10):18-

21.

[2]岳奎.汽车NVH特性中的振动噪声分析[J].中国科技信息,2006(23):68-69.

[3]郑国君.基于知识的CAE后处理流程化平台关键技术[J].机械工程学报,2011,47(17):112-118.

[4]王芬芳.基于ASP的远程CAE后处理系统的研究与实现[D].南宁:广西大学,2006.

[5]樊红光,昝建明.基于HyperMesh二次开发的静刚度分析程序[C].AltairHyperWorks技术大会论文集,2012:1-6.

[6]黄霖.Abaqus/CAE二次开发功能与应用实例[J].计算机辅助工程,2011,20(4):96-100.

[7]周舟.整车NVH性能开发中的CAE技术综述[J].汽车工程学报,2011(3):176-184.

[8]庞剑.汽车车身噪声与振动控制[M].北京:机械工业出版社,2015:232-257.

[9]王的强,张晓娜,周静.LINQ入门与应用[M].北京:清华大学出版社,2009:32.

[10]吴延军.NPOI完成对Excel含匹配字符串行的筛选[J].电脑编程技巧与维护,2012(18):48-50.

[11]昌兆文,刘湖平,曾绍军.基于NPOI导出Excel文件的研究与实现[J].中国管理信息化,2013,16(15):93-94.

[责任编辑:陈泽琦]