Main Content

LPV System

선형 파라미터 가변(LPV) 시스템 시뮬레이션

  • LPV System block

라이브러리:
Control System Toolbox / Linear Parameter Varying

설명

선형 파라미터 가변(LPV) 시스템은 동특성이 스케줄링 파라미터라는 특정 시변 파라미터에 따라 변하는 선형 상태공간 모델입니다. MATLAB®에서 LPV 모델은 파라미터에 종속된 계수를 사용하여 상태공간 형식으로 표현됩니다.

LPV 시스템을 다음과 같이 수학적으로 표현할 수 있습니다.

dx(t)=dx0(p)+A(p)(x(t)x0(p))+B(p)(u(t)u0(p))y(t)=y0(p)+C(p)(x(t)x0(p))+D(p)(u(t)u0(p))x(0)=xinit

여기서 각각은 다음을 나타냅니다.

  • u(t)는 입력입니다

  • y(t)는 출력입니다

  • x(t)는 초기값이 xinit인 모델 상태입니다

  • dx(t)는 연속시간 시스템에서는 상태 도함수 벡터 x˙이고 이산시간 시스템에서는 상태 업데이트 벡터 x[k+1]입니다. 여기서 k는 샘플링 주기 Ts의 개수를 세는 정수 인덱스입니다.

  • A(p), B(p), C(p) 및 D(p)는 스케줄링 파라미터 벡터 p로 파라미터화된 상태공간 행렬입니다.

  • 파라미터 p = p(t)는 모델의 입력 및 상태의 함수로서, 측정 가능한 함수입니다. 이러한 파라미터는 스칼라 양이거나, 몇몇 파라미터로 구성된 벡터일 수 있습니다. 일련의 스케줄링 파라미터는 LPV 모델이 정의된 스케줄링 공간을 정의합니다.

  • dx0(p), x0(p), u0(p) 및 y0(p)는 지정된 파라미터 값 p = p(t) 또는 p[k]에서 dx(t), x(t), u(t) 및 y(t) 값의 오프셋입니다.

    linearize (Simulink Control Design) 또는 getIOTransfer (Simulink Control Design) 같은 함수를 호출할 때 추가 선형화 정보를 반환하여 오프셋을 얻을 수 있습니다. 예제는 LPV Approximation of Boost Converter Model (Simulink Control Design) 항목을 참조하십시오.

주의

C(p) 및 D(p)를 시스템 출력값 y에 종속되게 하지 마십시오. 그렇게 하지 않으면 출력값 y를 계산할 때 출력값을 알아야 하기 때문에, 결과로 생성된 상태공간 방정식 y = C(y)x + D(y)u에서 대수 루프가 생성됩니다. 이 대수 루프는 불안정하고 발산되기 쉽습니다. 대신 C와 D를 시간 t와 블록 입력 u 및 상태 출력 x로 표현해 보십시오.

유사한 이유로, dx 출력에 따라 A(p)와 B(p)를 스케줄링하는 일은 피하십시오. 참고로, y가 상태와 입력의 고정 조합인 경우(즉, y = Cx + Du인 경우. 여기서 C와 D는 상수 행렬임) A와 B가 y에 종속되는 것이 안전합니다.

블록은 LPV 시스템의 그리드 기반 표현을 구현합니다. 스케줄링 파라미터에 대한 값으로 구성된 그리드를 선택할 수 있습니다. 각각의 값 p = p*에서, 대응하는 선형 시스템을 상태공간(ss 또는 idss (System Identification Toolbox)) 모델 객체로 지정할 수 있습니다. 생성된 상태공간 모델의 배열을 사용하여 LPV System 블록을 구성할 수 있습니다.

블록은 동작점 정보가 있는 상태공간 모델의 배열을 받습니다. 블록은 LTI 배열의 SamplingGrid 속성에서 스케줄링 변수에 대한 정보를 추출합니다. 스케줄링 변수는 LPV 모델의 그리드를 정의합니다. 스케줄링 변수는 스칼라 값의 양으로, 시간, 입력 및 상태의 함수이거나 상수일 수 있습니다. 이는 동작 공간에서 국부적인 동특성을 선택하는 데 사용됩니다. 이러한 변수의 값은 보간됩니다. 블록은 시뮬레이션을 위해 데이터 보간과 외삽 기법에 이 배열을 사용합니다.

