首页/文章/ 详情

非线性概述

3月前浏览4443
  • 什么是非线性问题?

在结构变形过程中,结构刚度一般会发生变化。在结构变形不太大时,结构刚度变化不大,采用线性近似可得到工程应用可接受的结果,此即为线性求解。结构变形较大时,结构刚度发生显著变化,必须采用变刚度法求解,此即为非线性问题。

  • 非线性问题的类型

  1. 材料非线性 如弹塑性,超弹性,粘弹性等。

非线性弹性

  1. 几何非线性 如大变形,大转动,屈曲等。几何非线性在变形后的构型上建立平衡方程。

     ▲几何非线性

3.接触/边界非线性 

由于接触状态发生改变引起结构刚度发生变化。

  • 非线性问题的特点
  1. 解的不唯一性在给定的外荷载作用下,可以有一个解,或者多个解。

  2. 结果不可放缩

    在外力      作用下发生位移      ,由此并不能推出外力      作用下,发生的位移为      

  3. 结果不可叠加

    在外力      ,      作用下发生的位移      ,      ,由此并不能推出外力      作用下,发生的位移为      

  4. 结果与载荷路径有关

    屈曲分析的解与载荷路径有关

  • 非线性问题求解方法

    将施加的荷载分解为多个增量步,采用牛顿-拉夫逊法逐步求解。牛顿-拉夫逊法的特点:

    1. 无条件收敛。
    2. 每个增量步需要多个迭代步计算才能达到平衡。
    3. 计算精度不受增量步的影响。
         

    牛顿-拉夫逊法

来源:数值分析与有限元编程
非线性材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:3月前
太白金星
本科 慢慢来
获赞 2粉丝 5文章 304课程 0
点赞
收藏
作者推荐
自定义求解器之LDLT分解法

分解法解方程组是一些有限元软件的主流求解器常用的方法,比如PKPM软件就采用这个方法。对称正定矩阵 可以分解为 ,这里 为下三角矩阵且主对角元素皆为1。令 ,则 。这种分解也是 分解的特殊形式。对于方程组 ,可以写成 ,令 ,依次解三个简单方程组即可。考察一个3X3矩阵: 之后的矩阵分解算法同 分解。对于多工况分析时形成的荷载矩阵 ,若令 ,则 ,亦即 ,求解更简单。import numpy as npdef LDLTSolver(A, b): n = len(A) D = np.zeros((n)) for k in range(n): D[k] = A[k, k] - np.dot(A[k, 0:k], A[0:k, k]) for i in range(k+1, n): A[i, k] = ( A[i, k] - np.dot(A[i, 0:k], A[0:k, k]) ) / D[k] A[0:i, i] = D[0:i] * A[i, 0:i] for k in range(1,n): A[0:k,k] = 0.0 for k in range(n): A[k,k] = 1 # 求解 [L]{y} = {b} y = np.zeros((n)) for k in range(n): h = b[k] - np.dot(A[k,0:k], y[0:k]) y[k] = h # 求解 [D]{z} = {y} b = y/D # 求解 [L^T]{x} = {z} for k in range(n-1,-1,-1): h = b[k] - np.dot(A[k+1:n,k], b[k+1:n]) b[k] = h return b A = np.array([ [1, 0.5, 0.5], [0.5, 1, 0.5], [ 0.5, 0.5, 1] ])b = np.array([1, -2, 3])x = LDLTSolver(A, b)print(x)来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