材料非线性Matlab有限元编程:初应力法与初应变法

导读:本文主要围绕材料非线性问题的有限元Matlab编程求解进行介绍,重点围绕牛顿-拉普森法(切线刚度法)、初应力法、初应变法等三种非线性迭代方法的算法原理展开讲解,最后利用Matlab对材料非线性问题有限元迭代求解算法进行实现,展示了实现求解的核心代码。这些内容都将收录在我的原创精品课《matlab有限元编程从入门到精通》。

一、 切线刚度法

大家可以查阅我上月发布在仿真秀的原创文章《材料非线性Matlab有限元编程:切线刚度法》

二、初应力及初应变法

1、本构方程

本文同样以具体案例为对象进行材料非线性问题的有限元变成求解,求解模型如图1,模型边界为20m×10m,公式1-3材料本构方程如公式1所示,其中,弹性模量E=20MPa,泊松比0.35,模型上表面中间位置作用20kPa超载,超载作用范围为4m。按照平面应变问题考虑,使用常应变三角形单元分析模型上表面中间点竖向沉降,对应的有限元模型和计算结果如图2、3所示。

之所以采用公式1-3三种不同的应力应变关系本构方程,是因为牛顿-拉普森法(切线刚度法)、初应力法、初应变法适用于不同形式的本构方程:切线刚度法,顾名思义,其刚度表达式为应力应变曲线的切线,因此采用微分形式表示其本构关系;初应力法适用于应力由应变确定的本构形式,即应力为应变量,应变为自变量;但某些问题中,应力无法用应变显式表达,相反,应变由应力表达的本构形式,这种情况的非线性本构方程采用初应变法来求解,

图1 材料非线性问题案例模型

2、有限元求解原理

由图2所示,有限元离散方式采用的是三节点三角形单元进行离散,因此我们要有三角形平面单元弹性问题的求解基础知识,大家可以观看b站的《Matlab有限元编程从入门到精通》课程中的“三角形单元悬臂梁matlab有限元编程”小节,详细讲解了基于三角形三节点单元的有限元离散过程以及弹性刚度矩阵的推导。

图2 三节点三角形单元刚度矩阵推导

但需要注意的是,该平面三角形单元应用的场景是平面应力问题,本案例是平面应变问题,二者的区别如下图所示,除物理方程外,平面应变问题与平面应力问题的变量和方程都完全相同。比较一下这两个物理方程,我们就发现,将平面应力问题里面的弹性模量E换为,把平面应力问题里面的换成,这样的话,我们就从平面应变问题的物理方程就可以转化为平面应变的问题的物理方程,那么反过来也可以由平面应变问题的物理方程换成。因此在对《三角形单元悬臂梁matlab有限元编程》课程代码进行修改的时候,要注意将平面应变问题的材料刚度矩阵,改为平面应变问题的材料刚度矩阵。当然这是针对弹性问题的求解,如果对于材料非线性问题,平面应力应变刚度矩阵是变换的,其本构方程直接采用公式1-3所示的方程来定义。

图3 平面应力问题和平面应变问题的区别

在掌握基于三角形单元弹性问题的求解基础知识后,针对本案例的纯材料非线性问题,其几何方程、平衡方程的建立均为线性关系,只有物理方程存在非线性关系,具体分析如下:属于小变形问题,因此公式2表示的几何关系是线性的,公式3以应力形式表示的平衡条件也是线性的。引入物理方程,其一般形式为

在材料非线性问题中,应力与应变关系是非线性的,对于本案例,应力应变的关系如公式1所示。所以,以节点位移列阵表示的平衡方程不再是线性的,可以写成

上式与几何非线性的的表达式类似,因此材料非线性和几何非线性都可以用相同的迭代方法来求解。本系列课程主要介绍牛顿-拉普森法(切线刚度法)、初应力法、初应变法等三种迭代方法。这一小节围绕初应力和初应变法进行介绍。

3、初应力法

对于一般非线性材料,物理方程可以表示为

(7)

上式可由具有初应力的线弹性物理方程代替,即

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/463304.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.6日学习打卡----初学RabbitMQ(一)

