Meets ISO 26262/IEC 61508 Functional Safety Standards Using SCODE Workbench
SCODE Workbench 이용 기능안전성 충족
완전하고, 간결하며 정확한 시스템 설계
2020년 11월호 지면기사  / 글|ETAS


SCODE Workbench: 제어 시스템의 복잡성을 완전히 이해하기 위한 SCODE-ANALYZER + SCODE-CONGRA. 이미지는 제품 이해를 돕기 위한 Simulink의 화면. 


SCODE-ANALYZER: 테스트 이전 단계서부터
function 개발의 오류를 검증  


HVAC(Heating Ventilation and Air-Conditioning) 시스템을 제어하는 소프트웨어를 개발한다고 가정해보자. 설계 단계에서 ‘전원 스위치는 꺼지고 히터는 작동 중'인 경우를 고려할 확률은 얼마나 될까? SCODE-ANALYZER는 function 개발자가 [Problem Space]에 기반하여 수학적으로 가능한 모든 state 조합을 포함하도록 도와준다. 동일한 데이터 흐름의 조합으로 [Mode]를 정의하여 미처 포함되지 않은 조합까지 표시해준다. 이는 SCODE-ANALYZER 툴을 활용해 개발자가 매뉴얼 하게 하는 작업이므로 한 번의 클릭으로는 불가하지만, 일단 [Mode]가 정의되면 [Decision Tree]는 자동으로 생성이 된다. [Mode] 간의 전환이 중단되지 않는다면 [Mode Transition matrix]도 자동으로 생성된다. 이 두 경우 모두 [Problem Space]를 통해 생성된 간결한 시스템으로, 수학적으로 중복 없는 완성도 100%의 시스템 설계를 보장한다.

설계된 시스템의 state machine은 Matlab/Simulink m-코드 블록, S-Function, C코드, ESDL (이타스 제품에 사용되는 Embedded Software Design Language: ASCET)의 제어 흐름(control-flow) 모델 또는 코드로 자동 생성된다. 새로운 시스템을 위해 [Problem Space]의 일부를 변경할 경우 기존 입력 값들은 모두 재사용할 수 있다.



[Finger Prints]는 256비트 해시(Hash) 값으로 state machine의 로직 설계 모델에 포함되어 있어, ECU에 사용될 코드의 [Finger Prints] 값이 설계 모델과 일치하는지 여부를 확인할 수 있다. 구현(Implementation) 전/후에 이뤄진 로직 설계의 변경은 모두 테스트를 수행 이전에 확인할 수 있다. 일치하는 경우, 로직을 테스트할 필요가 없고 ECU에서의 작동만 테스트하면 된다. 만약 일치하지 않는다면, 구현 중에 로직 설계의 변경이 있었다는 의미이므로 ECU에서 테스트 이전에 이 변경 사항을 먼저 확인해야 한다. [Finger Prints]는 ECU의 양산 코드에서 삭제할 수 있다.


SCODE-CONGRA: 
방정식을 직접 계산할 필요가 없다


시스템 설계에서 동시 발생하는 복잡한 적분 상태 방정식을 사용한다고 가정해보자. 
먼저 필요한 값을 계산하기 위해서는 방정식을 풀어야 한다. SCODE-CONGRA에는 CAS(Computer Algebraic Solver)가 있어, 일반적이지 않는 방정식을 해석할 수 있다. 따라서 방정식을 직접 계산할 필요가 없다. SCODE-CONGRA에서 구하고자 하는 변수를 수동으로 지정하면 어떤 변수를 알아야 하는지 자동으로 알려준다. 개발자가 해당 변수를 입력 또는 파라미터로 설정하면 구하고자 하는 변수에 대한 모든 솔루션이 Matlab/Simulink m-코드 블록, S-function, FMU, C코드 및 ESDL 코드의 모델로 자동 생성된다. 

SCODE-CONGRA에서 모든 방정식은 그래픽으로 표현되어(아래 그림), 연립방정식을 더 쉽게 이해할 수 있다. 모든 기존 입력 값들은 SCODE-CONGRA의 방정식만 변경해도 재사용할 수 있다.





임베디드 코드의 경우, 적분은 반드시 분리되어야 한다. Implicit Euler는 시간차가 큰 경우 Explicit Euler보다 안정성이 나을 수 있지만, 대수 루프는 항상 발생한다. SCODE-CONGRA는 시간 적분을 위해 Implicit Euler의 대수 루프를 자동으로 풀 수 있다. [Sensitivity analysis]는 방정식의 모든 입력 및 파라미터에 대한 편미분을 기반으로 어떤 입력값 또는 파라미터가 출력값에 가장 중요한 영향을 미치는지 알려준다. 이는 초보 엔지니어도 캘리브레이션 작업을 쉽게 할 수 있도록 도와준다.

[Numerical error] 추정 function은 구현 후 ECU 임베디드 코드에서 사용할 수 있다. 테스트를 수행하기 전에 계산 정확도가 충분치 못한 부분은 테스트 수행 전에 파악할 수 있다. 오류가 허용치를 초과하는 경우에는, 테스트 수행 전에 요구되는 정확도에 맞게 오류를 수정하면 된다. [Numerical error] 추정 function은 ECU 생산 코드에서 삭제할 수 있다.



<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>

PDF 원문보기

본 기사의 전문은 PDF문서로 제공합니다. (로그인필요)
다운로드한 PDF문서를 웹사이트, 카페, 블로그등을 통해 재배포하는 것을 금합니다. (비상업적 용도 포함)

  • 100자평 쓰기
  • 로그인



TOP