CODESYS Math Libraries
Introducción
CODESYS Math Libraries incluye el Matriz biblioteca y la interna Floating Point Utils biblioteca. Matrix La biblioteca admite matrices de dimensiones arbitrarias y operaciones matemáticas básicas sobre ellas. Se admiten las siguientes operaciones: suma, multiplicación, resolución de ecuaciones lineales, inversión y cálculo del determinante
Descripción del producto
El Matrix La biblioteca proporciona un tipo de datos para definir matrices de dimensiones arbitrarias y funciones para realizar operaciones básicas en matrices.
Tipos de datos y funciones
Las matrices se definen mediante mtx.Matrix tipo de datos. mtx.Matrix el tipo de datos guarda una matriz como ARRAY de LREAL. La matriz está en forma de fila principal
Las operaciones matemáticas básicas se proporcionan como funciones que tienen 3 matrices como VAR_IN_OUT argumento: resultado, fuente, objetivo. Por ejemplo, la función de suma de matrices tiene la siguiente interfaz:
(* Adds two matrices : C := A + B. * A, B, and C must have identical dimensions. * Note: A, B, and C may all be the same matrix. *) FUNCTION AddM : ResultCode VAR_IN_OUT C : Matrix ; (* The result *) A : Matrix ; (* The first summand *) B : Matrix ; (* The second summand *) END_VAR
La biblioteca ofrece las siguientes operaciones matemáticas:
Suma de matrices (por elementos):
AddMSustracción de matrices (por elementos):
SubMMultiplicación de matrices (por elementos):
TimesMDivisión de matrices (por elementos):
RDivideMMultiplicación escalar de una matriz:
MultMSMultiplicación de matrices:
MultMTransposición de una matriz:
TransposeM
También hay algunas funciones auxiliares para inicializar matrices, copiar y acceder a los elementos:
Inicialice una matriz con un
ARRAYde valores:InitMatrixCopiar
ARRAYelementos a la matriz:CopyElemsCopie matrices con la misma dimensión:
CopyMatrixInicializar como matriz de identidad:
IdentityMatrixInicializar como matriz cero:
ZeroMatrixElementos de lectura y escritura:
Elem,SetElem
También se proporcionan operaciones más complejas:
Resolver una ecuación lineal
A * X = B:SolveLUInvertir una matriz cuadrática:
InvertLUCalcule el determinante de una matriz cuadrática:
DeterminantLUDetermine un
LUdescomposición (esta descomposición sirve de base para las tres funciones anteriores):DecomposeLU
Administración de memoria
El usuario es responsable de la administración de la memoria. Las matrices se inicializarán con un puntero a la memoria (mediante InitMatrix función). En algunos casos, es posible que el usuario proporcione una memoria adecuada. Además, los bloques de funciones auxiliares MatrixS, ColVectorS, y RowVectorS se puede usar para inicializar matrices con matrices de tamaño constante. Implementan IMatrixAllocator interfaz que también está disponible para el usuario.