Main Content

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

모델링에 SimulinkStateflow 사용

Stateflow®를 사용하는 경우 입력, 출력 및 구조화에 Simulink®가 필요합니다. Stateflow만으로도 다양한 수식 처리를 수행할 수 있습니다. Simulink를 사용할 때 Switch Case 블록을 사용하는 등의 방법을 통해 복잡한 상태 변수를 구현할 수 있습니다.

Simulink 또는 Stateflow 중 하나를 사용하여 제어의 특정 부분을 모델링할 수 있지만 개발 워크플로우에서 두 제품 중 하나를 적용하는 것은 기본 알고리즘에 대한 사용자의 이해를 기반으로 하며 궁극적으로 어떤 도구가 가장 적합한지 결정하기 위해 조직에 전달됩니다. 그들의 필요에 적합합니다. 디자인에 Simulink 또는 Stateflow를 사용해야 할지 결정하는 것은 작업에 따라 여러 사람들이 결정해야 합니다. Stateflow의 구현이 상태 천이를 사용하여 수행되는지 아니면 순서도를 사용하여 수행되는지 여부도 지정해야 합니다.

대부분의 경우 Stateflow는 RAM 측면에서 효율성이 떨어집니다. 따라서 Simulink는 간단한 수식을 사용하는 계산에 유리합니다. 또한, 간단한 플립플롭과 Relay 블록으로 상태변수를 동작시키는 상황에서는 Simulink가 더 유리합니다. 프로젝트에서 Simulink 또는 Stateflow 사용 여부를 평가할 때 다음 항목을 고려해야 합니다.

  • RAM 증가: Stateflow 입력, 출력 및 내부 변수의 시각화를 위해 항상 RAM을 사용할 수 있어야 합니다.

  • 방정식 오류 처리: 일반적인 계산 공식이 내부적으로 사용될 때 사용자는 오버플로를 방지하는 방법을 설계합니다.

  • 분할 및 분리 기능: Stateflow 외부에서 Simulink를 사용하여 계산을 수행할 때 분할될 가능성이 있어 가독성이 떨어집니다. 가독성이 향상되는 경우도 있습니다. 이는 판단하기 어려울 수 있습니다.

코드에 가까운 최적의 표현을 위해 Stateflow가 Simulink보다 효율적인 코드를 갖는 경우도 있지만 대부분 이해하기 어려운 모델이 됩니다. 코드가 이미 존재하는 경우 Stateflow 모델링 대신 S-function을 사용하는 것이 더 유리합니다. Stateflow는 특정 배열이 지정된 계산이나 for-loop를 사용한 계산을 Simulink보다 효율적으로 기록할 수 있지만 최근에는 설명에 MATLAB® 언어를 사용하는 것이 편리해졌습니다. 필요한 경우 모델링에 MATLAB 언어 사용을 고려하세요.

Stateflow 모델의 경우 아래 설명과 같이 상태를 처리할 때 이를 상태 천이로 설명하여 가독성이 향상됩니다.

  • 동일한 입력에 대해 다른 출력 값이 출력됩니다.

  • 여러 상태가 존재합니다(참고로 3개 이상).

  • 단순한 숫자가 아닌 의미 있는 이름을 가진 상태입니다.

  • 상태 내부에서는 초기화(첫 번째)와 during 실행(두 번째 이후) 차별화가 필요합니다.

예를 들어, 플립플롭 회로에서는 입력에 대해 서로 다른 값이 출력됩니다. 상태 변수는 0과 1로 제한됩니다. 그러나 단순히 부울 유형 번호를 유지하는 것만으로는 각 상태에 의미 있는 이름을 추가할 수 없습니다. 또한 상태 내에서는 초기화와 실행 사이에 차이가 없습니다. 따라서 위의 4개 중 하나의 플립플롭만 적용되므로 Simulink가 더 유리합니다.

