주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

결함 모델링 및 시뮬레이션 시 모범 사례 활용

모델 컴파일 및 시뮬레이션 과정에서 일부 결함 모델링 관행은 문제없이 실행되는 모델에 오류를 유발할 수 있습니다. 또한 신호에 결함이 있는 경우 신호의 속성을 변경하면 시뮬레이션 오류가 발생할 수 있습니다. 다음과 같은 모범 사례를 적용하여 몇 가지 일반적인 문제를 해결하십시오.

결함 동작의 데이터 유형을 데이터 소스와 일치시키기

Fault InportFault Data Inport 블록이 반환하는 신호 소스의 데이터 유형은 결함 동작에서 블록이 사용하는 데이터 유형과 일치해야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다. 취하는 조치는 내장된 결함 동작을 추가하는지 사용자 정의 결함 동작을 추가하는지에 따라 달라집니다:

  • 내장된 동작 — 결함 동작을 추가하기 전에 모델을 업데이트하십시오. 결함 및 해당 동작을 추가할 때, Simulink® Fault Analyzer™는 결함 동작 내 블록에서 사용되는 데이터 유형을 데이터 소스와 일치시키려 시도합니다.

  • 사용자 정의 동작 — 데이터 소스와 일치하도록 블록의 데이터 유형을 수동으로 설정해야 합니다. 데이터 유형 표시 방법에 대한 자세한 내용은 Port Data Types를 참조하십시오.

저장 결함 및 조건문

모델과 연관된 첫 번째 결함, 결함 모델 또는 조건을 생성할 때, Simulink Fault Analyzer은 해당 정보를 결함 정보 파일에 자동으로 저장합니다. 속성을 업데이트하거나 추가적인 결함, 결함 동작 또는 조건문을 생성하는 경우, 결함 정보를 저장하려면 모델을 저장해야 합니다. 이러한 아티팩트에 변경 사항을 적용한 후 저장하지 않고 모델을 닫으려고 하면, Simulink는 모델을 닫기 전에 결함 모델과 결함 정보 파일을 저장할 수 있는 대화 상자를 표시합니다.

결함 정보 파일, 결함 모델 및 결함이 포함된 모델을 저장하려면, 결함 분석기 탭의 파일 섹션에서 모두 저장을 클릭하십시오. 결함이 포함된 모델을 저장하지 않고 결함 정보 파일과 결함 모델을 저장하려면, 모두 저장을 확장한 후 결함 아티팩트만 저장을 클릭하십시오.

결함으로부터의 신호 기록하기

결함이 발생한 블록 출력에서 신호를 기록하면, 해당 로그는 결함 발생 전의 신호 데이터를 반환합니다. 아이콘 순서는 평가 순서를 나타냅니다. 예를 들어, 이 모델의 신호 로그에서는 결함 동작 없이 Sine Wave 블록의 출력을 가져옵니다.

A model with a logged signal that has a fault. The log and the fault are on the output port of a Sine Wave block. The log icon is to the left of the fault badge on the signal.

결함 발생 후 신호 값을 기록하려면, 결함 동작 내 Fault Outport 블록으로 입력되는 신호 값을 기록하거나, 결함 발생 지점 하류에 위치한 다른 블록의 출력 포트 데이터를 기록하십시오.

버스에 결함 추가

가상 버스에서는 결함을 시뮬레이션할 수 없습니다. 그러나 가상 버스가 아닌 버스에 결함을 추가하고 시뮬레이션할 수 있습니다. 예를 들어, 이 모델은 가상 버스를 출력하는 Bus Creator 블록을 사용합니다.

This example shows a model with virtual buses. You cannot add faults to the Bus Creator block output ports of this model.

가상 버스 중 하나에 결함을 추가하면 모델 컴파일 중에 오류가 발생합니다.

반면, 이 모델은 비가상 버스에서 결함이 발생합니다. 이 모델을 시뮬레이션할 수 있습니다.

