基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比

一、問題描述

有半徑為a中心孔的均勻薄板受到單軸壓力,應力為1000MPa,中心孔半徑a = 0.5 in., 薄板高2h,寬2w,h = 3 in., w = 6 in., 彈性模量E = 2(10)6 psi,泊松比v=0.3,解決平面應力問題,并將有限元的近似解與基于彈性力學理論的精確解進行對比。

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖1

二、理論分析

考慮這類中心開孔方板,受到單軸拉力,圓孔圓心和矩形中心重合,處于平面應力狀態,使用有限元求解此結構的變形圖。

首先對此結構進行單元剖分,確定單元按照有限元的分析流程,要先對此結構進行單元剖分,確定單元與結點編號、以及單元的自由度編號。因為這里是平面應力問題,所以可以采用常應變三角形單元進行網格劃分,并且采用的是非結構化的網格。

在該結構中采用的是常應變三角形單元,在整體坐標系中單元剛度矩陣均用下式進行計算:

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖2

對于三個節點,有

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖3

還可以得到

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖4
基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖5

代入可以得到:

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖6
基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖7

其中A為三角形單元面積,給定三角形節點坐標,可以通過下式得到:

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖8

三角形單元應變能為

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖9
基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖10

在三角形單元中,外力做功為

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖11

單元總勢能為

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖12

單元處于平衡狀態,總勢能最小,有

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖13

代入上式得到

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖14
基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖15

其中k即為單元剛度矩陣。

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖16


三、圓孔的孔邊應力集中理論

 

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖17
基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖18


五、網格劃分

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖19


六、應力云圖

基于python分析中心孔的均勻薄板受到單軸壓力將有限元的近似解與基于彈性力學理論的精確解進行對比的圖20


七、對比分析

有限元解(數值解),最終輸出的應力極值為3096MPa;彈性力學書上的理論解為3100MPa,原因是有限元網格劃分所存在的誤差,導致計算結果存在一定的誤差,但由于誤差不超過數值的5%,證明有限元仿真結果的準確性。

八、總結

有限元分析的最大特點就是標準化和規范化,這種特點時使大規模分析和計算成為可能。實現有限元分析標準化和規范化的載體就是單元,通過構造具有代表性的單元裝配成復雜的結構。在此例中構造三角形單元,先列出小剛度矩陣,再進行裝配,最后帶入邊界條件和外力得出位移、應力、應變的解,并且畫出云圖。云圖中體現了應力集中,即在小孔周圍網格密集(即應力大),在遠離小孔的地方應力網格稀疏,符合了彈性力學的理論。彈性力學中,孔邊的邊界條件是極坐標下的正應力與切應力均為零。而通過有限元方法求出的孔邊應力大致符合彈性力學理論

附錄代碼

#%%

import meshpy.triangle as triangle

import numpy as np

import numpy.linalg as la

import pandas as pd

import matplotlib.pyplot as pt

pt.figure(figsize=(12,6))#畫布的大小

# Quadratic element demo, by Aravind Alwan

def round_trip_connect(startend):##劃分網格

   return [(ii + 1for in range(startend)] + [(endstart)]

mesh_points=[]

def main(R):

   JUZHEN = []

   # R = 0.5

   points = [(60)(63)(-63)(-6-3)(6-3)(60)]

   facets = round_trip_connect(0len(points) - 1)

   circ_start = len(points)

   points.extend((R * np.cos(angle)R * np.sin(angle)) for angle in np.linspace(0* np.pi50endpoint=False))

   facets.extend(round_trip_connect(circ_startlen(points) - 1))

以下內容為付費內容,請購買后觀看

付費部分包括實現整個過程的python代碼!有任何問題直接私信我就好!

App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2
1
1