1. 置大数法(Penalty Method)
置大数法的核心思想是将被约束自由度的对应位置在总体刚度矩阵的对角线设置一个非常大的值(如 101210^{12}1012),并在力向量中设置相应的零值。
操作步骤:
- 将被约束自由度的对应对角元设置为一个非常大的数(如 M=1012M = 10^{12}M=1012),这确保了这个自由度的位移接近于零。
- 将受约束自由度行和列的其他元素设置为零。
- 在力向量的相应位置设置零,以确保最终的结果中位移约束被严格遵守。
优点:
- 实现简单:仅需在总体刚度矩阵上直接操作,不需要其他复杂处理。
- 通用性强:可以用于大多数线性静力问题。
缺点:
- 数值稳定性差:引入的“大数”会影响矩阵的条件数,可能导致计算精度下降。
- 稀疏矩阵破坏:尤其对于大型问题,增加了非零元素的数量,导致存储和计算的资源消耗增加。
2. 置0换1法(Row/Column Elimination or Replacement Method)
置0换1法的基本思路是在总体刚度矩阵中,将约束自由度的行和列全部置为0,并将对应的对角元设置为1,同时将力向量中该自由度的值设为0。这种方式直接修改系统方程,以确保该自由度的位移为零。
操作步骤:
- 对于被约束的自由度,将总体刚度矩阵的该行和该列所有元素设置为0。
- 将该自由度位置的对角元设置为1。
- 将力向量相应位置设置为0。
优点:
- 不引入大数:避免了数值稳定性的问题,不会影响矩阵的条件数。
- 适合稀疏矩阵:直接操作保持稀疏性,节省内存和计算开销。
- 实现简单:无需复杂计算和参数调整。
缺点:
- 只适用于简单约束:这种方法只能直接用于固定某自由度为0的情况,不适用于复杂约束条件(如柔性连接)。
- 可能影响系统矩阵的特性:直接替换可能改变矩阵的对称性(尤其在动力学和非线性问题中)。