예제

모두 확장

2-입력, 3-출력, 4-상태 LPV 모델이 있다고 가정하겠습니다. 입력 u(2)와 상태 x(1)을 스케줄링 파라미터로 사용합니다. 다음 그림에 나와 있는 것처럼 Simulink® 모델을 구성합니다.

질량이 외부 하중 명령의 함수에 의해 변하는 선형 질량-스프링-댐퍼 시스템이 있다고 가정하겠습니다. 적용되는 방정식은 다음과 같습니다.

m(u)y¨+cy˙+ky=F(t)

여기서 m(u)는 외부 명령 u에 종속된 질량이고, c는 감쇠비이고, k는 스프링의 경직성이고, F(t)는 가해지는 입력입니다. y(t)는 지정된 시간 t에서의 질량 위치입니다. u의 고정 값에 대해 시스템은 선형이며 다음과 같이 표현됩니다.

A=[01-km-cm],

B=[01m],

C=[10]

x˙=Ax+Buy=Cx

여기서 x=[yy˙]는 상태 벡터이고 mu의 지정된 값에 대한 질량 값입니다.

이 예제에서는 1볼트에서 10볼트까지의 입력값 범위에서 모델 동작을 조사해 보겠습니다. u의 각 값에 대해 질량을 측정하고 시스템의 선형 표현을 계산합니다. 이때 질량과 입력의 관계가 m(u)=10u+0.1u2이라고 가정하겠습니다. 1부터 10까지 범위의 u 값에 대해 다음과 같은 선형 시스템으로 구성된 배열이 생성됩니다.

c = 5;   
k = 300; 
u = 1:10;
m = 10*u + 0.1*u.^2;
for i = 1:length(u)
   A = [0 1; -k/m(i), -c/m(i)];
   B = [0; 1/m(i)];
   C = [1 0];
   sys(:,:,i) = ss(A,B,C,0); 
end

변수 u는 스케줄링 입력입니다. 이 정보를 모델에 추가합니다.

sys.SamplingGrid = struct('LoadCommand',u);

다음과 같이 LPV System 블록을 구성합니다.

  • 상태공간 배열 필드에 sys를 입력합니다.

  • 하중 명령의 값을 생성하는 1차원 소스 신호에 입력 포트 par을 연결합니다. 소스가 1에서 10 사이의 값을 제공하면, 블록은 주어진 시점에서 선형 모델을 계산하기 위해 보간을 사용합니다. 그 외의 경우 블록은 외삽을 사용합니다.

일정하게 가해지는 입력 100N과 하중 명령 스케줄링 변수에 대한 난수 값으로 LPV 모델을 시뮬레이션합니다.

model = "simMSDLPV";
open_system(model);

이 예제에서는 LPV System 블록을 사용하여 엔진 속도의 선형 파라미터 가변(LPV) 모델을 시뮬레이션하는 방법을 보여줍니다. LPV System 블록은 상태공간 배열을 보간하여 LPV 응답을 모델링합니다. 일반적으로, 다양한 동작 조건에 대해 비선형 모델을 배치(일괄) 선형화하여 이러한 배열을 얻을 수 있습니다. 이 예제는 scdspeedlpvData에서 엔진 속도 모델의 선형화된 결과를 제공합니다. 이 모델의 선형화에 대한 자세한 내용은 Linearize Engine Speed Model (Simulink Control Design) 항목을 참조하십시오.

모델을 엽니다.

model = "scdspeedLPVCompare";
open_system(model);

LPV 모델 구현을 위해 선형화 결과를 불러옵니다.

load scdspeedlpvData.mat

LPV 모델은 LPV Model 서브시스템 아래에 구현됩니다.

Implementation of LPV Model subsystem

LPV System 블록은 스로틀 각을 입력으로 받고 속도 출력을 스케줄링 변수로 사용합니다. 블록 파라미터는 아래 이미지에 표시된 것처럼 구성됩니다. 여기서 상태공간 배열 sys와 오프셋은 비선형 모델을 배치 선형화하여 얻습니다.

모델을 시뮬레이션하고 응답 비교를 플로팅합니다.

