Skip Navigation
Skip to contents

eTSNE


ANZINE : CAE 기술 매거진

AEDT Mechanical을 활용한 파워저항 방열해석

AEDT Mechanical을 활용한 파워저항 방열해석

 

 

Introduction 

Ansys 제품에 어느정도 친숙해진 분들의 고급 활용법에 대한 문의도 있지만, 아직은 해석 프로그램의 인터페이스나 기본적인 조작 방법, 그리고 예제를 찾는 방법부터 낯설어 하시는 초심자 분들도 많이 계시다는 것을 자주 느낀다. 교육 수강이 가장 좋은 방법이긴 하지만 출장 보고에 대한 부담이나(다녀오면 강제로 고수가 되어 있어야 하는 분위기), 교육을 한 번 들었어도 다른 업무로 인해 바로 실무에 적용하지 못하고 시간이 지나면 기억이 나지 않는 경우도 많다. 따라서 본 편에서는 꼭 교육 수강이 아니더라도 어떤 방식으로 self-study를 할 수 있는지 자가 학습에 대한 접근법도 곁들여 읽어 주셨으면 한다. 

 

■ 개요

본 편에서는 AEDT Mechanical을 활용한 파워저항 방열해석 방법을 다룰 것이며, 다음과 같은 몇 가지 특징이 있다. 

  • 과도 해석(Transient simulation)인 점
  • 함수 적용(시간에 따라 변하는 물리량을 적용)
  • 초기 온도와 주변(ambient) 온도 설정
  • 해석 시간 절약을 위한 물성 변경

해석 모델의 구성은 간단하다. 저항체는 세라믹으로 되어 있고, 양 끝단의 캡은 니켈로 이루어져 있다. 리드 선은 구리이며, 납땜 마무리 부분(solder termination)은 PCB와의 접촉부위로, 생략하지 않고 해석에 포함되었다. 

[그림1] 해석 모델: 파워 저항

 

 

발열은 저항체에서 일어나며, 시간에 따라 발열량이 달라지는 것을 함수를 활용해 적용한다. 공기로 노출된 면에는 모두 대류 조건을 적용한다. 이 때 대류열전달계수 역시 시간에 따라 값이 바뀌도록 함수를 설정한다. 발열량이 높은 구간에서는 냉각 팬이 가동되는 상황을 반영하여 더 높은 대류열전달계수를 적용하고, 발열량이 낮은 시간 동안에는 팬 역시 가동을 멈춘 상황을 반영하여 더 낮은 대류열전달계수를 적용한다. 이 방법은 유체의 움직임을 풀지 않고도 유체에 의한 냉각 효과를 해석에 반영할 수 있는 기법으로, 유체의 움직임에 대한 지배식을 풀 필요가 없어지기 때문에 시간을 크게 절약할 수 있는 방법이다. 열유동 해석 분야에서도 유체를 포함한 해석이 여의치 않을 경우 자주 사용되는 방법이며, 대류열전달계수 가정이 잘 맞다면 높은 정확도를 보여준다. 마지막으로 납땜부위의 상단 면은 PCB와 접하는 면이므로, PCB로 열이 빠져나가는 것을 열유속 조건으로 구현한다. 저항체의 온도가 몇 도까지 올라가는지 알아보는 것을 최종 목적으로 할 때, PCB로의 전도열전달을 열유속 조건으로 대체하고 그 형상은 생략하는 것 역시 해석 소요시간을 효율적으로 줄일 수 있는 방법 중 하나다. 

 

 

■ 기본 세팅

Ansys Electronics DesktopTM(이하 AEDT)은 전자기 분야의 여러 해석 프로그램들을 하나의 통합된 인터페이스에서 사용할 수 있는 제품이다. 열유동 방열 해석을 위해서는 Icepak®이 주로 사용되나, 유체를 포함하지 않고 해석하는 경우에는 Mechanical®으로도 방열 해석이 가능하다. 어느 것을 사용하든, 처음에는 AEDT를 실행하고, 그 안에서 원하는 해석 프로그램을 추가하는 방식이다. 본사 및 매뉴얼에서는 이처럼 AEDT 내부에서 추가하는 방식으로 실행하는 프로그램을 ‘Design’으로 명명하고 있다(예: Icepak Design, Mechanical Design, HFSS Design). 다만 국내에서는 기존 Workbench를 통해서 실행하던 때의 명칭대로 “Mechanical”, “Icepak”으로 줄여서 부르는 편이다.

 


