글│대럴 A. 티가든(Darrell A. Teegarden)
시스템 모델링 및 분석 사업부 이사
멘토 그래픽스 코오퍼레이션
현재 차량 설계의 기술적 과제는 10여 년 전에 통신산업에서 경험했던 바와 유사하다. 하이브리드 및 연료전지 자동차 개발과 같은 새로운 기술은 휴대폰이 멀티미디어 기기로 진화하는 과정에서 우리가 경험했던 것과 마찬가지로 차량 연구개발(R&D) 활동의 중심이 되고 있다. 통신산업이 전력 및 칩 크기의 제한에 직면했던 것과 동일한 방식으로 차량 설계자들은 보다 많은 기술들을 포함시키도록 압박을 받고 있다.
전기, 전자, 기계, 하드웨어 및 소프트웨어 컴포넌트와 이들을 연결하는 네트워크 시스템은 한층 높은 수준으로 차량 내에 조밀하게 존재하고 있다. 새로운 애플리케이션의 정밀성과 복잡성을 제어하기 위해 시스템 전반에 분산되어 있는 ECU(electronic control unit)의 수가 한층 증가함에 따라 현재 40%를 차지하는 차량 내 전자기기 역시 크게 증가하고 있다. ECU는 수백 개의 소프트웨어 컴포넌트를 포함할 수 있고, 시스템 간의 멀티플렉싱은 급속히 증가하고 있으며 통신 요건들은 점진적으로 확대되고 있다. 따라서 시스템 통합 단계에서 종종 병목현상이 발생하곤 한다. 데이터는 각기 다른 내부 소스로부터 제공되고 ECU는 다양한 회사로부터 제공되며, 각기 다른 ECU로부터 제공되는 알고리즘이 동기화되어야 하는 분산 시스템의 특성으로 인해 상당한 조정이 필요하다.
일반적인 시스템 설계는 기능과 성능에 대해 끊임없이 증가하는 요구를 수용하기 위해 전체 크기가 증가하고 있다. 따라서 아날로그 및 디지털 하드웨어 뿐만 아니라, 이를 제어하는 소프트웨어 등을 유연하게 통합해야 한다. 성공적으로 컴포넌트와 같은 시스템의 구성요소를 통합하고 서로 정확하게 동작하는지를 검증하기 위해서는 상당한 시간, 비용, 그리고 엔지니어링 리소스가 필요하다는 사실이 확인됐다. 이와 동시에 개발주기를 단축하고자 하는 압력이 증가하고 있다.
이러한 새로운 현실들에 뒤쳐지지 않기 위해서는 새로운 프로세스 및 개발 툴이 필요하다. 특히 복잡한 시스템의 개발과 한때 사치스러운 것으로 간주되었던 컴퓨터 모델의 현명한 사용이 전체 개발과정에서 중요해지고 있다.
컴퓨터 시뮬레이션을 이용한 설계 프로세스의 개선
컴퓨터 시뮬레이션(또는 “시뮬레이션”)은 일반적으로 시스템 내의 특정 측면에 관계된 설계에 있어서 이를 자동화하기 위한 툴로서 인식되고 있다. 시스템 모델을 분석하기 위한 전문 알고리즘을 사용함으로써 새로운 설계에 대하여 개념으로부터 구현에 이르기까지 성공적으로 검증할 수 있다. 설계 초기 단계에서 이를 채택하는 경우, 시뮬레이션은 시스템을 조정하여 최적화할 수 있는 환경을 제공하며, 모든 하드웨어가 준비되기 전에 중요한 통찰을 얻을 수 있도록 해준다. 여러 가지 이유로 유용하지만, 시뮬레이션의 가장 분명한 사용 목적은 아마도 실제 시스템에서 의도하지 않은 동작 혹은 고장 등으로 인한 위험을 사전에 최소화시키기 위해 시스템 모델을 “가상 테스트” 하는 것이다.
시스템 모델을 개발하기 위해서는 대개 복수의 컴포넌트 기능을 단일 컴포넌트 모델에 통합하는 것이 가능할지라도, 실제 시스템의 각 컴포넌트는 이에 상응하는 “컴포넌트 모델”을 가지고 있어야 한다. 전체 시스템 모델을 개발하기 위해서는 각 컴포넌트 모델을 이에 대응하는 물리적 부품과 동일하게 서로 연결한다. 따라서 모든 컴퓨터 시뮬레이션의 중심에 있는 것은 컴포넌트 모델이다. 다시 말해 모델 자체를 개발하는 “기술”과 필요 대상을 모델링하고 그 이유를 정확하게 파악하는 “기술”은 성공적인 시뮬레이션에 있어서 핵심요소이다.
컴포넌트 모델로부터 전체 시스템 모델을 개발하기 위해서 각 컴포넌트 모델에 상응하는 그래픽 심볼을 생성하고 회로도를 생성할 수 있는 그래픽 에디터를 통해 각각의 심볼 핀을 상호 연결할 수 있다. 혹은 텍스트 에디터를 통해 넷리스트(netlist) 및 테스트벤치(testbench)를 생성하여 회로도 생성을 위한 그래픽 에디터 없이 시스템 모델을 구축할 수도 있다. 다음 단계는 필요에 따라 각 컴포넌트 모델에 파라미터를 설정하는 것이다. 예를 들자면, 일반화된 모터 모델에 명시적 파라미터를 설정해 특정 타입의 모터로 동작하는 모델을 생성할 수 있다.
전체 시스템 성능을 결정하기 위해서 완성된 시스템 모델을 통해 다양한 시뮬레이션을 수행할 수 있다. 실제 시스템을 디버깅하기 위해서 설계 프로세스 내에서 혹은 이후에 다양한 시뮬레이션을 수행할 수도 있다. 타임-도메인 뿐만 아니라, 통계분석에 대한 사례 결과물을 그림 1에 나타냈다.
그림 1은 시뮬레이션 기반 “가상 테스트”를 통해 기본 시스템 기능을 테스트하는데 사용할 수 있는 방법을 설명하고 있다. 그림의 위쪽 좌측 분면에 혼합-아날로그/디지털 파형으로 나타냈다. 또한 몬테 카를로 분석(Monte Carlo analysis)을 수행하여 다양한 컴포넌트 파라미터에 대한 성능 측정값을 상호연관 지을 수 있도록 산포도와 히스토그램을 생성함으로써 가상 테스트를 다음 수준으로 이동시킬 수 있는 방법도 제시하고 있다. 이를 그림의 위쪽 우측과 아래쪽 좌측 분면에 나타냈다. 마지막으로 민감도 분석을 통해 특정 컴포넌트에 대한 다양한 성능 측정값의 민감도를 결정할 수 있으며, 그 결과를 그림의 아래쪽 우측 분면에 나타냈다. 시스템 모델을 개발하면 이러한 모든 분석을 활용할 수 있다.
다음의 가능한 단계는 시스템의 최종 물리적 구현을 설명하기 위해서 다양한 컴포넌트 모델을 “업그레이드”하는 것을 고려하는 것이다. 토폴로지 구성을 결정한 후에, 이를 실제 설계로 구현할 것인지 혹은 향후 구현될 물리적 시스템의 위험요소를 줄이기 위해 시스템 모델의 값을 보다 더 증가시킬 것인지를 선택해야 한다. 하지만 이 모두를 동시에 수행할 수도 있다.
전체 시스템 편차를 모델링함으로써 설계자들이 시스템을 희생하여 컴포넌트를 최적화하는 것을 방지할 수 있다. 예를 들어 1개의 컴포넌트 비용을 줄이는 파급효과가 공차를 완화시켜 전체 시스템 편차를 보상하는 데 궁극적으로 보다 높은 비용을 투입하게 할 수 있다. 이때 이를 보상하기 위해서 또 다른 컴포넌트를 조정해야 할 수도 있다. 이같은 영향을 이해함으로써 이러한 변화를 되돌릴 수 없기 전에 방지할 수 있다.
사용 가능한 시스템 모델을 통해 “what-if” 트레이드오프를 수행할 수 있으며, 컴포넌트 공차의 함수로서 성능을 결정할 수 있으며 다른 많은 분석들을 수행할 수 있다. 이것이 모델 개발 노력의 대가다. 따라서 시스템 모델을 통해 실제 하드웨어를 구축하기 전에 모든 설계 문제들을 예상하고 사전에 이를 해결할 수 있다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>