首页/文章/ 详情

用sympy解力法、位移法方程

4月前浏览990

 

在结构力学中,力法和位移法是分析超静定结构的两种基本方法。对于力法来说,未知量的系数  包含  这样的分数,在解力法方程的时候显得繁琐。本文利用sympy的符号运算功能,通过python编程来解力法方程。

▲图1

如图1所示的连续梁,取  为基本未知量,力法典型方程为

为与sympy中的方程定义保持一致,将上述方程改写为

各系数和自由项如下:

python代码

  import sympy as sp

X1, X2, l, q, EI = sp.symbols('X1, X2, l, q, EI ')  #符号变量

delta_11 = delta_22 = 7*l/(12*EI)  #δ11 = δ22
delta_12 = delta_21 = l/(8*EI)
Delta_1P = q*l**3 /(24*EI)   #Δ1P
Delta_2P = 0

#力法方程

eq1 = sp.Eq(delta_11 *X1 + delta_12 *X2 ,  -Delta_1P)
eq2 = sp.Eq(delta_21 *X1 + delta_22 *X2 ,  -Delta_2P)

#求解

sol = sp.solve([eq1, eq2], (X1, X2))
sol

在jupyter或者marimo中的输出效果如下

 

▲图2

来源:数值分析与有限元编程
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-06-12
最近编辑:4月前
译码当先
本科 慢慢来
获赞 14粉丝 32文章 400课程 0
点赞
收藏
作者推荐

应变的度量

几何非线性问题有两种描述格式:完全拉格朗日格式(Total-Lagrangian,TL)和更新拉格朗日格式(Updated-Lagrangian,UL)。在完全拉格朗日格式中,所有静力学和运动学物理量总是定义于初始构型(也叫参考构型),即在整个分析过程中参考构型保持不变;而在更新拉格朗日格式中,所有物理量参考于每一载荷增量或时间步长开始时的构型,即在分析过程中参考构型是不断更新的。拉格朗日(Lagrangian)应变定义在初始构型下,欧拉(Eulerian)应变定义于当前构型下。拉格朗日(Lagrangian)应变从参考构型出发,通过分析向量 的长度平方变化(如图1所示), ▲图1定义拉格朗日(Lagrangian)或格林(Green)应变张量 :代入式(1)可得长度平方变化的表达式:用位移梯度表示拉格朗日应变。将变形梯度与位移梯度的关系 代入 ,展开后可得:分量形式为:注意:无论哪种形式,拉格朗日应变都是对称二阶张量,即 。欧拉(Eulerian)应变重复上述步骤,但这次使用当前构型(而非参考构型)其中, 是空间变形梯度张量。定义欧拉应变张量 为:代入式(6)可得长度平方变化的表达式:我们定义空间位移梯度张量 为:利用链式法则,位移梯度满足 ,因此 。将这些结果代入欧拉应变的定义,可得用空间位移梯度表示的欧拉应变:分量形式为:与拉格朗日形式类似,欧拉应变也是对称二阶张量,即 。例子1🌰如图2所示,边长为 的立方体产生变形 ▲图2其中 为常数,确定立方体对角线 的长度平方差 。从映射关系直接可知,原点 保持不动,原本在点 的质点分别移动到点 。因此,平行于 平面内的质点仍留在这些平面内,正方形面 变为上述的平行四边形 。变形梯度参考构型下,对角线 的线元 ,代入公式得:参考构型下,对角线 的线元 ,代入公式得:参考构型下,对角线 的线元 ,代入公式得:例子2🌰🌰如图3是一根初始长度为 ,截面积为 的杆拉伸到长度为 ,截面积为 ,从初始构型到当前构型的简单映射 ▲图3轴向拉格朗日应变轴向欧拉应变除此之外,还有工程(名义)应变,对数(真实)应变等等。来源:数值分析与有限元编程

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