[그림 2] AEDT 실행 후 Mechanical 추가

 

 

본 실습에서는 먼저 AEDT 실행 후 Mechanical을 추가한다. 이후 예제 파일을 불러온다. 형상 모델링 과정은 생략된다. 이 때, Example 폴더에도 예제가 있지만 다른 폴더(AnsysEM)에도 예제 파일이 있으니 연습이나 테스트가 필요할 경우 유사한 형상을 찾을 때 두 폴더를 모두 찾아보면 유용하다.

  • Desktop 리본 탭 > Open Example > 상위 폴더 > AnsysEM > Help > Mechanical > TransThermal_PwrResistor.aedt 열기

 

 


[그림 3] Example 경로와 Help 경로의 예제 파일.

★ 두 경로 모두 프로그램별로 예제가 많이 준비되어 있으니 적극 활용하자!

 
[그림 4] Open Example > Help 경로의 예제 파일 열기

 

 

예제 파일을 열면 [그림1]의 형상이 나타난다. 이대로 실습을 하면 예제 원본 파일이 변경되기 때문에, 실습을 진행하기 전에 방금 연 파일을 바로 다른 이름으로 저장한다.

  • Desktop 리본 탭 > Save As > 원하는 경로에 다른 이름으로 저장

 

새로 연 예제 파일과 함께, 처음 Mechanical을 추가했을 때 자동으로 생성되어 있던 Project가 Project Manager에 함께 남아있다. 기존에 열려 있던 Project는 저장하지 않고 닫도록 한다. 

  • Project Manager > Project1 마우스 우클릭 > Close

 


[그림 5] 자동으로 생성된 Project 닫기

 

■ 물성 변경


이제 처음으로 적용할 내용은 물성 변경이다. 열유동 해석에 필요한 주요 물성은 밀도, 점도(유체만 해당), 비열, 열전도도이다. 연구 목적이 최종 온도 분포를 얻는 것이라면, 온도 분포는 이 물성들 중 열전도도만 관여한다. 따라서 나머지 물성 값들은 변경되어도 최종 온도 분포에는 영향을 주지 않는다. 밀도와 비열은 열용량과 관련된 물성으로, 열을 얼마나 많이 머금을 수 있는지 그 성질을 의미한다. 열을 많이 머금을 수 있는 물질일수록 주변에서의 열 변화에 천천히 반응한다. 예를 들어 좌측에서 열이 들어온다면 열용량이 큰 물질은 더 오랜 시간이 걸린 후에 우측으로 열량을 전달하게 된다. 여기서 중요한 포인트는, ‘천천히’라는 것은 시간과 관련된다는 것이다. 시간이 아주 오래 흐른다면 결국 최종 온도 분포는 열용량에 관계없이 똑같다. 
최종 온도 분포만 볼 것이라면 애초에 정상상태(steady) 해석을 해도 되는 부분이지만, 이번 예제에서는 시간에 따라 발열량이 바뀌는 상황, 그리고 팬의 on/off에 의해서 냉각 양상 또한 시간에 따라 바뀌는 상황을 구현하기 위한 것이므로 과도 해석(Transient)을 진행한다. 즉, 발열과 냉각에 대해서는 시간적 고려를 하지만, 최종 온도 분포에 대해서는 시간을 고려할 필요가 없으므로 Transient로 솔버를 세팅하되 물성은 임의로 조절을 하는 것이 가능하다. 다만 물질 간의 열용량 차이는 어떤 것이 더 빨리 식고 다 빨리 가열되는지에 따라 해석 결과에 영향을 미치므로, 그 비율은 유지한다. 결국 적용하는 내용은, 모든 고체 물질들의 비열 값을 10분의 1로 낮추는 것이다.

  • History Tree > Al2_O3_ceramic > Body 선택 > 좌측 하단 Properties 창의 Material 항목에서 Edit 선택

 


