Interpolate Matrix(x,y,z)

Возвратите интерполированную матрицу для данных входных параметров

  • Библиотека:
  • Aerospace Blockset / GNC / Управление

  • Interpolate Matrix(x,y,z) block

Описание

Блок Interpolate Matrix(x,y,z) интерполирует 3D массив матриц.

Этот 3D случай принимает, что матрица задана в зависимости от трех независимых переменных:

x = [x 1 x 2 x 3... x i x i+1... x n

y = [y 1 y 2 y 3... y j y j+1... y m

z = [z 1 z 2 z 3... z k z k+1... z p

Для данных значений x, y и z, интерполированы восемь матриц. Затем для

x i < x < x i+1

y j < y < y j+1

z k < z < z k+1

выходной матрицей дают

(1λz){(1λy)[(1λx)M(xi,yj,zk)+λxM(xi+1,yj,zk)]             +λy[(1λx)M(xi,yj+1,zk)+λxM(xi+1,yj+1,zk)]}   +λz{(1λy)[(1λx)M(xi,yj,zk+1)+λxM(xi+1,yj,zk+1)]            +λy[(1λx)M(xi,yj+1,zk+1)+λxM(xi+1,yj+1,zk+1)]}

где три части интерполяции обозначаются

λx=(xxi)/(xi+1xi)iy=(yyj)/(yj+1yj)λz=(zzk)/(zk+1zk)

В 3D случае интерполяция выполняется сначала на x, затем y, и наконец z.

Матрица, которая будет интерполирована, должна быть пятимерной, первые две размерности, соответствующие матрице в каждом значении x, y и z. Например, если у вас есть восемь матриц A, B, C, D, E, F, G и H, заданный в следующих значениях x, y и z, затем соответствующей входной матрицей дают

(x = 0.0,y = 1.0,z = 0.1) matrix(:,:,1,1,1) = A;
(x = 0.0,y = 1.0,z = 0.5) matrix(:,:,1,1,2) = B;
(x = 0.0,y = 3.0,z = 0.1) matrix(:,:,1,2,1) = C;
(x = 0.0,y = 3.0,z = 0.5) matrix(:,:,1,2,2) = D;
(x = 1.0,y = 1.0,z = 0.1) matrix(:,:,2,1,1) = E;
(x = 1.0,y = 1.0,z = 0.5) matrix(:,:,2,1,2) = F;
(x = 1.0,y = 3.0,z = 0.1) matrix(:,:,2,2,1) = G;
(x = 1.0,y = 3.0,z = 0.5) matrix(:,:,2,2,2) = H;

Ограничения

Этот блок должен управляться от блока Prelookup.

Порты

Входной параметр

развернуть все

Первый индекс интерполяции i в виде скаляра.

Типы данных: double

Первая часть интерполяции λ x в виде скаляра.

Типы данных: double

Второй индекс интерполяции j в виде скаляра.

Типы данных: double

Вторая часть интерполяции λ y в виде скаляра.

Типы данных: double

Третий индекс интерполяции k в виде скаляра.

Типы данных: double

Третья часть интерполяции λ z в виде скаляра.

Типы данных: double

Вывод

развернуть все

Интерполированная матрица в виде матрицы.

Типы данных: double

Параметры

развернуть все

Матрица, которая будет интерполирована, с пятью индексами и третьими, четвертыми, и пятыми индексами, маркирующими значения интерполяции x, y и z.

Программируемое использование

Параметры блоков: matrix
Ввод: символьный вектор
Значения: матрица
Значение по умолчанию: 'matrix'

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представлено до R2006a