NURBS — CAE用语解释

分类: 术语表 | 2026-01-15
CAE visualization for nurbs - technical simulation diagram

NURBS

🧑‍🎓

CAD软件中制作曲面时,显示"NURBS"是什么意思?与普通曲线有什么不同吗?


NURBS的理论基础

NURBS的定义和基本概念

🧑‍🎓

NURBS在教科书上写作"Non-Uniform Rational B-Spline",但它与普通B样条具体有什么不同?"Rational"(有理)这个词改变了什么?

🎓

这是个好问题。决定性的区别在于"权重"的存在。普通B样条直接混合控制点的坐标。而NURBS给每个控制点赋予权重

$$ w_i $$
,用有理函数表示。这样就能精确表示圆锥曲线(圆、椭圆、抛物线)。例如,用B样条近似半径50mm的圆会变成多项式近似,但NURBS可以用4个控制点和权重精确描述。这就是为什么这个特性被国际标准ISO 10303(STEP)采用的原因。

🧑‍🎓

"Non-Uniform"部分是什么意思?是指节点矢量不均匀吗?

🎓

完全正确。这指的是节点矢量中的节点间距不均匀。例如,节点矢量为[0, 0, 0, 1, 2, 2, 2]时,0到1和1到2的间距不同,所以是Non-Uniform。这样就能在特定区域(边缘附近或曲率急剧变化的部分)集中放置控制点,大大提高了建模的自由度。相反,均匀的B样条间距均匀,灵活性较差。

🧑‍🎓

看NURBS曲面的公式很复杂。在实际CAE软件中,不是直接求解这些公式吧?

🎓

对的。CAE预处理器将NURBS曲面离散化为有限元网格。基函数的评估通过de Boor算法等递归算法进行。NURBS曲面

$$ S(u,v) = \frac{\sum_{i=0}^{n}\sum_{j=0}^{m} w_{i,j} P_{i,j} N_{i,p}(u) N_{j,q}(v)}{\sum_{i=0}^{n}\sum_{j=0}^{m} w_{i,j} N_{i,p}(u) N_{j,q}(v)} $$
的分子和分母分别计算。还有一种方法是直接在分析中使用NURBS(等几何分析IGA),但那是另外一回事。

NURBS的数值计算方法

从CAD到CAE的转换和网格生成

🧑‍🎓

将CAD中制作的NURBS模型在CAE中进行解析时,为什么经常需要"几何体修复"?

🎓

主要原因是"拓扑上的不完整"和"数值上的缝隙"。例如,两个NURBS曲面理论上应该相接,但由于各自曲面方程计算的边界位置相差10^-5 mm左右。这是由于CAD软件(CATIA、NX、Creo)的内部计算精度和数据转换(STEP、IGES)时的舍入误差造成的。CAE预处理器(Ansys SpaceClaim、Altair HyperMesh)需要"缝合"这些微小缝隙,重新构建水密的实体模型。

🧑‍🎓

进行网格划分时,NURBS曲面的"参数空间"和"物理空间"的区别会影响网格质量吗?

🎓

影响很大。参数空间(u,v空间)中的均匀正方形网格在物理空间中可能会生成极度扭曲的单元。例如自动车车身面板,参数空间中的细长区域在物理空间中对应大的曲面。要生成高质量的网格,需要评估雅可比矩阵

$$ J = \begin{bmatrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \\ \frac{\partial z}{\partial u} & \frac{\partial z}{\partial v} \end{bmatrix} $$
,以控制物理空间中单元的纵横比和变形。许多网格化程序都考虑了这种映射。

🧑‍🎓

有一项"根据曲率调整网格大小"的功能。这使用NURBS的哪些信息呢?

🎓

使用从NURBS曲面的第一基本形式和第二基本形式计算得到的"平均曲率"或"高斯曲率"。具体来说,在曲率半径

$$ R $$
较小(曲率较大)的区域,将网格大小
$$ h $$
设置为
$$ h \propto R $$
。例如在曲率半径5mm的圆角部分,默认大小2mm的网格会自动细化到0.5mm。这样可以准确捕捉应力集中。Siemens NX CAE和Ansys Meshing都配备了这样的先进的曲率自适应网格功能。

NURBS的实际应用

提升解析精度时NURBS模型的取扱方法

🧑‍🎓

从供应商收到的STEP文件中的模型是非常复杂的NURBS,无法进行网格划分。首先应该做什么?

🎓

首先是"简化几何体"。具体来说,1)删除解析中不需要的微小特征(0.5mm以下的圆角、小孔)。2)将连续的多个NURBS面尽可能合并为一个面(面合并)。使用Ansys SpaceClaim的"Pull"工具或Altair HyperMesh的"geometry cleanup"功能。只要面数从1000个减少到100个,网格生成的成功率和速度就会大幅提高。这称为"特征删除",是重要的前处理步骤。

🧑‍🎓

简化时,不确定应该删除多小的形状。有标准吗?

🎓

根据经验,可以参考以下两个标准。第一,与目标应力影响范围相比。例如,板厚10mm的支架,如果最大主应力产生的区域远离半径1mm的圆角,可以忽略。第二,与使用的单元大小的比例。如果将单元大小设为2mm,就无法用网格表示更小的1mm突起,所以应删除或修改形状。始终要问自己"这个形状对结果的影响是否在许容误差内(例如应力5%以内)?"

