주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Integrator

  • Integrator block

라이브러리:
Simulink / Commonly Used Blocks
Simulink / Continuous

설명

Integrator 블록은 시간에 대해 입력 신호를 적분하고 그 결과를 출력 신호로 제공합니다.

Simulink®Integrator 블록을 하나의 상태를 가진 동적 시스템으로 처리합니다. 블록 동특성은 다음과 같이 주어집니다.

{x˙(t)=u(t)y(t)=x(t)   x(t0)=x0

여기서

  • u는 블록 입력입니다.

  • y는 블록 출력입니다.

  • x는 블록 상태입니다.

  • x0x의 초기 조건입니다.

위 방정식은 연속시간에서는 정확한 관계를 정의하지만, Simulink는 유한한 정밀도로 계산하기 위해 수치 근사법을 사용합니다. Simulink는 블록의 출력을 계산하기 위해 여러 수치 적분 방법을 사용할 수 있으며, 각 방법마다 특정 응용 분야에서 장점이 있습니다. 자신의 응용 분야에 가장 적합한 기법을 선택하려면 구성 파라미터 대화 상자의 솔버 창을 사용합니다(Solver Pane 항목 참조).

선택된 솔버는 현재 입력값과 이전 시간 스텝에서의 상태 값을 사용하여 현재 시간 스텝에서 Integrator 블록의 출력을 계산합니다. 이 계산 모델을 지원하기 위해, Integrator 블록은 현재 시간 스텝에서의 출력을 저장하여 솔버가 다음 시간 스텝의 출력을 계산할 때 이를 사용하도록 합니다. 이 블록은 또한 솔버에 초기 조건을 제공하여 시뮬레이션 시작 시 블록의 초기 상태를 계산할 때 사용하도록 합니다. 초기 조건의 디폴트 값은 0입니다. 초기 조건에 다른 값을 지정하거나 블록에 초기값 입력 포트를 생성하려면 블록 파라미터 대화 상자를 사용합니다.

파라미터 대화 상자를 사용하여 다음을 수행합니다.

  • 적분의 상한과 하한 정의

  • 입력의 변화에 따라 블록의 출력(상태)을 블록의 초기값으로 재설정하는 입력 생성

  • 블록 출력의 값이 블록 재설정을 트리거할 수 있도록 선택적 상태 출력 생성

순수 이산 시스템을 만들려면 Discrete-Time Integrator 블록을 사용하십시오.

초기 조건 정의하기

블록 대화 상자에서 초기 조건을 파라미터로 정의할 수도 있고, 외부 신호로부터 입력받을 수도 있습니다.

  • 초기 조건을 블록 파라미터로 정의하려면 초기 조건 소스 파라미터를 내부로 지정하고 초기 조건 필드에 값을 입력합니다.

  • 외부 소스에서 초기 조건을 제공하려면 초기 조건 소스 파라미터를 외부로 설정합니다. 추가 입력 포트가 블록에 표시됩니다.

    An Integrator block configured with an initial condition port has two input ports and one output port.

    참고

    출력 제한 파라미터를 선택하는 경우 초기 조건은 포화 한도 내에 있어야 합니다. 초기 조건이 블록 포화 한도 내에 없는 경우 블록은 오류 메시지를 표시합니다.

적분 제한하기

출력 신호를 지정된 값 범위로 제한하려면 출력 제한을 선택하고 포화 한도를 지정합니다. 출력이 포화 한도 중 하나에 도달하면 적분 와인드업을 방지하기 위해 적분 동작이 비활성화됩니다. 시뮬레이션 중에 포화 한도를 변경할 수 있지만 출력 제한 여부는 변경할 수 없습니다. 블록은 다음 기준을 사용하여 출력 신호 값을 결정합니다.

  • 적분 값이 포화 하한보다 작거나 같으면 출력 신호 값은 포화 하한입니다.

  • 적분 값이 포화 하한과 포화 상한 사이에 있으면 출력은 해당 적분 값입니다.

  • 적분 값이 포화 상한보다 크거나 같으면 출력 신호 값은 포화 상한입니다.

상태가 포화 한도에 의해 제한되는 시점을 나타내는 신호를 생성하려면 포화 포트 표시를 선택합니다. 두 번째 출력 포트가 블록에 표시됩니다.

An Integrator block configured to limit the output and show the saturation port. The block has two output signals: the first is labeled Output and the second is labeled Saturation.

포화 신호의 값은 다음 세 가지 중 하나입니다.

  • 1 — 포화 상한에 의해 제한되는 상태

  • 0 — 제한되지 않는 상태

  • –1 — 포화 하한에 의해 제한되는 상태

Integrator 블록 출력을 제한하면 이 블록은 3개의 영점교차 신호를 갖습니다. 즉, 적분 값이 포화 상한을 초과할 때를 검출하는 영점교차 신호, 적분 값이 포화 하한보다 작을 때를 검출하는 영점교차 신호, 적분 값이 포화되었다가 포화되지 않은 상태로 변경될 때를 검출하는 영점교차 신호입니다.

참고

기본적으로 출력 제한 파라미터는 Integrator Limited 블록에서 활성화되어 있으며, 포화 상한 파라미터 값은 1로, 포화 하한 파라미터 값은 0으로 설정되어 있습니다.

순환적(Cyclic) 상태에 래핑(Wrapping) 사용

발진기, 회전 운동을 하는 기계 등의 여러 물리적 현상은 본질적으로 순환적이거나(cyclic) 주기적이거나(periodic) 회전적입니다(rotary). 이러한 현상을 Simulink 블록 다이어그램에서 모델링하려면 주기 신호 또는 순환 신호의 변화율을 적분하여 운동 상태를 구하는 과정이 포함됩니다. 이 방식에서는 시뮬레이션 시간이 길어지면 주기 신호 또는 순환 신호를 나타내는 상태가 큰 값으로 적분될 수 있습니다. 이러한 신호에 대해 사인 또는 코사인과 같은 삼각 함수 값을 계산하면, 각도 축소(angle reduction)로 인해 값이 커질수록 시간이 더 오래 걸립니다. 신호 값이 커질수록 솔버 성능과 정확도가 떨어집니다.

이러한 단점을 해결하기 위한 한 가지 접근 방식은 2π에 도달하면 각도 상태를 0으로 재설정하는 것입니다(또는 수치 대칭의 경우 π에 도달하면 –π로 재설정). 이 접근 방식을 사용하면 사인 계산과 코사인 계산의 정확도가 개선되고 각도 축소 시간이 줄어듭니다. 그러나 영점교차 검출도 필요하고 솔버 재설정도 발생하기 때문에, 특히 대규모 모델에서는 가변 스텝 솔버의 시뮬레이션의 속도가 느려집니다.

래핑되는 지점에서 솔버가 재설정되도록 하지 않기 위해, Integrator 블록은 순환되는 상태를 지원하며, 이는 블록 파라미터 대화 상자에서 상태 순환을 선택하여 활성화할 수 있습니다. 상태 순환을 활성화하면 블록 아이콘이 바뀌어 블록이 순환하는 상태를 가짐을 나타냅니다.

An Integrator block configured to wrap state values. The block icon is annotated with a circle with arrows.

Integrator 블록은 상태의 순환 상한 값 파라미터와 하한 값 파라미터에 의해 제한되는 상태 순환을 지원합니다. 상태 순환을 결정하는 알고리즘은 다음과 같이 주어집니다.

y={xx[xl,xu)x(xuxl)xxlxuxlotherwise

여기서

  • xl은 상태의 순환 하한 값입니다.

  • xu는 상태의 순환 상한 값입니다.

  • y는 출력값입니다.

상태 순환이 지원되면 다음과 같은 이점이 있습니다.

  • 모델이 큰 각도 값과 큰 상태 값에 근접할 때 시뮬레이션 불안정성을 제거합니다.

  • 시뮬레이션 중에 솔버 재설정 횟수를 줄이고 영점교차를 검출할 필요가 없으므로 시뮬레이션 시간이 줄어듭니다.

  • 큰 각도 값을 제거하므로 각도 상태에 대한 삼각 함수 계산 속도가 향상됩니다.

  • 솔버의 정확도와 성능을 개선하고 무제한 시뮬레이션 시간이 가능해집니다.

상태 재설정

블록은 외부 신호를 기반으로 자신의 상태를 지정된 초기 조건으로 재설정할 수 있습니다. 블록이 자신의 상태를 재설정할 수 있게 하려면 외부 재설정 선택 항목 중 하나를 선택하십시오. 블록의 입력 포트 아래에 트리거 포트가 표시되어 트리거 유형을 나타냅니다.

An integrator block configured to reset the state. The block has two input signals, labeled Input and Reset, and one output signal, labeled Output.

  • 재설정 신호가 음수 값 또는 0 값에서 양수 값으로 상승할 때 상태를 재설정하려면 상승을 선택합니다.

  • 재설정 신호가 양수 값에서 0 값 또는 음수 값으로 하강할 때 상태를 재설정하려면 하강을 선택합니다.

  • 재설정 신호가 0에서 0이 아닌 값으로 또는 0이 아닌 값에서 0으로 바뀌거나 부호가 변경될 때 상태를 재설정하려면 양쪽 모두 가능을 선택합니다.

  • 재설정 신호가 현재 시간 스텝에서 0이 아니거나 혹은 이전 시간 스텝에서 0이 아닌 값이었지만 현재 시간 스텝에서 0으로 변경될 때 상태를 재설정하려면 레벨을 선택합니다.

  • 재설정 신호가 현재 시간 스텝에서 0이 아닐 때 상태를 재설정하려면 레벨 유지를 선택합니다.

재설정 포트에는 직접 피드스루가 있습니다. 블록 출력이 직접적으로 또는 직접 피드스루를 갖는 일련의 블록을 통해 이 포트로 다시 전달되는 경우, 대수 루프가 발생합니다(대수 루프 개념 항목 참조). 대수 루프를 생성하지 않고 블록의 출력을 다시 전달하려면 Integrator 블록의 상태 포트를 사용하십시오.

참고

MISRA™(Motor Industry Software Reliability Association) 소프트웨어 표준을 준수하려면 모델이 부울 신호를 사용하여 Integrator 블록의 외부 재설정 포트를 구동해야 합니다.

상태 포트 정보

Integrator 블록의 파라미터 대화 상자에서 상태 포트 표시 체크박스를 선택하면 추가 출력 포트인 상태 포트가 생성되어 Integrator 블록의 위쪽에 표시됩니다.

An integrator block configured to show the state port. The block has one input signal, labeled Input, and two output signals. The state output port is on the top of the block, and the port that provides the output signal value is on the right of the block.

상태 포트의 출력은 다음 경우를 제외하고 이 블록의 표준 출력 포트의 출력과 동일합니다. 블록이 현재 시간 스텝에서 재설정된 경우, 상태 포트의 출력은 블록이 재설정되지 않았다면 블록의 표준 출력에 표시되었을 값입니다. 상태 포트의 출력은 Integrator 블록의 출력 포트의 출력보다 더 이전의 시간 스텝에서 표시됩니다. 다음과 같은 모델링 시나리오에서 대수 루프가 생성되지 않도록 하기 위해 상태 포트를 사용합니다.

  • 자체 재설정 적분기를 사용하는 시스템

  • 하나의 Enabled Subsystem에서 다른 Enabled Subsystem으로 상태 전달

    참고

    모델 업데이트 시 Simulink는 상태 포트가 위의 두 가지 시나리오 중 하나에 해당되는지 확인합니다. 해당되지 않으면 오류 메시지를 표시합니다. 또한 액셀러레이터 모드에서 실행되는 참조된 모델에서는 이 포트의 출력을 기록할 수 없습니다. 이 포트에 대해 기록이 활성화되어 있는 경우 Simulink는 참조된 모델 실행 시 "signal not found"(신호를 찾을 수 없음) 경고를 생성합니다.

블록 출력의 절대 허용오차 지정하기

기본적으로 Simulink는 구성 파라미터 대화 상자에 지정된 절대 허용오차 값을 사용하여(Error Tolerances for Variable-Step Solvers 항목 참조) Integrator 블록의 출력을 계산합니다. 이 값이 충분한 오차 제어를 제공하지 않는다면 Integrator 블록 대화 상자의 절대 허용오차 필드에 더 적절한 값을 지정하십시오. 지정한 값은 모든 블록 출력을 계산하는 데 사용됩니다.

예제

모두 확장

블록 출력값을 기준으로 Integrator 블록을 재설정해야 하는 경우, 상태 포트를 사용하여 대수 루프가 생성되지 않도록 할 수 있습니다.

SelfResettingIntegratorAlgLoop 모델을 엽니다. 이 모델에 있는 Integrator 블록은 재설정 신호가 양수 값에서 0 값 또는 음수 값으로 변경될 때 재설정되도록 구성되어 있습니다. 재설정 신호는 출력값이 1에 도달할 때마다 블록이 자체적으로 재설정될 수 있도록 1에서 현재 블록 출력값을 빼서 생성됩니다.

mdl = "SelfResettingIntegratorAlgLoop";
open_system(mdl)

The model SelfResettingIntegratorAlgLoop.

재설정 포트에는 직접 피드스루가 있기 때문에 재설정 신호의 값을 계산하기 위해 출력 신호를 사용하면 대수 루프가 생성됩니다. 출력 신호 값은 재설정 신호의 값에 따라 달라지며, 그 반대의 경우에도 마찬가지입니다. 이러한 상호 종속성 때문에 소프트웨어는 두 값 모두를 계산할 수 없습니다.

모델을 시뮬레이션하려고 시도하면 대수 루프에 대한 진단 정보가 출력됩니다. 모델에 있는 대수 루프를 확인하기 위해 Simulink.BlockDiagram.getAlgebraicLoops 함수를 사용합니다. 대수 루프 뷰어가 열리고 모델에 실수형 대수 루프가 1개 있음을 보여줍니다.

Simulink.BlockDiagram.getAlgebraicLoops(mdl);

Figure Algebraic Loops in 'SelfResettingIntegratorAlgLoop' contains an object of type uigridlayout.

대수 루프는 모델에서 강조 표시되어 있습니다.

The model SelfResettingIntegratorAlgLoop has the algebraic loop highlighted from the output port through the sum block and into the reset port.

Integrator 블록은 각 시간 스텝에서 출력값 이전의 상태 값을 계산합니다. 출력값보다 상태 값이 먼저 제공되므로, 대수 루프를 생성하지 않고도 상태 값을 사용하여 자체 재설정 Integrator 블록을 만들 수 있습니다.

이 해결 방법을 확인하기 위해 모델 SelfResettingIntegrator를 엽니다. Integrator 블록에 상태 포트가 활성화되어 있습니다. 이 모델에서는 재설정 신호의 값을 계산하기 위해 출력 신호 대신 상태 값을 사용합니다.

mdl2 = "SelfResettingIntegrator";
open_system(mdl2)

The model SelfResettingIntegrator..

출력 대신 상태를 사용하면 대수 루프가 끊어지는지 확인하기 위해 Simulink.BlockDiagram.getAlgebraicLoops 함수를 다시 호출합니다.

Simulink.BlockDiagram.getAlgebraicLoops(mdl2);
No algebraic loops were found.

자체 재설정 적분기가 동작하는 것을 보기 위해 모델을 시뮬레이션합니다.

simOut = sim(mdl2);

스코프에서 출력 신호와 재설정 신호를 보기 위해 Scope 블록을 더블 클릭합니다. Integrator 블록 출력 신호가 값 01 사이에서 진동합니다. 출력값은 재설정 신호 값이 0일 때마다 0으로 재설정됩니다.

The Scope window displays the output and reset signals.

한 Enabled Subsystem에 있는 Integrator 블록이 다른 Enabled Subsystem에 있는 Integrator 블록의 상태를 사용해야 하는 경우 대수 루프가 생성되는 것을 방지하기 위해 상태 포트를 사용할 수 있습니다.

EnabledSubsystemStatesAlgLoop 모델을 엽니다.

mdl = "EnabledSubsystemStatesAlgLoop";
open_system(mdl)

이 모델에는 AB라는 두 개의 Enabled Subsystem이 포함되어 있습니다. Pulse 블록은 두 서브시스템 모두에 인에이블 신호를 제공하지만 Logical Operator 블록은 서브시스템 A의 인에이블 신호를 생성하기 위해 펄스를 반전시킵니다. 그 결과, 이 두 Enabled Subsystem의 실행은 Pulse 블록 출력의 값이 변경됨에 따라 서브시스템 A와 서브시스템 B를 번갈아 가며 이루어집니다.

The block diagram of the model EnabledSubsystemStatesAlgLoop.

각 Enabled Subsystem은 Integrator 블록을 포함하고 있습니다. 서브시스템 간에 실행이 번갈아 이루어지는 동안 입력 신호의 연속 적분을 허용하기 위해 다음과 같이 설정되어 있습니다.

  • 각 서브시스템에 있는 Enable 블록은 서브시스템이 실행될 때마다 서브시스템 상태를 재설정하도록 구성됩니다.

  • 각 서브시스템에 있는 Integrator 블록은 다른 서브시스템에 있는 Integrator 블록의 출력에 연결된 입력 포트를 통해 초기 상태 값을 수신합니다.

The contents of subsystem A and subsystem B are shown side by side with a dotted line dividing them.

한 Integrator 블록의 출력을 다른 Integrator 블록의 입력에 연결하면 대수 루프가 생성됩니다. 서브시스템 B의 출력값을 계산하려면 솔버는 서브시스템 A의 출력이 필요하며, 그 반대의 경우도 마찬가지입니다. 모델에 있는 루프를 확인하기 위해 Simulink.BlockDiagram.getAlgebraicLoops 함수를 사용합니다. 대수 루프 뷰어가 열리고 모델에 실수형 대수 루프가 1개 있음을 보여줍니다.

Simulink.BlockDiagram.getAlgebraicLoops(mdl);

Figure Algebraic Loops in 'EnabledSubsystemStatesAlgLoop' contains an object of type uigridlayout.

대수 루프는 모델에서 강조 표시되어 있습니다.

The algebraic loop is highlighted in the block diagram of the model EnabledSubsystemStatesAlgLoop.

모델을 시뮬레이션하려고 시도하면, 시뮬레이션에서 초기화 단계 중에 오류가 발생합니다.

out = sim(mdl,CaptureErrors="on");
execinfo = out.SimulationMetadata.ExecutionInfo;
stopreason = execinfo.StopEventDescription
stopreason = 
'Error due to multiple causes.'
errphase = execinfo.ErrorDiagnostic.SimulationPhase
errphase = 
'Initialization'
sldiagviewer.reportSimulationMetadataDiagnostics(out)

대수 루프를 생성하지 않고 Enabled Subsystem 간에 상태를 전달하려면 Integrator 블록의 상태 포트를 사용합니다. 솔버는 각 시간 스텝의 이전 지점에서 블록 상태 값을 계산합니다. 이에 따라 서브시스템 B의 출력은 더 이상 서브시스템 A의 출력을 사용하지 않으며, 그 반대의 경우도 마찬가지입니다.

이 해결 방법을 확인하기 위해 모델 EnabledSubsystemStates를 엽니다.

mdl2 = "EnabledSubsystemStates";
open_system(mdl2)

입력 신호, 인에이블 신호, 출력 신호는 동일하지만 서브시스템 A의 출력은 더 이상 서브시스템 B의 두 번째 입력 역할을 하지 않으며, 그 반대의 경우도 마찬가지입니다.

The block diagram of the model EnabledSubsystemStates.

Enabled Subsystem 간에 상태를 전달하도록 다음과 같이 설정되어 있습니다.

  • 각 Integrator 블록은 상태 포트를 표시하도록 구성됩니다.

  • 전역 가시성을 갖는 GoTo 블록과 From 블록은 서브시스템 A에 있는 Integrator 블록의 상태 포트를 서브시스템 B에 있는 Integrator 블록의 초기 조건 포트에 연결하며, 그 반대의 경우도 마찬가지입니다.

Integrator 블록의 상태 포트를 Enabled Subsystem의 출력 포트에 연결하는 것은 지원되지 않습니다.

The contents of subsystem A and subsystem B displayed side by side, divided by a dotted line and labeled with an A and a B.

상태 포트를 사용하여 대수 루프가 해결되었는지 검증하기 위해 Simulink.BlockDiagram.getAlgebraicLoops 함수를 사용합니다.

Simulink.BlockDiagram.getAlgebraicLoops(mdl2);
No algebraic loops were found.

모델을 시뮬레이션합니다.

out = sim(mdl2);

결과를 보기 위해 Scope 블록을 더블 클릭합니다. 또는 open_system 함수를 호출하여 스코프 창을 엽니다. 스코프 창에 각 서브시스템의 인에이블 신호와 출력 신호가 표시됩니다.

blk = mdl2 + "/Scope";
open_system(blk)

Enabled Subsystem 간에 Integrator 블록 상태 값을 전달하는 시스템에 대한 다른 예제는 Building a Clutch Lock-Up Model 항목을 참조하십시오.

확장 예제

포트

입력

모두 확장

입력 신호는 이 블록이 적분하는 실수 값 스칼라, 벡터 또는 행렬입니다.

이 포트에는 직접 피드스루가 없습니다.

데이터형: double

외부 재설정 신호는 블록 상태를 초기 조건으로 재설정하는 부울 스칼라, 벡터 또는 행렬입니다. 상태 재설정 항목을 참조하십시오.

이 포트에는 직접 피드스루가 있습니다.

종속성

이 포트를 활성화하려면 외부 재설정을 선택하십시오.

데이터형: Boolean

초기 조건 신호는 블록의 초기 조건을 설정하는 실수 값 스칼라, 벡터 또는 행렬입니다.

이 포트에는 직접 피드스루가 있습니다.

종속성

이 포트를 활성화하려면 초기 조건 파라미터를 외부로 설정하십시오.

데이터형: double

출력

모두 확장

출력 신호는 적분된 입력 신호의 값을 갖는 스칼라, 벡터 또는 행렬입니다. 적분된 신호의 차원은 입력 신호의 차원과 일치해야 합니다.

데이터형: double

출력 포화 신호는 블록 상태의 각 요소가 포화 상한 또는 포화 하한에 의해 제한되는 시점을 나타내는 스칼라, 벡터 또는 행렬입니다. 신호 값은 값이 제한되어 있는지 여부와 적용되는 한도를 나타냅니다.

  • -1 — 포화 하한에 의해 제한되는 값

  • 0 — 포화 한도에 의해 제한되지 않는 값

  • 1 — 포화 상한에 의해 제한되는 값

자세한 내용은 적분 제한하기 항목을 참조하십시오.

종속성

이 포트를 활성화하려면 포화 포트 표시를 선택하십시오.

데이터형: double

블록 상태 신호는 블록 상태 값과 일치하는 값을 갖는 실수 값 스칼라, 벡터 또는 행렬입니다.

자세한 내용은 상태 포트 정보 항목을 참조하십시오.

종속성

이 포트를 활성화하려면 상태 포트 표시를 선택하십시오.

데이터형: double

파라미터

모두 확장

외부 재설정 신호에 사용할 트리거 유형을 지정합니다.

  • 재설정 신호가 음수 값 또는 0 값에서 양수 값으로 상승하거나 음수 값에서 0 값으로 상승할 때 상태를 재설정하려면 상승을 선택합니다.

  • 재설정 신호가 양수 값에서 0 값 또는 음수 값으로 하강하거나 0 값에서 음수 값으로 하강할 때 상태를 재설정하려면 하강을 선택합니다.

  • 재설정 신호가 0에서 0이 아닌 값으로 또는 0이 아닌 값에서 0으로 바뀌거나 부호가 변경될 때 상태를 재설정하려면 양쪽 모두 가능을 선택합니다.

  • 재설정 신호가 현재 시간 스텝에서 0이 아니거나 혹은 이전 시간 스텝에서 0이 아닌 값이었지만 현재 시간 스텝에서 0으로 변경될 때 상태를 재설정하려면 레벨을 선택합니다.

  • 재설정 신호가 현재 시간 스텝에서 0이 아닐 때 상태를 재설정하려면 레벨 유지를 선택합니다.

프로그래밍 방식의 사용법

블록 파라미터: ExternalReset
유형: 문자형 벡터, string형
값: 'none' | 'rising' | 'falling' | 'either' | 'level' | 'level hold'
디폴트 값: 'none'

초기 조건의 소스를 선택합니다.

  • 내부초기 조건 파라미터에서 상태의 초기 조건을 가져옵니다.

  • 외부 — 외부 신호에서 상태의 초기 조건을 가져옵니다. 이 옵션을 선택하면 입력 포트가 블록에 표시됩니다.

프로그래밍 방식의 사용법

블록 파라미터: InitialConditionSource
유형: 문자형 벡터, string형
값: 'internal' | 'external'
디폴트 값: 'internal'

Integrator 블록의 초기 상태를 설정합니다.

Simulink에서는 이 블록의 초기 조건이 inf 또는 NaN인 경우가 허용되지 않습니다.

종속성

초기 조건 소스internal로 설정하면 이 파라미터가 활성화됩니다.

초기 조건 소스external로 설정하면 이 파라미터가 비활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: InitialCondition
유형: 스칼라 또는 벡터
디폴트 값: '0'

블록의 출력을 포화 하한 파라미터와 포화 상한 파라미터 사이의 값으로 제한합니다.

  • 이 체크박스를 선택하면 블록 출력이 포화 하한 파라미터와 포화 상한 파라미터 사이의 값으로 제한됩니다.

  • 이 체크박스를 선택 해제하면 블록 출력 값이 제한되지 않습니다.

종속성

이 파라미터를 선택하면 포화 하한 파라미터와 포화 상한 파라미터가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: LimitOutput
유형: 문자형 벡터, string형
값: 'off' | 'on'
디폴트 값: 'off'

적분에 대한 상한을 스칼라, 벡터 또는 행렬로 지정합니다. 출력 최솟값 파라미터 값과 출력 최댓값 파라미터 값 사이의 값을 지정해야 합니다.

종속성

이 파라미터를 활성화하려면 출력 제한 체크박스를 선택하십시오.

프로그래밍 방식의 사용법

블록 파라미터: UpperSaturationLimit
유형: 문자형 벡터, string형
값: 스칼라 | 벡터 | 행렬
디폴트 값: 'inf'

적분에 대한 하한을 스칼라, 벡터 또는 행렬로 지정합니다. 출력 최솟값 파라미터 값과 출력 최댓값 파라미터 값 사이의 값을 지정해야 합니다.

종속성

이 파라미터를 활성화하려면 출력 제한 체크박스를 선택하십시오.

프로그래밍 방식의 사용법

블록 파라미터: LowerSaturationLimit
유형: 문자형 벡터, string형
값: 스칼라 | 벡터 | 행렬
디폴트 값: '-inf'

상태의 순환 상한 값 파라미터와 상태의 순환 하한 값 파라미터 사이에서 상태가 순환되도록 합니다. 상태 순환을 활성화하면 영점교차를 검출할 필요가 없고, 솔버 재설정이 줄어들며, 솔버 성능과 정확도가 향상되고, 회전(rotary) 상태 궤적과 순환(cyclic) 상태 궤적을 모델링할 때 시뮬레이션 시간 길이를 늘릴 수 있습니다.

상태의 순환 상한 값inf로 지정하고 상태의 순환 하한 값-inf로 지정하면 순환이 발생하지 않습니다.

종속성

이 파라미터를 선택하면 상태의 순환 상한 값 파라미터와 상태의 순환 하한 값 파라미터가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: WrapState
유형: 문자형 벡터, string형
값: 'off' | 'on'
디폴트 값: 'off'

블록 출력의 상한입니다.

종속성

상태 순환을 선택하면 이 파라미터가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: WrappedStateUpperValue
유형: 스칼라 또는 벡터
값: '2*pi'
디폴트 값: 'pi'

블록 출력의 하한입니다.

종속성

상태 순환을 선택하면 이 파라미터가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: WrappedStateLowerValue
유형: 스칼라 또는 벡터
값: '0'
디폴트 값: '-pi'

블록에 포화 출력 포트를 추가하려면 이 체크박스를 선택합니다. 이 체크박스를 선택 해제하면 블록은 포화 출력 포트를 갖지 않습니다.

종속성

이 파라미터를 선택하면 포화 출력 포트가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: ShowSaturationPort
유형: 문자형 벡터, string형
값: 'off' | 'on'
디폴트 값: 'off'

블록에 상태 출력 포트를 추가하려면 이 체크박스를 선택합니다. 이 체크박스를 선택 해제하면 블록은 상태 출력 포트를 갖지 않습니다.

종속성

이 파라미터를 선택하면 상태 출력 포트가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: ShowStatePort
유형: 문자형 벡터, string형
값: 'off' | 'on'
디폴트 값: 'off'
  • auto 또는 –1을 입력하면 Simulink는 구성 파라미터 대화 상자에 지정된 절대 허용오차 값을 사용하여(Solver Pane 항목 참조) 블록 상태를 계산합니다.

  • 실수형 스칼라를 입력하면, 구성 파라미터 대화 상자에 지정된 절대 허용오차가 이 값으로 재정의되고 모든 블록 상태의 계산에 이 값이 사용됩니다.

  • 실수형 벡터를 입력하면 해당 벡터의 차원은 블록의 연속 상태 차원과 일치해야 합니다. 구성 파라미터 대화 상자에 지정된 절대 허용오차는 이 값으로 재정의됩니다.

프로그래밍 방식의 사용법

블록 파라미터: AbsoluteTolerance
유형: 문자형 벡터, string형, 스칼라 또는 벡터
값: 'auto' | '-1' | 양의 실수형 스칼라 또는 벡터
디폴트 값: 'auto'

이 파라미터를 선택하면, 선형화 시 이 블록에 대한 재설정 파라미터와 제한 파라미터가 무시되고 파라미터의 디폴트 값이 사용됩니다.

적분기가 재설정되게 하거나 포화되게 하는 동작점을 중심으로 모델을 선형화하려는 경우 이 파라미터를 활성화하십시오.

프로그래밍 방식의 사용법

블록 파라미터: IgnoreLimit
유형: 문자형 벡터 | string형
값: 'off' | 'on'
디폴트 값: 'off'

영점교차 검출을 활성화하도록 선택합니다. 자세한 내용은 Zero-Crossing Detection 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: ZeroCross
유형: 문자형 벡터 | string형
: 'off' | 'on'
디폴트 값: 'on'
  • 하나의 상태에 이름을 할당하려면 따옴표 사이에 이름을 입력합니다(예: 'velocity').

  • 여러 상태에 이름을 할당하려면 쉼표로 구분된 목록을 중괄호로 묶어서 입력합니다(예: {'a', 'b', 'c'}). 각 이름은 고유해야 합니다.

  • 상태 이름은 선택된 블록에만 적용됩니다.

  • 상태의 개수는 상태 이름의 개수로 균등하게 나눠져야 합니다.

  • 이름을 상태보다 적은 개수로 지정할 수 있지만 상태보다 많은 개수로 지정할 수는 없습니다.

    예를 들어 4개의 상태를 가진 시스템에 2개의 이름을 지정할 수 있습니다. 첫 번째 이름은 처음 2개의 상태에 사용되고 두 번째 이름은 나머지 2개의 상태에 사용됩니다.

  • MATLAB® 작업 공간에서 변수를 사용하여 상태 이름을 할당하려면 따옴표 없이 변수를 입력합니다. 변수는 문자형 벡터, string형, 셀형 배열 또는 구조체일 수 있습니다.

프로그래밍 방식의 사용법

블록 파라미터: ContinuousStateAttributes
유형: 문자형 벡터, string형
값: ' ' | 사용자 정의
디폴트 값: ' '

블록 특성

데이터형

double

직접 피드스루

아니요a

다차원 신호

아니요

가변 크기 신호

아니요

영점교차 검출

a 이 블록의 포트는 각기 다른 직접 피드스루 특성을 갖습니다.

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