Stateflow에서는 상태로 표현될 수 있는 상황을 상태 상태로 구현하고, 상태가 아닌 조건 분기를 흐름도로 구현합니다. 진리표는 조건부 분기 구현 방법으로 분류됩니다. Stateflow를 사용하여 상태를 상태 상태로 설계할 때 제어 시스템의 내장 마이크로 컨트롤러에 소프트웨어로 구현되도록 상태 머신 유형으로 Classic를 선택해야 합니다.

HDL Coder™는 Stateflow에서 지원됩니다. HDL Coder를 사용하는 경우 Mealy 또는 Moore를 선택해야 합니다. Moore 모드는 내부 전기 누출에 대한 보호가 필요할 때 더 적합합니다.

참고

HDL Coder 사용 사례는 이 지침에 설명되어 있지 않습니다.

Simulink 기능

이 섹션에서는 모델링에 Simulink를 사용하는 방법에 대한 정보를 제공합니다.

상태 변수가 있는 블록

상태 변수가 있는 블록은 주로 Simulink 및 이산 유형으로 그룹화됩니다.

대부분의 블록에 대해 사용자는 블록 파라미터를 사용하여 상태 속성과 초기 값을 설정할 수 있습니다. 조건부 서브시스템은 구조 패턴에 따라 상태 변수를 가질 수 있습니다.

이 예에서 Unit Delay 블록에는 상태 속성이 있습니다.

Screen capture of the Unit Delay block parameter dialog.

이 예에서 Tapped Delay 블록에는 상태 속성이 없습니다.

Screen capture of the Tapped Delay block parameter dialog.

지침 참조: jc_0640

상태 변수를 사용한 분기 구문

Switch 블록과 조건부 서브시스템은 상태 변수가 사용될 때 다르게 동작합니다.

구성 설정에 따라 상태 변수가 존재하는 경우 Switch 블록은 일반적으로 제어 포트의 조건이 만족될 때 서브시스템 A를 실행합니다. 조건이 만족되지 않으면 서브시스템 A를 계산하지 않고 서브시스템 B만 실행한다. 그러나 서브시스템 A에 상태변수가 포함되어 있으면 제어포트의 조건이 만족되지 않더라도 서브시스템 A 내의 상태변수에 대한 계산이 처리된다. .

Computation workflow for a conditional subsystem with a state variable.

조건부 서브시스템에서는 조건이 만족되면 서브시스템 A가 계산됩니다. 만족하지 않는 경우 서브시스템 A에 상태 변수가 존재하는지 여부에 관계없이 서브시스템 A 대신 서브시스템 B가 계산됩니다.

Computation workflow for a conditional subsystem that does not have a state variable.

재계산 시 재설정 동작은 {Action Port} 설정을 사용하여 지정할 수 있습니다.

Switch 블록 및 조건부 제어 흐름을 사용할 때 서브시스템 A의 동작은 다음 표에 나열되어 있습니다. 의도한 목적에 가장 적합한 구조, Switch 블록 또는 조건부 서브시스템을 결정하려면 이러한 동작을 숙지하세요.

이 표는 서브시스템 A의 동작을 보여줍니다.

제어 포트 상태

(서브시스템 A에서)

상태 변수

전환조건부 서브시스템
유지아니요실행됨실행됨
유지하지 않음아니요실행되지 않음실행되지 않음

최소한의 가공

*상태변수와 관련된 계산 실행

이 표는 서브시스템 A의 초기화 타이밍을 제공합니다.

Action Port초기화
전환처음에만
조건부 서브시스템유지처음에만
재설정조건에 따라 반환 시

다음 지침을 참조하십시오.

서브시스템

서브시스템은 다양한 블록과 서브시스템을 컴파일하는 데 사용됩니다.

