automation using python script - ansys koreaansys.kr/uploaded_files/201711201511188565.pdf · 7 ©...

45
1 © 2017 ANSYS, Inc. November 17, 2017 Automation using Python script VBSPython을 이용한 시뮬레이션 자동화 Brandon Kim ANSYS Korea

Upload: lekhue

Post on 15-Apr-2019

358 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

1 © 2017 ANSYS, Inc. November 17, 2017

Automation using Python scriptVBS와 Python을이용한시뮬레이션자동화

Brandon KimANSYS Korea

Page 2: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

2 © 2017 ANSYS, Inc. November 17, 2017

Script란?

• Script 는별도의 compile 과정없이 Window나 Tool 안에서 source code

상태로바로실행가능한프로그래밍언어를말합니다.

• ANSYS는 VBS (Visual Basic Script)와 IronPython Script를지원합니다.

• HFSS, Designer, Q3D, Maxwell, Simplorer와같은전자해석 tool에서

user가수행하는모든작업을사람이알아볼수있는 script code 형태로

저장가능합니다.

• 이렇게저장된 script를편집하거나필요시 GUI를덧붙임으로서

자동화프로그램을제작할수있습니다.

Page 3: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

3 © 2017 ANSYS, Inc. November 17, 2017

Automation Script Process

Script 저장시작

작업수행- Project/Design 추가- 회로/모델 Drawing

- 해석설정및해석- 결과 Plot 및 Export

Script 저장종료

Script 수정및재실행

• 기본적으로자동화 Script code는만드는게아니라저장한후에수정하여사용

• User가선택하고입력하는모든작업과정을 Script로저장할수있음

Page 4: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

4 © 2017 ANSYS, Inc. November 17, 2017

Script 예제 : Series Cap S-para analysis

Script file

• 직렬 cap에대해 S parameter sweep을수행하고,

cap값을변경해가면서 S11 결과를각각 csv

파일로 저장하는예제

Page 5: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

5 © 2017 ANSYS, Inc. November 17, 2017

Recording / Stop Script

• Tools 메뉴에서 Record Script To File을

선택한후각종작업을수행한다음,

다시 Stop Script Recording을선택하면

저장이종료됩니다.

Page 6: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

6 © 2017 ANSYS, Inc. November 17, 2017

VB / Python Script 선택

• Record Script To File 선택후파일형식을선택하는화면에서어떤 language로

script를저장할지선택할수있습니다.

Page 7: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

7 © 2017 ANSYS, Inc. November 17, 2017

Python Vs. VBS

IronPython Visual Basic Script

Interface (GUI) .Net baseMessage box

Input box

External FunctionRead .py, .dll file

are possibleWrite in script file

Hide Source CodeCompile to

DLL, EXE file×

• Visual Basic Script 는 Excel/Word 등과호환성이좋으며, VB6 등을이용하여

초보자도쉽게 GUI를제작할수있다.

• Python은 GUI 제작이 code base로되어있어서다소까다롭지만, Machine

Learning tool과의연계성이나 code의유연성,암호화측면에서유리하다

(현재는 Python이대세)

Page 8: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

8 © 2017 ANSYS, Inc. November 17, 2017

Python code Vs. VBS code (Drawing Box)

VBS

Python

• 두 script code를비교해보면, 비슷한내용인데약간의문법만다를뿐입니다.

• Python 쪽이특징별로줄맞춤이잘되어있어서원하는변수위치를찾기편합니다.

예) Box의 x,y,z 방향크기값

Page 9: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

9 © 2017 ANSYS, Inc. November 17, 2017

저장된 Python Script file

• 저장된 file을열어보면수행된작업을기록한 Python Script를확인할수있습니다.

Page 10: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

10 © 2017 ANSYS, Inc. November 17, 2017

저장된 Script 내용자세히살펴보기

1. 기본선언부및 Project / Design 생성

2. Capacitor 배치

3. Capacitor 값입력

4. Port 추가

5. Linear Analysis Setup 추가