[그림 6] 물성 변경(1)

 

 

기존 물성 값 중 일부를 변경할 경우 View/Edit Material 또는 Clone Material을 사용한다. 기존 물성 정보의 이름 변경 여부를 제외하면 기능적인 사용 방법은 동일하므로 더 편하게 느껴지는 것을 사용하면 된다. 본 예제에서는 Clone Material을 사용한다. 만약 라이브러리에 없는 물성 정보를 사용하거나, 라이브러리에 있지만 핸드북/논문 등의 물성 정보를 사용하려면 Add Material을 클릭한다. 

  • Select Definition 창 > Clone Material > View/Edit Material 창에서 Specific Heat을 85(기존의 1/10)로 변경 > 이름을 Al2_03_ceramic_LSH로 변경 > OK > 확인

 

 

 

[그림 7] 물성 변경(2)

 

 

여기서 이름 뒤의 LSH는 Low Specific Heat을 의미하며, 원할 경우 다른 이름으로 지정해도 상관없다. 
동일한 방식으로 copper, nickel, solder에도 비열 값을 10분의 1로 변경한다.

 

 

■ 대류 조건 설정

물성 설정이 끝났으면 다음 단계는 조건 설정이다. 먼저 solder로부터 PCB로 전달되는 열량에 대한 설정을 한다. 본 예제와 유사한 예제인 Structural Solution – Power Resistor에서는 solder와 PCB가 접하는 면에 -0.5W의 고정된 열유속을 부여한다. 이는 저항체의 발열량이 7.5W로 고정되어 있을 때 실제 온도차(이 면의 온도와 주변 공기의 온도의 차이)를 기반으로 계산된 값이다. 이번 과도해석 실습에서는 발열량이 일정하지 않기 때문에, 고정 열유속 대신 대류열전달계수를 적용한다. 비록 이 면이 대류가 아닌 전도에 의한 열전달이 이루어지는 면이지만, 고정 열유속 대신 대류 조건을 적용하면 이 면을 통해 빠져나가는 열량에 변화를 줄 수 있다. 왜냐하면 빠져나가는 최종 열량은 주변 온도와 이 면의 온도의 차이에 의해서 결정되기 때문이며, 이 면의 온도는 발열량에 따라 다르게 계산될 것이기 때문이다. 계산 식은 다음과 같다.

 

 

대류열전달계수 h에 대해서 다시 쓰면,

 

 

여기서 단위면적당 열전달량 q''은 0.5W이며, solder-PCB 접촉면과 주변 공기의 온도차는 20K로 가정한다. 그리고 접촉 면적은 1.20637×10-5 m2이다. 따라서 적용할 대류열전달계수의 값은 다음과 같다.

 

 

  • 키보드 F를 눌러 면 선택 모드로 전환 > 두 접촉면 선택 > 마우스 우클릭 > Assign Boundary > Convection > 대류열전달계수 값에 2072 입력

 


[그림 8] 대류 조건 설정(1)

 
[그림 9] 대류 조건 설정(2)

 


두 번째 조건 역시 대류 조건이다. 이번에는 공기로 노출된 모든 면을 선택한 후 함수 형태로 대류열전달계수를 적용한다. 공기와의 접촉면의 개수가 이번 예제에서는 13개로 그리 많지 않다. 만약 형상이 복잡하고 개수가 많아 공기와의 접촉면이 너무 많은 경우에는 작은 면들은 생략하고 열전달의 대부분이 일어날 것으로 예상되는 큰 면들 위주로만 선택하여 적용하기도 한다. 하지만 AEDT의 Mechanical과 Icepak에서는 전체를 드래그하여 선택해도 내부 고체간 접촉면에는 자동으로 조건이 무시되기 때문에 보다 편리하게 설정이 가능하다. 

  • 대상 면 선택(전체 드래그 선택 후 solder 윗면 2개만 ctrl 키 누른 채로 클릭하여 선택 해제) > 마우스 우클릭 > Assign Boundary > Convection > 대류열전달계수 값에 아래처럼 함수를 입력 > 확인

 

