Optimization (최적화)

Optimization

Optimization(최적화)는 튜닝보다 한단계 진보된 개념으로서, spec에 맞는 회로변수값을 찾아내는 기능이다. 주어진 변수를 정해진 범위 내에서 계속 바꾸어가면서 그 결과를 목표치와 비교하여 가장 좋은 결과가 나오는 회로값을 골라주는 것이다. 그야말로 사람의 손을 덜면서 spec을 만족하는 prototype을 추출하기 위한 뺑뺑이로서, simulation S/W 기능의 꽃이라 할 수 있다. 이것을 잘만 이용하면 개발기간을 크게 단축할 수도 있다.

 

Optimization의 흐름

일반적인 최적화 적용과정은 다음과 같은 순서에 의존한다.

1. 먼저 최적값을 알아내고자 하는 회로성분 혹은 구조 dimension을 변수로 선정한다. 몇가지의 요소를 변수로 하느냐에 따라 해석 시간이 제곱수로 늘어나므로 잘 trade-off해야 한다. 경우에 따라서는 선정한 변수가 어떠한 범위내의 값을 가질 수 있는지 미리 정한다. 범위가 넓을수록 해석시간은 당연히 늘어난다.

2. 최적화 목표치를 설정한다. 대부분의 RF에서의 최적화 조건은 특정 주파수대역에서 특정 S파라미터가 일정 기준치 이하 혹은 이상이 나오도록 하는 경우가 많다. spec을 자세하게 반영하기 위해서는 다중 목표치를 정할 수도 있으며, 그러한 경우 전체 해석 시간이 다소 늘어나는 경향이 있다.

3. 최적화 방식을 선택한다. 여기서 최적화 방식이 어떠하느냐에 따라 해석 시간에 큰 차이가 발생하는데, 무대뽀로 일정 step으로 수치만 바꾸어가며 해석하는 것은 정말 비효율적인 최적화가 아닐 수 없다. 최적화 방식은 pattern search나 gradient serch, granular 방식 등 여러 가지가 있는데, simulator가 알아서 적합한 방법을 고르도록 설정하는 편이 낫다.

4. 최적화를 실행한다. 수많은 뺑뺑이를 돌고 난 후 가장 적합한 결과를 나타내는 변수값이 화면에 제시될 것이다.

5. 만약 lumped 회로를 사용한 경우라면 design centering을 통해 최적값들을 수렴시킨다.

 

Circuit tool의 Optimization

저주파 고주파를 막론하고 Circuit simulation tool의 생명은 최적화 기능이라는 말이 있을 정도로, 회로해석에서 최적화 기능은 크게 강조된다. 무엇보다 회로해석 자체의 계산시간이 상당히 빠르기 때문에 최적화의 효율이 매우 높다. tool을 제작할 때도 최적화 기능이란 결국 간단한 조건부 routine일 뿐이라서 구현하기도 쉽다.

실제로 많은 RF회로 엔지니어들은 설계하고자 하는 회로의 기본적인 구성을 마친 후, 튜닝 기능으로 각 변수들의 영향을 평가하여 선택하고, 그 변수값들을 spec에 가장 근접한 값을 찾도록 최적화하는 흐름의 설계방식을 주로 따르게 된다. 이것이 가장 효율 높은 RF 회로설계법이라고 할 수 있다.

 

Field tool의 Optimization

최적화 기능에 대해 이해했다면, 어떤 tool이건 간에 최적화 루틴을 프로그래밍 하는  것 자체는 간단한 기술이란 것을 알 수 있을 것이다. 그냥 정해진 변수를 바꾸어가며 해석하고 결과를 확인하는 과정을 되풀이하여 가장 좋은 결과를 내는 변수만 제시해주면 된다. 그러나 2.5D / 3D field simulation은 단 한번의 해석 시간 자체가 오래걸리기 때문에 최적화 자체의 효용성에 많은 의문이 제기되어 왔다.

그러한 시간 문제보다 보다 근본적인 문제가 있는데, 3D 모델의 경우 특정 개체의 크기나 위치를 변경하는 문제가 생각보다 복잡하다는 점이다. 주변 개체와의 관계를 잘 고려하지 않으면 수치변경시에 에러가 나는 경우가 많고, 무엇보다도 mesh structure가 변하기 때문에 target으로 삼고자 했던 결과치의 기준자체가 오락가락하는 경향이 있기 때문이다. 이는 nonlinear mesh를 사용하는 FEM계열에서 더욱 심각하게 나타난다. 그래서 최적화를 적용하기에는 linear mesh를 사용하는 FDTD계열이 더 유리하다는 견해가 많다.

이런 문제를 해결해보기 위해 1997년 Ansoft HFSS에서는 EMpipe라는 외부 모듈을 이용한 최적화를 시도한 바가 있다. EMpipe는 어떤 HFSS 사용자가 최적화를 위해 개발한 것으로서, 특정 3D 구조의 등가회로를 추출하여 그 등가회로를 최적화 한후, 다시 그것을 3D 구조로 만들어주는 방식이었다. 잘 보면 알겠지만, 결국 circuit simulator의 최적화 방식을 잠시 빌린 것 뿐이다. 이것은 결국 등가회로가 잘 추출되는 모델이 아니면 효용성은 전혀 없는, 제약된 편법의 최적화 tool이었다. 이 때문에 결국 Ansoft HFSS는 Empipe를 표준 최적화 tool로 채택하지 않았고, 차후에 HP HFSS가 새로 출범할 때 경쟁성 강화를 위해 EMpipe를 채용했다.

