开源的python有限元软件_专业方向系列-00-Python与有限元初探

案例 1

给出4个弹簧的劲度系数,离散后,求其总的刚度矩阵。

代码:

import numpy as np

k1, k2, k3, k4 = 500, 250, 2000, 1000

ki = np.array([k1, k2, k3, k4])

p = 1000

K = np.matrix(np.zeros((4, 4)))

eindex = [K[0:2, 0:2], K[1:3, 1:3], K[0:3:2, 0:3:2], K[2:, 2:]]

for i in range(4):

ke = ki[i] * np.array([[1, -1], [-1, 1]])

eindex[i] += np.matrix(ke)

print(K)

结果如下:

[[ 2500. -500. -2000. 0.]

[ -500. 750. -250. 0.]

[-2000. -250. 3250. -1000.]

[ 0. 0. -1000. 1000.]]

案例2

两根杆的实例。

代码分析:

import numpy as np

# 系统的初始参数如下:

A1, A2, L1, L2, E1, E2 = 2400, 600, 300, 400, 7e4, 2e5

# 计算每根杆的刚度

k1 = (E1*A1/L1)*np.array([[1, -1], [-1, 1]])

print(‘k1’, k1)

k2 = (E2*A2/L2)*np.array([[1, -1], [-1, 1]])

print(‘k2’, k2)

ki = [k1, k2]

# 初始化总的刚度矩阵、力以及位移

K, F, d = np.zeros((3, 3)), np.zeros((3, 1)), np.zeros((3, 1))

print(K)

print(F)

print(d)

# 组装总的刚度矩阵

eindex = [K[0:2, 0:2], K[1:, 1:]]

for i in range(2):

eindex[i] += ki[i]

print(K)

# 给出力向量

F[1] = 200000

print(F)

# 求解过程

KK = K[1, 1]

FF = F[1]

dd = FF/KK

d[1] = dd

print(d)

计算结果:

每根杆的刚度矩阵

k1 [[ 560000. -560000.]

[-560000. 560000.]]

k2 [[ 300000. -300000.]

[-300000. 300000.]]

总的刚度矩阵

[[ 560000. -560000. 0.]

[-560000. 860000. -300000.]

[ 0. -300000. 300000.]]

力向量

[[ 0.]

[200000.]

[ 0.]]

求解的位移向量

[[0. ]

[0.23255814]

[0. ]]

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览209287 人正在系统学习中 相关资源:欧德克连杆仿真设计软件Linkage_linkage软件-其它工具类资源-CSDN…

来源:weixin_39743369

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月25日
下一篇 2020年10月25日

相关推荐