pwc(ds_Convection,Time)

 
[그림 10] 대류 조건 설정(3)

 

위 함수 입력 방식은 다음 규칙을 따른다.

  • 함수의 종류(데이터세트의 종류, 변수의 종류)

 

이를 조금 더 의미 중심으로 다시 풀어 쓰면 다음과 같다.

  • 함수의 형태(x에 따라 변하는 y값에 대한 데이터 정보, x가 의미하는 변수의 종류)

 

 

함수명 pwc의 의미는 piecewise constant이다. 구간에 따라 일정한 값을 적용하는 함수다. 가령 0초부터 1초까지는 5를, 1초부터 2초까지는 10의 값을 적용할 수 있다. 이번 예제에서는 사용되지 않지만 pwl 함수도 활용 가능하다. pwl은 Piecewise linear를 의미하며, 값이 변할 때 한 번에 변하지 않고 특정 구간 동안 선형적으로 변한다. 종종 ramp function이라 불리기도 한다. 
괄호 안에 입력되는 첫 번째 내용인 ds_Convection은 사용자가 생성하는 함수 차트 이름(dataset)을 의미한다. 곧 진행할 내용에서 x에 따른 y값 정보를 확인할 것이다. 괄호 안의 두 번째 내용은 ds_Convection이라는 이름의 dataset에서 x축이 무엇을 의미하는지를 적는 곳이다. “Time”은 내부 변수로 자동으로 시간 의미로 인식된다. 
함수에 대한 내용을 정리하면, Convection 조건 설정에서 대류열전달계수는 ds_Convection이라는 표에 입력된 정보를 바탕으로 값이 결정되며, 그 형태는 piecewise 함수 형태로 특정 구간이 되면 한 번에 값이 변한다. 여기서 ds_Convection 표에 입력된 정보를 그래프로 나타내면, x축은 시간을 의미한다. 

 

[그림 11] 대류 조건 설정(4)

 

Convection 조건 설정이 완료되었다. 이제 입력한 dataset을 확인한다. 

  • Mechanical 메뉴 바 > Design Datasets

 


[그림 12] Design Datasets

 

 예제에서 미리 생성된 dataset들을 확인할 수 있다. ds_Convection 조건을 더블 클릭하여 상세 내용을 확인한다. 

 

 

 
[그림 13] ds_Convection dataset 상세 정보 확인

 

 

 여기서 유념할 점은, Edit Dataset 창에서는 모든 정보를 piecewise linear 함수로 보여준다. 입력된 3개의 y축 값에 대하여 선형적으로 이은 그래프가 나타난다. 하지만 본 예제에서는 pwl이 아니라 pwc 함수가 적용되었다. 따라서 실제로 적용되는 값의 양상은 아래와 같이 한 번에 값이 바뀌는 형태이다. 
 


[그림 14] 실제 적용 데이터의 형태 - Piecewise Constant

 

 

■ 발열 조건 설정

 냉각에 대한 설정들은 완료됐다. 이제 발열 조건을 설정한다. 이번에도 일정한 발열량이 아니라 시간에 따라 값이 변하도록 설정할 것이며, 저항체에 설정한다.

  • 키보드 O 입력 > 저항체 object 선택 > 마우스 우클릭 > Assign Excitations > Heat Generation > 발열량에 다음 함수를 입력

 

pwc(ds_HeatGen,Time)

 
[그림 15] 발열 조건 설정(1)


 
[그림 16] 발열 조건 설정(2)

 

적용 원리는 Convection 조건에서와 동일하다. 마찬가지로 Mechanical 메뉴 바 > Design Datatset에서 상세 정보를 확인 가능하며, 적용되는 값은 아래와 같다.

 
[그림 17] 발열량 함수

 

 

