nflow_solvers
Choisir comment un diagramme est integre (choix du solveur).
📝Syntaxe
Page concept : pas fixe vs solveurs ODE globaux, tolerances, generation de code
đź“„Description

nflow integre un diagramme de deux manieres. Par defaut il execute un moteur discret a pas fixe : chaque bloc se met a jour une fois par echantillon du modele (le sampleTime du diagramme), et chaque bloc continu s'integre par un pas d'Euler par bloc. Selectionner un solveur bascule sur le chemin ODE global : tous les etats continus sont assembles en un seul vecteur et integres ensemble, avec detection de passage par zero et, pour les solveurs adaptatifs, controle du pas.

Selectionner un solveur

Renseignez le champ solver du modèle, en script avec set_param(model, 'Solver', nom), ou depuis Simulation Settings dans le menu Simulation de l'éditeur. Les réglages s'ouvrent dans l'onglet Model de l'inspecteur. Le défaut (pas de solveur, ou 'discrete') garde le moteur à pas fixe, donc les modèles existants sont inchangés — le chemin global est purement optionnel.

Solveurs disponibles

Tolerances

Les solveurs adaptatifs sont controles par RelTol (relative, defaut 1e-6), AbsTol (absolue, defaut 1e-8) et un plafond optionnel MaxStep. Reglez-les avec set_param, dans les champs du diagramme, ou dans les champs de tolerance de l'editeur (affiches quand un solveur a pas variable est choisi). Des tolerances plus serrees donnent une trajectoire plus precise au prix de plus de sous-pas.

Generation de code

Les solveurs a pas fixe ode1 / ode4 et le solveur adaptatif ode45 sont abaisses en C et Rust autonomes par nflow_codegenerate et NFlow.exportfmu : le code genere reproduit l'integration globale du moteur (le stepper ode45 genere reproduit le backend ode45) et colle a la simulation. Les backends CVODES / IDAS n'ont pas d'abaissement embarque et sont rejetes par la generation de code avec un message actionnable — exportez un tel modele avec ode4 ou ode45, ou simulez-le avec le solveur.

Raison du defaut

Le defaut reste a pas fixe pour que chaque modele existant continue de produire exactement la meme trajectoire et que le code genere corresponde par construction a la simulation par defaut. Passer a un solveur global est un changement d'une ligne.

Arrêter et réinitialiser

Stop termine l'exécution courante tout en conservant les résultats déjà calculés. Reset remet aussi le temps de simulation à zéro et efface les résultats affichés. Aucune de ces commandes ne modifie le solveur configuré.

đź”—Voir aussi
simnflow_multirate
đź•”Historique des versions
Version Description
1.0.0 initial version
Modifier cette page sur GitHub