La méthode BOLST

La méthode BOLST est une méthode permettant d’imposer des modifications de commandes U à partir d’un fichier texte .txt (format texte ASCII ou ANSI par exemple). Ces modifications sont indiquées en fonction du temps auquel elles sont désirées. Le temps n’est pas forcément à pas de temps régulier. Les valeurs seront ensuite utilisées en mode échelon (visible au pas de temps suivant, comme pour une loi fonction du temps rentrée aux interfaces : on l’applique à l’instant T et elle est visible dans les résultats à l’instant T+DT, donc si on veut la voir à l’instant T il faut la décaler de DT, avec Tlag par exemple) ou rampe (interpolation linéaire, dans ce cas les valeurs seront visibles dans les résultats aux instants indiqués). Ce sont donc des modifications de type Boucle Ouverte, puisque non calculées à partir de variables contrôlées Y ou de variables mesurées Z.

Créer un fichier de commande .txt au format texte ASCII ou ANSI ou autre

Le fichier texte .txt produit devra contenir les temps d’application de la commande dans les premières colonnes et la valeur des différentes commandes U dans la dernière colonne. Les formats du temps et de la commande sont relativement libres, ou en tout cas peuvent être indiqués avec un format non figé (cf ci-dessous) mais doivent être indiqués au format Fortran dans un fichier de paramétrisation BOLST.TXT. Ce temps est indiqué cependant en jours, mois, année, heure, minute, seconde, même si le format peut être choisi. Attention, la lecture au format Fortran est relativement stricte, il faut respecter les colonnes indiquées dans le format, et les points décimaux de préférence. Si vous n’êtes pas habitués à ces formats, il est préférable le lire une documentation sur le sujet. Sinon le module peut avoir des plantages, ou des comportements non souhaités.

On peut avoir divers régulateurs BOLST, chacun monovariable, et donc agissant sur une seule commande U, mais le fichier de paramétrisation BOLST.TXT est commun à tous ces régulateurs BOLST, avec une ligne de configuration pour chaque régulateur BOLST.

Un exemple est fourni sous dat/ex8_bolst, avec 2 modules BOLST. Un des 2 fichiers agissant sur une commande U en débit (fichier QPRISE_02092001.TXT) contient 4 changements de valeurs :

02:09:2001:00:00:00:0.000          
02:09:2001:05:00:00:-.100          
02:09:2001:15:00:00:0.100          
02:09:2001:21:00:00:0.300          

Le format des dates et heures est ici JJ:MM:AA:HH:MM:SS, et la variable U en format F10.3, comme indiqué sur la ligne correspondante du fichier BOLST.TXT avec les notations de format classiques en FORTRAN : (2(I2,1X),I4,1X,3(I2,1X),F10.3)

Ce fichier doit être enregistrée dans un fichier nommé avec un nom de son choix, qui sera indiqué dans le fichier BOLST.TXT. Dans l’exemple fournit on a 2 fichiers : QPRISE_02092001.TXT et HCRUE_G_02092001.TXT situés par défaut dans le même dossier que le fichier XML du projet. Mais quitte à l’indiquer dans le fichier BOLST.TXT ces fichiers peuvent aussi être situés ailleurs, dans un ou plusieurs autres sous-répertoires, avec la commande "DIR=" :

% Cette ligne est optionnelle et ignorée si elle débute par DIR=DEF
DIR=DEFAUT

Mais si on indique un sous-répertoire avec le code "DIR=", alors les fichiers suivants lus plus bas dans le fichier BOLST.TXT seront cherchés dans cet autre sous-répertoire. Il faut mettre le nom complet C :\..., ou il est possible qu’il accepte également les chemins relatifs par rapport au sous-répertoire des données ..\DAT2 ! Il est possible aussi que sous certains OS il faille doubler les \. A tester si besoin ... On peut mettre autant de commande "DIR=" que l’on veut dans un fichier BOLST.TXT, et ainsi les fichiers suivants seront cherchés et lus dans ce ou ces sous-répertoires.

% Dans ce cas les fichiers de données des modules BOLST (QPRISE_02092001.TXT et HCRUE_G_02092001.TXT) seront cherchés dans le sous répertoire C:\DATA\SICBOLST
DIR=C:\DATA\SICBOLST

Ce dernier cas permet d’avoir plusieurs projets SIC situés dans des sous-répertoires différents qui vont lire les même fichiers de données pour des modules BOLST dans un ou plusieurs sous-répertoires communs à ces divers projets SIC.

Attention : pour les versions des programmes Fluvia et Sirene compilés avec le compilateur Digital, le même fichier .TXT ne peut pas être ouvert simultanément plusieurs fois par plusieurs modules. Dans ce cas il faut le dupliquer avec des noms différents utilisés par les modules BOLST correspondants (ou utiliser une version de Fluvia ou Sirene compilée en Intel, cela est indiqué dans la sélection de la version souhaitée).

Configuration du module BOLST dans SIC

Pour configurer un module BOLST dans SIC, il faut :

  • Choisir le module BOLST dans la fenêtre d’édition des modules de régulation,
  • Choisir la (une seule, sinon les autres seront identiques à la première et seule lue sur le fichier .txt correspondant) commande U. Les variables Y, YT et Z ne sont pas utilisées dans ce module, car c’est un module de type Boucle Ouverte,
  • Définir les paramètres spécifiques de la méthode BOLST.

