2024. 6. 9. 13:41ㆍ공학/유한요소해석
이 예제는 발포 재료의 보호 포장재에 둘러싸인 회로 기판이 일정 각도로 강체 표면에 낙하했을 때의 거동을 조사한다. 이 시험의 목적은 회로 기판이 1 m 높이에서 떨어지면 발포 포장재가 회로 기판 손상을 방지할 수 있는지 평가하는 것이다. Abaqus/Explicit의 일반 접촉 기능을 사용하여 구성품 사이의 상호 작용을 입력한다. 다음 그림은 회로 기판과 발포 포장재의 mm 단위의 치수와 재료 특성을 보여준다.
1) 전처리
포장재, 회로 기판, 바닥을 표현하는 세 부분을 만든다. 기판의 각 칩(Chip)은 이산화 집중 질량을 사용하여 표현한다. 또한 파트 Instance와 중앙 질량을 배치하는 데 도움이 되는 여러 데이텀 포인트를 만든다.
포장재의 형상을 정의하려면 다음과 같이 설정한다.
1. 포장 재료는 3차원 Solid 구조이다. 돌출 Solid의 기본 기능으로 포장재를 표현하는 3차원 변형체 파트를 만든다. 이 부분에는 Packaging이라는 이름을 입력한다. 파트의 근사 크기에 0.1을 사용하고 단면 모양으로 0.02×0.024 m의 직사각형을 스케치한다. 돌출 깊이에 0.11 m를 지정한다.
2. 메뉴 바에서 Shape → Cut → Extrude를 선택하여 회로 기판이 들어있는 포장재의 홈을 만든다. 돌출 절단용 평면으로 포장재의 왼쪽 가장자리를 선택한다. 포장재 단면 모양의 수직선을 선택하여 스케치 평면의 오른쪽에 수직선을 만든다. Sketcher에서 수직 기준선 도구를 사용하여 포장재의 중심을 통과하는 수직 기준선을 만든다. 이 기준선에 고정 구속조건을 적용한다. 다음 그림과 같이 절단의 단면 모양을 스케치한다. 대칭 구속조건을 사용하여 절단 단면 형상의 중심을 기준선으로 만들고, 절단 단면 형상이 0.002 m 폭이고, 포장재에 0.012 m의 거리로 들어가도록 각 치수를 편집한다. 스케치가 완료되면 나타나는 Edit Cut Extrusion 대화 상자에서 끝 조건에 관통을 선택하고, 포장재 내부의 컷을 나타내는 화살표 방향을 선택한다.
3. 다음 그림과 같이 홈 하단의 중심에 데이텀 포인트를 만든다. 이 지점은 포장재에 상대적으로 기판을 배치하는 데 사용한다. 메뉴에서 Tools → Datum을 선택한다. Create Datum 대화 상자가 나타난다. 데이텀 종류에는 기본 선택인 Point를 그대로 사용하고 방법에 Midway between 2 points를 선택한다. 데이텀 포인트가 생성되는 두 개의 포인트가 되도록 그루브의 양쪽 끝에 밑면의 중심에 있는 두 개의 포인트를 선택한다. 다음 그림과 같이 데이텀 포인트가 생성된다.
회로 기판의 형상을 정의하려면 다음과 같이 설정한다.
1. 회로 기판은 칩이 있는 얇은 평판으로 만들 수 있다. 3차원 변형 평면 Shell을 만들고 회로 기판을 표현하고, 파트에 Board라는 이름을 입력한다. 파트의 근사 크기에 0.5를 사용하고, 단면 모양으로 0.100 m × 0.150 m의 직사각형을 스케치한다.
2. 다음 그림에 표시된 세 개의 데이텀 포인트를 만든다. 이 포인트를 사용하여 기판에 칩을 배치한다. 괄호 안의 숫자는 회로 기판의 왼쪽 아래 모서리에 원점이 있는 로컬 좌표계를 바탕으로 한 미터 단위의 (x, y) 좌표이다. 메뉴에서 Tools → Datum을 선택하면, Create Datum 대화 상자가 나타난다. 데이텀 종류에는 기본 선택인 Point를 그대로 사용하고 방법으로 Offset from point를 선택한다. 오프셋의 시작점으로 기판의 왼쪽 아래 모서리를 선택하고, 그림에 표시된 점 중 하나의 좌표를 입력한다. 단계 c를 반복하여 나머지 두 개의 데이텀 포인트를 만든다.
바닥을 정의하려면 다음과 같이 설정한다.
1. 회로 기판이 충돌하는 표면은 실질적으로 강하다. 3차원 이산화 강체 평면 Shell을 만들어서 바닥을 표현하고, 파트에 Floor라는 이름을 입력한다. 파트의 근사 크기에 0.5를 사용한다. 이 강체 표면은 변형이 가장자리에서 떨어지지 않도록 충분히 커야 한다.
2. 단면 형상으로 0.2 m × 0.2 m의 정사각형을 스케치한다. 모델 어셈블리에서 파트를 쉽게 배치할 수 있도록 이 서피스의 중심을 Sketcher 포인트(0, 0)와 일치시킨다. 또한 이 점을 글로벌 좌표계의 원점과 일치시킨다.
3. 기준점을 파트의 중심에 지정한다.
회로 기판의 재료는 영률이 45×109 Pa, 푸아송의 비는 0.3인 PCB 탄성 재료라고 가정한다. 기판의 질량 밀도는 500 kg/m3이다. 이런 특성을 가진 재료 PCB를 정의한다.
발포 포장재의 재료는 파괴 발포 소성 모델을 사용하여 만든다. 이 포장재의 탄성 특성은 3×106 Pa의 영률과 0.0의 푸아송의 비를 적용한다. 포장재의 질량 밀도는 100 kg/m3이다. 이런 특성을 가진 재료 Foam을 정의한다. 재료 특성 편집 대화 상자를 열어둔다.
p-q (압력 응력-Misses 등가 응력) 평면에서 발포 폼의 항복 곡면은 다음 그림과 같다.
초기 항복 거동은 정수압 축에서 초기 항복 응력에 대한 단축 압축의 초기 항복 응력의 비율($ \sigma_c ^0 / p_c ^0 $)과 정수압 축에서 초기 항복 응력에 대한 정수압 인장에서 항복 응력의 비율($ p_t / p_c ^0 $)에 따라 지배된다. 이 예에서 첫 번째 데이터 항목에 1.1을 선택하고 두 번째 데이터 항목(양수 값으로 제공)에 0.1을 선택한다.
이 재료 모델의 정의는 경화 효과도 포함한다. 다음 표는 항복 응력-소성 변형 데이터를 보여준다.
표. 파괴 발포 모델의 항복 응력–소성 변형률 데이터
단축 압축으로 항복 응력(Pa) | 소성 변형률 |
0.22000E6 | 0.0 |
0.24651E6 | 0.1 |
0.24651E6 | 0.2 |
0.29902E6 | 0.3 |
0.32455E6 | 0.4 |
0.34935E6 | 0.5 |
0.37326E6 | 0.6 |
0.39617E6 | 0.7 |
0.41801E6 | 0.8 |
0.43872E6 | 0.9 |
0.45827E6 | 1.0 |
0.49384E6 | 1.2 |
0.52484E6 | 1.4 |
0.55153E6 | 1.6 |
0.57431E6 | 1.8 |
0.59359E6 | 2.0 |
0.62936E6 | 2.5 |
0.65199E6 | 3.0 |
0.68334E6 | 10.0 |
0.68833E6 |
이 파괴 발포의 경화 모델은 다음 그림에 표시된 곡선을 따른다.
재료 특성 편집 대화 상자에서 Mechanical → Plasticity → Crushable Foam을 선택한다. 위에서 설명한 항복 응력 비율을 입력한다. Suboptions를 클릭하고 Foam Hardening을 선택한다. 하위 옵션 편집 대화 상자에서 첫 번째 셀을 선택하고 마우스 버튼 3을 클릭한다. 표시된 메뉴에서 Read from File을 선택한다. 파일 이름 drop-test-foam.txt를 선택하여 표에 표시된 경화 데이터를 읽는다.
재료 PCB를 참조하는 균질 Shell 요소 특성 Board_Section을 정의한다. 두께에 0.002 m를 지정하고 이 요소 특성의 정의를 파트 기판에 지정한다. 재료 Foam을 참조하는 균질 Solid 요소 특성 Foam_Section을 정의한다. 이 요소 특성의 정의를 파트 Packaging에 지정한다.
회로 기판에서 기판의 각 모서리에 평행한 종 방향과 횡 방향 응력 결과를 출력하는 것이 가장 중요하다. 따라서 회로 기판의 요소망에 대한 로컬 재료 방향을 지정해야 한다.
재료 방향을 기판에 지정하려면 다음과 같이 설정한다.
1. 모델 트리에서 Parts 컨테이너 아래의 Board를 두 번 클릭한다.
2. 이 재료 방향의 데이텀 좌표계를 정의하려면 우선 메뉴에서 Tools → Datum을 선택한다. 종류로 CSYS를 선택하고, 방법으로 2 Lines를 선택한다. 나타나는 Create Datum CSYS 대화 상자에서 직교 좌표계를 선택하고, Continue를 클릭한다. 뷰포트에서 로컬 x 축으로 만들 기판 아래의 수평 모서리를 선택하고, 로컬 X-Y 평면에 있는 기판의 오른쪽에 있는 수직 모서리를 선택한다. 데이텀 좌표계는 뷰포트에 노란색으로 표시한다.
3. 특성 모듈의 메뉴에서 Assign → Material Orientation을 선택한다. 뷰포트 안에서 회로 기판을 선택한다. 좌표계로 데이텀 좌표계를 선택한다. 재료 방향 편집 대화 상자에서 Shell 표면의 법선 방향으로 Axis 3을 선택하고, 축 방향의 추가 회전 None을 선택한다. 재료 방향은 뷰포트의 기판에 표시된다.
모델 트리에서 Assembly 컨테이너 아래의 Instances를 두 번 클릭하여 바닥에 대한 dependent Instance를 만든다. 회로 기판은 어떤 각도로 떨어진다. 최종 모델 어셈블리는 다음 그림에 나와 있다.
먼저 어셈블리 모듈 배치 도구를 사용하여 포장재를 배치한다. 그다음 포장재에 상대적으로 기판을 배치한다. 마지막으로 기판의 각 데이텀 포인트의 위치에 기준점을 작성하여 칩을 표현한다.
포장재를 배치하려면 다음과 같이 설정한다.
1. 어셈블리 모듈의 메뉴 막대에서 Tools → Datum을 선택하여 포장재를 배치하는 데 도움이 되는 추가 데이텀 포인트를 만든다. 종류에 Point를 선택하고, 방법에 Enter coordinates를 선택한다. 두 개의 데이텀 포인트를 (0, 0, 0)과 (0.5, 0.707, 0.25) 위치에 만든다. 자동 스케일링 도구를 클릭하여 두 지점을 모두 뷰포트에 표시한다.
2. Create Datum 대화 상자에서 타입에 Axis를 선택하고, 방법으로 2 points를 선택한다. 이전 단계에서 만든 2개의 데이텀 포인트로 정의된다. 데이텀 축은 먼저 포인트 (0.5, 0.707, 0.25)를 선택하여 생성한다.
⊙ Selection 툴바를 사용하여 Datums를 선택한다.
3. 포장 재료를 Instance로 만든다.
4. 하단 가장자리가 데이텀 축과 평행하도록 포장재를 구속한다. 메뉴에서 Constraint → Edge to Edge를 선택한다. 다음 그림에 표시된 포장재의 모서리를 드라이브 Instance의 선형 모서리로 선택한다. 데이텀 축을 고정 Instance로 선택한다. 필요한 경우 프롬프트에서 Flip을 클릭하여 포장재의 화살표 방향을 반전시킨다. 다음 그림과 같이 화살표가 마주 보는 방향을 향하면 OK를 클릭한다.
⊙ 모델의 뷰를 쉽게 볼 수 있도록 메뉴에서 View → Specify를 선택하고, 방법으로 Viewpoint를 선택한다. 뷰포인트 벡터에 (-1, -1, 1), 위쪽 벡터에 (0, 0, 1)을 입력한다.
⊙ 필요한 경우 모델을 축소하거나 회전하여 데이텀 축의 화살표를 확인한다. 이 화살표의 방향은 먼저 축을 정의하는 방법에 따라 다르다. 자신이 정의한 축에 대한 화살표가 그림에 표시된 화살표의 반대 방향을 가리키는 경우 포장재의 화살표도 그림과 반대이다.
다음 그림과 같이 포장재가 배치한다.
◉ 배치 제한은 어셈블리의 피처로 저장한다. 어셈블리를 배치하는 동안 조작을 잘못하면 해당 배치 제한을 제거할 수 있다. 모델 트리의 Assembly 컨테이너 아래에 있는 Position Constraints 항목 목록에서 삭제할 구속조건을 마우스 버튼 3으로 클릭하고 표시된 메뉴에서 Delete를 선택하면 된다.
5. 세 번째 데이터 포인트를 (-0.5, 0.707, -0.5) 위치에 만들고, 자동 스케일링 도구를 다시 클릭한다.
6. Create Datum 대화 상자에서 종류에 Plane을 선택하고, 방법으로 Line and point를 선택한다. 이전에 만든 데이텀 축과 방금 만든 데이텀 포인트로 정의된 데이텀 평면을 만든다.
7. 하단 면이 데이텀 평면에 있도록 포장재를 구속한다. 메뉴에서 Constraint → Face to Face를 선택한다. 다음 그림에 표시된 포장재의 면을 드라이브 Instance의 면으로 선택한다. 데이텀 평면을 고정 Instance로 선택한다. 필요한 경우 프롬프트에서 Flip을 클릭한다. 두 화살표가 같은 방향을 향하면 OK를 클릭한다. 고정 평면에서 기본 거리 0.0을 그대로 사용한다.
9. 그다음 포장재와 바닥 사이에 초기 침투를 일으키지 않으려면 바닥을 약간 아래로 이동한다. 불일치가 발생하지 않도록 상대 배치 구속조건을 절대 구속조건으로 변환한다. 메뉴 막대에서 Instance → Convert Constraints를 선택한다. 뷰포트에서 포장 재료를 선택하고, 프롬프트에서 Done을 클릭한다. 메뉴에서 Instance → Translate를 선택한다. 뷰포트에서 바닥을 선택한다. 이동 벡터의 시작점에 (0.0, 0.0, 0.0), 끝점에 (0.0, 0.0, -0.0001)을 입력한다. OK를 클릭하여 새 위치를 확인한다.
회로 기판을 배치하려면 다음과 같이 설정한다.
1. 회로 기판을 Instance로 만든다. Create Instance 대화 상자에서 Auto-offset from other instances를 켠다.
2. 메뉴에서 Constraint → Parallel Face를 선택한다. 기판의 면을 드라이브 Instance의 페이스로 선택하고, 포장재 긴 측면을 고정 Instance의 면으로 선택한다. 필요한 경우 프롬프트에서 Flip을 클릭하여, 두 면의 화살표가 다음 그림에 표시된 방향을 향하게 한다. OK를 클릭하여 구속을 완료한다.
3. 메뉴에서 Constraint → Parallel Edge를 선택한다. 기판의 상단 모서리를 드라이브 Instance의 모서리로 선택한다. 포장재의 긴 측면을 따라 가장자리를 고정 Instance의 가장자리로 선택한다. 필요한 경우 프롬프트에서 Flip을 클릭하여 다음 그림과 같이 두 모서리의 화살표가 같은 방향을 향하게 한다. OK를 클릭하여 구속조건을 완료한다.
4. 메뉴에서 Constraint → Coincident Point를 선택한다. 기판 하단의 중간 지점을 드라이브 Instance의 포인트로 선택한다. 포장재 홈의 중심에 있는 데이텀 포인트를 고정 Instance의 포인트로 선택한다.
⊙ Selection 툴바를 사용하여 Datums를 선택한다.
다음 그림은 회로 기판의 최종 배치를 보여준다. 회로 기판과 포장재의 홈은 같은 두께 (2 mm)이므로 이 두 물체 사이에 끼워져 있다.
칩을 만들려면 다음과 같이 설정한다.
기판의 3개의 데이텀 포인트의 각 위치에 기준점을 작성하여 각 칩을 표현한다. 이 기준점은 나중에 질량 특성을 지정한다. 참조 점을 만들려면 어셈블리 모듈의 메뉴에서 Tools → Reference Point를 선택한다. 이런 참조 점의 작성이 끝나면 어셈블리가 완성된다.
계속하기 전에 출력 요청과 질량 특성을 지정하는 데 사용할 다음 형상 세트를 작성한다.
• Top_Chip: 가장 높은 위치에 있는 칩 참조 점
• Mid_Chip: 중간 위치의 칩 참조 점
• Bot_Chip: 가장 낮은 위치에 있는 칩 참조 점
• Bot_Board: 기판 하단 모서리
단일 동적 외연적 단계 Drop을 만든다. 시간 폭은 0.02초로 설정한다. 기본 기록 출력 요청과 필드 출력 요청은 그대로 사용한다. 또한 수직 방향 변위(U3), 수직 방향 속도(V3)와 수직 방향 가속도(A3)의 7×10⁻⁵초마다 이력 출력이 3개의 칩 각각에 대해 요청한다.
⊙ 먼저 첫 번째 칩에 대한 이력 출력 요청을 정의한다. 그다음 History Output Requests Manager에서 출력 요청을 복사하고 대상 영역을 편집하여 나머지 칩에 대한 요청을 정의한다.
세트 Bot_Board의 상면(단면점 5)에서 로그 변형률 구성 요소(LE11, LE22, LE12)와 주 로그 변형률(LEP)에 대해 7×10⁻⁵초의 이력 출력이 필요하다.
이 예제는 Abaqus/Explicit의 모든 접촉 알고리즘을 사용할 수 있다. 그러나 접촉 쌍 알고리즘을 사용한 접촉은 일반 접촉과 달리 사용되는 서피스가 여러 객체에 걸쳐있을 수 없으므로 일반 접촉보다 정의에 더 큰 노력이 필요할 수 있다. 이 예제는 일반 접촉 알고리즘을 사용하여 복잡한 형상이 쉽게 접촉을 정의할 수 있다는 것을 구체적으로 보여준다.
접촉 상호 작용 특성 Fric을 정의한다. Edit Contact Property 대화 상자에서 Mechanical → Tangential Behavior를 선택하여 마찰 공식으로 Penalty를 선택하고, 테이블에 마찰 계수 0.3을 지정한다. 다른 모든 것은 기본값을 사용한다.
Drop 단계에서 General contact (Explicit)인 All을 만든다. Edit Interaction 대화 상자에서 Abaqus/Explicit는 자동으로 Contact Domain의 기본 선택인 All * with self를 그대로 사용한다. 정의된 기본 이름이 없는 모든 것을 포함하는 서피스에 대한 자체 접촉을 지정한다. 이 방법은 Abaqus/Explicit에서 전체 모델에 대한 접촉을 정의하는 가장 간단한 방법이다. Global property assignment로 Fric을 선택하고 OK를 클릭한다.
바인딩 구속조건을 사용하여 칩을 기판에 부착한다. 회로 기판의 표면 Board를 정의하는 것으로 시작한다. 프롬프트 영역에서 Both sides를 선택하여 서피스가 양면이라는 것을 지정한다. 모델 트리에서 Constraints 컨테이너를 두 번 클릭하여 조인 구속 Top_Chip을 정의한다. Master 평면에서 Board를 선택하고 Slave 절점 영역에서 Top_Chip을 선택한다. 칩의 질량 효과만 필요하므로 Edit Constraint 대화 상자에서 Tie rotational DOFs if applicable을 선택하고, OK를 클릭한다. 이 구속조건을 나타내는 노란색 원이 모델에 표시된다. 마찬가지로 중간과 가장 낮은 위치에 있는 칩에 대해 결합 제약 Mid_Chip과 Bot_Chip을 만든다.
집중 질량을 각 칩에 지정한다. 이렇게 하려면 모델 트리의 Assembly 컨테이너 아래에 있는 Engineering Features를 확장한다. 표시된 목록에서 Inertia를 두 번 클릭한다. Create Inertia 대화 상자에서 Mass_Top_Chip 이름을 입력하고 Continue를 클릭한다. 세트 Top_Chip을 선택하고 0.005 kg의 질량을 지정한다. 이 작업은 나머지 두 칩에서도 반복한다.
바닥 기준점을 모든 방향으로 구속한다. 예를 들어 ENCASTRE 경계 조건을 사용한다.
회로 기판을 1 m 높이에서 떨어뜨리는 해석을 수행하려면 두 가지 방법을 사용할 수 있다. 회로 기판과 포장재를 바닥에서 높이 1 m 위치에 만들고 중력의 영향에서 운동을 Abaqus/Explicit로 계산할 수 있다. 그러나 이 방법은 해석의 ‘자유 낙하’ 부분이 완료되기 전에 많은 증분이 필요하므로 실용적이지 않다. 더 효율적인 방법으로 회로 기판과 포장재를 초기 배치에서 바닥 표면에 가깝게 만들어서 1 m 낙하에 해당하는 4.43 m/s의 초기 속도를 지정하는 방법이다. 초기 단계에서 규정된 필드를 생성하고 기판, 칩과 포장재에 V3 = -4.43 m/s의 초기 속도를 지정한다.
회로 기판에서 종 방향과 횡 방향을 따라 각각 10개의 요소를 Seed로 정의한다. 포장재의 가장자리에 다음 그림과 같이 Seed를 정의한다. 포장재의 요소망은 충돌하는 코너 부근이 너무 거칠어서 정확한 결과를 얻을 수 없다. 그러나 저비용으로 수행하는 예비 조사로 충분하다. 스윕 요소망 기술(Medial axis 알고리즘)을 사용하여 포장재와 기판을 각각 Abaqus/Explicit 요소 라이브러리의 C3D8R과 S4R 요소로 나눈다. 포장재 요소망에 강화 Hourglass 제어를 사용하여 Hourglass의 영향을 제어한다. 바닥에 1.0의 전체 Seed를 지정하고, 하나의 Abaqus/Explicit R3D4 요소로 요소망을 나눈다.
작업 Circuit을 작성하고 설명으로 Circuit board drop test를 입력한다. 이 해석은 배정도를 사용하여 해의 노이즈를 최소화한다. 작업 편집 대화 상자의 Precision 탭에서 Abaqus/Explicit의 정밀도로 Double-analysis only를 선택한다. 모델을 모델 데이터베이스 파일에 저장하고 해석 작업을 제출한다. 해석 진행 상황을 모니터링하고 모델링 오류가 감지되면 이를 수정하고 경고 메시지가 있으면 원인을 조사한다.
2) 후처리
Visualization 모듈을 시작하고 이 작업에서 생성된 Circuit.odb를 연다. 방향 정의에서 얻은 재료 방향은 Visualization 모듈에서 확인할 수 있다.
재료 방향을 표시하려면 다음과 같이 설정한다.
1. 먼저 뷰를 편리한 설정으로 변경한다. Views 툴바가 표시되지 않으면 기본 메뉴 막대에서 View → Toolbars → Views를 선택하여 표시한다. 뷰 툴바에서 X-Z 설정을 선택한다.
2. 메뉴에서 Plot → Material Orientation → On Deformed Shape를 선택한다. 해석이 끝나면 회로 기판의 재료 방향이 표시된다. 재료의 각 축 방향은 다른 색상으로 그려진다. 재료 1방향은 청색, 2방향은 황색, 3방향은 존재하는 경우 적색이다.
3. 초기 재료 방향을 표시하려면 Results → Step/Frame을 선택한다. 나타나는 Step/Frame 대화 상자에서 Increment 0을 선택한다. Apply를 클릭한다. 초기 재료 방향이 표시된다.
4. 해석이 끝나면 결과디스플레이를 되돌리려면 Step/Frame 대화 상자에서 마지막 증분을 선택하고 OK를 클릭한다.
충돌할 때 회로 기판과 발포 포장재의 움직임과 변형을 시각화하기 위해 변형의 시간 경과 애니메이션을 만든다.
시간 기록 애니메이션을 만들려면 다음과 같이 설정한다.
1. 해석이 끝나면 변형 형상을 표시한다.
2. 메뉴에서 Animate → Time History를 선택한다. 변형 모양의 애니메이션이 시작된다.
3. 메뉴 막대에서 View → Parallel을 선택하여 원근감을 끈다.
4. 애니메이션이 한 번 표시되면 일시 중지 아이콘을 클릭하여 애니메이션을 일시 중지한다.
5. 컨텍스트 바에서, 아이콘을 클릭하여 발포 포장재가 바닥에 충돌하는 모서리 부분의 절점을 선택한다. 애니메이션을 다시 시작하면 카메라가 선택한 절점과 함께 이동한다. 이 절점은 디스플레이를 확대해도 항상 애니메이션으로 표시된다.
◉ 카메라를 재설정하고 글로벌 좌표계로 되돌리려면 컨텍스트 막대에서 아이콘을 클릭한다.
낙하 시험의 변형 이력을 보면서, 발포 포장재가 언제 바닥과 접촉하는지 주목한다. 첫 번째 충돌은 분석 시작 후 4 ms 동안 발생했다. 두 번째 충돌은 약 8 ms와 15 ms 사이에 발생한다. 충돌 후 약 4 ms 후의 발포 포장재와 기판의 변형 상태는 다음 그림과 같다.
시간에 대한 다양한 에너지 그래프를 표시한다. 에너지 출력은 Abaqus/Explicit 해석이 적절한 응답을 예측하는지를 평가할 때 사용할 수 있다.
에너지의 시간 기록을 표시하려면 다음과 같이 설정한다.
1. 결과 트리에서 출력 데이터베이스 Circuit.odb의 History Output을 마우스 버튼 3으로 클릭한다. 표시된 메뉴에서 Filter를 선택한다.
2. 필터 필드에 *ALL*을 입력하여 이력 출력을 에너지 출력 변수로 필터링한다.
3. ALLAE 출력 변수를 선택하고 데이터를 Artificial Energy로 저장한다.
4. ALLIE 출력 변수를 선택하고 데이터를 Internal Energy로 저장한다.
5. ALLKE 출력 변수를 선택하고 데이터를 Kinetic Energy로 저장한다.
6. ALLPD 출력 변수를 선택하고 데이터를 Plastic Dissipation으로 저장한다.
7. ALLSE 출력 변수를 선택하고 데이터를 Strain Energy로 저장한다.
8. 결과 트리에서 XYData 컨테이너를 확장한다.
9. 다섯 개의 커브를 모두 선택한다. 마우스 버튼 3을 클릭하고 표시된 메뉴에서 Plot을 선택하여 X-Y 표시를 표시한다. 그다음 곡선의 선 스타일을 변경하여 표시를 표시하는 방법을 사용자 정의한다.
10. Curve Options 대화 상자를 연다.
11. 이 대화 상자에서 뷰포트에 표시되는 곡선에 각각 다른 선의 스타일과 두께를 적용한다.
그다음 범례를 표시 내부에 표시되도록 재배치한다.
12. 범례를 두 번 클릭하여 Chart Legend Options 대화 상자를 엽니다.
13. 이 대화 상자에서 Area 탭으로 전환하고 Insert를 켠다.
14. 뷰포트에서 범례를 표시로 드래그한다. 그다음 X축 레이블의 형식을 변경한다.
15. 뷰포트에서 X축을 두 번 클릭하여 Axis Options 대화 상자의 X Axis 옵션을 표시한다.
16. 이 대화 상자에서 Axes 탭으로 전환하고 X축에 Engineering의 레이블 형식을 선택한다. 에너지의 시간 이력은 다음 그림과 같이 표시한다.
먼저 운동 에너지의 시간 이력을 생각해 보자. 해석을 시작할 때 각 구성 요소는 자유 낙하 상태이며, 운동 에너지는 크다. 첫 번째 충돌에서 발포 포장재가 변형되어 운동 에너지가 감소한다. 그다음이 구성 요소는 튀어나오면서 충돌 코너를 중심으로 회전하고 약 8 ms에서 발포 포장재의 반대쪽이 바닥에 충돌하여 운동 에너지가 더욱 감소한다.
충돌할 때 발포 포장재가 변형되면 발포 포장재와 회로 기판이 운동 에너지에서 내부 에너지로 변환된다. 위 그림에서 내부 에너지가 운동 에너지의 감소에 따라 증가하는지 확인할 수 있다. 실제로, 내부 에너지는 탄성 에너지와 분산된 소성 에너지로 구성되며, 이들은 위 그림에 도시되었다. 탄성 에너지는 최대치로 상승한 후 탄성 변형이 회복되면서 감소한다. 한편, 분산된 소성 에너지는 포장재의 영구 변형에 따라 계속 증가하고 있다.
또 다른 중요한 에너지 출력 변수는 인공 에너지이다. 이 분석에서 이 에너지는 내부 에너지에 비해 상당한 비율(약 15%)이다. 이미 언급했듯이 인공 에너지를 전체 내부 에너지에 비해 작은 비율로 줄일 수 있으면 솔루션의 정확도가 향상된다.
이 예제에서 인공적인 변형률 에너지를 크게 하는 원인은 무엇인가?
하나의 절점에서 접촉(이 예제에서 코너 충돌에 해당)은 거친 요소망, 특히, Hourglass 모드가 발생할 수 있다. 인공적인 변형률 에너지를 줄이기 위한 일반적인 지침은 요소망을 미세하게 만드는 방법과 충돌하는 모서리를 반올림하는 두 가지 방법이다. 그러나 이 예제에서는 요소망을 개선하면 해가 개선된다는 것을 알고 있으므로 원래 요소망으로 작업을 계속한다.
다음 해석 결과는 회로 기판에 부착된 칩의 가속도이다. 충돌할 때 가속도가 너무 크면 칩이 손상될 수 있다. 따라서 발포 포장재의 성능을 평가하려면 이런 칩의 가속 이력을 표시해야 한다. 이 가속도는 3방향으로 최대가 될 것으로 예상되므로 변수 A3를 표시한다.
가속도의 시간 기록을 표시하려면 다음과 같이 설정한다.
1. 결과 트리에서 *A3*를 사용하여 History Output 컨테이너를 좁히고 세트 Top_Chip, Mid_Chip과 Bot_Chip에서 절점의 가속도 A3를 선택하고 세 개의 X-Y 데이터 객체를 표시한다.
X-Y 표시가 뷰포트에 표시된다. 이전과 마찬가지로 표시 방법을 사용자 정의하여 다음 그림과 같이 표시한다.
그다음 가장 낮은 위치에 있는 칩에 대해 출력된 가속도 데이터의 타당성을 평가한다. 이를 위해 칩의 가속도 데이터를 적분하여 속도와 변위를 계산하고 출력 속도와 변위 데이터를 비교한다.
가장 낮은 위치에 있는 칩의 가속도 이력을 적분하려면 다음과 같이 설정한다.
1. 결과 트리에서 *BOTCHIP*를 사용하여 History Output 컨테이너를 좁히고 세트 Bot_Chip에서 절점의 가속도 A3를 선택하고 데이터를 A3로 저장한다.
2. 결과 트리에서 XYData를 두 번 클릭한다. 그다음 Create XY Data 대화 상자에서 Operate on XY data를 선택한다. Continue를 클릭한다.
3. Operate on XY data 대화 상자에서 가속도 A3를 적분하여 속도를 계산하고 초기 속도 값 4.43 m/s를 줄인다. 대화 상자 상단에 산술식이 다음과 같이 표시된다.
integrate( "A3" ) - 4.43
4. Plot Expression을 클릭하여 계산된 속도의 곡선을 표시한다.
5. 결과 트리에서 세트 Bot_Chip의 절점에 대한 속도 V3의 기록 출력을 마우스 버튼 3으로 클릭하고, 표시된 메뉴에서 Add to Plot을 선택한다. X-Y 표시가 뷰포트에 표시된다. 이전과 마찬가지로 표시 방법을 사용자 정의하여 다음 그림과 같이 표시한다. 가속도 데이터를 적분하여 얻은 속도 곡선은 이 그림에 표시된 속도 곡선과 다를 수 있다. 이런 원인은 나중에 설명한다.
6. Operate on XY Data 대화 상자에서 가속도 A3를 다시 적분하여 칩의 변위를 계산한다. 대화 상자 상단에 산술식이 다음과 같이 표시된다.
integrate( integrate( "A3" ) - 4.43 )
7. Plot Expression을 클릭하여 계산된 변위 곡선을 표시한다. Y-값 종류가 길이(Length)라는 것을 유의한다. 계산된 변위를 해석 중에 기록된 변위 출력과 같은 Y축으로 표시하기 위해 X-Y 데이터를 저장하고 Y-값 종류를 변위로 변경해야 한다.
8. Save As를 클릭하여 계산된 변위 곡선을 U3-from-A3로 저장한다.
9. 결과 트리의 XYData 컨테이너에서 U3-from-A3를 마우스 버튼 3으로 클릭하고 표시된 메뉴에서 Edit을 선택한다.
10. Edit XY Data 대화 상자에서 Y값 종류로 Displacement를 선택한다.
11. 결과 트리에서 U3-from-A3를 두 번 클릭하여 계산된 변위의 곡선을 변위의 Y값 종류로 다시 표시한다.
12. 결과 트리에서 세트 Bot_Chip의 절점에 대한 변위 U3의 이력 출력을 마우스 버튼 3으로 클릭하고 표시된 메뉴에서 Add to Plot을 선택한다.
X–Y 표시는 뷰포트에 표시된다. 이전과 마찬가지로 표시 방법을 사용자 정의하여 다음 그림과 같은 표시를 표시한다. 여기에서도 실제로 가속도 데이터를 통합한다. 얻은 곡선은 이 그림에 표시된 곡선과 다를 수 있다. 그 원인은 나중에 설명한다.
왜 가속도 데이터를 적분하여 계산된 속도와 변위 곡선이 분석 중에 출력되는 속도와 변위와 다른가?
이 예제의 가속도 데이터는 앨리어싱이라는 현상으로 인해 손상되었다. 앨리어싱이란 (Abaqus 분석 결과와 같은) 신호가 시간 영역의 일련의 이산화 점에서 샘플링할 때 저장된 데이터점의 수가 신호를 정확하게 표현하기에 충분하지 않은 경우이다. 발생하는 데이터 손상의 한 형태이다. 앨리어싱의 현상은 디지털 신호 처리(DSP) 방법을 사용하여 해결할 수 있다. 이 방법은 Nyquist의 샘플링 정리(Shannon의 샘플링 정리라고도 함)를 기반으로 한다. 이 샘플링 정리에서는 신호를 최대 주파수의 두 배보다 높은 속도로 샘플링해야 한다. 즉, 주어진 샘플링 레이트로 표현할 수 있는 주파수 성분은 그 비율의 절반(Nyquist 주파수)까지이다. 샘플링 속도의 Nyquist 주파수보다 높은 주파수에서 진동의 진폭이 큰 신호를 샘플링(저장)하면 앨리어싱으로 신호가 크게 왜곡될 수 있다. 이 예제에서는 칩의 가속도를 0.07 ms마다 샘플링했다. 이것은 14.3 kHz의 샘플링 속도이다(샘플링 속도는 샘플 크기의 역수). 칩의 가속도 응답에는 7.2 kHz(샘플링 속도의 절반)보다 높은 주파수 성분이 포함되어 있어서 기록된 데이터는 앨리어싱된다.
앨리어싱에 의한 데이터 왜곡을 잘 이해하기 위해 다음 그림과 같이 1 kHz의 사인파를 다양한 샘플링 속도로 샘플링한 경우를 고려한다. 샘플링 정리에 따르면 별칭 왜곡을 피하려고 이 신호는 2 kHz보다 높은 속도로 샘플링해야 한다. 여기서는 샘플링 속도가 2 kHz보다 높거나 낮을 때의 현상을 평가한다.
필요한 속도 2 kHz보다 낮은 샘플링 속도 1.1 kHz로 기록된 데이터를 고려한다. 원래의 1 kHz 사인파와 완벽히 다르므로 결과 곡선에는 별칭 변형이 발생한다.
그다음 필요한 속도 2 kHz보다 높은 샘플링 속도 3 kHz로 기록된 데이터를 고려한다. 원래 신호의 주파수 성분은 앨리어싱 되지 않고 표현된다. 그러나 3 kHz의 샘플링 속도는 샘플링되는 신호의 피크 값이 정확하게 표현되도록 보장하기에 아주 높은 주파수가 아니다. 기록된 로컬 피크 값의 95% 정확도를 얻으려면 샘플링 속도를 신호 주파수의 10배 이상으로 설정해야 한다.
앞서 언급한 두 가지 앨리어싱의 예(앨리어싱 된 칩의 가속도와 사인파)에서는 앨리어싱 된 데이터만 앨리어싱이 발생했는지를 결정하기가 어렵다. 또한 별칭 데이터만 원래 신호를 고유하게 재구성할 수 없다. 따라서 특히 앨리어싱이 발생할 가능성이 큰 경우 분석 결과가 앨리어싱되지 않도록 주의해야 한다.
앨리어싱의 발생 가능성은 출력 빈도, 출력 변수, 모델 특성 등과 같은 여러 요소에 따라 다릅니다. 전술 한 바와 같이, 샘플링 레이트의 절반(Nyquist 주파수)보다 높은 주파수에서 진동의 진폭이 큰 경우, 앨리어싱에 의해 신호가 왜곡될 수 있다. 진폭이 큰 고주파 성분을 포함할 가능성이 큰 출력 변수는 가속도와 반력의 두 가지이다. 즉, 이런 변수는 가장 앨리어싱이 발생하기 쉽다. 한편, 변위는 그 특성으로부터 주파수 성분이 낮아서 앨리어싱이 발생하기 어렵다. 응력과 변형과 같은 다른 결과 변수에서 앨리어싱의 발생 가능성은 이 두 가지 사이에 있다. 모델에 솔루션의 고주파 응답을 줄이는 특성이 있는 경우 분석에서 앨리어싱의 발생 가능성도 줄어든다. 예를 들어, 탄성이 지배적인 충돌 문제는 에너지를 흡수하는 포장재를 고려한 회로 기판의 낙하 시험보다 앨리어싱이 발생하기 쉽다.
분석 결과에서 앨리어싱이 문제가 되지 않도록 하는 확실한 방법은 각 증가에 대해 출력을 요청하는 것이다. 이 경우 출력 빈도는 안정 시간 증분 때문에 결정되며 안정 시간 증분은 모델의 예측된 최대 주파수 응답을 기반으로 한다. 그러나 증분별 출력 요청은 출력 파일이 매우 커지므로 가끔 실용적이지 않다. 또한 일반적으로 증분별 출력에는 불필요한 데이터가 많이 포함된다. 즉, 실제로 주목하고 있는 현상이 저주파 구조 응답인 경우, 고주파 해의 진동은 불필요하다. 앨리어싱의 발생을 회피하는 또 다른 방법으로서, 출력을 낮은 빈도로 요구해, Abaqus/Explicit의 실시간 필터링 기능을 사용해, ODB 파일에 데이터를 입력하기 전에 해석 결과로부터 고주파 성분을 제거하는 방법이 있다. 이 기술에서는 사용되는 디스크 공간이 증분 당 출력을 요청하는 방법보다 적다. 그러나 (디지털 신호 처리와 관련된 앨리어싱 또는 기타 변형을 피하려고) 출력 빈도와 필터를 사용자가 적절하게 선택해야 한다.
Abaqus/Explicit는 필드 데이터와 이력 데이터 모두에 대해 필터링 기능을 제공한다. 여기서는 이력 데이터 필터링에 관해서만 설명한다.
3) 출력 필터링을 지정한 분석 실행
이 절에서는 회로 기판의 낙하 시험 해석의 이력 출력 요청에 실시간 필터를 추가한다. Abaqus/Explicit는 지정된 기준에 따라 사용자 정의 출력 필터(Butterworth, Chebyshev Type I, Chebyshev Type II)를 만들 수도 있지만 이 예제는 내장된 anti-aliasing 필터를 사용한다. 내장된 anti-aliasing 필터는 출력 요청에 지정된 출력 빈도로 기록된 분석 결과가 가능한 한 앨리어싱되지 않도록 만들어진다. 이를 위해 Abaqus/Explicit는 샘플링 속도의 1/6로 설정된 차단 주파수를 갖는 저역 통과의 2차 Butterworth 필터를 내부적으로 적용한다.
Abaqus는 절점의 이력 출력을 출력 데이터베이스에 내보낼 때 각 데이터 객체에 기록된 출력 변수, 사용된 필터(사용된 경우), 부품 Instance 이름, 절점 번호와 절점 세트를 나타내는 이름을 제공한다. 여기서는 Bot_Chip 세트의 절점에 대해 출력 샘플링 속도만 다른 여러 출력 요청을 만든다. 이 비율은 이력 출력 이름에는 포함되지 않는다. 이런 출력 요청을 쉽게 구별하기 위해 가장 낮은 위치에 있는 칩의 참조 절점에 대해 두 개의 새로운 세트를 만든다. 새 세트의 한 이름은 Bot_Chip-all이고 다른 이름은 Bot_Chip-largeInc이다.
그다음 가장 낮은 위치의 칩에 대한 이력 출력 요청을 세 번 복사한다. 첫 번째 복사본을 편집하여 Antialiasing 필터를 활성화한다. 이 요청은 계속해서 세트 Bot_Chip을 사용하여 7×10⁻⁵초마다 데이터를 기록한다. 두 번째 복사본을 편집하여 데이터를 증가시키면서 이 출력 요청을 세트 Bot_Chip-all에 적용한다. 세 번째 복사본을 편집하여 7×10⁻⁴ 초마다 데이터를 기록하고 이 출력 요청을 세트 Bot_Chip-largeInc에 적용하여 Antialiasing 필터를 활성화한다. 작업이 끝날 때 가장 낮은 위치에 있는 칩에 대해 4개의 이력 출력 요청이 가능하다(원래 이력 출력 요청과 여기에 추가된 3개의 이력 출력 요청).
세트 Bot_Board의 왜곡에 대한 출력 요청을 편집하여 Antialiasing 필터를 활성화한다.
여기에서 결과를 설명하지 않지만, 절점 세트 Mid_Chip과 Top_Chip의 변위, 속도와 가속도에 대한 이력 출력 요청에 anti-aliasing 필터를 추가할 수도 있다.
모델 데이터베이스를 저장하고 해석 작업을 제출한다.
가장 낮은 위치에 있는 칩의 필터링된 가속도 평가 분석이 완료되면 임베디드 anti-aliasing 필터를 사용하여 0.07 ms마다 기록된 가장 낮은 위치의 칩의 가속도 이력 출력에 대한 유효성 확인한다. 필터링된 가속도 데이터(세트 Bot_Chip의 A3_ANTIALIASING)를 저장하고 적분하고, 그 결과를 이전에 필터링되지 않은 결과를 비교한 것과 마찬가지로, 기록된 속도와 변위의 데이터와 비교함으로써, 유효성을 확인한다. 이번에는 필터링된 가속도를 적분하여 계산된 속도와 변위 곡선이 분석 중에 출력 데이터베이스에 기록된 속도와 변위 값과 거의 같다. 또한 임베디드 anti-aliasing 필터의 사용 여부와 관계없이 속도와 변위의 결과는 같다. 이것은 절점 속도 곡선과 절점 변위 곡선의 고주파 성분이 샘플링 속도의 절반보다 훨씬 낮기 때문이다. 즉, 필터링 없이 데이터를 기록할 때 앨리어싱이 발생하지 않았으며 내장된 anti-aliasing 필터를 적용할 때 삭제할 고주파 응답이 없으므로 효과가 없었다.
그다음 각 증분에 대해 기록된 가속도 A3의 이력 출력을 0.07 ms마다 기록된 가속도 A3의 두 개의 이력 곡선과 비교한다. 다른 결과와 혼동하지 않으려면 먼저 증분별로 기록된 데이터를 표시한다.
가속도의 시간 기록을 표시하려면 다음과 같이 설정한다.
1. 결과 트리에서 *A3*BOTCHIP*를 사용하여 History Output 컨테이너를 좁히고 절점 세트 Bot_Chip-all에 대한 가속도 A3의 이력 출력을 두 번 클릭한다.
2. 절점 세트 Bot_Chip에 대한 두 개의 가속도 A3의 이력 출력 객체(내장된 anti-aliasing 필터로 필터링된 것과 필터링 없는 것)를 [Ctrl] + 클릭을 사용하여 선택하고 마우스 버튼 3을 클릭한다. 그다음 표시된 메뉴에서 Add to Plot를 선택한다.
X–Y 표시가 뷰포트에 표시된다. 결과의 처음 1/3만 확대하여 표시하고, 표시 방법을 사용자 정의하고, 다음 그림과 같은 표시를 표시한다.
먼저 각 증분에 대해 기록된 가속도 기록을 고려한다. 이 곡선에는 많은 데이터가 포함되어 있으며 구조적으로 중요한 낮은 주파수의 가속도 성분을 불명료하게 만들 정도로 진폭이 큰 고주파 해의 진동 등이 포함되어 있다. 출력을 증가시키면 출력 시간 증분은 안정 시간 증분과 같다. 안정 시간 증분은 모델에서 예측되는 가장 높은 주파수 응답을 기반으로 한다(안정성을 보장하기 위해). 구조적으로 중요한 주파수는 일반적으로 모델의 최고 주파수보다 2-4자리 작다. 이 예에서 안정 시간 증분은 8.4×10⁻⁴ ms에서 8.8×10⁻⁴ ms의 범위에 있다(상태 파일 Circuit.sta 참조). 이것은 약 1 MHz의 샘플링 속도에 해당한다. 이 설명의 샘플링 속도는 값이 안전하지 않은 경우에도 분수가 잘린다. 샘플링 정리를 통해 주어진 샘플링 속도로 표현할 수 있는 최고 주파수는 그 비율의 절반이다. 따라서 이 모델의 최고 주파수는 약 500 kHz이다. 일반적인 구조 주파수는 약 2~3 kHz이다(모델의 최대 주파수보다 2자리 이상 낮음). 증분별로 기록된 출력은 3~500 kHz 범위에 원하지 않는 해의 진동이 많이 포함되어 있지만 올바른(앨리어싱되지 않은) 데이터가 되도록 보장된다. 이 데이터는 필요한 경우 사후 처리로 필터링할 수도 있다.
그다음 필터링 없이 0.07 ms마다 기록된 데이터를 고려한다. 앞에서 언급했듯이 이것은 앨리어싱으로 손상된 곡선이다. 이 곡선은 0.07 ms의 각 간격 직후의 가속도 값이 그대로 포함되어 있으므로 포인트마다 값이 크게 변한다. 고주파 진동 변수의 특성으로 이 앨리어싱 결과는 다른 미세한 솔루션의 변동(예: 컴퓨터 플랫폼 간의 차이로 인한 변동)에 매우 민감하다. 따라서 실제로 0.07 ms마다 기록 한 결과는 위 그림에 표시된 것과 크게 다를 수 있다. 마찬가지로 앨리어싱된 가속도 데이터를 통합하여 생성된 속도와 변위 곡선도 솔루션 진동의 미세한 차이에 매우 민감하다.
0.07 ms마다 요청된 출력에 내장된 anti-aliasing 필터를 적용하면 14.3 kHz의 샘플링 속도로 표현할 수 없는 고주파 성분이 제거된 다음 결과가 출력 데이터베이스에 기록된다. 이를 위해 Abaqus는 로우패스 2차 Butterworth 필터를 내부적으로 정의한다. 저역 통과 필터는 신호에 대해 지정된 컷오프 주파수보다 높은 주파수 성분을 감쇠시킨다. 이상적인 저역 통과 필터는 컷오프 주파수보다 높은 모든 주파수를 완벽히 제거하고 컷오프 주파수보다 낮은 주파수 성분에는 영향을 미치지 않는다. 현실적으로, 컷오프 주파수 전후에 부분적으로 감쇠되는 주파수의 전이 대역이 존재한다. 이를 보정하기 위해 임베디드 anti-aliasing 필터는 샘플링 속도의 1/6이 되는 컷오프 주파수(샘플링 속도의 1/2인 Nyquist 주파수보다 낮은 값)를 사용한다. 대부분 (이 예도 포함), 출력 데이터베이스에 데이터를 쓰고 st 주파수보다 높은 주파수 성분을 생성하기 전에 Nyquist를 제거하기 위해 이 차단 주파수로 충분하다.
Abaqus/Explicit는 지정된 출력 시간 간격이 내부 anti-aliasing 필터에 적절한 차단 주파수를 제공하는지 확인하지 않는다. 예를 들어, Abaqus는 신호 노이즈만 제거되는지를 확인하지 않는다. 가속도 데이터가 0.07 ms마다 기록되면 내부 anti-aliasing 필터는 2.4 kHz의 컷오프 주파수로 적용된다. 이 컷오프 주파수는 모델에 대해 물리적으로 의미 있는 최대 주파수로 이전에 얻은 값과 거의 같다(안정 시간 증분으로 표현할 수 있는 최대 주파수보다 2자리 이상 작은 값). 0.07 ms의 출력 간격은 물리적으로 의미 있는 주파수 성분이 필터링되지 않도록 이 예에서 의도적으로 선택된다. 그다음 과도하게 큰 샘플링 간격으로 anti-aliasing 필터를 적용한 결과를 조사한다.
필터링된 가속도의 시간 기록을 표시하려면 다음을 설정한다.
1. 결과 트리에서 절점 세트 Bot_Chip-all에 대한 가속도 A3의 기록 출력을 두 번 클릭한다.
2. 가장 낮은 위치의 칩에 대한 필터링된 가속도 A3_ANTIALIASING의 두 개의 이력 출력 객체를 선택하고 마우스 버튼 3을 클릭하고 표시된 메뉴에서 Add to Plot을 선택한다.
X-Y 표시가 뷰포트에 표시된다. 표시를 줄이고 표시 방법을 사용자 정의하여 다음 그림과 같이 표시한다.
위 그림은 너무 큰 출력 시간 간격으로 내장된 anti-aliasing 필터를 사용할 때 발생할 수 있는 몇 가지 문제를 명확하게 보여준다. 첫째, 큰 시간 간격으로 가속도가 기록되면 가속도 출력의 많은 진동이 제거된다. 이 동적 충돌 문제에서 제거된 주파수 성분의 대부분은 물리적으로 의미가 있을 가능성이 크다. 이전에 구조 응답의 주파수가 2~3 kHz 정도의 크기가 될 것으로 추정했다. 그러나 샘플링 간격이 0.7 ms인 경우 필터링은 0.24 kHz의 낮은 차단 주파수에서 수행된다 (0.7 ms의 샘플링 간격은 1.43 kHz의 샘플링 주파수에 해당한다. 이 값의 6분의 1은 0.24 kHz의 차단 주파수이다.) 0.7 ms마다 기록된 분석 결과는 의미 있는 주파수 성분을 완벽히 표현할 수 없더라도 낮은 주파수 성분의 가속도 데이터를 앨리어싱으로 인한 왜곡 없이 표현한다. 필터링은 피크 값의 추정치를 감소시킨다. 솔루션 노이즈만 제거될 때는 문제가 없지만, 물리적으로 의미 있는 솔루션 변동까지 제거되면 잘못된 결과가 발생할 수 있다.
주목해야 할 또 다른 문제는 0.7 ms마다 기록된 가속도의 결과에 시간 지연이 발생한다는 것이다. 이 시간 지연(또는 위상 시프트)은 모든 실시간 필터에 영향을 준다. 필터는 출력을 생성하기 위해 어느 정도의 입력이 필요하므로 필터링된 분석 결과에는 약간의 시간 지연이 발생한다. 모든 실시간 필터에 약간의 시간 지연이 도입된다. 필터의 컷오프 주파수가 낮을수록 시간 지연이 커진다. 필터는 더 낮은 주파수 성분을 제거하기 위해 더 긴 시간 폭에 걸쳐 입력이 필요하다. 필터의 차수를 늘리면 (내장된 2차 anti-aliasing 필터를 사용하지 않고 사용자 정의 필터를 만들 때) 출력 시간 지연이 증가한다.
실시간 필터링 기능은 신중하게 사용된다. 이 예에서 비교에 적합한 데이터가 없으면 과도하게 필터링된 데이터와 관련된 문제를 식별할 수 없었다. 일반적으로 Abaqus/Explicit는 최소한의 필터링을 사용하여 합리적인 수의 시간 지점에서 기록된 솔루션이 풍부하고 별칭이 없는 데이터를 출력 데이터베이스에 출력하는 것이 좋다. 추가 필터링이 필요한 경우 Abaqus/CAE에서 후처리 작업으로 수행할 수 있다.
이 절에서는 Abaqus/CAE Visualization 모듈을 사용하여 출력 데이터베이스에 기록된 가속도 이력 데이터를 필터링한다. Visualization 모듈에서 후처리 작업으로 필터링하면 Abaqus/Explicit에서 사용할 수 있는 실시간 필터링에 몇 가지 이점이 있다. Visualization 모듈을 사용하면 X-Y 데이터를 신속하게 필터링하고 결과를 표시할 수 있다. 필터링된 결과를 원래 결과와 비교하여 필터가 원하는 효과를 얻었는지 쉽게 확인할 수 있다. 이 기술을 사용하여 적절한 필터 변수를 반복적으로 신속하게 찾을 수 있다. 또한 Visualization 모듈의 필터는 분석 중에 적용되는 필터링으로는 피할 수 없는 시간 지연이 발생하지 않는다. 그러나 후처리 필터링에서는 출력이 적은 분석의 이력 출력을 보정할 수 없다. 데이터가 앨리어싱되거나 물리적으로 의미 있는 주파수가 제거되면 손실된 구성 요소를 후처리 작업으로 복원할 수 없다.
Visualization 모듈에서 필터링과 Abaqus/Explicit에서 필터링의 차이를 나타내기 위해서, 가장 낮은 위치에 있는 칩의 가속도를 Visualization 모듈로 필터링하고, 그 결과를, Abaqus/Explicit가 출력 데이터베이스에 써낸 필터링 데이터와 비교한다.
가속도 기록을 필터링하려면 다음과 같이 설정한다.
1. 결과 트리에서 절점 세트 Bot_Chip-all에 대한 가속도 A3의 기록 출력을 선택하고 A3-all로 데이터를 저장한다.
2. 결과 트리에서 XYData를 두 번 클릭한다. 그다음 Create XY Data 대화 상자에서 Operate on XY data를 선택한다. Continue를 클릭한다.
3. Operate on XY Data 대화 상자에서 출력 간격이 0.7 ms일 때 Abaqus/Explicit의 내장 anti-aliasing 필터에 적용되는 것과 동등한 필터 옵션으로 A3-all 필터링 예이다. 앞에서 언급했듯이 내장된 anti-aliasing 필터는 컷오프 주파수가 출력 샘플링 속도의 1/6이 되는 2차 Butterworth 필터이다. 따라서 대화 상자 상단의 산술식은 다음과 같다.
butterworthFilter( xyData="A3-all", cutoffFrequency=1/(6*0.0007) )
4. Plot Expression을 클릭하여 필터링된 가속도 곡선을 표시한다.
5. 결과 트리에서 절점 세트 Bot_Chip-largeInc에 대한 필터링된 가속도 A3_ANTIALIASING의 기록 출력을 마우스 버튼 3으로 클릭하고 표시된 메뉴에서 Add to Plot을 선택한다. 필요에 따라 절점 세트 Bot_Chip에 필터링된 가속도 기록을 추가할 수도 있다. X-Y 표시가 뷰포트에 표시된다. 이전과 마찬가지로 표시 방법을 사용자 정의하고 다음 그림과 같이 표시한다.
위 그림에서 분석을 수행하는 동안 필터링할 때 발생하는 시간 지연은 Abaqus/CAE Visualization 모듈의 후처리 필터에서 발생하지 않음을 보여준다. 이것은 Visualization 모듈의 필터가 양방향성을 갖기 때문이다. 즉, 이 필터링은 먼저 전진 방향 경로(일부 시간 지연이 발생함)가 적용된 다음 후퇴 방향 경로(시간 지연이 제거됨)가 적용된다. Visualization 모듈의 양방향 필터링의 결과로 필터링이 두 번 적용되어 단일 경로 필터에서 신호 감쇠에 추가 신호 감쇠를 제공한다. 결과적으로 Visualization 모듈로 필터링된 가속 곡선의 국부적 인 피크는 Abaqus/Explicit로 필터링된 곡선보다 약간 작다.
Visualization 모듈의 필터링 기능에 대한 이해를 높이기 위해 Operate on XY Data 대화 상자로 돌아가 가속도 데이터를 다른 필터 옵션으로 필터링한다.
예를 들어 다른 컷오프 주파수를 사용해보자.
시간 증분 크기가 0.07인 내장된 anti-aliasing 필터에 대해 2.4 kHz 컷오프 주파수가 적절한지 확인할 수 있습니까? 컷오프 주파수를 6 kHz, 7 kHz, 10 kHz로 늘리면, 결과에 유의한 차이가 발생합니까?
컷오프 주파수를 어느 정도 늘려도 결과는 거의 영향을 받지 않는다. 이것은 2.4 kHz의 컷오프 주파수로 필터링할 때 물리적으로 의미 있는 주파수 성분을 놓칠 가능성이 거의 없음을 의미한다.
Butterworth 필터와 Chebyshev Type I 필터로 가속도 데이터를 필터링한 결과를 비교한다. Chebyshev 필터에는 리플 계수가 필요하다. 이 변수는 필터 응답을 개선하는 데 사용할 수 있는 진동을 허용하는 정도를 지정한다. Chebyshev Type I 필터의 경우 0.071의 리플 계수는 최대 0.5%의 리플을 허용하는 거의 평평한 통과 대역이다.
컷오프 주파수가 5kHz이면 필터 간에 큰 차이는 보이지 않지만 컷오프 주파수가 2kHz이면 어떨까요? Chebyshev Type I 필터의 차수를 늘렸을 때 어떻게 됩니까?
자신의 분석 결과를 다음 그림에 표시된 분석 결과와 비교한다.
⊙ Abaqus/CAE의 기본 필터는 2차이다. 고차 필터를 정의하는 경우 butterworthFilter 연산자와 chebyshev1Filter 연산자에서 filterOrder 변수를 사용할 수 있다. 예를 들어, Operate on XY Data 대화 상자에서 다음 산술 방정식을 사용하여 2kHz 컷오프 주파수와 0.017 리플 계수를 사용하여 6차 ChebyshevType I 필터로 A3-all을 필터링한다.
chebyshev1Filter( xyData="A3-all", cutoffFrequency=2000,
rippleFactor= 0.017, filterOrder=6)
리플 계수가 0.071인 2차 Chebyshev Type I 필터는 비교적 약한 필터이다. 따라서 2kHz의 컷오프 주파수보다 높은 주파수 성분이 다소 제거되지 않고 남는다. 필터의 차수가 늘어나면, 필터의 응답은 Butterworth 필터에 가까운 결과를 얻을 수 있도록 개선된다.
회로 기판 칩 주위의 변형은 발포 포장재의 유효성 평가에 사용할 수 있는 또 다른 분석 결과이다. 칩 아래의 변형이 한계를 초과하면 칩을 기판에 고정하는 솔더가 파괴된다. 모든 방향에서 피크 왜곡을 확인한다. 이를 위해 최대와 최소의 주 로그 왜곡에 주목한다. 주요 변형은 비선형 연산자에서 얻은 많은 Abaqus 결과 중 하나이다. 이 예에서는 비선형 함수를 사용하여 개별 변형 성분에서 주변형을 계산한다. 비선형 연산자에서 파생된 다른 일반적인 결과는 주응력, Mises 응력, 등가 소성 변형률 등을 포함한다. 비선형 연산자는 (선형 연산자와 달리) 원래 결과의 주파수를 변경할 수 있으므로 비선형 연산자에서 파생된 결과를 필터링할 때는 주의해야 한다. 이 결과를 필터링하면 원하지 않는 결과가 발생할 수 있다. 예를 들어, 비선형 연산자를 적용하여 도입된 주파수 성분의 일부를 제거하면 필터링된 결과는 파생량을 왜곡시킨다. 일반적으로 비선형 연산자에서 파생된 양을 필터링하지 않거나 비선형 연산자를 사용하여 파생량을 계산하기 전에 원래 물리량을 필터링한다.
이 분석의 변형 이력 출력은 임베디드 anti-aliasing 필터를 사용하여 0.07ms마다 기록되었다.
anti-aliasing 필터가 메인 변형률의 결과를 왜곡하지 않는지 확인하기 위해 필터링된 변형률 성분을 사용하여 메인 로그 변형률을 계산하고 그 결과를 필터링된 메인 로그 변형률과 비교한다.
주 로그 왜곡을 계산하려면 다음과 같이 설정한다.
1. 가장 낮은 위치에 있는 칩 근처에 있는 세트 Bot_Board 내의 요소를 식별하기 위해(ODB 표시 옵션을 사용하여 질량 요소 표시), 요소 번호를 표시하여 회로 기판의 원형을 표시한다.
2. 결과 트리에서 *LE*Element #*를 사용하여 History Output을 필터링한다. 여기서 #은 가장 낮은 위치의 칩 근처에 있는 Bot_Board 세트의 요소 중 하나를 나타내는 번호이다. 요소의 SPOS 평면에서 로그 변형률 구성 요소 LE11을 선택하고 데이터를 LE11로 저장한다.
3. 마찬가지로, 같은 요소의 LE12과 LE22의 변형 성분도 LE12과 LE22로 저장한다.
4. 결과 트리에서 XYData를 두 번 클릭한다. 그다음 Create XY Data 대화 상자에서 Operate on XY data를 선택한다. Continue를 클릭한다.
5. Operate on XY data 대화 상자에서 저장된 로그 변형률 구성 요소를 사용하여 최대 주 로그 변형률을 계산한다. 대화 상자 상단에 산술식이 다음과 같이 표시된다.
(("LE11"+"LE22")/2) + sqrt( power(("LE11"-"LE22")/2,2) + power("LE12"/2,2) )
6. Save As를 클릭하여 계산된 최대 주 로그 왜곡을 LEP-Max로 저장한다.
7. Operate on XY Data 대화 상자에서 산술식을 편집하여 최소 주 로그 왜곡을 계산한다. 수정된 산술식은 다음과 같이 표시된다.
(("LE11"+"LE22")/2) - sqrt( power(("LE11"-"LE22")/2,2) + power("LE12"/2,2) )
8. Save As를 클릭하여 계산된 최소 주 로그 왜곡을 LEP-Min으로 저장한다. 계산된 주 로그 변형률을 분석 중에 기록된 변형률과 같은 Y축으로 표시하기 위해 Y값 종류를 변형률로 변경한다.
9. 결과 트리의 XYData 컨테이너에서 LEP-Max를 마우스 버튼 3으로 클릭하고 표시된 메뉴에서 Edit를 선택한다.
10. Edit XY Data 대화 상자에서 Y값 종류로 Strain을 선택한다.
11. 마찬가지로 LEP-Min을 편집하고 Y값 종류로 Strain을 선택한다.
12. 결과 트리를 사용하여 LEP-Man과 LEP-Min을 세트 Bot_Board의 같은 요소에 대한 분석 중에 기록된 주요 변형(LEP1과 LEP2)과 함께 표시한다.
13. 이전과 마찬가지로 표시 방법을 사용자 정의하여 다음 그림과 같이 표시한다. 실제 표시는 자신이 선택한 요소에 따라 다르다.
위 그림에서 분석 중에 필터링되고 기록된 주 로그 왜곡 곡선은 필터링된 변형 성분에서 계산된 주요 로그 변형 곡선과 거의 일치한다는 것을 알 수 있다. 따라서 anti-aliasing 필터(컷오프 주파수 2.4 kHz)는 원래 왜곡 데이터에서 주 왜곡을 계산하기 위해 비선형 연산자에 의해 도입된 주파수 성분을 제거하지 않는다. 그다음 변형률 데이터를 낮은 컷오프 주파수 500 Hz로 필터링한다.
주 로그 왜곡을 컷오프 주파수 500 Hz로 필터링하려면 다음과 같이 설정한다.
1. 결과 트리에서 XYData를 두 번 클릭한다. 그다음 Create XY Data 대화 상자에서 Operate on XY Data를 선택한다. Continue를 클릭한다.
2. Operate on XY Data 대화 상자에서 컷오프 주파수가 500 Hz인 2차 Butterworth 필터를 사용하여 최대 주 로그 왜곡 LEP-Max를 필터링한다. 대화 상자 상단에 산술식은 다음과 같이 표시된다.
butterworthFilter(xyData="LEP-Max", cutoffFrequency=500)
3. Save As를 클릭하여 계산된 최대 주 로그 변형률을 LEP-Max-FilterAfterCalc-bw500으로 저장한다.
4. 마찬가지로 컷오프 주파수가 500 Hz인 같은 2차 Butterworth 필터를 사용하여 로그 변형 성분 LE11, LE12, LE22를 필터링한다. 결과 곡선은 LE11-bw500, LE12-bw500, LE22-bw500으로 각각 저장된다.
5. 그다음 필터링된 로그 변형률 구성 요소를 사용하여 최대 메인 로그 변형률을 계산한다. Operate on XY Data 대화 상자의 맨 위에 산술식이 다음과 같이 표시된다.
(("LE11-bw500"+"LE22-bw500")/2) + sqrt(power(("LE11-bw500"-"LE22-bw500")/2,2) + power("LE12-bw500"/2,2) )
6. Save As를 클릭하여 계산된 최대 주 로그 변형률을 LEP-Max-CalcAfterFilter-bw500으로 저장한다.
7. 결과 트리의 XYData 컨테이너에서 LEP-Max-CalcAfterFilter-bw500을 마우스 버튼 3으로 클릭하고 표시된 메뉴에서 Edit을 선택한다.
8. Edit XY Data 대화 상자에서 Y값 종류로 Strain을 선택한다.
9. LEP-Max-CalcAfterFilter-bw500과 LEP-Max-FilterAfterCalc-bw500을 다음 그림과 같이 표시한다. 이전과 마찬가지로 실제 표시는 자신이 선택한 요소에 따라 다르다.
위 그림에서 왜곡 데이터 필터링이 주 변형률 계산 전후에 수행될 때 차이가 있음을 알 수 있다. 비선형 주응력 연산자를 적용하여 도입된 주파수 성분 일부가 필터의 컷오프 주파수 500 Hz보다 높아서 주변형을 계산한 후 필터링된 곡선이 변형된다. 일반적으로 비선형 연산자에서 파생된 양을 직접 필터링하는 것은 피하는 것이 좋다. 가능한 한 먼저 원래 구성 요소를 필터링한 다음 비선형 연산자를 필터링된 구성 요소에 적용하여 원하는 파생량을 계산한다.
일반적으로 Abaqus/Explicit에서 증분별 출력을 기록하면 필요한 것보다 많은 양의 데이터가 생성된다. 실시간 필터링 기능을 사용하면 앨리어싱으로 결과의 왜곡을 발생시키지 않고 낮은 주파수에서 이력 출력을 요청할 수 있다. 그러나 출력 빈도와 필터링은 물리적으로 의미 있는 주파수 성분을 제거하거나 결과를 왜곡하거나 일이 없도록 선택해야 한다. 후처리 필터링은 분석 중에 필터로 제거된 주파수 성분을 복원하거나 앨리어싱된 데이터에서 원래 신호를 복원할 수 없다. 또한 비교를 위한 추가 데이터를 준비할 수 없는 경우 결과를 지나치게 필터링하거나 별칭을 지정해도 판별하기가 어렵다. 상대적으로 높은 출력 빈도를 선택하고 Abaqus/Explicit 필터를 사용하여 이력 출력의 앨리어싱을 방지하는 것이 좋다. 이렇게 하면 유효하고 충분한 양의 결과가 출력 데이터베이스에 기록된다. 또한 2, 3곳의 중요한 위치에 대해 증분 단위로 출력을 요청할 수 있다. 분석이 완료되면 Abaqus/CAE 후처리 도구를 사용하여 추가 필터링을 필요한 만큼 신속하게 반복적으로 적용할 수 있다.
'공학 > 유한요소해석' 카테고리의 다른 글
[Abaqus] 외연적 동역학의 하중 속도 (0) | 2024.06.12 |
---|---|
[Abaqus] 준정역학 해석과 외연적 동역학이란? (0) | 2024.06.10 |
[Abaqus] Abaqus/Explicit에서 모델링 고려 사항 (0) | 2024.06.06 |
[Abaqus] Abaqus/Explicit에서 접촉의 정의 (0) | 2024.06.06 |
[Abaqus] 예제: 랩 조인트의 전단 (1) | 2024.06.06 |