■ 초기값 설정

 정상상태 해석(steady simulation)과 달리 과도해석(transient simulation)에서는 초기값도 중요하게 작용한다. 정상상태에서는 시간이 아주 오래 흐른 뒤 열적 평형 상태에 도달했을 때의 온도를 보는 것이기 때문에, 초기값이 얼마이든 관계없이 발열량과 냉각량의 평형에 따라 온도 분포가 결정된다. 하지만 시간에 따른 중간 중간의 결과를 관찰하는 과도해석에서는 말 그대로 해석을 시작할 때의 온도를 의미하는 초기값이 해석 결과에도 영향을 준다. 

  • 저항체(history tree > body) 클릭 > 마우스 우클릭 > Assign Initial Temperature > 초기 온도 값에 97 입력 > 단위를 cel로 변경 > OK

 


[그림 18] 초기값 설정(1)

 

  • EndCap_1과 EndCap_2 선택 > 동일한 방식으로 아래 그림처럼 설정

 


[그림 19] 초기값 설정(2)

■ 모니터 설정

 특정 위치에서 특정 물리량의 값을 해석 진행 중 또는 해석 완료 후에 볼 수 있는 기능이 모니터 기능이다. 이를 통해서 해석이 잘 수렴되고 있는지를 판단하기도 한다. 해석이 완료된 후에는 별도의 후처리 기능을 통해서 결과를 볼 수도 있지만 모니터를 미리 생성하는 것에 비해서 그 과정이 번거로울 수 있기 때문에, 가급적 보고자 하는 결과에 대해서 해석을 진행하기 전에 모니터를 미리 만드는 것이 좋다. 

  • Draw 리본 탭 > Point > 화면 우측 하단의 좌표 값에 다음을 입력 > Enter

 

 
[그림 20] 첫 번째 모니터 좌표

 
[그림21] 첫 번째 모니터 위치

 

 생성된 Point의 위치는 History Tree > Points에서 해당되는 대상을 선택한 후 하이라이트 된 위치를 보고 알 수 있다. 좌표 수정을 원할 경우 화면 좌측 하단의 Properties 창에서 변경 가능하다.

 

 

 
[그림 22] 생성한 Point 위치 확인 및 변경 가능

 

동일한 방법으로 다음 위치에 두 번째 모니터 위치를 생성한다.

 

 

 
[그림 23] 두 번째 모니터 좌표

 
[그림 24] 두 번째 모니터 위치

 

 

두 개의 Point 생성이 완료되었으면, 이 위치에 모니터를 생성한다.

  • Point1, Point2 선택 > Modeler Window에서 마우스 우클릭 > Assign Monitor > Point > OK

 
[그림 25] 모니터 설정

 

모니터 생성이 완료되었다. 이제 두 점에서의 시간에 따른 온도 변화를 해석 진행 중이나 완료 후에 볼 수 있다. 현재는 온도만 관찰하지만, Icepak과 같은 프로그램으로 열유체 해석을 한 경우 온도 외에도 속도, 열전달량 등 보다 다양한 물리 변수들을 관찰할 수 있다.

 

 

■ 솔버 설정 및 해석

과도해석에서는 해석을 시작하는 시간과 종료되는 시간, 그리고 해석 시간 간격(time step)을 설정해야 한다. 이번 예제에서는 0초부터 40초까지 해석하며, 계산은 1초 시점마다 진행한다. 유동해석이 포함되어 있다면 이보다 촘촘한 해석 시간 간격이 일반적으로 요구된다. 하지만 지금은 전도열전달 해석만 수행하며 대류열전달은 실제 유체 움직임을 바탕으로 계산하는 것이 아니라 대류열전달계수 가정으로, 즉 지배식 풀이가 아닌 산술적 풀이로 대체되었기 때문에 비교적 time step을 크게 설정하는 것이 가능하다. 

  • Project Manager > Analysis 마우스 우클릭 > Add Solution Setup > Stop 시간을 40으로 변경

 
[그림 26] Time Step 설정

 

 

