Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - Русский - 日本語

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
See the recommended documentation of this function

Aide de Scilab >> Xcos > Solveurs > IDA

IDA

IDA (abréviation de "Implicit Differential Algebraic equations system solver") est un solveur numérique fournissant une méthode efficace et stable pour résoudre des Problèmes à Valeur Initiale d'Equations Différentielles Algebriques (EDAs).

Description

Appelé par xcos, IDA (abréviation de "Implicit Differential Algebraic equations system solver") est un solveur numérique fournissant une méthode efficace et stable pour résoudre des Problèmes à Valeur Initiale de la forme :

Avant de résoudre le problème, IDA lance une routine interne pour trouver des valeurs consistantes à y0 et yPrime0 .

Partant alors de ces y0 et yPrime0 , IDA approxime yn+1 grâce à la formule BDF :

avec, comme dans CVode, yn l'approximation de y(tn) , hn = tn - tn-1 la taille du pas, et les coefficients fixés, déterminés uniformément par le type de méthode, son ordre q allant de 1 à 5 et l'histoire des pas de temps.

Injecter cette formule dans (1) fournit le système :

Pour lui appliquer des itérations de Newton, on le réécrit :

avec J une approximation du Jacobien:

α change quand le pas ou l'ordre de la méthode varient.

Un solveur direct dense est alors utilisé et on poursuit sur le prochain pas de temps.

IDA se sert des valeurs passées pour contrôler l'erreur locale yn(m) - yn(0) et recalcule hn si cette erreur n'est pas satisfaisante.

Cette fonction est appelée entre les activations, parce-qu'une activation discrète est susceptible de modifier le système.

Suivant la criticalité de l'événement (son effet sur le problème continu), soit le solveur poursuit avec temps initial et final différents comme si rien ne s'était passé, soit, si le système a été modifié, il faut "réinitialiser à froid" le solveur et le relancer.

En moyenne, IDA acecpte des tolérances juqu'à 10-11. Au-delà, il retourne l'erreur Trop de précision demandée.

Exemple

Le bloc 'Modelica Generic' retourne ses états continus, on peut les évaluer avec IDA en lançant l'exemple:

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 13:54:43 CEST 2014