sim(model);
plot(logsOut{1}.Values.Time,logsOut{1}.Values.Data)
grid on
legend("Nonlinear sim","LPV sim","LTI sim",Location="best")

LPV 모델은 비선형 응답을 적절하게 근사합니다.

제한 사항

  • 상태공간 모델 배열에서 내부 지연은 최솟값보다 작게 외삽할 수 없습니다.

  • 선형 모델로 구성된 산점 그리드를 사용하여 LPV 시스템을 정의할 경우 최근접이웃 보간 방식만 사용됩니다. 이 경우 시뮬레이션 결과의 정확도가 낮아질 수 있습니다. ndgrid를 이용해 생성된 사각 그리드를 사용하는 것이 좋습니다.

포트

입력

모두 확장

입력 신호 u(t)를 지정합니다. 다중 입력의 경우 이 포트는 해당 입력의 차원의 신호를 받습니다.

스케줄링 공간을 정의하는 변수(샘플링 그리드 변수)에 사용할 신호를 제공합니다. 스케줄링 변수는 시간, 입력 및 상태의 함수이거나 상수일 수 있습니다. 필요에 따라 클록 입력(시간의 경우), 입력 신호(u), LPV 블록의 출력 상태 신호(x), 또는 외생 신호를 사용해 스케줄링 신호를 제공함으로써 요구되는 종속성을 충족할 수 있습니다.

주의

C(p) 및 D(p)를 시스템 출력값 y에 종속되게 하지 마십시오. 그렇게 하지 않으면 출력값 y를 계산할 때 출력값을 알아야 하기 때문에, 결과로 생성된 상태공간 방정식 y = C(y)x + D(y)u에서 대수 루프가 생성됩니다. 이 대수 루프는 불안정하고 발산되기 쉽습니다. 대신 C와 D를 시간 t와 블록 입력 u 및 상태 출력 x로 표현해 보십시오.

유사한 이유로, dx 출력에 따라 A(p)와 B(p)를 스케줄링하는 일은 피하십시오. 참고로, y가 상태와 입력의 고정 조합인 경우(즉, y = Cx + Du인 경우. 여기서 C와 D는 상수 행렬임) A와 B가 y에 종속되는 것이 안전합니다.

출력

모두 확장

선형 파라미터 가변 모델의 응답.

모델 상태의 값

종속 관계

이 포트를 활성화하려면 블록 파라미터의 출력 탭에서 상태 출력을 선택하십시오.

상태 도함수의 값. 상태 도함수는 스케줄링 파라미터를 정의하는 데 사용되기도 합니다. 그러나 dx 출력에 따라 A와 B를 스케줄링하는 일은 피하십시오.

종속 관계

이 포트를 활성화하려면 블록 파라미터의 출력 탭에서 상태 도함수(연속시간) 또는 상태 업데이트(이산시간) 출력을 선택하십시오

주요 시뮬레이션 시간 스텝에서의 로컬 상태공간 모델 데이터로, 다음 요소를 가진 버스 신호로 반환됩니다.

  • A — 상태 행렬

  • B — 입력 행렬

  • C — 출력 행렬

  • D — 피드스루 행렬

  • InputDelay — 입력 지연

  • OutputDelay — 출력 지연

  • InternalDelay — 모델의 내부 지연

종속 관계

이 포트를 활성화하려면 블록 파라미터의 출력탭에서 보간된 상태공간 데이터 출력을 선택하십시오.

주요 시뮬레이션 시간 스텝에서의 LPV 모델 오프셋 데이터로, 다음 요소를 가진 버스 신호로 반환됩니다.

  • InputOffset

  • OutputOffset

  • StateOffset

  • StateDerivativeOffset

종속 관계

이 포트를 활성화하려면 블록 파라미터의 출력 탭에서 보간된 오프셋 출력을 선택하십시오.

파라미터

모두 확장

블록 파라미터를 대화형 방식으로 편집하려면 속성 인스펙터를 사용하십시오. Simulink 툴스트립의 시뮬레이션 탭에 있는 준비 갤러리에서 속성 인스펙터를 선택합니다.

LPV 모델 탭

상태공간(ss 또는 idss (System Identification Toolbox)) 모델의 배열. 배열에 있는 모든 모델은 상태에 대한 동일한 정의를 사용해야 합니다.