🧑‍🎓

进行网格划分后,有方法检查NURBS原始形状与网格形状之间的误差吗?

🎓

大多数CAE预处理器都有"几何偏差检查"功能。例如,Abaqus/CAE的"Verify Mesh"选项可以用颜色区分每个节点与原始NURBS曲面的距离(偏差)。许可偏差取决于部件大小和精度要求,但对于通常的机械部件结构分析,目标是将最大偏差控制在单元大小的10%以下(例如单元大小2mm则0.2mm以下)。如果不通过此检查,特别是在接触分析中可能会产生重大误差。

NURBS的软件比较

各CAE软件中NURBS的处理

🧑‍🎓

Ansys、Abaqus和COMSOL在NURBS的导入和处理上有区别吗?

🎓

方法差异很大。Ansys Workbench集成了SCDM(SpaceClaim直接建模),在NURBS模型的修复和编辑方面很强。以Parasolid内核为基础。而Abaqus/CAE拥有独立的内核,虽然可以导入NURBS,但高级编辑建议与"CATIA"或"NX"联动而非在Abaqus/CAE中进行。COMSOL Multiphysics最灵活,通过CAD导入模块可以直接"实时"链接NURBS,甚至可以将参数更改反映到CAD端。但对于极其复杂的模型,Ansys SCDM的操作性似乎更优。

🧑‍🎓

有实现"等几何分析(IGA)"的软件吗?听说是直接在解析中使用NURBS。

🎓

在商用软件中还很有限,但确实在扩展。西门子的"Simcenter 3D"内置了IGA for shells(板壳分析)功能,在汽车车身壳体分析等中可以省略网格生成。Altair正在开发与"RADIOSS"求解器联动的IGA功能。作为完整的通用IGA求解器,大学开发的"GeoPDEs"和"IGA++"用于研究。在商用软件中,COMSOL可以将"CAD导入模块"和"Shell"界面结合,近似于将NURBS面直接用作壳单元。

🧑‍🎓

开源免费的CAE软件(CalculiX、Code_Aster)如何处理NURBS?

🎓

这些求解器本身处理网格数据,所以NURBS的处理取决于前处理软件。CalculiX的常用前端"PrePoMax"配备了Open CASCADE几何内核,可以读取STEP文件中的NURBS并生成网格。Code_Aster的官方前处理"Salome-Meca"也采用Open CASCADE。但与有偿软件相比,高级的几何修复和编辑功能较少,对于复杂模型,使用商用软件进行前处理,仅导出网格来使用更为现实。

NURBS的故障排除

NURBS相关的常见错误和对策

🧑‍🎓

网格生成时出现"几何体中存在微小边/面"的错误。具体的查找方法和修复方法是什么?

🎓

首先用预处理器的"统计信息"功能确认面积和边长的最小值。在Ansys SCDML中,可以在"Prepare"选项卡的"Measure"中测量最小面积。面积小于10^-4 mm^2的面或长度小于0.01mm的边是对象。修复方法有两种。1)用"Merge"功能合并到相邻的大面。2)如果形状确实需要,直接编辑NURBS的"控制点"来简化形状(需高级技能)。大多数情况下这些微小单元是CAD操作历史的遗留物,可以安全删除。

🧑‍🎓

导入的NURBS模型显示"扭曲的面"或"自相交"。这是什么原因,如何修复?

🎓

NURBS的控制点排列不当,导致曲面自身相交。原因是CAD操作中的极端形状变形或数据转换时控制点坐标损坏。对策很根本性,1)向供应商要求重新发送正常的模型。2)自己修复的话,删除问题面,从周围边界用"补丁"重新创建新面。可以用Altair HyperMesh的"surface edit"或Ansys SpaceClaim的"Fill"工具。此错误会完全阻止网格生成,必须修复。

🧑‍🎓

在高曲率的圆角部分,网格始终会变得粗糙。除了将整体单元大小设置得极小,还有其他方法吗?

🎓

使用"局部网格控制"。具体方法有,1)用"面大小控制"仅对相应圆角面设置细网格大小(例如0.3mm)。2)用"边大小控制"沿圆角的两端边细化网格。3)将"曲率自适应网格"的灵敏度设置较高(许多软件有"高""最大"等选项)。Ansys Meshing中应用"Face Meshing",在圆角面贴规则四边形网格也有效。将这些组合使用,可以在不把总单元数增加10倍的情况下提高局部分辨率。

🧑‍🎓

在不同软件间交换STEP文件时,形状有时看起来会改变。这是NURBS精度的问题吗?

🎓

是的。STEP(AP203、AP214)文件是以规格完全传输NURBS数据的,但接收端的CAD/CAE内核(Parasolid、ACIS、CASCADE)使用的数值精度(通常是双精度)和形状显示的"镶嵌化"设置不同。如果显示多边形分解精度低,曲线看起来会有棱角。但通常NURBS数据作为实际形状被正确保留,CAE工作上没有问题。只要把显示设置(显示精度)提高到最高(例如偏差0.01mm),看起来应该大致相同。为最大化数据兼容性,也可以用"Parasolid(.x_t)"作为中间格式。

本文的评价
感谢您的回答!
有参考
价值
需要
详细说明
报告
错误
有参考价值
0
需要详细说明
0
报告错误
0
由 NovaSolver 贡献者撰写
匿名工程师 & AI — 网站地图
查看个人资料