Interpolate Matrix(x,y,z)

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

  • Библиотека:
  • Аэрокосмический Blockset/GNC/Control

  • Interpolate Matrix(x,y,z) block

Описание

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

Этот трехмерный случай предполагает, что матрица задана как функция трех независимых переменных:

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

y = [y 1 y 2 y 3 ... y j y j + 1... y м]

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

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

x я < 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)

В трехмерном случае интерполяция проводится сначала на 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++ с помощью Coder™ Simulink ®

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