상태공간 배열은 모델에 대한 스케줄링 파라미터와 보간 그리드를 SamplingGrid 속성에 지정해야 합니다. 동작점 오프셋 파라미터를 상태공간 배열에 포함된 오프셋 사용으로 설정한 경우에는 모델 오프셋을 배열의 Offsets 속성에 지정할 수도 있습니다. 이러한 속성에 대한 자세한 내용은 ss 모델 도움말 페이지를 참조하십시오.

블록이 동기 상태 제어를 갖는 모델에 있는 경우(State Control (HDL Coder) 블록 참조) 이산시간 모델의 배열을 지정해야 합니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: sys
값: ss or idss model array name in quotes

예: set_param(gcb,"sys","sysArrayName")

시뮬레이션 시작을 위해 로컬 모델에 사용하는 초기 조건으로, 모델 상태 개수와 동일한 길이의 벡터로 지정됩니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: x0
값: "0" (디폴트 값) | initial state values in quotes

예: set_param(gcb,"x0","[0 0.1]")

R2024a 이후

동작점 오프셋에 대한 형식을 지정합니다.

  • 오프셋을 double형 배열로 지정입력 오프셋, 출력 오프셋, 상태 오프셋상태 도함수/업데이트 오프셋 파라미터를 사용하여 오프셋을 지정합니다.

  • 오프셋을 구조체형 배열로 지정 — 오프셋을 u, y, xdx 필드(각각 입력 오프셋, 출력 오프셋, 상태 오프셋, 상태 도함수 오프셋을 지정함)를 갖는 구조체형 배열로 지정합니다.

  • 상태공간 배열에 포함된 오프셋 사용 — 상태공간 배열의 Offsets 속성에 지정된 오프셋을 사용합니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: opSpecOption
값: "Specify Offsets as double arrays" (디폴트 값) | "Specify offsets as struct array" | "Use offsets in state-space array"

예: set_param(gcb,"opSpecOption","Specify offsets as struct array")

입력 u(t)의 오프셋으로, 다음 중 하나로 지정됩니다.

  • 0 — 입력 오프셋이 없을 때 사용합니다(u¯(p)=0  p).

  • 입력 개수와 동일한 길이의 double형 벡터 — 입력 오프셋이 스케줄링 공간 전체에서 동일한 경우 사용합니다.

  • 크기가 nu×1×N1×...×Nm인 double형 배열 — 오프셋이 있고 해당 오프셋이 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 nu는 입력 개수이고 N1×...×Nm은 스케줄링 그리드 크기입니다. 예를 들어 모델이 3개의 입력, 2개의 출력, 4개의 상태를 가지며 동작점으로 구성된 5×6 그리드로 스케줄링된 경우 입력 배열 크기는 3×1×5×6이어야 합니다. 상태공간 배열 sys의 크기를 확인하려면 size(sys)를 사용하십시오.

종속 관계

이 파라미터를 활성화하려면 동작점 오프셋 형식을 오프셋을 double형 배열로 지정으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: uOffset
값: "0" (디폴트 값) | array name in quotes

예: set_param(gcb,"uOffset","uOffArray")

출력 y(t)의 오프셋으로, 다음 중 하나로 지정됩니다.

  • 0 — 출력 오프셋이 없을 때 사용합니다(y¯(p)=0  p).

  • 출력 개수와 동일한 길이의 double형 벡터. 출력 오프셋이 스케줄링 공간 전체에서 동일한 경우 사용합니다.

  • 크기가 ny×1×N1×...×Nm인 double형 배열 — 오프셋이 있고 해당 오프셋이 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 ny는 출력 개수이고 N1×...×Nm은 스케줄링 그리드 크기입니다. 예를 들어 모델이 3개의 입력, 2개의 출력, 4개의 상태를 가지며 동작점으로 구성된 5×6 그리드로 스케줄링된 경우 입력 배열 크기는 2×1×5×6이어야 합니다. 상태공간 배열 sys의 크기를 확인하려면 size(sys)를 사용하십시오.

종속 관계

이 파라미터를 활성화하려면 동작점 오프셋 형식을 오프셋을 double형 배열로 지정으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: yOffset
값: "0" (디폴트 값) | array name in quotes

예: set_param(gcb,"yOffset","yOffArray")

