CAE를 이용한 진동해석 ① Julia Programming

곽문규 교수

동국대학교 기계로봇에너지공학과

2023년 07월 28일

평점 :

기술용어통 전문가 칼럼

1. 진동학을 왜 공부하는가?

 

진동(vibration)은 우리 주변에서 흔하게 발생한다. 가깝게는 우리가 일상에서 사용하고 있는 가전제품들  예를 들어 냉장고, 에어컨, 식기 세척기, 세탁기 등에서 원동기의 회전으로 인해 진동이 발생하고, 엔진의 진동을 일으키는 힘(진동학에서는 보통 기진력 (excitation force)이라고 부른다.)과 노면의 요철로 인한 자동차의 진동과 소음은 승객들에게 불쾌감을 유발한다.


조금 더 큰 구조물의 진동은 사람의 목숨을 위협할 수 있는데 예를 들어 지진으로 인한 건축물의 진동은 붕괴로 이어질 수 있어 매우 위험하다. 진동이 구조물에 미치는 악영향은 반복된 하중의 결과가 피로 파괴로 이어지기 때문이다. 진동이 구조물의 피로 파괴로 이어진 사고로는 시애틀에 위치한 타코마 다리 (Seattle Tacoma Bridge) 붕괴 사고가 있다. 유튜브를 검색해 사고 영상을 시청하기 바란다.


위에서 설명한 바와 같이 진동은 구조물이 반복적으로 움직이는 현상을 말한다. 진동을 일으키기 위해서는 진동을 유발하는 기진력이 있어야 한다. 예를 들어 지진이 발생하면 대지가 흔들리면서 건물을 흔드는 것처럼 구조물을 흔드는 힘이 있어야 한다. 그런데 여기서 진동을 심각하게 만드는 한 가지 원인이 더 존재한다. 소위 공진이라는 현상인데 기진력의 어떤 특정 진동수에 의해 구조물이 매우 심하게 진동하는 현상을 가리킨다.


여러분들은 아마도 세탁기를 이용해 세탁할 때 어느 특정 RPM에서 세탁기가 많이 진동하는 것을 목격한 경험이 있을 것이다. 타코마 다리의 경우도 바람에 의한 기진력의 진동수가 하필 구조물이 크게 진동할 수 있는 진동수와 같았기 때문에 큰 사고가 발생했다. 이런 현상을 진동학에서는 공진 (resonance)이라고 부른다.


구조물이 외부의 진동에 민감한 진동수가 있다고 언급하였는데 이것을 고유진동수(Natural Frequency)라고 말한다. 진동학에 있어 고유진동해석이라는 말이 흔히 사용되는데 이 말은 구조물이 외부의 기진력에 민감하게 반응하는 고유진동수를 구한다는 것을 의미한다.

 

그런데 고유 진동수는 구조물의 종류와 형태에 따라 모두 다르게 나타난다. 그래서 구조물을 설계할 때 그 구조물의 고유진동수를 구하는 것이 무엇보다도 필요하다. 특히 구조물에 진동을 유발하는 장치가 부착되면 고유진동수를 구하는 것이 매우 중요해진다. 예를 들면 선박의 경우 엔진이 결정되고 프로펠러를 부착하면 다양한 진동수를 가지는 기진력이 발생한다. 만일 전체 선박구조물이나 부구조물의 고유진동수가 이 진동수와 일치하는 경우에는 골치 아픈 사태가 벌어진다.


진동이라는 현상은 앞에서 소개했듯이 구조물의 움직임이 반복된다는 것을 나타내는데 그래서 시간이 흐름에 따라 구조물의 변위가 왔다 갔다 한다는 것을 의미한다고 할 수 있다. 그런데 여기서 구조물의 변위가 얼마나 빨리 왔다 갔다 하느냐가 추가된다. 즉 왔다 갔다 하는 주기(period)가 중요하다는 의미이다.