서브시스템은 다른 목적으로도 사용될 수 있습니다. 기능적 서브시스템이 아닌 사용 방법은 다음과 같습니다.

  • 서브시스템의 마스크 표시는 개요를 설명하거나 "기밀"과 같은 고정 형식 문서를 표시하는 데 사용됩니다.

  • 서브시스템의 개방형 기능(블록 속성의 콜백 기능)은 여러 도구를 실행하거나 모델과 별도로 설명 텍스트를 표시하는 데 사용됩니다.

  • 관리 권한이 있는 사용자가 설정을 마스크 서브시스템(단순히 NoReadOrWrite로 설정한 서브시스템)으로 변경한 서브시스템이지만 다른 사용자는 내용을 볼 수 없습니다.

이러한 일반적이지 않은 서브시스템은 지침 범위를 벗어나므로 제외되는 경우 프로젝트 내에서 관리되는 제외 목록에 추가해야 합니다.

다음 지침을 참조하십시오.

Atomic Subsystem 및 가상 서브시스템.  서브시스템에는 가상 서브시스템과 Atomic Subsystem이라는 두 가지 유형이 있습니다. 이러한 서브시스템 간의 주요 차이점은 서브시스템이 단일 실행 단위로 처리되는지 여부입니다. 가상 서브시스템은 기본 서브시스템 블록입니다.

모델에서 가상 서브시스템의 경계는 두껍고 굵은 Atomic Subsystem의 경계에 비해 얇습니다.

Borders for virtual and atomic subsystems.

가상 서브시스템

시각적 표현을 제공하는 블록을 "가상 블록"이라고 합니다. 예를 들어 여러 신호 라인을 컴파일하는 Mux 블록, 신호를 전달하는 From 블록, 가상 블록에 해당하는 Goto 블록이 있습니다. 기본 설정의 서브시스템 블록은 시각적 계층 구조만을 구성하므로 이러한 블록은 가상 블록으로 간주됩니다. 이 서브시스템을 가상 서브시스템이라고 합니다.

다음 예와 같이 서브시스템 내에서 외부 계산 결과를 참조하는 서브시스템을 생각해 보세요. 이 시스템은 다음 네 가지 방정식으로 계산됩니다.

  • temp1= in1 + in2

  • temp2= in3 + in4

  • out1= in1 + in2 + temp2

  • out2= temp1 + in3 + in4

Example of a virtual subsystem.

Atomic Subsystem

Atomic Subsystem은 외부 시스템에서 분리되어 있으며 경계 간 최적화가 적용되지 않습니다. Atomic Subsystem은 각 서브시스템의 내부 계산 결과를 사용하지 않습니다. 따라서 중간 출력 값은 세션에 의해 지연된 계산 결과를 사용합니다.

  • temp1= in1 + in2

  • temp2= in4 + in5

  • out1= in1+ in2 + in3

  • out2= in4+ in5 + in6

  • in3= temp2

  • in6= temp1

Atomic Subsystem은 중간 계산 결과를 다른 서브시스템으로 직접 참조하는 것을 금지합니다.

Example of an atomic subsystem.

Atomic Subsystem에 대한 참고 사항:

  • Atomic Subsystem은 C 소스 기능 설정을 선택할 수 있습니다.

  • 위에서 설명한 대로 Atomic Subsystem의 내부 섹션은 캡슐화(객관화)됩니다.

  • 이전과 이후의 관계에 따라 출력 신호용 서브시스템 내부에 정적 RAM 섹션을 확보해야 합니다.

  • Atomic Subsystem(함수 설정 추가 포함)은 주의해서 사용해야 합니다. 팩터 설정은 단순히 C 코드 내에 팩터 이름을 삽입하는 것이 아닙니다. 이는 수학적으로 독립적인 시스템으로 설명되며 Atomic Subsystem을 사용할 수 있는 조건을 검토해야 한다는 점을 인정해야 합니다.

  • 구조 레이어와의 관계를 포함합니다. 프로젝트별로 운영규칙을 정하고, 지침규칙과의 관계를 파악하는 것이 필요하다.

신호 이름

