PyMotorCAD를 활용하여, 모터의 전체 운전구간에 대한 온도 포화 해석을 자동화하는 방법을 소개한다. PyMotorCAD는 Ansys Motor-CAD를 Python 환경에서 제어하고 자동화할 수 있도록 해주는 오픈소스 라이브러리다. JSON-RPC(Remote Procedure Call) 인터페이스를 통해 로컬 또는 원격의 Motor-CAD 인스턴스를 띄우거나 연결하여, GUI 사용 여부와 상관없이 파라미터 설정·조회, 시뮬레이션 실행 등의 모든 작업을 스크립트로 처리할 수 있다. 이를 통해 전자기·열·기계적 해석 워크플로우를 통합 자동화하고, 최적화·민감도 분석을 손쉽게 수행할 수 있다.
PyMotorCAD를 활용하면 Motor-CAD의 E-Magnetic, Thermal, Mechanical 등 해석 모듈 간 반복적인 데이터 전달과 파라미터 변경 과정을 스크립트 기반으로 자동화할 수 있다. 일반적으로 E-Magnetic 손실 결과를 Thermal 해석의 입력으로 전송하고, 다시 Thermal 결과를 확인한 뒤 E-Magnetic 파라미터를 수정하는 일련의 수동 반복 작업은 설계 변수의 수가 늘어날수록 작업 시간이 기하급수적으로 증가하며 에러 가능성을 높인다. 특히 형상, 재질, 전류, 전압 등 개별 솔버에 따른 민감도 분석을 위해 파라미터를 체계적으로 변화시켜야 할 때 사람이 일일이 조작하기에는 비효율적이며, 결과 관리가 복잡해진다. 따라서 PyMotorCAD를 통해 파라미터 스위핑, 결과 수집, 내부 피드백 루프를 하나의 자동화된 워크플로우로 구축하면 설계 반복 주기를 크게 단축하고 대규모 최적화 및 민감도 분석을 안정적으로 수행할 수 있다.
[그림 1] E-Magnetic의 Sensitivity 기능
[그림 1]에 표현한 이미지는 Motor-CAD내 Sensitivity 기능이다. Sensitivity 기능은 모터 형상이나 입력 조건에 따라 파라미터 스터디를 수행할 수 있다. 그러나 각 솔버별로 해석 조건을 일일이 설정해야 하므로, 특정 운전점에 대한 해석 조건을 사용자가 직접 설정해야 한다는 번거로움이 있고 이러한 이유가 결국 에러 가능성을 높인다. PyMotorCAD를 활용하면 반복적인 Lab → Thermal 해석 사이클을 하나의 Python 스크립트로 자동화할 수 있다. 스크립트로 Motor-CAD 인스턴스를 실행하고, 초기 설계 파라미터(형상, 재질, 전류 등)를 일괄 설정한 뒤 Lab 해석을 수행하여 속도-토크 맵을 생성한다. 이후 생성된 손실 및 출력 데이터를 Thermal 해석의 입력으로 자동 전송하여 모터 온도 분포를 계산한다. 해석이 끝나면 PyMotorCAD 스크립트가 결과 데이터를 Excel 또는 MATLAB 형식으로 일괄 저장한다. 저장된 데이터는 효율, 온도, 토크, 손실 등 주요 지표별로 정리되어 자동으로 그래프가 생성되며, 이를 통해 민감도 분석이나 최적화 후보 도출이 즉시 가능하다. 이렇게 구축된 자동화 워크플로우는 대규모 파라미터 스위핑을 빠르고 안정적으로 지원하며, 수작업 오류를 최소화해 설계 반복 주기를 획기적으로 단축시킨다.
[그림 2] PyMotorCAD의 설치방법 및 API, 예제 파일
[그림 2]에 표현한 이미지는 설치 방법과 예제, API에 대한 이미지이다. PyMotorCAD 설치 방법 또한 간단하며, 명령 프롬프트(또는 터미널)에 pip install ansys-motorcad-core 한 줄만 입력하면 PyMotorCAD가 자동으로 설치된다. PyMotorCAD를 처음 사용하는 사용자는 PyMotorCAD 공식 홈페이지의 Examples 섹션에서 제공하는 스크립트 예제 파일을 사용하면 기본 워크플로우를 간편하게 체험할 수 있다. 또한 API reference 페이지에서 Geometry objects, Solver, Results 등 모듈별 클래스와 메서드 목록을 확인하며 필요한 기능을 파악한 뒤, 이를 바탕으로 자동화 스크립트를 작성하면 된다. 작성된 Python 스크립트를 실행하면 Motor-CAD 인스턴스가 구동되어 파라미터 설정 → 해석 실행 → 결과 추출 및 저장(Excel, MATLAB 등)까지 일련의 반복 작업을 백그라운드에서 자동으로 처리할 수 있다.
[그림 3] 해석 모델
[그림 3]에는 해석 모델의 이미지를 추가하였다. 간단하게 해석모델에 대해 설명하자면 150kW의 8극 48슬롯 IPMSM(Interior Permanent Magnet Synchronous Motor)이다. 본 자료는 모터 설계에 대한 내용이 주된 내용이 아니기 때문에 상세한 사양 설명은 배제하였다.
[그림 4] 해석 모델(150kW IPMSM)의 TN 커브
해당 모델을 Lab 모듈을 통해 해석하여 도출되는 TN(Torque – RPM) 커브를 [그림 4]에 나타내었다. 최대속도는 15,000rpm이며, 360Nm의 최대 토크가 도출되는 정격속도는 약 5,000rpm이다. [그림 4]에서 보여주는 TN 커브 영역내 모든 구간은 해당 모터가 구동할 수 있는 운전점이다. 전기차 구동모터의 경우 산업용 모터와 달리 매우 넓은 운전영역을 갖고 있으며, 모든 운전점에 대한 정밀한 해석결과가 요구된다.
[그림 5] Class H 절연등급의 NEMA Magnet Wire 규격
[그림 5]는 NEMA Magnet Wire Thermal Class Ratings and Corresponding Film Insulation Applications Explained 자료를 참고하였으며, Class H 권선의 온도에 따른 기대 수명을 나타낸다. 권선은 모터 내부에서 가장 열에 민감한 부품 중 하나이므로 온도가 조금만 상승해도 절연재의 열화 속도가 기하급수적으로 빨라진다. Class H 권선은 최대 허용 온도가 180 °C이지만 실제로 180 °C 근처에서 운전하면 수천 시간 내에 절연 수명이 다해 버리며, 장기 신뢰성을 보장할 수 없다. 반면 권선 온도를 160 °C 이하로 유지하면 절연 수명이 약 10만 시간 이상 수준으로 급격히 증가하는 것을 알 수 있다. 전기자동차 구동모터와 같이 최소 10년 이상 안정 운전이 요구되는 시스템에서는 권선 온도를 160 °C 이내로 제한해 충분한 여유 마진을 확보하는 것이 필수적이며, 이를 위해 Lab → Thermal Coupling 해석을 통해 온도 피크를 정밀 검증하고 냉각 설계 및 운전 전략을 최적화해야 한다.
[그림 6] 자동화 해석 플로우의 시각화
[그림 6]에는 자동화 해석을 진행할 플로우를 시각화 하여 나타내었다. 최대 성능 커브 내 임의의 운전점(360Nm @ 4,000rpm)에서 Lab → Thermal Coupling 해석을 보여주며, 모터 전체 동작영역에 대한 자동화 플로우는 아래와 같다.
이와 같은 PyMotorCAD 기반 워크플로우는 Lab과 Thermal 모듈 간 반복적인 데이터 전달 및 설정 작업을 완전 자동화하여 수작업 오류를 제거하고, 설계 반복 주기를 획기적으로 단축시킨다.
[그림 7] 160°C에 도달 시, 해석 종료 시점 도출 예시
[그림 8] 온도 포화 시점으로 구분한 TN 커브 예시
[그림 7]과 [그림 8]에는 해석 결과의 예시를 나타내었다. PyMotorCAD는 특정 운전점에서 앞서 제시한 Lab → Thermal Coupling 해석 플로우를 자동으로 수행하여, 외기 온도 20 ℃ 환경에서 권선 온도가 160 ℃에 도달하는 시간을 222 초(≈3.7 분) 내에 산출할 수 있다. 이와 같이 확보된 권선 온도 상승 프로파일을 기반으로, 최대 성능을 나타내는 TN 커브는 물론 권선 온도 제한(160 ℃)을 고려한 운전 시간별 TN 커브(예: 30분 정격 커브, 연속 정격 커브)까지 손쉽게 생성할 수 있다.
[그림 9] 라이브러리 import & PyMotorCAD 실행
[그림 9]에는 해석을 하기 전 사전단계에 해당하는 라이브러리 import 및 PyMotorCAD를 실행하기 위한 스크립트 이미지이다. PyMotorCAD 설치가 완료되면, Python 스크립트 상단에서 표준 라이브러리와 서드파티 라이브러리를 import하여 파일 I/O, 시간 제어, 표·행렬 데이터 처리 및 Motor-CAD 자동화 API를 불러온다. 스크립트 초기화 단계에서 PyMotorCAD를 호출해 Motor-CAD를 시작하고, GUI 표시 여부를 선택한다. 이어서 분석할 “.mot” 프로젝트 파일 경로를 문자열로 지정한 뒤 모델을 로드하여 해석 워크플로우 실행을 위한 준비를 완료한다.
[그림 10] 스윕 범위 정의
[그림 10]에는 자동화 해석을 진행할 스윕의 범위를 설정하는 코드에 대한 이미지를 추가하였다. Torque 구간은 10Nm에서 360Nm까지 10Nm 단위로, Speed 구간은 1,000rpm에서 15,000rpm까지 250rpm 단위로 해석하기 위해 range(10, 361, 10)과 range(1000, 15001, 250)로 리스트를 생성한다. Python의 range가 종료값을 제외(exclusive)하므로, 최댓값을 포함하려면 각각 361, 15001을 지정해야 한다. 결과를 기록할 Excel 파일 경로를 설정한 후, 파일 존재 여부를 확인한다. 파일이 없으면 빈 데이터프레임을 생성하고, 파일이 이미 있으면 불러와 기존 데이터 위에 값을 추가할 준비를 한다. 이렇게 정의된 torque_list, speed_list, 그리고 Data Frame 객체를 기반으로 각 운전점에서 권선 온도가 160 ℃에 도달하는 시간을 계산해 Excel에 기록하는 후속 해석 루프를 수행할 수 있다.
[그림 11] 중첩 루프 해석
[그림 11]은 해석의 메인 내용인 중첩 루프 해석을 실행하는 부분을 나타낸다. 중첩 루프 해석은 torque_list와 speed_list를 기반으로 2중 for문을 순회하면서 모터의 각 운전점(Torque, Speed)에 대한 Lab 및 Thermal 전이 해석 조건을 일괄 설정했다. 먼저 현재 해석 중인 토크와 속도를 출력한다. Lab 모듈의 해석 조건은 SpeedDemand_MotorLAB와 TorqueDemand_MotorLAB 변수에 지정하고, Thermal Coupling 활성화되도록 설정한다. 다음으로 Thermal Transient 해석 옵션을 설정한다. 해석이 권선 온도 제한인 160도에 도달하면 종료되도록 설정한다. 이와 함께 Transient_EndTime 변수를 0으로 초기화하여 아직 계산되지 않았음을 명시했다.
해석 실행 단계에서는 Transient 해석을 시작한다. 최대 60초간 1초 간격으로 Transient_EndTime을 조회하면서 End Time 값이 양수로 설정될 때까지 대기하며, 이때 변수 반환 값이 리스트 형태일 수 있어 첫 번째 요소만 추출한다. End Time 데이터가 도출되기까지 시간 여유를 두어 Output Data Table 생성 완료까지 기다린다. 결과 처리 단계에서는 EndTime 값이 0보다 클 경우 해당 속도·토크 셀에 실수형으로 기록한다. 저장 성공 시 저장 완료 메시지가 플롯되고, 값이 없으면 저장 실패 메시지가 출력된다. 각 루프마다 주기적으로 Excel 파일에 결과를 갱신하며, 모든 반복이 끝난 후에는 전체 해석 완료 및 결과 저장됨으로 종료를 알린다.
[그림 12] 해석 결과 Excel 시트
[그림 12]는 해석 결과 Excel 시트이다. 해석이 완료되면 지정된 경로에 Excel 파일이 저장된다. 저장된 파일 내 셀에는 권선이 160 °C에 도달하는 시간이 기록된다. 육안상 보기 편하도록 End Time 결과를 30 분 이상, 20 ∼ 30 분, 10 ∼ 20 분, 5 분 이하 구간별로 Yellow·Blue·Red·Green 색상으로 구분하였다.
[그림 13] 해석 결과 그래프 플롯
[그림 13]은 [그림 12]의 데이터를 그래프로 표현한 것이다. 도출된 End Time 데이터를 바탕으로 Speed-Torque (TN) 커브를 시간별로 표현 하였다. 그래프의 X축은 모터 속도(rpm), Y축은 토크(Nm)를 나타낸다. 검은색 실선은 최대 출력(150 kW)에서의 이론적 TN 커브이다. 각각의 컬러 커브는 권선이 160 ℃에 도달하는 시간에 따라 분류되었다. 녹색 커브는 5분 이내에 허용 온도에 도달하는 운전 범위를 보여준다. 파란색 커브는 20분 이내에 도달할 때의 TN 성능을 나타낸다. 노란색 커브는 30분 이내 도달 시의 TN 커브이다. 이를 통해 단시간(5 min) 운전 시에는 고속 구간에서도 상대적으로 높은 토크를 유지할 수 있지만, 장시간(20 min, 30 min) 운전할수록 고속 영역에서 허용 온도 한계에 걸려 토크가 급격히 감소함을 확인할 수 있다. 즉, 운전 시간을 고려한 TN 커브를 미리 확보함으로써 냉각 설계 및 운전 전략을 최적화할 수 있다.
본 자료에서는 PyMotorCAD를 활용해 Motor-CAD Lab → Thermal Coupling 해석 과정을 Python 스크립트로 자동화하는 과정을 소개하였다. 반복적인 해석 설정, 실행, 결과 추출 및 저장까지의 전 과정을 코드 기반으로 구현하며, 권선 온도 160°C 제한 조건에서 운전 시간별 TN 커브를 손쉽게 도출함으로써 냉각 설계와 운전 전략 최적화 가능성을 확인한다. 대규모 파라미터 스윕 및 민감도 분석을 안정적으로 수행하여 설계 반복 주기를 획기적으로 단축할 수 있으며, PyMotorCAD를 활용하여 모터 설계의 생산성 향상과 신뢰성 확보를 위한 도구 사용할 수 있다.