그래서 구조물의 진동해석(vibration analysis)은 크게 시간에 따른 응답해석 (response analysis)과 진동수 해석(frequency analysis)으로 나뉜다. 즉, 시간 영역 해석(time-domain analysis)과 주파수 영역 해석(frequency-domain analysis)으로 나뉜다. 이런 복합적인 해석이 진동학을 공부하려는 사람들에게 어려움으로 작용한다.

 

2. 왜 진동해석에 수학이 필요할까?

 

앞에서 진동학은 시간 영역 해석과 주파수 영역 해석으로 구성된다고 언급하였다. 공학 문제를 해결하기 위해서는 도구가 필요한데 진동학이 발전하기 시작한 때의 유일한 도구는 수학이었다. 그래서 많은 진동학 교과서들이 엄청난 양의 수학들로 채워져 있고 이런 수학들이 진동학을 공부하려는 학생들을 난감하게 만들고 있다.

 

그러나 컴퓨터의 발전은 공학해석 도구로 수학과는 다른 도구를 제공했다. 그래서 진동해석의 일부 부분에 있어서는 소프트웨어로 대체할 수 있는 가능성이 생겼다고 말할 수 있다. 그럼에도 불구하고 진동학에 있어 수학의 중요성은 감소되지 않는다. 수학해석은 정성해석을 가능하게 만들어 주기 때문이다.

 

수학해석은 구조물의 진동이 시간이 지남에 따라 어떻게 변화할지 예측할 수 있게 해주며 기진력의 진동수에 따른 구조물의 진동 응답이 어떻게 달라지는지에 대한 통찰력을 제공한다. 그러나 컴퓨터의 발전으로 진동해석에 있어 많은 문제들이 수학만이 유일한 도구이지는 않다. 다음에서 수학을 사용하지 않아도 되는 경우는 과감하게 수치해석 소프트웨어를 사용하는 방법을 소개할 것이다.

 

3. 왜 진동해석에 CAE가 필요할까?

 

모든 공학 문제들을 수학만을 사용해 해결할 수는 없다. 수학을 사용해 엄밀해를 구할 수 있는 공학 문제는 사실 그렇게 많지 않다. 물론 수학은 정성적인 해석을 수행하는 데 있어 더할 나위 없이 좋은 도구이다. 그러나 현실의 공학 문제들은 수학 문제들처럼 단순하고 정돈된 형태로 정식화되지 않는다.


수학은 이런 문제들을 해결하기 위한 기초적인 근사방법을 제공한다고 말할 수 있다. 그러나 이런 근사방법을 적용하기 위해서는 수학을 이용한 정식화와 컴퓨터를 이용해 문제를 해결하기 위한 알고리즘을 개발해야 한다.


컴퓨터의 도입은 복잡한 공학 문제들은 획기적으로 쉽게 해결할 수 있게 만들었다. 심지어 컴퓨터를 이용한 수치해석의 발달은 수학을 대체할 수 있는 수준까지 도달한 것이 아닌가 하는 생각이 들 정도이다.


현재 공학 문제의 해결을 위해서 유한요소법을 이용하는 다양한 소프트웨어들이 사용되고 있으며 사용자가 좀 더 쉽게 사용할 수 있게 사용자 인터페이스가 잘 개발되어 있다. 그러나 이런 소프트웨어가 모든 문제를 해결할 수는 없으면 해결이 어려운 부분은 연구자들이 수치해석 프로그램을 작성해 해석을 하고 있다. 따라서 상용 프로그램만을 사용할 것이 아니라면 수치해석과 프로그래밍을 반드시 공부해야 한다.


또 하나 수치해석 방법은 수학을 바탕으로 개발된 것이기 때문에 수학 지식이 어느 정도 필요하다는 사실이다. 본 내용에서는 가능하면 복잡한 수학 대신에 수치해석 프로그램을 이용해 진동 문제를 해석하는 방법을 주로 소개할 것이다.

 

4. Julia Programming

 