신호에는 이름이 지정될 수 있으며 이를 신호 이름이라고 합니다. 신호에 이름이 지정되면 해당 신호 이름이 레이블로 표시됩니다. 레이블 업데이트는 신호 이름에 반영되며 표시됩니다.

신호 이름은 분기된 신호 라인이나 포트 블록을 통해 신호 라인에 전파되어 신호 이름으로 표시될 수 있습니다.

다음 지침을 참조하십시오.

신호 이름을 신호 개체(Simulink 개체 또는 mpt 개체)와 연결하여 코드를 생성할 수 있습니다. 유형 설정은 데이터 사전을 통해 구성되며, 스토리지 클래스 설정은 선택 사항입니다. 이러한 블록에 권장되는 데이터 유형 설정은 다음과 같습니다.

  • Inport 블록의 경우 데이터형}을 auto로 설정합니다.

  • Outport 블록의 경우 데이터형}을 auto로 설정합니다.

  • Sum 블록의 경우 출력 데이터형Inherit via back propagation로 설정합니다.

지침 jc_0644: Type setting(jc_0644: 유형 설정)을 참조하세요.

벡터 신호/경로 신호

벡터를 구성하는 개별 스칼라 신호는 공통된 기능, 데이터 유형 및 단위를 가져야 합니다.

벡터로 조건을 충족하지 않는 신호는 버스 신호로만 그룹화될 수 있습니다. Bus Selector 블록은 버스 신호 입력에만 사용해야 합니다. 벡터 신호에서 스칼라 신호를 추출하는 데 사용되어서는 안 됩니다.

다음 표는 벡터 신호의 예입니다.

벡터 유형크기
행 벡터 [1 n]
열 벡터[n 1]
휠 속도 서브시스템[1 wheel number]
실린더 벡터[1 cylinder number]
2차원 좌표점 기반 위치 벡터[1 2]
3차원 좌표점 기반 위치 벡터[1 3]

다음 표는 버스 신호의 예입니다.

버스 유형요인
센서 버스힘 벡터
위치
휠 속도 벡터 [Θlf, Θrf, Θlr, Θrr]
가속화
압력
컨트롤러 버스센서 버스
액추에이터 버스
직렬 데이터 버스순환수 온도
엔진 속도, 조수석 도어 열림

다음 지침을 참조하십시오.

열거형

열거형 데이터는 정해진 숫자값으로 제한된 데이터를 말한다.

Simulink에서 열거형으로 사용할 수 있는 블록의 종류는 제한되어 있습니다.

열거형을 사용하려면 MATLAB 의 .m 파일을 사용하여 열거형을 정의해야 합니다. 열거형 데이터 유형 정의에 대한 자세한 내용은 Use Enumerated Data in Simulink Models 를 참조하세요.

Stateflow 기능

이 섹션에서는 모델링에 Stateflow를 사용하는 방법에 대한 정보를 제공합니다.

Stateflow에 사용 가능한 연산

Stateflow 작업에 대한 자세한 내용은 Stateflow 데이터에 대한 연산 (Stateflow)를 참조하세요.

다음 지침을 참조하십시오.

상태 천이와 흐름도의 차이점

Stateflow는 상태 천이와 흐름도를 모두 나타낼 수 있습니다.

Stateflow를 사용하면 상태 천이 다이어그램 내에서 흐름도를 설계할 수 있습니다.

entry 동작은 아래 그림과 같이 디폴트 천이에서 시작하여 천이 선을 통해 연결점으로 이동하는 상태의 흐름도로 표시됩니다. 내부 천이 선에서 시작하면 during 동작을 순서도에 표시할 수 있습니다.

순서도는 업데이트 간에 활성 상태를 유지할 수 없습니다. 결과적으로 흐름도는 항상 종단 연결점(유효한 나가는 천이가 없는 연결점)에서 끝납니다.