6. 해석수행및 S11 Plot

7. 그래프를 csv 파일로저장

Page 11: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

11 © 2017 ANSYS, Inc. November 17, 2017

1. 기본선언부및 Project / Design 생성 script

공통선언문 (수정불필요)

신규 Project 생성

Circuit Design 추가.

아래두줄은 Circuit design 추가시자동으로해당

design을선택해주고편집모드를시작해주는선언문

Page 12: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

12 © 2017 ANSYS, Inc. November 17, 2017

2. Capacitor 배치 script

Cap이추가된것임을

확인할수있음

Cap이배치된좌표

Page 13: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

13 © 2017 ANSYS, Inc. November 17, 2017

3. Capacitor 값입력 Script

입력된 cap값확인

Page 14: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

14 © 2017 ANSYS, Inc. November 17, 2017

4. Port 추가 Script

Page 15: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

15 © 2017 ANSYS, Inc. November 17, 2017

5. Linear Analysis Setup 추가 Script

Linear Frequency (S파라미터해석) 추가

주파수 sweep 범위및 step

(본예제의경우는 1MHz에서 100MHz 까지 log

scale로 100 point 설정)

다른설정영역으로넘어갈때는자동으로 module 변환줄이추가됨

Page 16: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

16 © 2017 ANSYS, Inc. November 17, 2017

6. 해석수행및 S11 Plot

S11 을지정하여 plot

Page 17: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

17 © 2017 ANSYS, Inc. November 17, 2017

7. 그래프를 csv 파일로저장

저장하고자하는 Plot 이름 저장하려는 folder 위치및파일명

저장된 CSV 파일

Page 18: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

18 © 2017 ANSYS, Inc. November 17, 2017

Script 재실행

• 메뉴의 Tools Run Script를선택하고

저장된 script 파일을선택하면, 저장된

과정이그대로재현되면서 Drawing, 설정,

해석및결과 export까지자동으로수행됨.

Page 19: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

19 © 2017 ANSYS, Inc. November 17, 2017

Script 수정후재실행

Cap값의위치를찾아서 200pF로수정후저장다시 Run Script

Script를다시실행하면자동으로변경된 cap값으로

다시회로를구성하여해석된결과를표시.

Page 20: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

20 © 2017 ANSYS, Inc. November 17, 2017

Script 자동화에앞서

• 앞에서보였던것처럼, user가수행하는각종작업을모두사람이알아볼수

있는 Text 형태의 Script file로저장할수있습니다. (외계어아닙니다)

• 해석결과와무관한 Zoom / Pan 과같은 UI 기능은저장되지않습니다.

(예외적으로 Fit All은저장)

• 각각의 Script line을살펴보면, 중요한입력변수들의위치를알아보기쉽게잘

정리되어있습니다.

• Script를수정하여다른형태의동작을구현하려면, 먼저변경을원하는값을

프로그램변수로만들어주는것이편리합니다.

Page 21: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

21 © 2017 ANSYS, Inc. November 17, 2017

프로그램변수설정하기 변수명과값을숫자로입력

변수를단위와함께 script의해당위치에삽입

• Python은별도의변수선언이필요없으며, 그냥변수명과값만지정하면값의특성에따라

알아서정수형,실수형,문자형중에서지정됩니다.

• 변수를 script에넣을때는단위와함께넣어야하며, 단위(pF)는문자형변수이기때문에이를

합치기위해서는숫자형변수를문자형으로바꾸어주는 str( ) 구문이추가됩니다.

Page 22: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

22 © 2017 ANSYS, Inc. November 17, 2017

반복문(for) 추가하기

C1 값을 100 pF에서 1000pF 까지 100pF

씩증가시켜가면서반복

• For 문을이용하면변수를정해진

범위안에서 sweep하면서구문을반복할

수있습니다.

• Python에서 for문은별도의반복범위

종료선언(next)가없으며, 탭키를

이용하여한칸안쪽으로들어간구문들을

