이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
원형 구멍이 있는 평판의 응력 집중
2차원 평면 응력 탄성 해석을 수행합니다.
단축(uniaxial) 인장력을 받는 얇은 사각형 판이 균일한 응력 분포를 갖고 있습니다. 판에 원형 구멍을 뚫으면 구멍 근처의 균일한 응력 분포가 교란되어 평균보다 상당히 높은 응력이 발생합니다. 이러한 얇은 판은 평면 내 하중을 받을 경우 2차원 평면 응력 탄성 문제로 해석할 수 있습니다. 이론상으로, 판이 무한한 크기라면 구멍 근처의 응력은 평균 응력보다 3배 더 높습니다. 너비가 유한한 사각형 판의 경우 응력 집중 계수는 판 너비에 대한 구멍 지름의 비율의 함수입니다. 이 예제에서는 너비가 유한한 판을 사용하여 응력 집중 계수를 근사합니다.
지오메트리 만들기
가해지는 하중과 경계 조건이 원형 구멍에서 멀리 떨어지도록 판이 충분히 길어야 합니다. 이 조건은 멀리 떨어진 영역에서 균일한 인장 상태가 유지되도록 보장하므로 무한히 긴 평판을 근사합니다. 이 예제에서 판의 길이는 너비보다 4배 더 깁니다. 다음과 같이 문제의 지오메트리 파라미터를 지정하십시오.
radius = 20.0; totalWidth = 50.0; totalLength = 4*totalWidth;
사각형과 원에 대한 GDM(지오메트리 설명 행렬)을 정의합니다.
R1 = [3 4 -totalLength totalLength ... totalLength -totalLength ... -totalWidth -totalWidth totalWidth totalWidth]'; C1 = [1 0 0 radius 0 0 0 0 0 0]';
결합된 GDM, 네임스페이스 행렬, 집합 공식을 정의하고 decsg를 사용해 분해된 지오메트리를 구성합니다.
gdm = [R1 C1]; ns = char('R1','C1'); g = decsg(gdm,'R1 - C1',ns');
모서리 레이블을 포함하여 지오메트리를 플로팅합니다.
figure pdegplot(g,EdgeLabel="on"); axis([-1.2*totalLength 1.2*totalLength -1.2*totalWidth 1.2*totalWidth]) title("Geometry with Edge Labels")

꼭짓점 레이블을 포함하여 지오메트리를 플로팅합니다.
figure pdegplot(g,VertexLabels="on"); axis([-1.2*totalLength 1.2*totalLength -1.2*totalWidth 1.2*totalWidth]) title("Geometry with Vertex Labels")

구조 해석을 위한 파라미터 지정하기
정적 구조 해석을 위한 femodel 객체를 만들고 지오메트리를 모델에 포함시킵니다. 기본적으로 femodel은 2차원 문제가 평면 응력 문제라고 가정합니다.
model = femodel(AnalysisType="structuralStatic", ... Geometry=g);
영률(Young's Modulus) 및 푸아송 비를 지정합니다.
model.MaterialProperties = ... materialProperties(YoungsModulus=200E3, ... PoissonsRatio=0.25);
판의 오른쪽 모서리에 x 성분이 0이 아닌 표면 견인력(마찰력)을 가합니다.
model.EdgeLoad(2) = edgeLoad(SurfaceTraction=[100;0]);
충분한 제약 조건을 지정하여 판의 모든 강체 운동을 제한합니다. 정적 해석의 경우 제약 조건은 가해진 하중에 의해 유발되는 운동에도 저항해야 합니다. 가해진 하중을 견디도록 왼쪽 모서리(모서리 4)에서 변위의 x 성분을 0으로 설정합니다.
model.EdgeBC(4) = edgeBC(XDisplacement=0);
강체 운동을 제한하도록 왼쪽 아래 코너(꼭짓점 1)에서 변위의 y 성분을 0으로 설정합니다.
model.VertexBC(1) = vertexBC(YDisplacement=0);
메시 생성하기 및 문제 풀기
해의 변화를 정확하게 캡처하려면 촘촘한 메시를 사용하십시오. 메시 크기를 제어하기 위해 Hmax를 사용하여 메시를 생성합니다.
model = generateMesh(model,Hmax=radius/6);
메시를 플로팅합니다.
figure pdemesh(model)

평면 응력 탄성 모델의 해를 구합니다.
R = solve(model);
응력 등고선 플로팅하기
수직 응력 분포의 x 성분을 플로팅합니다. 응력은 원형 경계에서 멀리 떨어진 곳에 가해지는 인장력과 같습니다. 응력의 최댓값은 원형 경계 근처에서 발생합니다.
figure pdeplot(R.Mesh,XYData=R.Stress.sxx, ... ColorMap="jet") axis equal title("Normal Stress Along x-Direction")

응력 보간하기
원형 경계 근처의 응력 변동에 대한 세부 정보를 보기 위해 먼저 경계에 있는 점 집합을 정의합니다.
thetaHole = linspace(0,2*pi,200); xr = radius*cos(thetaHole); yr = radius*sin(thetaHole); CircleCoordinates = [xr;yr];
그런 다음 interpolateStress를 사용하여 이러한 점에서 응력 값을 보간합니다. 이 함수는 보간된 응력 값을 포함하는 필드를 가진 구조체형 배열을 반환합니다.
stressHole = interpolateStress(R,CircleCoordinates);
보간 지점의 각위치에 대한 수직 방향 응력을 플로팅합니다.
figure plot(thetaHole,stressHole.sxx) xlabel("\theta") ylabel("\sigma_{xx}") title("Normal Stress Around Circular Boundary")

대칭 모델을 사용하여 동일한 문제 풀기
이 구멍 있는 평판 모델에는 두 개의 대칭 축이 있습니다. 따라서 지오메트리의 1/4을 모델링할 수 있습니다. 다음 모델은 적절한 경계 조건을 사용하여 전체 모델의 사분면 한 개에 대해 문제를 풉니다.
원래 모델의 사분면 한 개를 나타내는 지오메트리를 만듭니다. 모델을 적절히 제한하기 위해 추가 모서리를 만들 필요는 없습니다.
R1 = [3 4 0 totalLength/2 totalLength/2 ... 0 0 0 totalWidth totalWidth]'; C1 = [1 0 0 radius 0 0 0 0 0 0]'; gm = [R1 C1]; sf = 'R1-C1'; ns = char('R1','C1'); g = decsg(gm,sf,ns');
모서리 레이블이 표시되도록 지오메트리를 플로팅합니다.
figure pdegplot(g,EdgeLabel="on"); axis equal title("Symmetric Quadrant with Edge Labels")

정적 구조 해석을 위한 femodel 객체를 만들고 지오메트리를 모델에 포함시킵니다.
model = femodel(AnalysisType="structuralStatic",... Geometry=g);
물질의 구조적 속성을 지정합니다.
model.MaterialProperties = ... materialProperties(YoungsModulus=200E3, ... PoissonsRatio=0.25);
모서리 1에 표면 견인력(마찰력)을 가합니다.
model.EdgeLoad(1) = edgeLoad(SurfaceTraction=[100;0]);
충분한 제약 조건을 지정하여 판의 모든 강체 운동을 제한합니다. 정적 해석의 경우 제약 조건은 가해진 하중에 의해 유발되는 운동에도 저항해야 합니다. 가해진 하중을 견디도록 왼쪽 모서리(모서리 4)에서 변위의 x 성분을 0으로 설정합니다.
model.EdgeBC(4) = edgeBC(XDisplacement=0);
강체 운동을 제한하도록 아래 모서리(모서리 3)에서 변위의 y 성분을 0으로 설정합니다.
model.EdgeBC(3) = edgeBC(YDisplacement=0);
메시를 생성하고 대칭 평면-응력 모델의 해를 구합니다.
model = generateMesh(model,Hmax=radius/6); Rsym = solve(model);
수직 응력 분포의 x 성분을 플로팅합니다. 결과는 전체 모델의 1사분면과 동일합니다.
figure pdeplot(Rsym.Mesh,XYData=Rsym.Stress.sxx, ... ColorMap="jet"); axis equal title("Normal Stress Along x-Direction for Symmetric Model")