대조적으로, 상태 천이 다이어그램은 업데이트 사이에 로컬 데이터와 활성 상태를 보존하기 위해 현재 상태를 메모리에 저장합니다. 결과적으로 상태 천이 다이어그램은 이전 시간 스텝에서 중단된 부분부터 실행을 시작할 수 있습니다. 이는 상태 천이가 이력에 의존하는 반응 또는 감독 시스템을 모델링하는 데 적합하다는 것을 의미합니다.

이 테이블은 흐름도와 상태 천이 다이어그램의 시작점과 끝점을 정의합니다.

시작점끝점
흐름도

디폴트 천이

상태의 모든 종단이 연결점에 연결됩니다.
상태 천이 다이어그램

디폴트 천이

종료는 상태에 연결되어야 합니다.

이 그림은 일반적인 흐름도와 상태 천이 다이어그램의 차이점을 보여줍니다.

Sample workflow for a flow chart and a state transitions diagram inside of a state and outside of a state

흐름도와 상태 천이 다이어그램을 자체 천이와 함께 사용하면 더 엄격한 제약 조건이 적용됩니다.

Example of state transition diagram with self-transition inside of a state and outside of a state.

다음 지침을 참조하십시오.

역추적

이 예에서는 순서도에서 역추적 동작을 강제하는 연결점이 있는 천이 동작을 보여줍니다. 차트는 나가는 천이의 암시적 순서를 사용합니다.

Workflows demonstrating execution of actions for transition conditions.

처음에는 상태 A가 활성화되고 천이 조건 c1, c2 및 c3이 참입니다. 천이 조건 c4가 거짓입니다.

  1. 차트 루트는 상태 A에서 유효한 천이가 있는지 확인합니다.

    상태 A에서 연결점으로의 천이 조건 c1로 표시된 유효한 천이 세그먼트가 있으므로 다음과 같습니다.

    1. 천이 조건 c1이 true이므로 동작 a1이 실행됩니다.

    2. 천이 조건 c3이 true이므로 동작 a3이 실행됩니다.

    3. 천이 조건 c4가 참이 아니므로 제어 흐름은 상태 A로 되돌아갑니다.

  2. 차트 루트는 상태 A에서 또 다른 유효한 천이가 있는지 확인합니다.

    상태 A에서 연결점으로의 천이 조건 c2로 표시된 유효한 천이 세그먼트가 있으므로 다음과 같습니다.

    1. 천이 조건 c2가 true이므로 동작 a2가 실행됩니다.

    2. 천이 조건 c3이 true이므로 동작 a3이 실행됩니다.

    3. 천이 조건 c4가 참이 아니므로 제어 흐름은 상태 A로 되돌아갑니다.

  3. 차트가 sleep 모드로 전환됩니다.

    이 문제를 해결하려면 종단 연결점에 비조건부 천이 선을 추가하는 것을 고려하십시오. 종단 연결점은 c3 또는 c4가 참이 아닌 경우 흐름이 종료되도록 허용합니다. 이 설계는 불필요한 작업을 실행하지 않고 상태 A를 활성 상태로 유지합니다.

Workflows demonstrating the use of unconditional transition lines to terminating junction, which allow for the action to end if a transition is not true.

다음 지침을 참조하십시오.

상태 외부의 흐름도

상태와 관련된 흐름도는 상태 내부 또는 외부에 작성될 수 있습니다. 그러나 실행 순서와 역추적에 주의하세요.

상태 외부에서 흐름도를 실행한 후 a에서 b로의 천이를 평가하는 다음 흐름도는 새로운 계산과 동일한 기간 내에 천이를 실행하는 것으로 나타납니다. 그러나 상태 외부의 천이를 계산하여 종료점에 도달한 경우 b로의 천이 선은 평가되지 않습니다. 이것은 항상 a에 머무르는 상태 천이 다이어그램입니다.

Flow chart that evaluates transitions after executing the flow chart outside the state.