반복하게됩니다. (파란색화살표위치)

Page 23: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

23 © 2017 ANSYS, Inc. November 17, 2017

Export 파일이름자동으로지정하기

• For문영역안에 export 구문을추가하고(tab키이용) 위와같이저장할파일명중간에

변수값을포함하게하면알아보기쉬운파일명을자동으로생성할수있습니다.

Page 24: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

24 © 2017 ANSYS, Inc. November 17, 2017

Lesson 1

1. 해석과정을 script로저장2. Script수정

3. 변수별로해석된결과를

외부파일로각각저장

• 위와같은기본적인 script 활용을통해, user가 tuning하고싶은변수범위의

해석결과를별도의외부파일로자동적으로생성해낼수있습니다.

• 이렇게생성된변수별결과파일들을 Machine Learning Tool의 training data로

사용할수도있습니다.

Page 25: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

25 © 2017 ANSYS, Inc. November 17, 2017

Python Example #2 : Q3D Extractor

1. Create Box 4 duplicate2. Auto Net assign & Simulation Setup3. Analysis & export GC

Page 26: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

26 © 2017 ANSYS, Inc. November 17, 2017

Example #2 : Q3D Python Script

Page 27: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

27 © 2017 ANSYS, Inc. November 17, 2017

Q3D Python Script – Trace (box) 그리기

시작좌표및방향별크기

이름및재질, 색상, 기타설정부

Page 28: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

28 © 2017 ANSYS, Inc. November 17, 2017

Q3D Python Script – Trace 복제하기 (4개)

복제할원본개체

복제방향및거래, 개수

Page 29: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

29 © 2017 ANSYS, Inc. November 17, 2017

Q3D Python Script –해석설정및해석, 데이터추출

Net 자동인식하기

Simulation Setup 설정하기

저장후해석하기

GC 데이터를 CSV 파일로 export 하기

Page 30: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

30 © 2017 ANSYS, Inc. November 17, 2017

Run Script

• 모든 project를닫고저장된 Python script 파일을실행하면동일한작업을재현

• Script 내용만다를뿐, Designer, HFSS, Q3D, Maxwell 등의 ANSYS Tool은모두동일한과정으로자동화가능합니다.

Page 31: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

31 © 2017 ANSYS, Inc. November 17, 2017

Python script –변수추가하기

Trace와길이와폭을변수로추가

변수에기반한모델생성

Page 32: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

32 © 2017 ANSYS, Inc. November 17, 2017

Python Script의수정및재실행

• Script 내의변수값을변경하면서다시 Run script를실행하면변경된값에기반하여재수행

• For 문을통해특정범위로변수를 sweep도가능

• If 문을추가하여조건문으로도생성가능

Page 33: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

33 © 2017 ANSYS, Inc. November 17, 2017

Python Script로자동 export된데이터

• CSV 형태로추출된 capacitance matrix데이터

• 별도의 python code를추가하여결과값으로 Data 처리및분류도가능

예) 여러 cap값중특정 net과 net간의 mutual cap값만지정하여저장

Page 34: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

34 © 2017 ANSYS, Inc. November 17, 2017

다양한변수값에기반한결과파일 export

다양한변수화조건에따라생성된Cap값데이터

Width = 0.4 , Length = 1.3Width = 0.5 , Length = 1Width = 0.5 , Length = 1.5Width = 0.5 , Length = 2Width = 0.7 , Length = 1.8Width = 1, Length = 1.2

Page 35: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

35 © 2017 ANSYS, Inc. November 17, 2017

ML Tool로의적용례

ML

(Tensorflow)

Width = 0.4 , Length = 1.3Width = 0.5 , Length = 1Width = 0.5 , Length = 1.5Width = 0.5 , Length = 2Width = 0.7 , Length = 1.8Width = 1, Length = 1.2

XInput

YOutput

Simulation Tool

• 이러한변수별결과 data를 ML Tool의 Training data set로바로활용가능

Page 36: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

