开源智能工业软件技术发展分析
前言
结构是工业装备、工程设施发挥使役功能的载体。
设计位于结构创成链条的最前端,决定着结构性能的原始基因;优化则是结构设计的核心宗旨和永恒目标。结构优化分为三个层次,从简单到复杂依次是尺寸优化、形状优化和拓扑优化。拓扑优化旨在通过求解相应的数学规划问题以确定设计域内材料(或孔洞)的最优布局,具有比尺寸优化和形状优化更大的设计自由度。近年来,拓扑优化不仅在装备的早期概念阶段和初步设计阶段发挥了重要作用,其实际应用范围也被推广至热、声学、流体、材料设计和其他多物理学科。
增材制造技术的进步推动了拓扑优化专用软件在航空航天、汽车等领域的广泛应用。几乎所有主流CAE/CAD软件均集成了结构优化和拓扑优化功能,为创新设计提供了强大支持。然而,值得注意的是,目前市场上主要的结构拓扑优化软件或模块大多由国外公司开发,受限于底层拓扑优化算法,存在显式几何信息不足和大量人工后处理的问题。
在2022年7月,开源原子开源基金会的指导下,一个名为“工委会”的全新组织——开源工业软件工作委员会(OpenAtom openCAX)正式成立。这个组织的目标是打造一个国际化的开源工业软件工具链,推动我国开源生态的有序发展。通过加速关键核心技术的积累和产业商用的迭代,工委会致力于为工业软件的用户、开发者和研究者提供一个国际化的交流平台。
本文在揭示开源背景与必要性,阐述软件结构优化的技术路线和发展方向,以及探索开源盈利模式。通过介绍开源集成平台,我们将展示拓扑优化软件协同研发的实际案例。我们鼓励工业软件研发企业、服务提供商和用户企业等各方积极参与开源,共建开放、共享、协作的研发与应用生态,共同打造具有中国特色的CAE软件产品化路径。
一、结构优化引擎
结构优化是一门运用数学建模和计算机仿真的工程艺术,旨在通过调整结构形态和材料配置,实现性能的最优化[1]。这一创新方法已在飞行器、汽车、建筑、机械等领域掀起热潮,助力实现轻量化、强度提升和成本降低等目标。
采用由显式参数描述其几何的、能够在设计空间中自由移动并变形的组件作为描述结构拓扑的设计基元,以移动可变形组件为核心的结构拓扑优化算法。根据问题需求,拟采用欧拉格式下的超椭球函数或拉格朗日格式下的封闭星形 NURBS 曲面对组件进行描述。
根据所述,可通过直接获取结构组件的几何参数(如长度、宽度、位置、倾斜角度等)或几何表面来实现拓扑优化。优化这些几何参数以驱动组件的运动、变形、相交和融合等变化,从而达到拓扑优化的目标。
设计变量仅包括几何参数,使得优化问题求解规模大幅降低(在三维情况下,每个组件仅有9个参数)。此外,这些几何信息可用于直接控制结构特征尺寸、倾斜角度等制造约束,便于与CAD系统无缝融合。
二、结构优化引擎技术路径
本软件的预期目标主要包括以下几个方面:
(1)实现结构的轻量化、强度提高和成本降低等目标。
(2)提供高效、可靠的拓扑优化算法,支持多种常见的模型文件格式。
(3)提供直观、简洁的用户界面,方便用户操作和理解。
(4)提供国产高质量的拓扑优化软件,降低工程设计成本。
技术策略:采用开放式架构,构建分级控制台调用的软件系统。深度整合CAD、CAE和拓扑优化等模块,消除各模块间的技术障碍。实现几何建模、有限元设定与求解、拓扑优化、几何重构及光滑化等多功能的无缝融合。
拓扑优化利器,助您轻松应对复杂工程挑战。强大的算法功能包括拓扑优化设置、有限元文件解析和拓扑优化文件解析;多种高效拓扑优化算法(MMC方法、离散变量方法、变密度法等)一网打尽;生成优化报告功能助力您的工程决策。立即体验,提升设计效率!
主要接口包括:几何文件创建与导入、有限元文件创建与导入、有限元求解器以及后处理(可视化与光滑化)等。
三、结构优化开源框架
主要包括应用层、核心层、高性能计算层、数据匹配层四个层级,算法框架图如下:
图 1.核心算法框架图
3.1 应用层
借助郭旭教授等独家开发的移动可变形组件技术[2]及软件工具,成功为大型客车减重优化、风机主机架降重、空间站相机一体化支架轻量化以及载人飞船密封舱壁板结构轻量化等众多企事业单位提供了创新解决方案。
3.2 核心层
各模块功能具体介绍如下:
文件生成及检查模块负责有限元网格信息文件(inp)和优化信息文件(opt)相关参数的验证。对有限元文件的检查主要包括单元类型与后处理的匹配性,场输出、载荷和边界条件的求解可行性。优化文件的检查则关注优化问题的维度是否适应有限元网格,目标函数和约束函数的求解能力,以及优化设置的合理性,例如组件尺寸非零、组件个数非零以及响应域非空等。
图 2. 文件生成及检查模块
(2) 更新结构模块:在获取优化信息后,自动解析并分配内存以满足优化需求。根据用户输入,在设计空间中生成指定数量和尺寸的组件。接着,计算组件的拓扑描述函数和结构密度场。当组件数量和尺寸发生变化时,其表示的结构密度场也会相应调整。随着组件的移动和变形,结构构型将实时更新以适应变化。
图 3. 结构构型更新模块
在结构分析模块中,通过求解有限元线性代数方程组,我们能够获得整个模型的密度场。接着,利用此信息,我们可以计算出模型的位移场,进而满足用户需求,提供目标函数值和约束函数值。
图 4. 结构分析模块
(4)灵敏度计算与优化求解模块:通过构建拉格朗日方程,求解伴随方程并运用链式法则得出目标函数、约束函数对设计变量的灵敏度。接着,将结果代入 MMA、SQP 等优化求解器以获得新的设计变量。通过不断更新设计变量,实现结构构型变更并最终达成拓扑优化设计目标。
图 5. 灵敏度计算模块
图 6. 优化求解模块
在满足预定收敛条件后,优化过程结束,程序将智能输出优化成果,涵盖网格模型、结构拓扑以及性能指标等信息,为后续光滑化处理提供依据。
3.3 高性能计算层
我们开发了一种通用的半解析灵敏度分析算法,该算法可以统一处理尺寸、形状和拓扑三类设计变量。它适用于结构综合力学响应和多类型设计变量的灵敏度分析,研究其在不同差分步长策略下的计算精度、效率和稳定性。此外,我们针对不同类型的目标/约束函数研究了高效数值实现技术,实现了多类型设计变量灵敏度分析的标准化。在此基础上,我们还研发了一个具有自适应性的灵敏度分析模块。
为了解决大规模结构分析与优化问题,我们研发了解耦结构描述与结构分析的多分辨率方法、基于 GPU 加速技术、并行和多重网格技术的结构显式描述与大规模稀疏线性方程求解算法。这些算法可以实现灵活高效的拟荷载回代求解,提出与子结构构成树的海量数据管理及周游技术相结合的分布式灵敏度分析算法,有效提升单机求解结构优化设计问题的规模和效率。
3.4 数据匹配层
系统环境:Windows10、11
开发环境:Visual Studio 2019
代码标准:C++14,python 3.6
硬件支持:CPU:Intel 酷睿,内存:8G 及以上,硬盘:4G 以上。
四、结构优化核心技术及优势
4.1 基于移动可变形组件的结构拓扑优化算法
打破传统,我们摒弃了像素描述结构拓扑的方式,转而采用一种更为先进的方法。这种基于移动可变形组件的结构拓扑优化算法,以一种全新的设计基元——能够在设计空间自由移动并变形的显式参数组件,来描述结构拓扑。
为了满足各种问题的需求,我们选择欧拉格式下的超椭球函数或拉格朗日格式下的封闭星形 NURBS 曲面来对这些组件进行描述。这样一来,基于这种描述,我们可以直接获取到结构组件的几何参数(如长度、宽度、位置、倾斜角度等)以及几何表面信息。
此方法不仅专业且精简,更具吸引力。我们的目标是提供一个更有效、更灵活的结构拓扑优化解决方案。
通过调整几何参数,实现组件的移动、变形、相交和融合等拓扑优化。设计变量仅涉及每个组件的几何参数(在三维情况下,每个组件仅有9个参数),因此优化问题求解规模较传统算法大幅降低。此外,这些几何信息可用于直接控制结构特征尺寸、倾斜角度等制造约束,便于与CAD系统无缝融合。
4.2 基于离散变量的结构拓扑优化算法
拓扑优化的数学本质是非线性整数规划,通过序列近似规划框架充分利用拓扑优化的数学特征,基于正则对偶原理开发出离散变量结构拓扑优化方法[5, 6],获得可直接制造的“黑白”设计。该算法效率与连续变量方法相当,使用统一数学规划框架求解多约束问题。同时,清晰的“黑白”结构方便提取结构几何信息,进一步有效处理可制造性约束。
4.3 结构拓扑优化组件模块集成技术
为了满足结构拓扑优化计算功能的研发需求,我们采用了插件技术动态集成结构有限元分析、优化算法库、光滑曲面重建与几何参数化、网格生成引擎和可视化等基础模块。项目研究还致力于开发核心算法的共性接口,采用“算法+模式”思路整合结构拓扑优化中的优化模型定义、灵敏度分析、密度/灵敏度过滤和MMC等算法模块。通过构建算法模块与数据之间的全级别开放接口,我们实现了灵活便捷的动态集成环境,支持本项目多类创新算法的集成与自由切换。
4.4 结构拓扑优化组件模块测试验证与应用示范
以重大装备和产品为应用示范,基于研发软件平台进行拓扑优化设计。测试各版本软件的共性与特性功能,建立详尽日志和报告并及时反馈,实现测试-研发闭环。同时,结合装备研制开展应用示范。
五、结构优化软件应用方案
拓扑优化软件助力解决复杂工程难题,具备二次开发、共享和开源特性。鼓励合作者基于此软件完成工作,共同推动项目发展,汇聚更多力量贡献智慧。
本开源拓扑优化软件具有以下特点:
模块化设计:软件独具匠心的模块化架构,确保各功能独立开发与维护。合作伙伴可依据现有模块进行拓展与优化,轻松应对各种需求。
2. 定制化:软件丰富的参数设置和配置选项,让用户根据需求打造个性化设计域、不可设计域和优化方法。这意味着合作伙伴能针对特定场景和问题领域,量身定制本软件,轻松应对各种挑战。
3. 高度可拓展:软件设计便于其他合作者轻松融入新算法与功能,持续丰富软件应用与功能。这意味着基于现有架构,可根据不同需求扩展软件功能,实现多元化应用。
在本开源有限元软件项目中,其他合作者可以基于本软件完成以下工作:
优化算法开发:合作伙伴可基于现有模块,拓展新算法、提升现算法性能或创制新型计算方法,从而提高软件的计算效率、精度和稳定性。
2. 多物理场开发:合作者可根据研究领域与需求,为本软件定制特定领域算法。如结构力学、热传导、流体力学等领域,拓展软件在各应用领域的适用性。
3. 材料模型开发:合作者可根据不同材料特性和行为,创造新型材料模型,如线性与非线性模型,以满足多样化问题需求。这将对解决复杂材料行为及本构关系问题产生重要影响。
4. 用户界面与可视化:优化用户界面和可视化工具,提高软件易用性及用户体验。基于现有设计,增添交互功能,实现直观友好的图形化界面,简化模型设置、求解及结果展示等操作。
5. 编写文档与教程:鼓励其他合作者撰写详尽的指南,助力新用户迅速掌握软件操作,深入了解其功能特性。这将有力地推动软件普及,吸引更多用户和贡献者加入项目,产生积极影响。
在软件开发过程中,测试与验证环节至关重要。这一步骤允许其他合作者对软件进行全面检测,识别并修复潜在的Bug和问题,确保软件具备高度稳定性与可靠性。这不仅有助于持续改进产品质量,还能让软件更适应多样化的应用场景和问题领域。
7. 社区参与与支持:鼓励其他合作伙伴深入软件社区,包括各类讨论论坛、邮件列表和社交媒体等平台,分享技术见解、解答疑问、交流经验并携手共进。这将有助于打造一个充满活力的社区,进一步增进合作者间的互动与沟通,持续推动软件的创新与完善。
携手共建,共创辉煌!通过本次合作,我们将携手推动开源拓扑软件的发展,使其更加强大、稳定、易用,满足各个领域和问题的需求。作为合作伙伴,您将享有软件使用和贡献的权益,共享软件发展成果和社区价值。欢迎广大合作者踊跃参与,共同推动开源拓扑优化软件在科学、工程和学术研究领域的应用与创新。让我们携手并进,共创美好未来!
-对此,您有什么看法见解?-
-欢迎在评论区留言探讨和分享。-