진정한 형태의 3D 최적화는 CST Microwave Studio(MWS)에서 처음 도입되었다고 할 수 있는데, MWS에서는 기본적으로 Circuit tool과 똑같은 방식으로 최적화가 이루어진다. 변수를 지정하고, 목적치를 주면 자신이 알아서 여러가지 수치로 해석을 수행한 후, 최적의 결과치를 제시한다. 물론 회로최적화에 비해 시간은 많이 걸리지만, 원래의 최적화 개념을 그대로 가져왔다는데 큰 의의가 있다. 최적화 결과 또한 내장된 Visual basic을 이용하면 어떠한 형태의 복잡야리꾸리한 최적화 목표치라도 설정할 수 있기 때문에, 오히려 circuit tool보다 약간 더 진보된 최적화를 적용할 수 있다. 또한 질보다 양을 추구하는 육면체 mesh를 기본으로 하기 때문에, 수치변화에 대한 mesh structure의 변화가 미미하여 target 결과값의 변동이 거의 없다.

2000년에 출시된 Ansoft HFSS v7.0에서도 Microwave Studio와 거의 동일한 개념의 최적화 기능이 옵션으로 추가되는 등, 이러한 추세는 다른 field tool에도 확산될 전망이다. 하지만 FEM 이론은 특성상 mesh구조가 변할 때 해석결과 자체가 변동하는 비율이 FDTD계열에 비해 상대적으로 크기 때문에, 사용자가 미리 고려해서 mesh구조를 안정화시킬 필요가 있다. 그리고 2.5D tool은 3D보다 상대적으로 최적화 구현이 쉬움에도 불구하고, 아직은 최적화 기능추가에 대한 배려가 미미한 편이다.

 

Optimization의 딜레마와 Design centering

 아마 초심자의 경우라면 최적화 기능이 매우 환상적인 기능이며, 최적화를 이용하면 모든 회로/구조 설계가 간편하게 자동화될 것처럼 보일 수 있다. 그러나 실제는 그렇지만은 않다.

첫째, 최적화를 이루고 나면 한가지 의문이 생길 수 있다. 주어진 목적치를 만족시키는 회로변수값은 과연 최종 결과로 제시된 하나의 값뿐일까? 다시 말해서, target으로 정해준 spec결과를 만족하는 회로/구조변수값이 여러 개가 존재할 수 있다는 의미이다. 이것은 최적화 자체가 가지는 가장 큰 딜레마 중 하나이지만, 대부분의 사용자는 심각한 고민을 하기 보다는 대략 S/W가 알아서 제시해준 하나의 값을 따르게 된다. ADS처럼 아예 목적치를 만족시키는 여러 종류의 최적화된 parameter sample을 한꺼번에 와르르 보여주는 경우도 있다. 이러한 경우에는 또 어느 값을 골라야 하느냐의 새로운 고민이 생긴다.

둘째, 회로성분을 최적화하는 경우, 특히 RLC 소자값을 최적화할 때 결정적인 문제점이 나타난다. 최적화로 제시된 RLC 값이 실제 존재하기 어려운 단일소자값을 제시하는 경우이다. 예를 들어 목적치를 만족하는 L소자 변수값으로 17.982nH가 제시 되었다면, 어디에 가서 그런 애매한 값의 소자를 구해올 수 있을까? 물론 여러 inductor를 병렬직렬 합성으로 비슷하게 만들 수는 있지만, 대부분은 대충 비슷한 값의 소자를 하나 구해서 사용하게 된다. 심한 경우 비슷한 레벨값의 소자가 없을 수도 있으니, 이것참 머리아픈 문제가 아닐 수 없다. 만약 이것이 microstrip type의 distributed 소자의 형태라면 폭이나 길이 등을 조정하면 되니까 오히려 문제는 간단하지만, RLC lumped 소자를 써야할 때 또하나의 딜레마로 작용한다.

이런 문제점들을 해결하기 위해 대부분의 circuit simulator에는 최적화의 보조도구로서 Design centering이라는 기능이 내장되어 있다. 이러한 비현실적인 최적화 변수값들을 사용자가 정해준 범위내의 합리적인 수치들로 수렴시켜주는 기능이다. 100% 해결되진 않지만, 상당히 도움이 된다.

Design centering은 단순히 실제적인 소자값으로 수렴시키는 것은 물론, 소자값들의 종류를 최소화하는데도 좋은 역할을 한다. 예를 들어 inductor가 5개, Capacitor가 5개가 필요한 회로에서 모든 소자를 최적화시키면 10개의 소자값이 각각 다르게 나올 수 있다. 당연히 생산성에서 비효율적이기 때문에 가급적이면 2~4개 정도의 소자값들의 구성으로 최적화가 된다면 금상첨화일 것이다.

  << Back

Copyright by RF designhouse. All rights reserved.