이전에는 연구자들이 알고리즘을 개발한 후 계산을 수행하기 위해서 컴퓨터 프로그래밍 언어를 사용해 수치해석 프로그램을 직접 만들어 사용했다. 나이가 든 엔지니어들은 FORTRAN 언어를 이용해 프로그램을 작성해 문제를 해결한 경험을 가지고 있을 것이다.


최근 몇 십년 동안 과학자와 공학자들에게 사랑을 받아온 수치해석 도구로는 MATLAB/SIMULINK소프트웨어가 있다. 실제로 MATLAB/SIMULINK는 특히 수치해석을 손쉽게 이용해 공학 문제를 해결하는 데 크게 공헌해 왔다. 진동해석에 있어서도 MATLAB/SIMULINK는 탁월한 해석 능력을 보여준다. 그리고 다양한 Toolbox들은 새로 등장하는 공학 문제들을 해결하는데 큰 도움을 준다.


본인도 오랫동안 MATLAB/SIMULINK를 이용해 진동 문제들을 해석해 왔다. 심지어 MATLAB/SIMULINK는 하드웨어와 결합되어 다양한 영역의 실제 공학 문제들을 해결해 왔다. 다양한 하드웨어들 가운데 dSPACE 제품들은 SIMULINK 와 결합해 제어 알고리즘을 시험하고 시제품을 시험하는데 아주 유용하게 사용된다.


그럼 MATLAB/SIMULINK같은 좋은 도구가 있는데 왜 Julia라는 다소 생소한 프로그램을 소개하려는 것일까? 이유는 MATLAB/SIMULINK의 사용료 때문이다. Julia는 공개된 소프트웨어이기 때문에 Python처럼 무료로 사용할 수 있다. 그리고 MATLAB처럼 진동을 해석하는데 적합하기 때문이다.


Julia 프로그래밍을 좀 더 효율적으로 수행하기 위해서는 보통 IDE (Integrated Development Environment)가 필요한데 Julia를 위한 IDE로는 VSCODE가 선호되고 있다. Julia와 VSCODE의 설치 방법에 대해서는 인터넷에서 검색하면 쉽게 찾아낼 수 있다. 여러분들도 먼저 Julia와 VSCODE를 설치해 이 새로운 프로그래밍 언어를 경험해보기 바란다

 

5. 미분 방정식은 무엇인가?

 

이전에는 연구자들이 알고리즘을 개발한 후 계산을 수행하기 위해서 컴퓨터 프로그래밍 언어를 사용해 수치 해석 프로그램을 직접 만들어 사용했다. 나이가 든 엔지니어들은 FORTRAN 언어를 이용해 프로그램을 작성해 문제를 해결한 경험을 가지고 있을 것이다.

 

공학을 전공하고자 하는 사람들은 필연적으로 미분 방정식과 조우한다. 그래서 대부분의 공과 대학에서 공과 대학생들의 1학년 필수 과목으로 수학, 미적분 등이 필수로 포함되어 있다.


그렇다면 왜 미분 방정식을 풀어야 할까? 아니 도대체 미분 방정식은 무엇인가? 실제로 공과 대학에서 역학을 가르치면서 알게 된 것은 많은 학생이 미분 방정식을 왜 공부해야 하는지 모르고 있다는 것이었다.

 

공학과 미분 방정식은 어떻게 연결되어 있을까? 미분은 변화율을 나타낸다. 즉, 미분 방정식은 변화를 설명하는 식이라고 말할 수 있다. 공학 문제 대부분은 이 변화를 예측하는 것과 관련이 있다. 그래서 변화에 관한 식, 즉 미분 방정식을 풀어 어떤 일이 일어날지 예측하려고 한다.

 

 😥 미리 보기는 여기까지!
내용을 이어서 보고 싶다면,
아래 정보를 입력해 주세요.

기본별 색별 기본별 색별 기본별 색별 기본별 색별 기본별 색별

이미 참여하셨습니다.