Main Content

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

LPV System

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

설명

Simulink®에서 선형 파라미터 가변(LPV) 시스템을 표현하고 시뮬레이션합니다. 블록은 코드 생성도 지원합니다.

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

수학적으로 LPV 시스템은 다음과 같이 표현됩니다.

dx(t)=A(p)x(t)+B(p)u(t)y(t)=C(p)x(t)+D(p)u(t)x(0)=x0(1)

여기서 각각은 다음과 같습니다.

  • u(t)는 입력입니다.

  • y(t)는 출력입니다.

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

  • dx(t)는 연속시간 시스템에서는 상태 도함수 벡터 x˙이고 이산시간 시스템에서는 상태 업데이트 벡터 x(t+ΔT)입니다. ΔT는 샘플 시간입니다.

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

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

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

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

LPV 시스템 표현은 dx, x, u, y 변수의 오프셋을 허용하도록 확장할 수 있습니다. 이 형태를 LPV 모델의 아핀 형태라고 합니다. 수학적으로 다음은 LPV 시스템을 표현합니다.

dx(t)=A(p)x(t)+B(p)u(t)+(dx¯(p)A(p)x¯(p)B(p)u¯(p))y(t)=C(p)x(t)+D(p)u(t)+(y¯(p)C(p)x¯(p)D(p)u¯(p))x(0)=x0(2)

dx¯(p),  x¯(p),  u¯(p),  y¯(p)는 지정된 파라미터 값 p = p(t)에서 dx(t), x(t), u(t)y(t) 값의 오프셋입니다.

선형 시스템 배열의 이러한 표현을 얻으려면 Simulink 모델을 일군의 동작점에서 선형화하십시오(Batch Linearization (Simulink Control Design) 참조). 오프셋은 모델을 선형화한 동작점에 대응합니다.

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

LPV System 블록에는 다음 제한이 적용됩니다.

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

  • 선형 모델의 비정규 그리드를 사용하여 LPV 시스템을 정의할 경우 최근접이웃 보간 방식만 사용됩니다. 이 경우 시뮬레이션 결과의 정확도가 낮아질 수 있습니다. 정규 그리드를 사용하는 것이 좋습니다. 정규 그리드 및 비정규 그리드에 대한 자세한 내용은 Regular vs. Irregular Grids 항목을 참조하십시오.

  • LPV System block

데이터형 지원

single형 데이터 및 double형 데이터. 그 외 다른 모든 데이터형의 입력 신호 또는 모델 속성은 single형 또는 double형으로 변환해야 합니다.

파라미터

LPV System 블록 파라미터 대화 상자에는 시스템 데이터, 스케줄링 알고리즘 및 출력 포트를 지정할 수 있는 5개 탭이 들어 있습니다. 다음 표에 블록 파라미터가 요약되어 있습니다.

작업파라미터
상태공간 모델의 배열과 초기 상태 지정

LPV 모델 탭:

동작점 오프셋 지정

LPV 모델 탭:

상태 도함수 또는 업데이트 변수의 오프셋 지정

LPV 모델 탭:

고정할 모델 행렬과, 모델 데이터의 요소를 재정의하기 위한 그 공칭 값을 지정합니다.
상황에 따라 시뮬레이션을 위해 A(p) 같은 파라미터 종속 행렬을 고정 값 A*로 바꿀 수 있습니다. 예를 들어 A*는 스케줄링 범위에서의 평균 값을 나타낼 수 있습니다.

고정된 항목 탭:

보간과 외삽을 위한 옵션 지정

스케줄링 탭:

블록에 추가 출력 지정

출력 탭:

코드 생성 설정 지정

코드 생성 탭:

상태공간 배열

상태공간(ss 또는 idss (System Identification Toolbox)) 모델의 배열. 배열에 있는 모든 모델은 상태에 대한 동일한 정의를 사용해야 합니다. 모델에 스케줄링 파라미터를 지정하려면 상태공간 객체의 SamplingGrid 속성을 사용하십시오. SamplingGrid 속성에 대한 자세한 내용은 ss 또는 idss 모델 도움말 페이지를 참조하십시오.

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

초기 상태

시뮬레이션 시작을 위해 국부적 모델에 사용하는 초기 조건으로, 다음 중 하나로 지정됩니다.

  • 0(디폴트 값)

  • 모델 상태 수와 동일한 길이의 double형 벡터

입력 오프셋

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

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

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

  • 크기가 [nu 1 sysArraySize]인 double형 배열 — 오프셋이 있고 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 nu는 입력 개수이고, sysArraySize는 상태공간 배열의 배열 크기입니다. 배열 크기를 확인하려면 size를 사용하십시오.

선형화 중에 오프셋을 얻은 후 LPV System 블록에 지원되는 형식으로 변환할 수 있습니다. 자세한 내용은 Approximate Nonlinear Behavior Using Array of LTI Systems (Simulink Control Design)getOffsetsForLPV (Simulink Control Design)를 참조하십시오.

출력 오프셋

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

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

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

  • 크기가 [ny 1 sysArraySize]인 double형 배열. 오프셋이 있고 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 ny는 출력 개수이고, sysArraySize는 상태공간 배열의 배열 크기입니다. 배열 크기를 확인하려면 size를 사용하십시오.