상태 x(t)의 오프셋으로, 다음 중 하나로 지정됩니다.

  • 0 — 상태 오프셋이 없을 때 사용합니다(x¯(p)=0  p).

  • 상태 개수와 동일한 길이의 double형 벡터. 상태 오프셋이 스케줄링 공간 전체에서 동일한 경우 사용합니다.

  • 크기가 nx×1×N1×...×Nm인 double형 배열 — 오프셋이 있고 해당 오프셋이 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 nx는 상태 개수이고 N1×...×Nm은 스케줄링 그리드 크기입니다. 예를 들어 모델이 3개의 입력, 2개의 출력, 4개의 상태를 가지며 동작점으로 구성된 5×6 그리드로 스케줄링된 경우 입력 배열 크기는 4×1×5×6이어야 합니다. 상태공간 배열 sys의 크기를 확인하려면 size(sys)를 사용하십시오.

종속 관계

이 파라미터를 활성화하려면 동작점 오프셋 형식을 오프셋을 double형 배열로 지정으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: xOffset
값: "0" (디폴트 값) | array name in quotes

예: set_param(gcb,"xOffset","xOffArray")

상태 도함수 또는 업데이트 변수 dx(t)의 오프셋으로, 다음 중 하나로 지정됩니다.

  • 평형 조건에서 선형화를 통해 선형 시스템 배열을 얻은 경우 평형 동작 조건 가정 옵션을 선택합니다. 이 옵션은 연속시간 시스템에서는 dx¯(p)=0의 오프셋에, 이산시간 시스템에서는 dx¯(p)=x¯(p)의 오프셋에 대응합니다. 이 옵션은 기본적으로 선택됩니다.

  • 비평형 조건에서 얻은 시스템이 선형 시스템에 한 개 이상 있는 경우 평형 동작 조건 가정 옵션을 선택 해제합니다. 오프셋 값 필드에 다음 중 하나를 지정합니다.

    • dx 오프셋 값이 스케줄링 공간에서 동일한 경우, 상태 개수와 동일한 길이의 double형 벡터로 지정합니다.

    • dx 오프셋이 있고 이 오프셋이 스케줄링 공간에서 변하는 경우 크기가 nx×1×N1×...×Nm인 double형 배열로 지정 — 오프셋이 있고 해당 오프셋이 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 nx는 상태 개수이고 N1×...×Nm은 스케줄링 그리드 크기입니다. 예를 들어 모델이 3개의 입력, 2개의 출력, 4개의 상태를 가지며 동작점으로 구성된 5×6 그리드로 스케줄링된 경우 입력 배열 크기는 4×1×5×6이어야 합니다. 상태공간 배열 sys의 크기를 확인하려면 size(sys)를 사용하십시오.

종속 관계

이 파라미터를 활성화하려면 동작점 오프셋 형식을 오프셋을 double형 배열로 지정으로 설정하고 평형 동작 조건 가정을 비활성화십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: dxOffset
값: "0" (디폴트 값) | array name in quotes

예: set_param(gcb,"dxOffset","dxOffArray")

R2024a 이후

모델 오프셋으로, 다음 필드를 갖는 구조체로 지정됩니다.

필드설명
u입력 오프셋
y출력 오프셋
x상태 오프셋
dx상태 도함수 오프셋
  • 오프셋 값이 스케줄링 공간에서 동일한 경우, 해당하는 필드의 입력 개수, 출력 개수 또는 상태 개수와 동일한 길이의 double형 벡터로 지정합니다.

  • 오프셋이 스케줄링 공간에서 변하는 경우, 구조체형 배열을 지정합니다. 예를 들어 모델에 3개의 입력, 2개의 출력, 4개의 상태가 있다고 가정해 보겠습니다. 동작점으로 구성된 5×6 배열을 사용하여 모델을 선형화하는 경우, 구조체형 배열 크기는 5×6이어야 하며 각 요소는 해당하는 필드의 입력 개수, 출력 개수 또는 상태 개수와 동일한 길이의 벡터를 포함해야 합니다.

StoreOffsets 옵션을 true로 설정하여 선형화하면 linearize (Simulink Control Design) 함수는 이 형식의 오프셋을 info.Offsets 출력으로 반환합니다.

종속 관계