36 © 2017 ANSYS, Inc. November 17, 2017

Siwave R18.2 – Python Script

• Siwave의경우는 R18.2 부터 Python Script가 Help와함께지원됩니다.

• Siwave는 PCB CAD 환경해석특성상 HFSS/Designer/Q3D/Maxwell 등과달리 script

recording 방식이아니며, help를참조로 user가 code를직접제작해야해서약간

더까다롭습니다.

Page 37: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

37 © 2017 ANSYS, Inc. November 17, 2017

자동화 – Visual 환경구축

Via 자동생성 wizard

• VB6 / Visual studio 환경을활용하면, script code에기반한입력용 GUI 제작이

가능합니다.

• 입력창을 UI로구성하고, 실행은 ANSYS script code로구성하면자동으로 tool을

실행하고 Drawing과설정, 해석및결과 plot/export까지예쁘게자동화할수

있습니다.

Page 38: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

38 © 2017 ANSYS, Inc. November 17, 2017

자동화 tool GUI 사례

Coupled line 자동설계/분석 tool(HFSS/Designer용)

전송선로자동분석 tool(HFSS용)

DDR 자동화분석 tool(Siwave/Designer용)

Touch Panel 자동설계/분석 tool(Q3D용)

Touch Panel Linearity 분석 tool(Q3D용) TDR 자동해석기 (Siwave용)

Page 39: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

39 © 2017 ANSYS, Inc. November 17, 2017

Simulation 보조용 tool GUI 사례

Siwave HFSS RLC 소자변환기 GDS import 후 net name 생성기

3D Bonding wire 자동생성기

Solderball 생성기

Page 40: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

40 © 2017 ANSYS, Inc. November 17, 2017

Python – Visual Studio Download

• https://www.visualstudio.com 에서무료다운로드가능

Page 41: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

41 © 2017 ANSYS, Inc. November 17, 2017

Visual Studio Install

• Install 과정에서 Python 개발을선택하고설치합니다.

Page 42: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

42 © 2017 ANSYS, Inc. November 17, 2017

Visual Studio – ANSYS Python Script 환경구성

• ANSYS EM tool이설치된폴더안에들어있는

Python script 관련파일들을등록하여새로운환경을추가합니다.

Page 43: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

43 © 2017 ANSYS, Inc. November 17, 2017

Visual Studio – Python project 만들기

Page 44: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

44 © 2017 ANSYS, Inc. November 17, 2017

ANSYS Python coding in Visual Studio

• 환경을구축하고나면 Visual Studio 안에서 ANSYS tool을 control하는 python code를

제작하고관리할수있으며, GUI coding도가능합니다.

• Window GUI 환경을구축하기에는 VB6 환경이초보자에게는좀더편리합니다.

• Visual Studio에서 TensorFlow와같은 ML tool환경도함께 coding 가능합니다.

Page 45: Automation using Python script - ANSYS Koreaansys.kr/Uploaded_Files/201711201511188565.pdf · 7 © 2017 ANSYS, Inc. November 17, 2017 Python Vs. VBS IronPython Visual Basic Script

45 © 2017 ANSYS, Inc. November 17, 2017

Conclusion

• VBS 또는 Python script를잘활용하면, simulation tool의 Drawing, 설정, 해석및

결과 plot과같은모든동작을 code로구현하여동작시킬수있습니다.

• ANSYS가오래전부터사용해오던 VBS는 Excel/Word와호환성이좋고 GUI 환경

구축이편리하지만, 현재의대세는 Python 이라고할수있습니다.

• 여기에 for문과 if문의조합으로사용자가원하는 logic을구현하면특정변수를

자동으로 sweep하면서결과까지생성해내는자동화해석이가능합니다.

• 추가적으로 GUI coding을수행하면폼나게 Window Program처럼만들어사용할

수도있습니다.

• TensorFlow와같은 python 기반의 Machine Learning tool과연계하여, 외부에서

ANSYS tool을 control하여해석및 data 추출이가능합니다.