CFD验证与确认数据库平台数据结构设计与应用
2023-03-04杨福军万春明
唐 怡,杨福军,付 眸,冯 姣,万春明
(中国空气动力研究与发展中心 计算空气动力研究所,四川 绵阳 621000)
0 引言
随着数值计算能力与方法的不断提升,计算机科学与流体力学、物理数学、航空工程等学科的交叉融合得到了快速发展,用于模拟求解各类流动问题的CFD软件层出不穷。CFD软件的可信度决定了其是否具有实际应用价值,而科学、客观的验证与确认是评价CFD可信度的唯一途径,也是CFD软件质量保障的重要手段[1]。CFD验证与确认的研究在国内外一直备受重视,1992年NASA对CFD验证与确认研究的投入就高达七百多万美元,并先后启动了多项大型气动数值模拟可信度研究项目。21世纪初期,我国在空气动力学预研基金中设立了CFD的验证与确认研究项目,主要为飞行器设计提供高可信度的数值模拟软件[2]。2018年启动的国家数值风洞(NNW,national numerical windtunnel)工程项目五大系统之一的验证与确认系统[3],初步完成了验证与确认从理论方法、评价指标、标准算例到应用平台的体系建设,使国内CFD验证与确认工作从分散研究逐步向体系建设发展。
可靠的验证与确认标准数据不仅是风洞试验技术、CFD技术建立和发展的基础性支撑,同时也是各类飞行器研制过程中不可或缺的标准性、基础性、功能性检验依据,国内外空气动力研究机构历来都十分重视标准数据的收集与其数据库的建设。为支撑CFD软件的验证与确认研究,国外多家机构收集整理了各类专用标准数据集,并建立起相应的数据库。作为评估计算方法对飞行器气动力和力矩预测水平与能力召开的国际会议,各届AIAA高升力、阻力预测会议会将收集到的典型标模数据进行公开[3-11];欧盟的FLOWNET数据库收录了56种验证与确认专用标准案例数据[12];QNET-CFD知识库收录了大量工业实验和CFD数据[13]。国内目前几乎没有公开共享的验证与确认标准数据库,部分研究机构内部建设有用于开展CFD可信度分析的数据库或数据集[14]。为支持国家数值风洞工程CFD系列软件的自动化测试和可信度评价工作,同时为CFD相关研究提供标准算例数据支持。验证与确认系统收集、整理了若干国内外经典标准算例与多项自主设计的试验标准算例,并建设CFD验证与确认数据库平台存储管理这些数据。
验证与确认标准算例数据类型多样,参数复杂多变。从传统应用角度出发设计数据结构,多数算例将存在数据冗余、存储空间浪费的情况。针对参数不固定的标准算例来流状态和结果数据,设计一种灵活的数据结构,动态管理气动参数,减少数据冗余,确保气动数据类型与参数在数据结构管理上可无限扩展。
1 验证与确认数据库平台
验证与确认数据库平台是基于国家数值风洞工程验证与确认标模体系建立的共享数据库,具有数据录入、数据管理、数据应用、文件在线展示、数据质检、元数据管理、系统管理以及接口管理等功能[15]。数据录入提供算例基础信息、结果数据及相关文档的标准化录入,入库时调用校验规则进行数据校验与审批,以确保入库数据准确无误;数据管理提供标模、标签、标准参数、数据类型、速域、工程应用、基本流动特征等管理,实现算例分类、分层次管理和维护扩展;数据应用提供算例浏览、查询、下载、分析绘图等功能;文件在线展示提供数模文件、文本文件、办公文件、图片以及音视频文件的在线预览;数据质检提供质检规则,并针对数据管理和应用制定具体质检方案,进行数据批量质检;元数据管理提供了数据库平台对象和数据结构的定义与描述等;系统管理提供用户管理、权限管理、日志管理以及数据清理、备份等维护功能;接口管理为CFD软件可信度评价平台和自动化测试平台提供接口,实现标准算例数据跨平台查询与自动提取。具体功能结构如图1所示。
图1 CFD验证与确认数据库功能结构
平台集中存储和管理着DLR-F6、HB-2标模、CT-1大迎角标模、CHN-T1标模等上百个国内外典型标模算例和69个精确解算例,涵盖了气动力、压力分布、热流、动导数、变形等十几种气动数据类型,附着流、分离流、自由剪切流等多种基本流动特征问题以及大展弦比飞机、小展弦比飞机、多体分离等典型工程应用,实现了验证与确认全生命周期的标模覆盖。
2 数据结构设计
2.1 验证与确认标准算例
验证与确认标准算例是经过筛选和整理,具有高可信度与代表性的标模试验、数值计算与精确解数据,用于判定CFD软件的可信度,以及相关气动科学研究。根据CFD验证与确认数据规范,平台数据录入以算例为核心,每个算例中包含的数据文件如图2所示。
图2 验证与确认算例数据文件
算例核心数据为试验结果与计算结果数据,包含点数据、曲线数据、云图数据以及流线数据等。几何数模文件存储了.iges/.igs/.stp/.stl/.dwg/.3dxml等多种格式;网格文件存储有算例对应的结构网格与非结构网格;控制输入文件以文本格式给出控制参数信息;算例描述文件包含了算例信息、所属标模信息、算例来源、试验参数描述、计算参数描述等基本信息;实用工具提供求解器、数据处理小工具等;参考文献包含算例来源文献或算例经典应用案例文献;音影文件包含试验现场图片、风洞设备图片、典型结果图片、音频文件、视频文件等。
2.2 数据结构设计
由于验证与确认标准算例数据量较大,数据存储、管理和交换相对复杂,对于入库的主要数据,应尽量做到结构化、规范化和标准化。算例数据以两种方式进行存储:1)将原文件整理为常规计算格式并存储在文件服务器中,以满足CFD计算研究人员对标准算例原始数据的查看、下载需求;2)为更高效地服务于CFD可信度评价平台、自动化测试平台,实现数据绘图、数据质检、元数据管理等功能,需要提取算例基本信息,解析、整理算例结果等结构数据存入关系型国产数据库中。
良好的数据结构可以极大地提升数据检索、插入、删除等操作的性能。验证与确认数据库平台数据结构设计需满足:CFD软件可信度评价等应用场景需求;分离算例主体与附属;适当数据冗余;能应对可能出现的新需求以及后续大数据量等。
验证与确认数据库表分为了核心数据表、框架控制表、元数据表、质检管理表、系统管理表、基本信息表等几大类,标准算例数据全部保存在核心数据表中。核心数据表结构以算例信息表为中心,逻辑关联算例数据类型表、算例结果数据表、标模信息表、文件信息表等,其结构如图3所示。
图3 算例核心数据表结构
验证与确认标准算例数据结构复杂,同一算例下不同数据类型或不同算例相同数据类型对应的参数结构各不相同,尤其定常与非定常算例之间参数构成差异更大。针对这种情况,以往气动类数据库通常按不同数据类型单独建表,每种数据类型表中尽可能预设出所有来流状态与结果参数字段,气动数据录入时通过匹配字段名称存入对应位置,缺省字段默认为空。这种数据结构设计存在几个明显缺陷:
1)相同算例不同数据类型的来流状态参数虽有差异却有大部分重叠情况,造成表中数据冗余;
2)提前预设好数据类型表与参数字段,虽然能满足已有类型与参数的存储,但出现新试验或计算数据类型与参数时,无法动态增加,缺乏良好的可扩展性;
3)标准算例数据类型较多,常规类型就多达十几种,每个数据类型表预设参数字段在存入算例数据时,都会出现大量空参数,浪费存储空间;
4)由于不同算例参数差异导致空参数不明确,数据查询功能需要增加多重判断,影响查询性能。
针对上述缺陷,在验证与确认数据库平台数据结构设计中,采用较为灵活的动态存储方式构建流动状态表与结果数据表,其结构与参数设置如图4所示。
图4 标准参数结构设计
设计标准参数表,存储管理所有算例来流状态与结果参数,参数名称与参数标识由标准规范进行限定,具有唯一性。标准参数表通过参数映射表与流动状态表、结果数据表进行关联。参数映射表作为中间表,用于存储标准参数序号、参数代号(COL1、COL2…)、算例数据序号以及参数类型等字段,其中参数类型用于确定该参数是马赫数、总温、总压等状态参数还是气动力、热流等数据类型的结果参数,即当参数类型值为state时,表示该参数为状态参数,关联到流动状态表;当参数类型值为force时,表示该参数为气动力结果参数,值为heat时,表示该参数为热流结果参数,关联到结果数据表。流动状态数据与结果数据动态存储,流动状态表中除每个算例都存在的状态序号、数据类型、来源信息等固定字段,其余诸如马赫数、雷诺数、总温、总压等字段用COL1、COL2…等参数代号动态表示,通过映射表到标准参数表中确定该状态字段具体代表哪个参数。同样结果数据表中除结果序号、状态序号字段,其余诸如升力系数、阻力系数、压力系数、速度等字段也用COL1、COL2…等参数代号动态表示,其具体参数含义通过参数代号到标准参数表中获取。
上述方式可在数据冗余和处理速度之间找到一个合适的平衡点,解决气动数据冗余问题。当算例中有数据类型或参数需要新增、修改、删除时,可通过平台基本信息管理界面对标准参数表、数据类型表进行维护,确保数据结构具有良好扩展性。
2.3 算例标签
为全面、客观、科学地评估不同流动现象的CFD模拟可信度,需要针对每一类流动现象提供具有代表性的标准算例,同时为便于检索以及组织接口数据格式,需要对每个算例进行分类,并打上对应标签。前端界面可通过标签筛选快速定位具体算例,因此算例标签数据结构设计需相对灵活,便于扩充。采用标签分类表与标签表管理具体标签类型与内容,通过标签映射表将标签值与具体算例关联起来。
算例标签主要分为导航标签与检索标签,导航标签主要以速域范围、基本流动特征、工程应用3个方面进行分类;检索标签依据验证与确认评价指标按数据来源、时域属性、数据类型、气动特性、标模类型等进行分类。具体分类情况如表1所示。
3 标准算例数据质检
高质量标准算例是开展CFD软件验证与确认的基础,可直接用于CFD软件可信度评估。存入验证与确认数据库中的标准算例是公认具有高品质的试验数据或计算数据,为保证平台入库算例数据质量,减少人为因素导致的错误、重复、无用等数据存在,需对新入库算例、历史算例进行数据质量检查。通过数据质检及时发现、定位和解决标准算例在入库、管理、应用等过程中隐藏的数据质量问题,完成问题数据的流转和处理,并对数据质量进行评估和监控,不断改进标准算例数据质量管理水平,有效提高验证与确认数据库建设效率及数据可靠性。
表1 算例分类表
数据质检的关键环节在于质检模型、质检规则、质检方案的确定[16-18]。标准算例数据质检通过配置数据源,建立数据质检模型。根据CFD数据标准设置质检规则,并针对具体质检内容给规则赋权重形成质检方案。执行质检方案并分析对应结果,生成质检报告,实现算例核心数据正确性的自动化检测,简要流程如图5所示。
图5 数据质检流程
数据质检功能包括数据源管理、质检规则管理、质检模板管理、质检方案管理、质检分析、质检统计以及任务执行记录等功能。通过配置数据源获取算例核心数据表,直接对数据库表中参数值进行检验。数据质检实体关系如图6所示。
图6 数据质检实体关系示意图
数据质检功能具有一定独立性,可对数据库表中某个参数或多个参数进行质量检查,具体检查对象可自定义配置。数据质检模块以规则表为中心,构建了数据源表、规则分组表、规则分类表、规则模板表、质检方案表、校验结果表、定时任务表以及检查日志表。定时任务表存储数据质检定时任务相关信息,用于支撑平台提供的质检方案定时执行功能,通过配置执行时间,使系统在运行到指定时间时,自动执行质检方案。同时提供趋势、占比、环比分析等多种手段,对质检方案执行的结果进行自动分析,帮助用户从历史趋势、问题发生概率、问题发生数量等多角度来分析数据质量。
数据质检支持值域检查、逻辑检查、规范检查、空值检查、重复性检查、有效性检查、异常值检查等10项规则。具体规则如表2所示。
表2 质检规则
4 算例元数据管理
元数据是描述数据对象相关概念、关系和规则的结构化数据,按用途不同分为技术元数据、业务元数据和管理元数据[19-22]。验证与确认数据库平台主要实现技术元数据的管理,即平台数据库对象和数据结构的定义和描述。
算例元数据是以气动数据为描述对象的元数据。其管理功能模块同样相对独立,通过配置数据库IP地址、端口、用户、密码等信息,直接从数据库表中获取数据,可更直观、高效的查询、分析数据。元数据管理模块包含元数据信息表、元数据节点表、连接信息表、算例表,其实体关系如图7所示。
图7 元数据管理结构示意图
元数据管理的核心功能是提供宏观层面的算例数据信息,并设置定时任务,确保元数据自动、周期的随算例数据的变化而更新。具体功能包括元数据查询、元数据列表展示、元数据图形化显示、元数据导入、导出以及更新等。平台元数据管理通过列表或图谱形式直观展示算例所属标模信息、算例基本信息、算例数据信息、数据类型、流动状态参数以及结果参数等信息,如图8所示。
图8 DLR-F6全机算例元数据谱图
5 数据库平台应用
验证与确认数据库平台的建立实现了标准算例数据的有效管理与共享应用。平台中收录了上百个国内外标准算例,向用户开放数据检索查看、在线预览、下载、绘图分析、数据标记等功能权限,为CFD科学计算应用提供有力数据支撑。
平台提供标准的WebService接口和开发API,为国家数值风洞工程验证与确认可信度评价平台与自动化测试平台提供数据支撑。接口数据根据核心数据结构,以“算例信息-数据来源-数据类型-来流状态-结果数据”五层结构进行组织。WebService接口采用实现SOAP协议的CXF框架开发,基于SpringBoot实现微服务部署,如图9所示。在WebService接口中嵌套了FTP协议,用于几何文件、网格文件、音影文件等大文件的传输,算例中结构数据通过XML格式进行传输。
图9 数据接口
6 结束语
高质量、高可靠的CFD验证与确认数据库平台可以实现对标准算例数据的有效管理和高效应用,有力支撑国家数值风洞工程和国内相关CFD软件的验证和确认,降低CFD软件开发成本,提高软件开发效率,确保软件产品质量。通过设计一种良好的数据结构,减少算例参数冗余,实现数据类型与参数可无限扩展,有效提升验证与确认数据库平台性能。
随着CFD新技术、新方法的不断涌现,对气动数据的准确获取、气动性能的可靠性评估提出了更高层次的要求。验证与确认标准算例作为评估的数据基础,应进一步扩大其数据范围的收集整理,同时提升验证与确认数据库智能共享能力,为全国CFD软件的测试、可信度评价和不确定度量化等研究工作提供精准数据服务,实现行业软件的可靠认证。