이 파라미터를 활성화하려면 동작점 오프셋 형식을 오프셋을 구조체형 배열로 지정으로 설정하십시오. (R2024a 이후)

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: Offset
값: "struct" (디폴트 값) | structure array name in quotes

예: set_param(gcb,"Offset","OffsetStructName")

고정된 항목 탭

고정 계수의 값을 제공하는 상태공간 모델로, 다음 중 하나로 지정됩니다.

  • 상태공간 배열에서 첫 번째 모델 사용(디폴트 값:) — 상태공간 배열의 첫 번째 모델이 LPV 모델을 표현하는 데 사용됩니다. 다음 예제에서는 상태공간 배열을 객체 sys로 지정하고, 고정 계수를 모델 sys(:,:,1)에서 가져옵니다.

    % Specify a 4-by-5 array of state-space models.
    sys = rss(4,2,3,4,5);
    a = 1:4; 
    b = 10:10:50;
    [av,bv] = ndgrid(a,b);
    % Use "alpha" and "beta" variables as scheduling parameters.
    sys.SamplingGrid = struct('alpha',av,'beta',bv);  

    고정 계수는 모델 sysFixed = sys(:,:,1)에서 가져옵니다. 이는 [alpha=1, beta=10]에 해당합니다. A 행렬의 (2,1) 요소가 강제로 고정되는 경우 시뮬레이션 중에 사용되는 값은 sysFixed.A(2,1)입니다.

  • 사용자 지정 값 — 고정 요소에 서로 다른 상태공간 모델을 지정합니다. 상태공간 모델 필드에 고정 모델을 위한 변수를 지정합니다. 고정 모델은 LPV 모델의 상태공간 배열과 동일한 상태 기저를 사용해야 합니다.

상태공간 행렬의 계수와 지연 벡터의 계수 중 고정할 계수를 지정합니다.

다음 중 하나를 지정합니다.

  • 행렬의 모든 요소가 동일하게 취급되는 경우 스칼라 부울(true 또는 false).

    상태공간 행렬과 지연 벡터의 디폴트 값은 false입니다. 즉, 고정되지 않고 자유로운 것으로 간주된다는 뜻입니다.

  • 대응하는 행렬 크기와 호환되는 크기의 논리형 행렬:

    상태공간 행렬

    고정 요소 행렬의 크기

    A 행렬

    nx×nx

    B 행렬

    nx×nu

    C 행렬

    ny×nx

    D 행렬

    ny×nu

    입력 지연

    nu×1

    출력 지연

    ny×1

    내부 지연

    ni×1

    여기서 nu는 입력 개수이고, ny는 출력 개수이고, nx는 상태 개수이고, ni는 내부 지연 벡터의 길이입니다.

  • 고정 요소 위치를 지정하기 위한 숫자형 인덱스. 행렬 요소에 지정된 첨자 (i,j)에 대응하는 숫자형 인덱스를 생성하는 방법에 대한 자세한 내용은 sub2ind 도움말 페이지를 참조하십시오.

스케줄링 탭

보간 방법. 이 방법은 그리드 위치에서 벗어나 있는 스케줄링 파라미터 값에 대해 상태공간 데이터를 어떻게 계산해야 하는지를 정의합니다.

다음 옵션 중 하나를 지정합니다.

  • 평탄 — 현재 점과 가장 가깝지만 그보다 크지 않은 그리드 점에서 상태공간 데이터를 선택합니다. 현재 점은 현재 시간에서의 스케줄링 파라미터 값입니다.

  • 최근접이웃 — 스케줄링 공간에서 가장 가까이 있는 그리드 점에서 상태공간 데이터를 선택합니다.

  • 선형 — 스케줄링 공간에서 2d개의 최근접이웃의 선형 보간을 통해 상태공간 데이터를 얻습니다. 여기서 d는 스케줄링 파라미터 개수입니다.

스케줄링 파라미터 값의 정규 그리드에 대한 디폴트 보간 방식은 선형입니다. 비정규 그리드에서는 어떤 방법을 선택하든 항상 최근접이웃 보간 방식이 사용됩니다. 정규 그리드 및 비정규 그리드에 대한 자세한 내용은 Regular vs. Irregular Grids 항목을 참조하십시오.

