Prelookup 블록 및 Interpolation 블록 사용하기
이 예제에서는 Prelookup 블록 및 Interpolation Using Prelookup 블록을 사용하는 방법을 보여줍니다.
소개
Prelookup 블록은 보간에 필요한 인덱스와 구간 비율을 계산하고, Interpolation Using Prelookup 블록은 이 정보를 사용하여 보간을 수행합니다. 이 두 블록을 함께 사용하면 n-D Lookup Table 블록과 동일한 동작을 수행합니다. 이 예제에서는 다음을 설명합니다.
n-D Lookup Table 블록만 사용하는 경우와 비교하여, Prelookup 블록과 Interpolation 블록을 개별적으로 사용했을 때 유연성이 더욱 향상되고 효율적인 시뮬레이션 및 코드 생성이 가능해지는 사례.
Prelookup 블록에서 하위 테이블(subtable)을 선택하는 방법.
Prelookup 블록과 Interpolation Using Prelookup 블록 간에 절점과 테이블의 일관성을 유지하는 방법.
Prelookup 블록과 Interpolation Using Prelookup 블록이 함께 작동하는 모델
Prelookup 블록과 Interpolation Using Prelookup 블록이 함께 작동하여 반복적 사전 룩업을 수행하지 않고도 룩업 알고리즘을 수행하는 방법을 살펴보려면 모델 sldemoPrelookupInterpolation.slx를 여십시오.
open_system("sldemoPrelookupInterpolation.slx")
Prelookup 블록은 계산 과정 중 인덱스 탐색 부분을 수행합니다.
Interpolation Using Prelookup 블록은 나머지 계산을 수행합니다.
효율적인 시뮬레이션
이 모델에서는 두 개의 인덱스 탐색 결과가 네 개의 블록에서 총 일곱 번 활용됩니다. 이와 동일한 구현을 n-D Lookup Table 블록을 사용해서 할 경우에는 두 번이 아닌 일곱 번의 인덱스 탐색이 필요합니다. 이 설정은 인덱스 탐색과 비율 계산 결과를 여러 다른 보간에 재사용함으로써 런타임 성능을 향상시키고 여러 룩업 테이블 전반에서 수행되는 인덱스 탐색 횟수를 최소화합니다.
유연성 확대
Prelookup 블록과 Interpolation Using Prelookup 블록을 함께 사용하면 추가적인 최적화를 위해 각 차원마다 해당 절점에 적합한 인덱스 탐색 방법을 사용할 수 있기 때문에 더 큰 유연성을 제공합니다. 예를 들어 sldemoPrelookupInterpolation.slx 모델에는 두 개의 Prelookup 블록이 포함되어 있으며, 각 블록은 서로 다른 인덱스 탐색 방법을 사용하도록 구성되어 있습니다.
Prelookup 1은 인덱스 탐색 방법 > 균일 간격의 점 옵션을 사용하여 첫 번째 입력
U1에 대한 인덱스 탐색을 수행하며, 이에 대응되는 절점은 이 차원에서 간격이 균일합니다.Prelookup 2는 인덱스 탐색 방법 > 이진 탐색 옵션을 사용하여 두 번째 입력
U2에 대한 인덱스 탐색을 수행하며, 이에 대응되는 절점은 간격이 균일하지 않습니다.
이와 대조적으로, n-D Lookup Table 블록은 모든 입력에 대해 한 번에 하나의 인덱스 탐색 방법만 사용하는 구성만 가능합니다.
하위 테이블 선택 모델
Interpolation Using Prelookup 블록에서 하위 테이블을 선택하려면, n차원 테이블의 후행 차원을 선택 차원으로 표시하도록 블록을 구성할 수 있습니다. 이는 해당 차원에 대한 입력이 하위 테이블을 선택(예: 3차원 테이블에서 2차원 평면 선택)하는 데만 사용되는 정수임을 의미합니다. 그런 다음 선택된 하위 테이블에 대해 일반적인 방식으로 보간이 수행됩니다.
Interpolation using Prelookup 블록의 하위 테이블 선택 기능을 사용하여, 테이블 데이터의 일부 집합에 대해 보간을 모델링하는 방법을 보려면 sldemoSubtableSelection.slx 모델을 여십시오.
open_system("sldemoSubtableSelection.slx")
Interpolation using Prelookup 블록에서 테이블 값을 구성하기 위해, 이 블록은 각각 특정 시나리오용으로 설계된 세 개의 2차원 테이블을 층 형태로 쌓아 구성합니다. 입력 Subtable Selection을 통해 해당 시나리오에 맞는 2차원 테이블이 선택되고, 이어서 Interpolation 블록이 선택된 테이블에 대해 2차원 보간을 수행합니다.
이 보간 모드를 활성화하려면, Interpolation 블록 하위 테이블 선택 차원 수 파라미터를 양의 정수로 설정하십시오. 모델은 지정된 값을 테이블 데이터의 가장 높은 차원부터 선택할 차원의 개수로 해석합니다. 선택 차원을 지정하는 방법에 대한 자세한 내용은 Interpolation Using Prelookup 항목을 참조하십시오.
절점 데이터와 테이블 데이터의 일관성 확인하기
절점 데이터와 테이블 데이터의 일관성을 확인하려면, Prelookup 블록의 절점 데이터 길이가 연결된 Interpolation Using Prelookup 블록의 테이블 데이터의 해당 차원과 일치하는지 확인하십시오. Simulink®는 블록 다이어그램을 업데이트할 때 항상 두 블록 간의 일관성을 검사합니다. 절점 데이터와 테이블 데이터 간에 불일치가 있으면 모델은 오류를 반환합니다.
참고 항목
n-D Lookup Table | Prelookup | Interpolation Using Prelookup