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) :
AddMSoustraction de matrices (élément par élément) :
SubMMultiplication de matrices (élément par élément) :
TimesMDivision des matrices (élément par élément) :
RDivideMMultiplication scalaire d'une matrice :
MultMSMultiplication de matrices :
MultMTransposition 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
ARRAYde valeurs :InitMatrixCopier
ARRAYéléments à mettre en matrice :CopyElemsCopiez des matrices de même dimension :
CopyMatrixInitialisez en tant que matrice d'identité :
IdentityMatrixInitialisez 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:SolveLUInverser une matrice quadratique :
InvertLUCalculez le déterminant d'une matrice quadratique :
DeterminantLUDéterminez un
LUdé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.