올바르게 수행하면 아래와 같이 천이 조건이 외부 흐름도의 종료 위치에 위치하지 않으므로 흐름도가 실행된 후 a에서 b로의 천이 선을 평가할 수 있습니다. 이를 통해 천이 전에 외부 흐름도를 실행하고 천이 순간에 가장 최근 값을 사용하여 평가할 수 있습니다. 이 차트에는 천이 조건이 절대 유지되지 않는 데드 경로가 포함되어 있어 향후 사양이 변경되면 오류가 발생할 수 있습니다. 이 차트 구조를 주의해서 사용하세요.

Flow chart is executed before the transition and is evaluated using the most recent value at the instant of the transition.

이에 반해, 다음의 흐름도는 State 내부에 있으므로 State a를 실행할 때 항상 내부 흐름도가 계산된다는 의미로 데드패스(Dead Path)가 없이 이해하기 쉬운 구조로 설명할 수 있다. 그러나 성능 특성상 상태 a가 실행될 때 내부 흐름도가 계산되는 주기에 따라 a에서 b로의 천이가 평가된다는 점에 유의해야 합니다. 이러한 특성으로 인해 외부 흐름도에 대한 계산 및 천이 실행 타이밍이 어긋날 수 있습니다. 주의해서 사용하세요.

Flow chart is inside a state, which means that the internal flow chart is always calculated when executing state

다음 지침을 참조하십시오.

포인터 변수

이 코드 샘플은 sf_custom 모델에서 가져온 것입니다. 모델을 열려면 MATLAB 명령줄에 다음을 입력하세요.

openExample('sf_custom')
모델 sf_custom에서는 my_header.h 열기를 클릭하세요.
#include "tmwtypes.h"

extern real_T my_function(real_T x);

/* Definition of custom type */
typedef struct {
	real_T a;	
	int8_T b[10];
}MyStruct;

/* External declaration of a global struct variable */
extern MyStruct gMyStructVar;
extern MyStruct *gMyStructPointerVar;
모델 sf_custom에서는 Open my_function.c를 클릭하세요.
#include "my_header.h"
#include <stdio.h>

/* Definition of global struct var */
MyStruct gMyStructVar;
MyStruct *gMyStructPointerVar=NULL;

real_T my_function(real_T x)
{
	real_T y;

	y=2*x;

	return(y);
}

gMyStructVar는 Stateflow에 정의되어 있지 않습니다. 일반적으로 my_function 함수는 Stateflow에서 사용하기 위해 C 소스에서 호출됩니다. 그러나 C 소스에 의해 노출된 전역 변수에 대한 직접 참조는 Stateflow에서도 가능합니다.

Pointer variables in Stateflow.

초기화

이 섹션에서는 초기화 값 사용에 대한 정보를 제공합니다.

초기화 시 초기값 설정

신호를 초기화해야 할 경우 초기값을 올바르게 설정해야 합니다.

블록 내부에 초기값을 설정할 경우, 입력된 초기값을 시각적으로 확인할 수 있도록 주석이 포함된 초기값 목록을 사용하세요.

초기값이 필요한 경우는 다음과 같습니다.

  • 상태 변수가 정의된 경우 AND 상태 변수가 있는 블록이 사용됩니다.

    • 내부 블록 설정을 사용하십시오.

    • 외부 입력값을 사용하세요.

  • 상태 변수가 정의되고 특정 구성이 수행될 때 블록에 대한 초기 값이 활성화되는 경우입니다.

    • Merge 블록에 초기값을 설정합니다.

    • 데이터 사전에 등록된 신호를 사용합니다.

  • 외부에서 참조할 수 있는 신호 설정(RAM 포함)이 정의된 경우.

    • 데이터 사전에 등록된 신호를 사용합니다.

데이터 사전에 등록된 신호의 초기값