Paramètres spécifiques du module BOLST

Les paramètres spécifiques sont les mêmes que ceux de la méthode BOMAT ou BOSCI :

  • Facteur de mise à l’échelle "a" (facteur multiplicatif, ou encore appelé homothétie)
  • Constante additive "b" (on aura alors U=ax+b)
  • Mode Rampe ou Échelon
  • Ecriture ou non des données du fichier .txt lues sur le fichier Nom_Sirene.lst

Paramètre de mise à l’échelle

C’est un coefficient multiplicateur qui sera appliqué aux valeurs présentes dans le fichier .txt avant application de la commande.
Un second coefficient multiplicateur peut être ajouté dans le fichier BOLST.TXT qui se multipliera à celui-là pour obtenir un facteur modifié global. Ces coefficients seront écrits et indiqués sur le fichier Nom_Sirene.lst

Constante additive

Cette constante additive sera ajoutée à la valeur lue, éventuellement modifiée par le facteur multiplicatif évoqué ci-dessus. La variable U injectée dans le modèle sera donc de la forme U=ax+b où a est le facteur multiplicatif, b la constante additive et x la valeur lue sur le fichier .TXT (ou plutôt interpolée pour le temps courant en mode rampe).

Méthode d’interpolation

Les deux méthodes d’interpolation disponibles sont les mêmes que celles des lois fonction du temps.

Ecriture sur fichier LST

Les données lues sur les fichiers .TXT peuvent être écrites sur le fichier Nom_Sirene.lst, pour vérifier si elle sont bien lues correctement. Dans ce cas, le format est le suivant :

Numéro du BOLST    T-Tlag    Tavant    Taprès    U(1)
BOLST n°    1    -3000.          0.       3600.       2.500
BOLST n°    2   -13800.      -3600.      14400.       0.000

Tavant et Taprès sont les 2 temps lus dans le fichier .TXT sur 2 lignes consécutives qui encadrent ou encadreront le temps courant éventuellement décalé du temps de retard Tlag : T-Tlag

Restriction

On peut avoir plusieurs régulateurs de ce type (BOLST) pour une simulation. Chaque BOLST est monovariable. Toutes les méthodes BOLST récupèrent le nom du fichier et certains paramètres sur un fichier commun BOLST.TXT :

% We can put comment, with lines beginning by %, ! or /
DIR=DEFAUT                % This line is optionnal and ignored if starts by DIR=DEF
TLAG=3600.                % This line is optionnal. It gives a time shift (in s) to apply to the times (in F15.3)
HCRUE_G_02092001.TXT      (2(I2,1X),I4,1X,3(I2,1X),F10.3)  1.0 02/09/2001 00:00:00  1
% Time Lag can be different for each BOLST module (as DIR also)
TLAG=14400.                % This line is optionnal. It gives a time shift (in s) to apply to the times (in F15.3)
QPRISE_02092001.TXT       (2(I2,1X),I4,1X,3(I2,1X),F10.3)  1.0 02/09/2001 01:00:00  2

TLAG= permet de décaler dans le temps les valeurs lues. Si TLAG > 0 on ajoute un retard. Si TLAG < 0 on anticipe. On peut avoir plusieurs lignes de définition de Tlag qui s’appliqueront alors aux fichiers des BOLST indiqués à la suite de cette ligne.

Dans le fichier BOLST.TXT il y a également autant de lignes de que modules BOLST utilisés de définition des paramètres de ces modules. Il faut respecter le format de ce fichier. En particulier on doit y trouver sur chaque ligne (illustré sur l’exemple fournit) :

Cette ligne est lue au format : (A20,1X,A36,1X,F4.1,1X,2(I2,1X),I4,1X,3(I2,1X),I2)
QPRISE_02092001.TXT : le nom du fichier sur 20 caractères maximum
(2(I2,1X),I4,1X,3(I2,1X),F10.3) : le format de lecture sur 36 caractères maximum
1.0 : un facteur de scaling supplémentaire qui se multipliera à celui éventuel des paramètres spécifiques de ce module BOLST, au format F4.1
02/09/2001 01:00:00 : un temps de référence, qui sera soustrait aux temps lus sur les lignes du fichier .TXT, au format 2(I2,1X),I4,1X,3(I2,1X)
2 : le numéro du module BOLST, puis qu'on peut en avoir plusieurs, au format I2

Le numéro du module BOLST est celui dans l’ordre des modules de régulation défini dans les interfaces de SIC. Ils peuvent être dans l’ordre naturel 1 à n, ce qui est le plus classique ou dans un ordre quelconque si pour une raison ou pour une autre c’est plus simple ainsi. On peut également mettre le numéro 0, pour tous, dans ce cas ils seront appliqués dans l’ordre des lignes lues.

Dans le fichier BOLST.TXT on peut mettre des lignes de commentaires qui commencent par les caractères %, ! ou / en première colonne.

La version de Fluvia et/ou Sirene utilisée est libre hormis la remarque ci-dessus sur Digital ou Intel pour avoir la possibilité d’utiliser le même fichier .TXT plusieurs fois par différents modules BOLST.