首页软件产品资讯

工业软件研发为什么这么“难”

多物理场仿真技术2023-07-19 11:03:02 推荐 558

工业软件研发的“难”是共识,但是到底有多难,难在哪里,具体表现在什么地方,很少有讲清楚的。


在笔者看来,工业软件研发真正的“难”是:人家研发投入打磨三四十年,而你只想三四年就“赶上”!


另外关于工业软件“难”的描述,也对应之前关于“卡脖子”技术的定义:

  1. 技术门槛高,起步投入资金多;

  2. 研发耗时费力,需要长期积累,3年起步,成熟5-10年非常正常;

  3. 花钱买不到,买到只能用,无法转成自己的东西;

  4. 保密,专利核心技术点多。简单讲就是即使投入研发也不一定做的出来;

  5. 在行业内具有垄断性,无可替代


工业软件领域的很多技术都是比较透明公开的,只是深入研究打磨的时候很耗费成本。所以很多时候,我们看到讲工业软件的“难”,罗列一大堆知识,都只是主观上的臆测,真正做起来的时候,卡在技术面上的少,点上的多。



以下是之前从笔者研发经历中列举出的一些“难点”,并不只是单纯的技术问题,而是考虑了业务等非技术因素:


1. 如何定位仿真和试验之间的误差:这是个系统问题,一般而言,仿真结果很难和试验完全匹配,原因是多方面的,很多时候仿真也不是追求完全和试验精准匹配,而是得出符合规律的结论


2. 如何提升超大模型的性能:一直以来,超大模型处理是任何一款软件容易出现瓶颈的内容,也是公众号介绍的重点,参见超大模型处理系列文章 工业软件研发中处理超大模型(9)--ChatGPT介绍的方法  和 一篇文章入门仿真软件性能优化


3. 软件架构设计:软件架构设计是软件产品的框架性内容,需要经验丰富的软件研发经验。参见CAE软件架构设计


4. 网格自适应加密相关:自适应网格加密和几何,网格,求解器紧密相关,不同领域的自适应加密重点不尽相同,也是需要长期积累的技术项。参见 深入理解数值计算网格(全篇)


5. 高效生成六面体:目前为止,商业CFD软件可以全自动生成六面体网格,而结构分析中很难全自动生成高质量的六面体网格。


6. 大规模线性方程组求解效率和准确性:大规模线性方程组的高效稳定求解仍然是世界性难题,也是公众号介绍的重点,参见 一篇文章入门大规模线性方程组求解


7. 高性能计算,分布式/并行计算:这块涉及到各种工具和第三方库的使用,是需要长期试验积累的技术项。


8. 几何清理和修复:现在仍然没有一个工具能够完全高效,自动化进行几何清理和修复。未来也是可以借助AI的内容。参见 深入剖析三维几何内核(全篇)


9. 根据业务网格全自动化生成:理想的网格是同时符合几何和物理场分布的网格,包括商业软件在内,一次性生成满足要求的网格目前仍然很难实现,依赖工程师经验。


10. NP问题求解:NP问题在很多优化设计领域仍然缺乏全局最优解


11. 优化算法实现和应用:优化算法的有效性严重依赖实际模型,缺乏统一通用的模板,同时也依赖工程师经验。一篇文章入门计算机辅助优化(Computer Aided Optimization)


12. 理解偏微分方程的解析解和数值解:这个就是基本功,没什么好讲的


13. CFD里湍流模型理解和应用:湍流模型众多,实际项目中选择合适的湍流模型非常依赖经验;湍流模型参数众多,研发中也是需要调参积累经验的工作项。


14. EDA软件虽然小众,但是却是整个半导体行业的基础,而且覆盖面相当广,要有一个全流程的知识体系也需要长期积累。参见 一篇文章了解EDA(全)


15. 多物理场中的耦合计算:目前大部分耦合计算为弱耦合和单向耦合,强耦合难有工业应用,但实际上强耦合求解才更符合物理规律。


16. 回归测试功能:工业软件需要建立庞大的回归测试用例,每次新加功能和调整,需要保证所有回归测试正确。


17. FEM/FVM/FDTD/MOM/LBM无网格等数值方法的理解:数值方法的理解是求解器开发的基础,但是复杂的物理和数学提高了求解器开发门槛,这块需要长期的学习应用和经验积累,没有捷径。


18. 工程中的边界条件理解和应用:边界条件处理是偏微分方程中的重中之重,在实际工程应用中决定了仿真的准确性。


19. 各种求解线性方程组库的功能,性能测试:这个需要根据业务选择合适的库,作为基础性功能也是需要长期测试积累的内容。


20. 第三方几何文件交互:全球主流CAD软件有几十家,目前只能借助于第三方商业组件完成交互。


21. 软件架构中的数据结构设计。在工业设计仿真软件中,涉及到了业务模型,几何模型,渲染模型以及网格模型,如何设计好的数据结构将这些数据关联,并方便管理是所有软件架构之初就需要详细设计的

22. 程序中的undo/redo功能,翻遍资料,找不到一篇详细介绍工业设计仿真软件中undo/redo机制的文章。后续有空可以详细介绍下

23. 如何避免“s山”代码。怎样防止代码变成祖传“s山”?(点击链接查看)

24. 驱动建模和参数建模技术。这个是三维几何CAD相关的功能

25. 使用迭代法求解线性方程组不收敛。这个在CFD计算时出现比较多,结构和电磁,热等其它多物理场比较少见。另外在一些特殊的结构,比如微观TCAD,TSV结构使用有限元方法也会出现

26. 数值精度问题。几何建模,网格生成以及求解器,需要高精度计算,数值扰动在算法中造成的问题很多,而且还很难调试

27. 自动化测试。前面讲过回归测试,其主要方法就是自动化测试。自动化测试的核心是利用脚本,所以需要开发脚本系统,好的脚本系统包含了GUI的自动化测试

28. H单元混合单元形函数。高阶单元中如果使用混合单元,进一步增加了刚度矩阵的生成难度

29. 调试大中规模模型。大中规模的模型一旦出错,调试是非常困难的,往往需要开发一些独立的功能强大的调试工具

30. 并行计算中的切分问题。这个在矩阵计算,模型分块中广泛存在。切分规模和策略,切分处几何,计算数据同步,决定并行的效率

31. 新技术的引入。新工具,新技术日新月异,如何保持技术敏感度,在项目开始前做一些前瞻性的预研和设计,对产品做一些战略规划也很重要

32. 如何在一个庞大的老工程上加新功能。不管是开源还是商业软件,都是一件非常棘手的工作。大部分成熟的工业设计仿真软件都可以认为是庞大的老工程


随机快审展示 刷新 快审榜
加入快审,优先展示

加入VIP

发表评论

  • * 评论内容:
  •  

精彩评论

  • 无任何评论信息!