Skip to main content

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): AddM

  • Sustracción de matrices (por elementos): SubM

  • Multiplicación de matrices (por elementos): TimesM

  • División de matrices (por elementos): RDivideM

  • Multiplicación escalar de una matriz: MultMS

  • Multiplicación de matrices: MultM

  • Transposició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 ARRAY de valores: InitMatrix

  • Copiar ARRAY elementos a la matriz: CopyElems

  • Copie matrices con la misma dimensión: CopyMatrix

  • Inicializar como matriz de identidad: IdentityMatrix

  • Inicializar como matriz cero: ZeroMatrix

  • Elementos de lectura y escritura: Elem, SetElem

También se proporcionan operaciones más complejas:

  • Resolver una ecuación lineal A * X = B: SolveLU

  • Invertir una matriz cuadrática: InvertLU

  • Calcule el determinante de una matriz cuadrática: DeterminantLU

  • Determine un LU descomposició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.