2.6日学习打卡 初识RabbitMQ、 一. MQ 消息队列 MQ全称Message Queue(消息队列),是在消息的传输过程中保 存消息的容器。多用于系统之间的异步通信。 同步通信相当于两个人当面对话,你一言我一语。必须及时回复 异步通信相当于通…

机器学习复习(8)——逻辑回归

目录 逻辑函数(Logistic Function) 逻辑回归模型的假设函数 从逻辑回归模型转换到最大似然函数过程 最大似然函数方法 梯度下降 逻辑函数(Logistic Function) 首先,逻辑函数,也称为Sigmoid函数&#…

决策树之scikit-learn

实例 from sklearn.datasets import load_iris from sklearn import tree import matplotlib.pyplot as plt# Load iris dataset iris load_iris() X, y iris.data, iris.target# Fit the classifier clf tree.DecisionTreeClassifier() clf clf.fit(X, y)# Plot the deci…

(坑点!!!)给定n条过原点的直线和m条抛物线(y=ax^2+bx+c,a>0),对于每一条抛物线,是否存在一条直线与它没有交点,若有,输出直线斜率

题目 思路: 1、区间端点可能是小数的时候,不能直接利用加减1将 < 转化为 <=,例如,x < 1.5 不等价于 x <= 2.5 2、该题中k在(b - sqrt(4 * a * c), b + sqrt(4 * a * c) 中,注意是开区间,那么可以将左端点向上取整,右端点向下取整,即sqrt(4 * a * c)向下取…

Go内存优化与垃圾收集

Go提供了自动化的内存管理机制&#xff0c;但在某些情况下需要更精细的微调从而避免发生OOM错误。本文介绍了如何通过微调GOGC和GOMEMLIMIT在性能和内存效率之间取得平衡&#xff0c;并尽量避免OOM的产生。原文: Memory Optimization and Garbage Collector Management in Go 本…

Days 26 ElfBoard RGB接口

1. RGB接口介绍 ELF 1支持并行24位LCD,最大RGB888 24位&#xff0c;最高分辨率支持WXGA&#xff08;1366x768&#xff09;&#xff0c;刷新频率为60Hz&#xff0c;底板采用的是RGB565的连接方式&#xff0c;通过一个0.5mm间距54P的FPC座&#xff08;P9&#xff09;引出&#x…

MVVM模型

MVVM模型M模型&#xff08;Model&#xff09;对应data中的数据&#xff08;普通的JS对象&#xff09;V视图&#xff08;View&#xff09;对应模板&#xff08;Vue的模板经过解析形成的页面&#xff0c;页面生成的DOM结构&#xff09;VMVue实例对象&#xff08;ViewModel&#x…

Vue 进阶系列丨实现简易VueRouter

‍‍Vue 进阶系列教程将在本号持续发布&#xff0c;一起查漏补缺学个痛快&#xff01;若您有遇到其它相关问题&#xff0c;非常欢迎在评论中留言讨论&#xff0c;达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧&#xff01; 2013年7月28日&#xff0c;尤雨溪第一次在 G…

云安全的基本概念(基本目标与指导方针)

目录 一、云安全概念概述 1.1 概述 二、云安全的基本目标 2.1 安全策略开发模型 2.1.1 信息安全三元组 2.1.1.1 保密性(Confidentiality) 2.1.1.2 完整性(Integrity) 2.1.1.3 可用性(Availability) 2.1.2 信息安全三元组的局限性 2.2 其他信息安全属性 2.2.1 真实性 …

读取csv数据并转为二维数组

首先我csv文件中数据如上&#xff0c;是个25*4的数据。 现在需要读取&#xff0c;并将其转化为二维数组&#xff0c;方便后续操作。 import csv with open(q_table.csv, r) as file:csv_reader csv.reader(file)data_array []for row in csv_reader:data_array.append(row)…

双指针和单调栈

双指针 用于解决一类基于子段的统计问题 子段就是&#xff1a;数组中连续的一段 可以用一个闭区间来表示数组中的连续一段 这个方法核心就是优化&#xff1a;两种循环的枚举 也就是枚举左端点l和右端点r的所有可能优化关键就是&#xff1a;去除枚举中的冗余部分 具体优化策略…

LeetCode Python - 7. 整数反转

文章目录 题目答案运行结果 题目 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#x…