This example shows a model with nonvirtual buses. The Bus Creator block uses

가상 버스를 비가상 버스로 변환할 수 있습니다. 자세한 내용은 Convert Virtual Bus to Nonvirtual Bus 항목을 참조하십시오.

결함 모델링 시 비가상 신호를 가상 신호로 변경하지 마십시오. 비가상 버스에 결함을 추가하고 결함 신호를 가상으로 변경하면 모델 컴파일 시 오류가 발생합니다.

버스 요소에 결함 추가

버스에 추가된 결함은 각 버스 요소에 주입됩니다. 개별 신호를 결함 처리하려면, 결함 동작에 Bus Selector 블록을 사용하여 Fault Inport 블록의 신호를 분할하고, 버스 요소에 동작을 적용한 후, Bus Creator 블록으로 재결합하십시오. 예를 들어, 이 결함 동작은 버스 요소들을 재결합하기 전에 각각에 오프셋을 적용합니다.

An example fault behavior. The bus has three elements, which are separated, and each one is offset, before it is recombined into a bus. The output bus must be nonvirtual.

호환 가능한 출력 신호와 입력 신호를 정의하려면, Bus Creator 블록에서 생성된 신호를 결함으로 전송되는 동일한 버스에 할당하십시오.

개별 버스 요소에 결함을 적용하지 않는 경우, 결함 동작에 사용하는 블록은 버스를 지원해야 합니다. Bus-Capable Blocks 항목을 참조하십시오. 이 상황에서는 기본 결함 라이브러리인 mwfaultlib의 "stuck-at-ground" 결함 동작만 사용할 수 있습니다. 사용자 정의 동작 생성 방법에 대한 자세한 내용은 미리 정의된 결함 동작 및 사용자 정의 결함 동작 생성를 참조하십시오.

호환되지 않는 신호 데이터 유형 또는 호환되지 않는 데이터 유형의 별칭을 사용하면 시뮬레이션 오류가 발생합니다.

결함 주입의 한계

결함이 포함된 모델을 시뮬레이션할 때는 가능한 시뮬레이션 오류 및 불일치를 방지하기 위해 다음 지침을 따르십시오:

  • 빠른 재시작은 Simscape™ 블록에 결함이 있는 모델에만 사용할 수 있습니다.

  • 액셀러레이터 모드 또는 고속 액셀러레이터 모드는 Simscape 블록에 결함이 있는 모델에서만 사용할 수 있습니다.

  • 가상 블록은 입력 및 출력 포트에서만 결함 처리를 지원합니다.

  • 아토믹 서브시스템은 InportOutport 블록에 대응하는 포트에서만 결함을 지원합니다.

  • 중복된 Inport 블록에 결함을 추가할 수 없습니다.

  • 연속 신호에 결함을 추가하면, 해당 신호는 이산 샘플 시간을 가진 블록으로 입력되어야 합니다. 샘플 시간에 대한 자세한 내용은 샘플 시간이란?를 참조하십시오.

  • 가변 크기 신호에 대한 결함 시뮬레이션을 수행할 수 없습니다.

  • 상수 샘플링 시간을 갖는 신호에 대한 결함 시뮬레이션을 수행할 수 없습니다.

  • export-function 모델 또는 동시 실행 모델의 최상위 레벨 신호에 대한 결함 시뮬레이션을 수행할 수 없습니다. 그러나 참조 모델 또는 해당 모델 내의 아토믹 서브시스템에서 신호에 대한 결함을 시뮬레이션할 수 있습니다.

  • Fault Subsystem 블록에서 사용하는 블록들은 상속된 샘플 시간 또는 상수 샘플 시간을 가져야 합니다.

  • 결함은 조건 평가 전에 할당된 조건부 트리거의 상태를 평가합니다. 결과적으로, 결함은 조건부 상태가 변경되는 시간 스텝 다음의 시간 스텝에서 트리거됩니다.

참고 항목

도움말 항목