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.