데이터 사전에 등록된 신호의 초기값을 설정합니다.

  • Unit DelayData Store Memory와 같은 개별 블록 그룹에는 상태 변수가 있습니다.

    자동 코드 생성의 경우 상태 변수에 대한 신호 이름, 유형 및 초기 값을 데이터 사전(Simulink 신호 개체와 연결됨)의 신호와 일치시켜 설정할 수 있습니다. 상태변수에 대해 데이터 사전에 정의된 신호를 사용할 경우, 각 초기값은 동일한 값을 따라야 합니다.

  • 상태 변수에 대해 데이터 사전에 정의된 신호를 사용하는 경우

    Unit DelayData Store Memory와 같은 개별 블록의 경우 블록 출력 라인에 대해 데이터 사전에 정의된 신호를 사용할 때가 아니라 블록 내부의 상태 변수에 대해 설정이 수행됩니다. 신호선에 데이터 사전의 신호 이름을 할당해도 RAM이 중복되어 예약되므로 RAM이 낭비됩니다.

예제 — 올바름

신호는 블록 내부의 상태 변수에 대해 정의됩니다. 신호 이름이 정의되고 블록 파라미터 상태 이름은 Simulink Signal 객체로 연결이 맺어져야 함이 선택되어 있습니다.

Interface to define the signal for state variables inside the block.

예제 — 올바르지 않음

신호는 상태변수가 있는 블록의 출력신호에 대해 정의됩니다. 신호 이름이 정의되고 블록 파라미터 상태 이름은 Simulink Signal 객체로 연결이 맺어져야 함가 선택되어 있지 않습니다.

Interface to define the signal is of the output signal for a block that has state variables.

작업공간에 정의된 신호 객체는 disableimplicitsignalresolution(modelname) 를 사용하여 동일한 이름의 신호 객체 및 신호 이름과 자동으로 연관될 수 있습니다. 다만, 블록 내부의 상태변수는 블록 내부의 상태변수와 동일한 이름의 신호명과 연관되어 있습니다. 전역적으로 설정된 신호가 두 개의 변수와 동시에 연관되어 있는 경우에는 블록 내부의 상태 변수와 신호선의 신호 레이블이 서로 다른 이름을 갖도록 설정하는 것이 좋습니다. 그렇지 않으면 모델을 시뮬레이션할 수 없습니다.

외부 입력값이 초기값인 블록

초기화 중 초기값을 설정할 때 init 함수를 호출하여 신호를 블록 내부 값이나 데이터 사전에 정의된 초기값으로 설정합니다. 다음으로 스텝 함수(데이터 흐름 실행 함수)이 실행됩니다. 여기서는 외부 입력값을 초기값으로 설정합니다. 모델링 시 초기화를 위한 실행 기능과 실행 시점에 주의하세요. 이는 다음 이미지에서 설명됩니다.

Initialization explanation and differences in code behavior.

Interface to specify the input for the initial condition.

초기화 파라미터를 활성화하는 시스템 구성의 초기 값 설정

설정에 따라 조건부 서브시스템과 Merge 블록의 조합에 대해 초기화 파라미터가 활성화되는 시스템 구성이 있습니다. 이러한 조합에 초기값이 필요한 경우 다음 모델링 방법 중 하나가 수행됩니다.

  • Outport 블록에 값 설정

  • Merge 블록의 값을 설정합니다.

  • mpt 신호가 Merge 블록 뒤에 정의된 경우 mpt 신호에 값을 설정합니다.

예외는 초기값이 있는 연속 블록이 있고 신호의 초기값을 명확하게 표시하기 위해 각 블록에 대한 설정이 필요하지 않은 경우입니다.

예제 — 올바름

Merge 블록에 초기값이 설정되어 있습니다.

Interface to specify the initial value by using the Merge block parameter Initial output.

예제 — 올바름

mpt 객체에 설정된 초기값입니다.

Initial value is set in the .mpt signal.

예제 — 올바르지 않음

초기값 설정 요구사항에도 불구하고 어디에도 표시되지 않습니다.

Interface for the Merge block parameters. The Initial output value is not defined.