여기서 Time variation preview를 클릭하면 시간에 따라 변하는 물리량들의 그래프를 확인할 수 있다. 발열량이 증가하면 대류열전달계수의 값도 증가하도록 설정되었으며, 그 절대값 역시 같도록 설정하여 하나의 그래프처럼 나타난다. 다만 4초에서 값이 한 번에 증가하지 않고, 4초부터 5초까지 선형적 증가 구간이 있다. 이는 time step 설정이 1초로 되어 있기 때문이다.

 

 

 
[그림 27] Time variation preview: 시간에 따른 input 물리량 변화 확인

 

 

Time step 설정이 끝났으면 Initial Condition 탭에서 초기 온도를 설정한다. 여기서 설정하는 초기 온도는 이전 조건 설정 단계에서 별도로 지정하지 않은 나머지 영역의 초기 온도를 의미한다. 

  • Initial Conditions 탭 > 65로 값 변경

 
[그림 28] Global 초기값 설정

 

 

 다음은 저장 시간 간격을 설정한다. 계산은 매 1초마다 하되, 해석 결과 역시 매초마다 저장할 경우 파일 용량이 지나치게 커질 수 있다. 따라서 해석 시간 간격과 저장 시간 간격을 다르게 하는 경우가 많다. 물리량의 변화가 있는 구간(“이슈”가 있는 구간) 또는 관심있는 구간에는 저장을 촘촘하게 하더라도, 특별한 변화나 관심이 없는 구간에는 저장 간격을 크게 설정할 수 있다. 이번 예제에서는 저장 시간 간격에도 함수를 적용한다.

 

Pwc(ds_SaveFields,Time)

  • Save Fields 탭 > Every 옵션으로 변경 > 함수 입력 > 확인


 
[그림 29] 저장 시간 간격 설정

 

솔버 설정이 완료되었다. 해석을 실행한다.

  • Project Manager > Analysis > Setup1 마우스 우클릭 > Analyze

 

■ 해석 결과 확인

해석이 완료되면 먼저 모니터 결과를 확인한다.

  • Setup1 우클릭 > Thermal Monitor

 
[그림 30] 모니터 결과 확인

 

 

각 위치별로 초기값으로 설정된 온도에서 시작하여 4초 이후 온도가 상승하다가 일정 온도로 점차 수렴되는 것을 확인할 수 있다. EndCap(연두색, Monitor1)은 104℃로 비교적 높은 온도가 나타났고, Solder(하늘색, Monitor2)는 44℃로 PCB로의 방열로 인해 상대적으로 낮은 온도 결과가 나타났다. Global(빨간색)은 전체 영역 중 가장 높은 온도를 보여주며, 124℃의 값으로 가장 높은 값을 보인다. 이는 모니터를 생성하지 않은 저항체의 위치일 것으로 예상할 수 있다.

 결과 데이터에 대한 정보는 이처럼 모니터 기능 또는 Fields Summary 기능으로 확인할 수 있다. 시각적인 결과 정보는 대상을 선택한 후 Plot Fields의 기능들을 활용하여 표면 온도 분포, 단면 온도 분포 등을 확인할 수 있다. 아래는 표면 온도 분포 결과이며, 1초, 10초, 40초의 결과를 나타낸다.

 
[그림 31] 해석 결과 - 표면 온도 분포

 

맺음말

이번 파워저항 과도열전달 해석의 핵심은 과도해석의 의미와 시간에 따른 함수 설정 방법이다. 유체의 움직임을 풀기 위해 유체해석 솔버를 사용하는 대신 대류열전달계수에도 함수를 적절히 가정하여 시간에 따른 효과까지 고려하였다. 비열 값을 동일한 비율로 낮춰 해석 시간을 절약하는 테크닉도 활용해 보았으며, Example경로만이 아니라 Help 경로에도 예제가 다양하게 있는 것을 확인하였다. 아직은 Ansys 제품이 낯설거나 AEDT를 처음 사용하는 사용자에게 ANZINE 구독이 CAE 실력 향상을 위한 새로운 한 줄기 돌파구가 되길 바란다.

 

좋아요이 원고가 마음에 든다면 하트를 꾸욱!