Visualiser les détails du résultat

IdentifiantProjetCatégorieVisibilitéDernière mise à jour
0001166SICFortran Régulationpublic2015-06-16 20:38
RapporteurdorchAssigné àdorch 
PrioritéurgenteImpactcritiqueReproductibilitétoujours
Statut ferméRésolutioncorrigé 
Version du produit5.35e 
Version ciblée5.35fRésolu dans la version5.35f 
Résumé0001166: Non prise en compte des commandes U pendant le pas réduit
DescriptionEn Saint-Venant non linéaire, si la calcul ne converge pas, le pas de temps est réduit. Pour redémarrer le calcul avec un pas de temps réduit, on réinitialise les données hydrauliques à partir de celles du pas de temps précédent. Pendant cette opération, les commandes des régulateurs sont perdues.
Il existe déjà un mécanisme lançant les régulateurs en boucle ouverte pendant le pas réduit mais les régulateurs en boucle fermée ne sont pas exécutés.
BalisesAucune balise n'est associée.
Temps projeté (jours)

Activités

dorch

2015-06-16 17:00

administrateur   ~0001208

Actuellement le mécanisme de lancement des régulateurs en BO est gérée dans RegSupervision qui met à jour la variable Reg%bCalc de chaque régulateur qui va déterminer si le régulateur est pris en compte ou pas dans le calcul et l'application de la commande.

Ce n'est pas la bonne façon de faire car :
- Au départ la variable Reg%bCalc est conçue pour la supervision faite par l'utilisateur, sa valeur ne devrait pas dépendre des conditions de calcul
- Pour le petit pas, il ne faut pas recalculer la commande mais il faut ré-appliquer la commande calculée précédemment

Ensuite actuellement RegSupervision traite indifféremment de la même façon le premier pas de temps et le pas réduit, deux cas où il n'est pas possible de faire de la BF :
- Pour le premier pas de temps en permanent ou transitoire, il ne faut ni calculer, ni appliquer les BF
- Pour le pas de temps réduit, il ne faut pas calculer mais il faut appliquer la commande calculée précédemment.

dorch

2015-06-16 17:02

administrateur   ~0001209

Autre subtilité pour le premier pas de temps, les BO sont appliquées au premier pas de temps uniquement dans le cas de FLUVIA. Pour SIRENE, ce sont les conditions initiales qui déterminent les conditions aux limites même si elles sont contrôlées par un régulateur en BO.

dorch

2015-06-16 17:27

administrateur   ~0001210

Je retire ce que j'ai dit sur :
- Reg%bCalc c'est bien indicateur de calculateur pour le pas de temps, C'est Reg%bActif qui est le déterminant pour la supervision du régulateur par l'utilisateur.
- Au premier pas de temps, dans SIRENE, on applique au minimum le régulateur "LOI", peut-être devrait-on appliquer les autres régulateurs en BO aussi (Cas où on lancer un permanent et un transitoire avec un régulateur en BO, au premier pas de temps de SIRENE, il faut pouvoir reconstituer les conditions aux limites imposées par la BO et on ne les a pas dans les conditions initiales hormis pour les conditions limites internes dans les ouvrages.

dorch

2015-06-16 17:34

administrateur   ~0001211

Concernant les régulateurs BO autre que "LOI" au premier pas de temps de SIRENE, dans le code on a ce commentaire intéressant :
! On ne lance pas les régulateurs BO au premier pas de temps de SIRENE
! Afin que ceux-ci soient synchrones avec les régulateurs non BO ayant le même DTU


Au final, la structure actuelle répond assez bien à tous les cas d'utilisation hormis la ré-application des commandes des BF avec le pas de temps réduit. Etant donné que la variable Reg%bCalc ne sert qu'à régler les problèmes calculatoires des régulateurs BO-BF au premier pas de temps et au temp réduit, je vais rajouter un test dans RegManager pour ne pas passer l'application des commandes avec Reg%bCalc==.FALSE. dans le cas où on est en pas de temps réduit.

dorch

2015-06-16 20:38

administrateur   ~0001213

Dans RegManager, j'ai bien distingué le cas avec et sans pas réduit et j'ai ajouté une variable dans les régulateurs stockés dans RegManager pour pouvoir gérer le fait qu'on était bien sur un DTU (nbrOkU=0) au précédent appel du régulateur BF afin de répéter l'application de la commande précédemment calculée.

Historique du bogue

Date de modification Nom d’utilisateur Champ Changement
2015-06-16 16:53 dorch Nouveau bogue
2015-06-16 16:53 dorch Statut nouveau => affecté
2015-06-16 16:53 dorch Assigné à => dorch
2015-06-16 17:00 dorch Note ajoutée: 0001208
2015-06-16 17:02 dorch Note ajoutée: 0001209
2015-06-16 17:27 dorch Note ajoutée: 0001210
2015-06-16 17:34 dorch Note ajoutée: 0001211
2015-06-16 20:38 dorch Note ajoutée: 0001213
2015-06-16 20:38 dorch Statut affecté => fermé
2015-06-16 20:38 dorch Résolution ouvert => corrigé
2015-06-16 20:38 dorch Résolu dans la version => 5.35f