Skip to main content

CODESYS Math Libraries

Présentation

CODESYS Math Libraries comprend le Matrice bibliothèque et interne Utils à virgule flottante bibliothèque. Matrix la bibliothèque prend en charge les matrices de dimensions arbitraires et les opérations mathématiques de base sur celles-ci. Les opérations suivantes sont prises en charge : addition, multiplication, résolution d'équations linéaires, inversion et calcul du déterminant

Description du produit

Le Matrix La bibliothèque fournit un type de données permettant de définir des matrices de dimensions arbitraires et des fonctions permettant d'effectuer des opérations de base sur des matrices.

Types de données et fonctions

Les matrices sont définies à l'aide de mtx.Matrix type de données. mtx.Matrix le type de données enregistre une matrice sous ARRAY de LREAL. Le tableau se présente sous la forme d'une ligne principale

Les opérations mathématiques de base sont fournies sous forme de fonctions qui ont 3 matrices comme VAR_IN_OUT argument : résultat, source, cible. Par exemple, la fonction d'addition de matrices possède l'interface suivante :

(* 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 bibliothèque propose les opérations mathématiques suivantes :

  • Ajout de matrices (élément par élément) : AddM

  • Soustraction de matrices (élément par élément) : SubM

  • Multiplication de matrices (élément par élément) : TimesM

  • Division des matrices (élément par élément) : RDivideM

  • Multiplication scalaire d'une matrice : MultMS

  • Multiplication de matrices : MultM

  • Transposition d'une matrice : TransposeM

Il existe également des fonctions auxiliaires pour initialiser des matrices, copier et accéder à des éléments :

  • Initialiser une matrice avec ARRAY de valeurs : InitMatrix

  • Copier ARRAY éléments à mettre en matrice : CopyElems

  • Copiez des matrices de même dimension : CopyMatrix

  • Initialisez en tant que matrice d'identité : IdentityMatrix

  • Initialisez en tant que matrice nulle : ZeroMatrix

  • Éléments de lecture et d'écriture : Elem, SetElem

Des opérations plus complexes sont également proposées :

  • Résoudre une équation linéaire A * X = B: SolveLU

  • Inverser une matrice quadratique : InvertLU

  • Calculez le déterminant d'une matrice quadratique : DeterminantLU

  • Déterminez un LU décomposition (cette décomposition sert de base aux trois fonctions ci-dessus) : DecomposeLU

Gestion de la mémoire

L'utilisateur est responsable de la gestion de la mémoire. Les matrices seront initialisées avec un pointeur vers la mémoire (via InitMatrix fonction). Dans certains cas, il est possible pour l'utilisateur de fournir une mémoire adaptée. En outre, les blocs fonctionnels auxiliaires MatrixS, ColVectorS, et RowVectorS peut être utilisé pour initialiser des matrices avec des tableaux de taille constante. Ils mettent en œuvre le IMatrixAllocator interface qui est également disponible pour l'utilisateur.