nflow_tutorial_continuous
Tutoriel 2 sur 3 : simuler un système continu et choisir un solveur.
📝Syntaxe
Tutoriel : construire un système du premier ordre avec rebouclage, puis choisir un solveur.
đź“„Description

Ce deuxième tutoriel construit un système continu et montre comment le solveur change sa façon d'être intégré. Le modèle est un retard du premier ordre : une entrée en échelon pilote un état qui tend vers l'entrée avec la constante de temps tau. L'équation est dx/dt = (u - x) / tau, que vous construisez avec un Sum, un Gain et un Integrator reliés en boucle de rebouclage. Il suppose que vous avez fait nflow_tutorial_first_model.

Poser les blocs

  • Depuis le groupe Source, faites glisser un bloc Step sur le diagramme.
  • Depuis le groupe Math, faites glisser un bloc Sum et un bloc Gain.
  • Depuis le groupe Continuous, faites glisser un bloc Integrator.
  • Depuis le groupe Sinks, faites glisser un bloc Scope.
  • RĂ©gler les paramètres des blocs

    Sélectionnez le bloc Sum et réglez ses signes sur un plus et un moins, afin qu'il calcule l'entrée moins l'état rebouclé. Sélectionnez le bloc Gain et réglez Gain sur 1 / tau ; pour tau = 0,5 s, réglez-le sur 2. Laissez l'Integrator avec une condition initiale de 0.

    Relier les blocs

  • Reliez la sortie du Step Ă  l'entrĂ©e plus du Sum.
  • Reliez la sortie du Sum au Gain, et la sortie du Gain Ă  l'Integrator.
  • Reliez la sortie de l'Integrator au Scope, et aussi Ă  l'entrĂ©e moins du Sum pour fermer la boucle.
  • Le fil qui part de l'Integrator vers le Sum est le chemin de rebouclage. C'est lui qui fait que l'Ă©tat se stabilise au lieu de croĂ®tre sans limite.

    Exécuter avec le moteur par défaut

    Réglez Temps d'arrêt (s) sur environ 5 dans l'onglet Modèle et appuyez sur Exécuter. Sans solveur sélectionné, nflow utilise le moteur discret à pas fixe, et chaque bloc continu s'intègre avec un pas d'Euler propre au bloc, au Temps d'échantillonnage (s) du modèle. Le Scope montre l'état qui monte vers la valeur de l'échelon selon une courbe exponentielle.

    Choisir un solveur

    Ouvrez l'onglet Modèle et réglez le Solveur. La valeur par défaut (discrete) conserve le moteur à pas fixe. Choisissez ode4 pour une intégration Runge-Kutta d'ordre quatre à pas fixe, plus précise qu'Euler au même pas. Choisissez ode45 pour un pas adaptatif piloté par les tolérances. Quand un solveur adaptatif est sélectionné, réglez Tolérance relative et Tolérance absolue, ainsi qu'un plafond optionnel Pas maximal (0 = auto). Des tolérances plus serrées donnent une trajectoire plus précise au prix de plus de sous-pas. Voir nflow_solvers pour la liste complète et la correspondance de chaque solveur avec le code C et Rust généré.

    Comparer le pas

    Réduisez le Temps d'échantillonnage (s) et relancez avec le moteur discret pour voir le résultat d'Euler se rapprocher de celui d'ode4. C'est l'arbitrage qu'un solveur gère pour vous : la précision contre le nombre de pas.

    Pour aller plus loin

    Ajoutez un second Integrator et un gain de rebouclage pour obtenir un système du second ordre tel qu'un système masse-ressort-amortisseur, puis poursuivez avec nflow_tutorial_dashboard pour piloter le modèle avec des commandes en direct pendant l'exécution.

    đź’ˇExemples
    Ouvrir un modèle continu et essayer différents solveurs dessus.
    open_system([modulepath('nflow_blocks', 'root'), '/examples/causal/Second_Order_Responses_Demo.nflow']);
    đź”—Voir aussi
    nflow_solversnflow_multiratenflow_tutorial_first_modelnflow_tutorial_dashboard
    đź•”Historique des versions
    Version Description
    1.0.0 version initiale
    Modifier cette page sur GitHub