선형화 중에 오프셋을 얻은 후 LPV System 블록에 지원되는 형식으로 변환할 수 있습니다. 자세한 내용은 Approximate Nonlinear Behavior Using Array of LTI Systems (Simulink Control Design)getOffsetsForLPV (Simulink Control Design)를 참조하십시오.

상태 오프셋

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

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

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

  • 크기가 [nx 1 sysArraySize]인 double형 배열. 여기서 nx는 상태 개수이고, sysArraySize는 상태공간 배열의 배열 크기입니다. 오프셋이 있고 스케줄링 공간에서 변하는 경우 사용합니다. 여기서 nx는 상태 개수이고, sysArraySize는 상태공간 배열의 배열 크기입니다. 배열 크기를 확인하려면 size를 사용하십시오.

선형화 중에 오프셋을 얻은 후 LPV System 블록에 지원되는 형식으로 변환할 수 있습니다. 자세한 내용은 Approximate Nonlinear Behavior Using Array of LTI Systems (Simulink Control Design)getOffsetsForLPV (Simulink Control Design)를 참조하십시오.

상태 도함수/업데이트 오프셋

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

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

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

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

    • dx 오프셋이 있고 스케줄링 공간에서 변하는 경우, 크기가 [nx 1 sysArraySize]인 double형 배열로 지정합니다. 여기서 nx는 상태 개수이고, sysArraySize는 상태공간 배열의 배열 크기입니다.

선형화 중에 오프셋을 얻은 후 LPV System 블록에 지원되는 형식으로 변환할 수 있습니다. 자세한 내용은 Approximate Nonlinear Behavior Using Array of LTI Systems (Simulink Control Design)getOffsetsForLPV (Simulink Control Design)를 참조하십시오.

공칭 모델

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

  • 상태공간 배열에서 첫 번째 모델 사용(디폴트 값:) — 상태공간 배열의 첫 번째 모델이 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 항목을 참조하십시오.

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

외삽 방법

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

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

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

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

인덱스 탐색 방법

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

이전의 인덱스 결과를 사용하여 인덱스 탐색 시작

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

상태 출력

상태 값을 출력하려면 x 포트를 블록에 추가하십시오. 이 옵션은 기본적으로 선택됩니다.

상태 도함수(연속시간) 또는 상태 업데이트(이산시간) 출력

상태 도함수 값을 출력하거나 값을 업데이트하려면 dx 포트를 블록에 추가하십시오. 이 옵션은 기본적으로 선택됩니다.

보간된 상태공간 데이터 출력

상태공간 데이터를 구조체로 출력하려면 ss 포트를 블록에 추가하십시오. 이 옵션은 기본적으로 선택됩니다.

생성된 구조체의 필드는 다음과 같습니다.

  • 상태공간 행렬 A, B, C, D.

  • 지연 InputDelay, OutputDelayInternalDelay. InternalDelay 필드는 모델에 내부 지연이 있는 경우에만 사용할 수 있습니다.

보간된 오프셋 출력

LPV 모델 오프셋 (u¯(p), y¯(p), x¯(p),dx¯(p))를 출력하려면 offset 포트를 블록에 추가하십시오.

구조체의 필드는 다음과 같습니다.

  • 연속시간에서는 InputOffset, OutputOffset, StateOffsetStateDerivativeOffset.

  • 이산시간에서는 InputOffset, OutputOffset, StateOffsetStateUpdateOffset.

블록 데이터형(이산시간 경우만 해당)

지원되는 데이터형. 이산시간 상태공간 모델에만 이 옵션을 사용하십시오. double형 또는 single형을 지정하십시오.

지연에 대한 초기 버퍼 크기

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

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

고정 버퍼 크기 사용

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

예제

스케줄링 파라미터 입력 포트 구성하기

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

선형 파라미터 가변 시스템 시뮬레이션하기

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

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

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

A=[01kmcm],  B=[01m],  C=[10]x˙=Ax+Bu,  y=Cx

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

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

% Specify damping coefficient.
c = 5;   
% Specify stiffness.
k = 300; 
% Specify load command.
u = 1:10;
% Specify mass.
m = 10*u + 0.1*u.^2;
% Compute linear system at a given mass value.
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의 값을 제공하면, 주어진 시점에서 선형 모델을 계산하기 위해 보간이 사용됩니다. 그 외에는 외삽이 사용됩니다.

포트

포트 이름

포트 유형

(In/Out)

설명
u In

이전에 설명한 수식 2에서의 입력 신호 u(t). 다중 입력의 경우 이 포트는 해당 입력의 차원의 신호를 받습니다.

parIn

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

yOut

모델 출력

x Out

모델 상태의 값

xdot Out

상태 도함수의 값. 상태 도함수는 스케줄링 파라미터를 정의하는 데 사용되기도 합니다.

ssOut

주요 시뮬레이션 시간 스텝에서의 로컬 상태공간 모델

offsetOutLPV 모델 오프셋

확장 기능

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

R2014b에 개발됨