不定值矩阵错误
不定值矩阵
老师,不定值矩阵和奇异矩阵有区别吗?
不定值矩阵错误的理论基础
不定值矩阵的物理意义
"不定值矩阵"这个错误出现了。矩阵变为不定值,物理上代表什么状态呢?
好问题。物理上表示结构处于"不稳定"状态。具体来说,刚度矩阵
特征值为负?刚度不应该是正值吗?
在线性微小变形理论中,刚度总是正的。但在几何非线性分析(大变形、屈曲后分析)中,以变形后的构形评估刚度。变形导致构件被压缩,某些模式的恢复力反向,那个方向的"表观刚度"变为负。这对应负特征值。支配方程为
为什么线性静分析也出现这个错误?我没有处理非线性啊。
这才是最常见的原因。线性分析出现不定值错误时,模型本身存在"约束不足"。例如,三维模型忘记约束Z方向并进或旋转自由度,就存在刚体模式。此时该方向刚度为零,即特征值为零。求解器期望正定矩阵,所以将零也作为错误检测。Abaqus手册常把它与"NUMERICAL SINGULARITY"并列。
不定值矩阵错误的数值计算方法
求解器如何检测
求解器怎样判断矩阵是不定值的?计算全部特征值不是很费时吗?
确实不计算全部特征值。直接法求解器(如稀疏直接求解器)在进行LU分解或Cholesky分解时判别。Cholesky分解
"主元"变为负是怎样的?
分解过程中计算的对角项值。用一个小的两自由度弹簧质量系统说明,刚度矩阵为
非线性分析中的增量计算,每一步都做这个检查吗?
是的。Abaqus/Standard这样的隐式求解器在每个Newton-Raphson迭代中构造切线刚度矩阵,进行分解求解。屈曲后分析中检测到负主元时,会出现"检测到○个负特征值"的消息,同时启动减小增量(如减为0.25倍)重新尝试的算法。如果无法收敛就停止分析。
不定值矩阵错误的实务应用
错误发生时的检查清单
实际出现错误时,首先应该检查什么?
应该系统地检查。首先是"约束条件"。3D固体单元的话,XYZ并进和旋转共6个自由度,是否有必需充分的约束。Shell单元需要注意钻孔旋转(绕面法向)的处理。Ansys中有KEYOPT(3)设置来添加Shell单元的钻孔刚度。
看起来约束足够啊。还有别的吗?
接下来是"材料设置"。特别是线性分析中,杨氏模量或泊松比是否输入极小值或负值。例如将杨氏模量设为1e-20,在数值上被视为零,会产生实质的刚体模式。异向性材料常数输入错误时,也可能定义物理上不稳定的材料特性(如剪切刚度为负)。
接触条件也会引起这个错误吗?
非常常见。初始接触状态"开放"时,该接触面在结构上不连接。例如螺栓连接部件,螺栓杆与孔之间有间隙的模型中,锁紧前部件呈悬挂状态。Ansys接触设置中"Adjust to Touch"或"Rigid Body Motion"选项要检查,初期过渡期添加微小刚度的"Stabilization"功能常用。
网格质量也有关系吗?
间接相关。极端纵横比的单元(如1000:1)或内角极小(1度以下)的楔形单元,数值积分(Gauss积分)精度严重下降,单元刚度矩阵计算误差导致很小甚至负的特征值。特别是二次单元,中间节点位置畸变时Jacobian行列式为负,产生"单元反转",立即成为不定值错误的原因。
不定值矩阵错误的软件对比
各软件的错误消息和对策
在Abaqus、Ansys、COMSOL中,这个错误的显示方式一样吗?
表达方式因软件而异,但本质相同。
Ansys Mechanical:典型的是"Solver pivot warning or error."。求解器输出(.out文件)中显示"*** WARNING *** CP = 68.469 TIME=... There are 1 small equation solver pivot terms."
COMSOL:"矩阵为奇异或条件数极差。""找到负主元值。"这类消息。
软件间推荐的调试方法有差异吗?
基本方针相同,但工具不同。
Ansys中,打开Solution Information的"Solver Output",确定主元警告出现的子步和自由度。有时可用"Solver Pivot Debugging"功能简化模型,高亮显示有问题的单元组。
COMSOL可使用"Debug"研究步骤。这样可将问题矩阵输出到文件,详细调查哪里有零或负对角项。
非线性分析中有意要通过负刚度时(屈曲后分析),软件需要特殊设置吗?
需要。默认线性求解器设置在检测到负主元时会停止。
Ansys:分析设置中"Large Deflection"开启,"Nonlinear Controls"中"Stabilization"启用。或者启用弧长法(Arc-Length Method)是根本解决方案。
COMSOL:不使用"定常求解器",改用"参数"求解器或"变分"求解器,启用"常数范数"选项(对应弧长法)。
不定值矩阵错误的故障处理
具体示例及其解决方案
请举具体例子。例如简单的悬臂梁线性分析出现这个错误。我以为约束已经完全了。
简单模型往往有盲点。你用什么单元?如果用二次单元(如Abaqus的C3D20),固定端面完全固定(ENCASTRE)时,中间节点也被完全约束了吗?中间节点未约束的话,它可能有刚体模式。Ansys的SOLID186也一样。对策是,不用"面"约束,而对固定端"全部节点"直接施加自由度约束。
多个部件用螺栓连接的组装模型出现错误。接触和约束都设置了。
这种情况初始接触状态"开放"很常见。螺栓连接模型中,螺栓轴向(杆部)与孔表面间数值上存在间隙,来自网格轻微不匹配或几何公差。线性分析接触设置为"Bonded"时,忽略这个间隙,部件间未连接状态下组装刚度矩阵。对策两个:1)几何上给定干涉量(如0.001mm)确保接触。2)不用线性分析,而用初期微小接触压力的"No Separation"等非线性接触计算初始步。
错误消息出现"自由度2356"这样的号码。仅凭这个看不出在哪。
需要将自由度号转换为"节点号"和"自由度类型"。多数情况自由度号按
实在找不到原因时,有应急办法吗?比如添加微小弹簧?
这是最后手段,不是根本解决,但调试线索有帮助。具体做法,在疑问方向添加微小刚度。Ansys中用"Spring Foundation"。Abaqus中用"*CONNECTOR"单元定义弹簧。刚度设为结构总刚度的极小值(如主刚度的1e-6倍)。添加后错误消失的话,就证明该方向刚度不足(约束不足)。但添加这个弹簧的影响必须评估,不能直接作为最终结果。
相关主题
价值
详细
报告