콘텐츠로 건너뛰기
Home » PyAEDT를 사용하여 HFSS에서 Chaff 시뮬레이션 Part 1

PyAEDT를 사용하여 HFSS에서 Chaff 시뮬레이션 Part 1

 

이번 포스팅에서는 Ansys의 강력한 Python 라이브러리인 PyAEDT를 사용해 HFSS(High-Frequency Structure Simulator)에서 Chaff(차프) 모델링을 구현하는 방법을 소개합니다.

 

그림 1. PyAEDT

 

 PyAEDT는 PyAnsys의 주요 라이브러리 중 하나로 Ansys Electronics Desktop(AEDT)의 Python 인터페이스입니다.

전자기 시뮬레이션 소프트웨어(예: HFSS, Maxwell 등등)를 프로그래밍적으로 제어합니다. 이를 통해 시뮬레이션과 결과의 후처리를 자동으로 수행할 수 있습니다.

 

사용 준비
  1. Ansys Electronics Desktop: PyAEDT는 AEDT(Ansys Electronics Desktop) 기반으로 작동합니다. 최신 버전의 Ansys가 설치되어 있어야 합니다.
  2. Python 환경: Python 3.7 이상 권장.
  3. PyAEDT 설치: 아래 명령어로 PyAEDT를 설치하세요.
    pip install pyaedt

 

PyAEDT으로 HFSS에서 Chaff 모델링 과정

 PyAEDT를 사용해 Chaff를 모델링하는 단계별 코드를 설명드리겠습니다.

 

 

1.PyAEDT 환경 설정

 

import os

import tempfile

import numpy as np

import ansys.aedt.core

 

PyAEDT 모듈과 후에 사용될 기능들을 설정합니다.

AEDT_VERSION = “2024.2”

NUM_CORES = 8

NG_MODE = False

 

AEDT_VERSION: 사용 중인 AEDT 버전

NUM_CORES: 사용할 CPU 코어 수

NG_MODE: False이면 AEDT의 그래픽 UI를 띄우고, True이면 비그래픽(non-graphical) 모드로 실행됩니다.

 

 

2. 임시 폴더 생성 및 프로젝트 초기화


custom_path = “C:/Users/MOA/Desktop/blog/Chaff”

temp_folder = tempfile.TemporaryDirectory(suffix=”.ansys”, dir=custom_path)

project_name = os.path.join(temp_folder.name, “Chaff.aedt”)

custom_path: 프로젝트를 저장할 기본 경로

tempfile.TemporaryDirectory: 지정된 경로(custom_path)에 임시 디렉토리를 생성

project_name: 생성된 임시 디렉토리에 프로젝트 파일 이름을 추가합니다.

 

3.HFSS 객체 생성

hfss = ansys.aedt.core.Hfss(

    project=project_name,

    design=”Ansys”,

    solution_type=”SBR+”,

    version=AEDT_VERSION,

    new_desktop=True,

    non_graphical=NG_MODE)

 

project: 프로젝트 파일 이름

design: 디자인 이름

solution_type: 시뮬레이션 타입. “SBR+”는 레이더와 관련된 시뮬레이션에 사용됩니다

version: AEDT 버전

new_desktop: 새로운 AEDT 인스턴스를 실행

non_graphical: 비그래픽 모드 여부

 

4.Chaff 생성 매개변수 정의

num_chaffs = 100

length = 30

radius = length / 1000

x_range = (-100, 100)

y_range = (-100, 100)

z_range = (-100, 100)

 

num_chaffs: 생성할 Chaff 개수

length: Chaff의 길이

radius: Chaff의 반경

x_range, y_range, z_range: Chaff가 배치될 3D 공간 범위

 

5.Chaff 생성 및 무작위 배치

chaffs = []

for i in range(num_chaffs):

    x = np.random.uniform(*x_range)

    y = np.random.uniform(*y_range)

    z = np.random.uniform(*z_range)

    theta = np.random.uniform(0, 360)

    phi = np.random.uniform(0, 360)

 

np.random.uniform(*x_range): 범위 내에서 무작위 값을 생성

theta, phi: Chaff의 무작위 회전 각도

 

chaff = hfss.modeler.create_cylinder(

    origin=[x, y, z],

    orientation=”Z”,

    radius=radius,

    height=length,

    name=f”Chaff_{i}”,

    material=”aluminum”,

    color=”Red”,

    transparency=0)

 

hfss.modeler.create_cylinder: Chaff를 원통으로 생성

origin: 원통의 중심 좌표

orientation: Z축 방향으로 원통을 생성

radius: 원통의 반경

height: 원통의 높이

name: 생성된 Chaff의 이름

material: 재질 (알루미늄)

color: 원통 색상 (빨간색)

transparency: 투명도 (0은 불투명)

 

hfss.modeler.rotate(chaff, cs_axis=”X”, angle=theta)

hfss.modeler.rotate(chaff, cs_axis=”Z”, angle=phi)

 

생성된 Chaff를 X축과 Z축을 기준으로 각각 회전

 

6.프로젝트 저장 및 정리

hfss.save_project(project_file=”C:/Users/MOA/Desktop/blog/Chaff/Chaff.aedt”)

hfss.release_desktop()

temp_folder.cleanup()

 

hfss.save_project: 지정된 경로에 프로젝트 파일을 저장

hfss.release_desktop: AEDT를 닫아 리소스를 해제

temp_folder.cleanup: 임시 디렉토리를 삭제

 

 

최종 결과

그림 2. HFSS에 생성된 Chaff 모델

 

 위 코드를 사용하면 Chaff 100개를 무작위 위치와 방향으로 3D 공간에 생성하고, 이를 AEDT 프로젝트 파일로 저장합니다.

이렇게 PyAEDT를 사용하여 쉽고 빠르게 Chaff 모델링을 만들어 보았습니다. 다음 Part에서는 이러한 Chaff 모델링을 사용하여 자동으로 시뮬레이션을 진행하고 결과를 확인하는 PyAEDT 작성을 설명하겠습니다.

 

관련 문의: 02-6945-2156Contact us – (주)모아소프트

Send us a message!

앞선 품질, 끊임없는 도전, 정직한 기술로 함께합니다.
문의 글을 작성해 주시면, 담당자 확인 후 빠르게 연락드립니다.

대표전화: (+82)02-420-3203

FAX: (+82)02-407-3511

05770 서울특별시 송파구 오금로 422, 연암빌딩 4F~6F




FAMILY SITE

advanced-floating-content-close-btn