선형 방법이 정확도가 가장 높지만 계산 시간은 더 오래 걸립니다. 모드 전환 동특성을 갖는 모델에는 평탄최근접이웃 방법이 적합합니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: IMethod
값: "Linear" (디폴트 값) | "Nearest" | "Flat"

예: set_param(gcb,"IMethod","Flat")

외삽 방법. 외삽 방법은 상태공간 배열이 제공된 범위(SamplingGrid 속성에 지정됨)를 벗어난 스케줄링 파라미터 값에 대해 상태공간 데이터를 계산하는 방식을 정의합니다.

다음 옵션 중 하나를 지정합니다.

  • 자르기(디폴트 값) — 외삽을 비활성화하고, 사용 가능한 스케줄링 그리드 점 중 현재 점에 가장 가까운 마지막 점에 대응하는 데이터를 반환합니다.

  • 선형 — 현재 값이 첫 번째 그리드 점 값보다 작은지 아니면 마지막 그리드 점 값보다 큰지에 따라, 각 스케줄링 파라미터의 첫 번째 값 쌍 또는 마지막 값 쌍 사이에 직선을 각각 피팅합니다. 이 방법은 현재 값에 대응하는 해당 직선의 점을 반환합니다. 선형 외삽을 사용하려면 보간 방식도 선형이어야 합니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: EMethod
값: "Clip" (디폴트 값) | "Linear"

예: set_param(gcb,"EMethod","Linear")

블록은 사전 룩업 알고리즘을 사용하여 스케줄링 공간에서 현재 스케줄링 파라미터 값의 위치를 결정합니다. 선형 탐색 또는 이진 탐색을 선택하십시오. 탐색 방법마다 속도 측면의 이점을 얻을 수 있는 상황이 각기 다릅니다. 이 파라미터에 대한 자세한 내용은 Prelookup (Simulink) 블록 도움말 페이지를 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

블록 파라미터 값을 프로그래밍 방식으로 구하려면 get_param (Simulink) 함수를 사용하십시오.

파라미터: IndexSearch
값: "Binary Search" (디폴트 값) | "Linear Search"

예: set_param(gcb,"IndexSearch","Linear Search")

블록이 이전 시간 스텝에서 발견된 인덱스를 사용하여 탐색하게 하려면 이 체크박스를 선택하십시오. 이 파라미터에 대한 자세한 내용은 Prelookup (Simulink) 블록 도움말 페이지를 참조하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: IndexBegin
값: "on" (디폴트 값) | "off"

예: set_param(gcb,"IndexBegin","off")

코드 생성 탭

블록 데이터형으로, double형 또는 single형으로 지정됩니다.

종속 관계

이 옵션을 활성화하려면 이산시간 상태공간 모델을 입력으로 사용하십시오.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: DataType
값: "double" (디폴트 값) | "single"

예: set_param(gcb,"DataType","single")

지연이 있는 모델에 저장할 입력 점 개수에 대한 초기 메모리 할당. 입력 점 개수가 초기 버퍼 크기를 초과하면 블록은 추가 메모리를 할당합니다. 디폴트 값은 1024입니다.

모델을 작성하거나 액셀러레이터 모드에서 모델을 실행할 경우 초기 버퍼 크기는 모델에 예상되는 최대 지연을 처리할 만큼 충분히 커야 합니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: InitBufferSize
값: "1024" (디폴트 값) | positive integer greater than 5 in quotes

예: set_param(gcb,"InitBufferSize","512")

이전 시간 스텝에서 지연된 입력 및 출력 데이터를 저장할 때 고정 버퍼 크기를 사용할지를 지정합니다. 입력 또는 출력 지연이 있는 연속시간 LPV 시스템에는 이 옵션을 사용하십시오. 버퍼가 가득 차면 새 데이터가 버퍼에 이미 있는 데이터를 대체합니다. 버퍼에 없는 출력 값을 추정할 때는 선형 외삽이 사용됩니다.

프로그래밍 방식 사용

블록 파라미터 값을 프로그래밍 방식으로 설정하려면 set_param (Simulink) 함수를 사용하십시오.

파라미터: FixedBuffer
값: "off" (디폴트 값) | "on"

예: set_param(gcb,"FixedBuffer","on")

확장 기능

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2014b에 개발됨

모두 확장