CODESYS Math Libraries
Introduzione
CODESYS Math Libraries include Matrice libreria e interno FloatingPointUtils libreria. Matrix la libreria supporta matrici di dimensioni arbitrarie e operazioni matematiche di base su di esse. Sono supportate le seguenti operazioni: addizione, moltiplicazione, risoluzione di equazioni lineari, inversione
Descrizione del prodotto
Le Matrix la libreria fornisce un tipo di dati per definire matrici di dimensioni arbitrarie e funzioni per eseguire operazioni di base sulle matrici.
Tipi di dati e funzioni
Le matrici sono definite tramite mtx.Matrix tipo di dati. mtx.Matrix il tipo di dati salva una matrice come ARRAY di LREAL. L'array è in forma di riga principale
Le operazioni matematiche di base sono fornite come funzioni che hanno 3 matrici come VAR_IN_OUT argomento: risultato, origine, destinazione. Ad esempio, la funzione per l'aggiunta di matrici ha la seguente interfaccia:
(* 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 libreria offre le seguenti operazioni matematiche:
Addizione di matrici (per elemento):
AddMSottrazione di matrici (per elemento):
SubMMoltiplicazione di matrici (per elemento):
TimesMDivisione delle matrici (per elemento):
RDivideMMoltiplicazione scalare di una matrice:
MultMSMoltiplicazione di matrici:
MultMTrasposizione di una matrice:
TransposeM
Esistono anche alcune funzioni ausiliarie per inizializzare le matrici, copiare e accedere agli elementi:
Inizializza una matrice con un
ARRAYdi valori:InitMatrixCopia
ARRAYelementi da inserire nella matrice:CopyElemsCopia matrici con la stessa dimensione:
CopyMatrixInizializza come matrice di identità:
IdentityMatrixInizializza come matrice zero:
ZeroMatrixLeggere e scrivere elementi:
Elem,SetElem
Sono previste anche operazioni più complesse:
Risolvere un'equazione lineare
A * X = B:SolveLUInvertire una matrice quadratica:
InvertLUCalcola il determinante di una matrice quadratica:
DeterminantLUDeterminare un
LUdecomposizione (questa decomposizione serve come base per le tre funzioni precedenti):DecomposeLU
Gestione della memoria
L'utente è responsabile della gestione della memoria. Le matrici verranno inizializzate con un puntatore alla memoria InitMatrix funzione). In alcuni casi, è possibile che l'utente fornisca una memoria adeguata. Inoltre, i blocchi funzionali ausiliari MatrixS, ColVectorS, e RowVectorS può essere usato per inizializzare matrici con arrays di dimensioni costanti. IMatrixAllocator interfaccia che è disponibile anche per l'utente.