Retour à Tutoriel

Contrôleurs

Un contrôleur permet de donner des consignes a un actionneur. En entrée, il prend des données de capteurs ou d’observateurs et donne des consigner pour un ou plusieurs actionneurs.
Il peut aussi créer des observateurs de contrôle (non utilisable par d’autres contrôleurs)

Pour créer un contrôleur, un outil a été développé pour vous simplifier la tâche et seul la partie algorithmique nécessite des connaissances en Scilab (logiciel libre de calcul numérique similaire à Matlab).

controllerImage

Il y a 8 étapes à réaliser pour créer un contrôleur. Certaines sont facultatives selon la complexité de votre contrôleur.
Vous pouvez naviger entre les différentes étapes comme vous le souhaitez en cliquant sur les onglets ou en utilisant les boutons Etape précédente et Etape suivante.

De la page de présentation, vous pouvez aller directement à une étape en cliquant sur l’étiquette jaune associée.

Lorsqu’un champ est obligatoire, le symbole « ** » y est associé.

Etape 1 : Informations générales

  • Nom du contrôleur (UID) ** : Chaque contrôleur doit avoir un nom unique
  • Description : Description de ce que fait ce contrôleur.
  • Continu/Discret ** : 2 modes sont disponibles (Continu ou Discret) pour la résolution des équations différentielles Ordinaires (E.D.O.)
  • Mode de résolution : Plusieurs méthodes de résolution sont proposées pour approcher la résolution de l’E.D.O.
    ode est la fonction utilisée pour approcher la solution d’une équation différentielle ordinaire (EDO)
    explicite du premier ordre en temps, définie par : dy/dt=f(t,y) , y(t0)=y0.
    Il s’agit d’une interface vers diverses bibliothèques, en particulier ODEPACK.
    Le type du problème et la méthode utilisée dépendent de la valeur du premier argument optionnel type qui peut être égal à :
    « adams » : Problèmes non raides. Le solveur lsode du package ODEPACK est utilisé (schéma d’Adams).
    « stiff » : Pour les systèmes raides. Le solveur lsode du package ODEPACK est utilisé avec le schéma BDF.
    « rk » : Schéma de Runge-Kutta adaptatif d’ordre 4 (RK4).
    « rkf » : Formules de Shampine et Watts basées sur les paires de Runge-Kutta Fehlberg d’ordre 4 et 5 (RKF45). Bien pour les problèmes non raides ou moyennement raides, lorsque le calcul du second membre n’est pas trop coûteux. Cette méthode est à éviter si l’on recherche une très grande précision.
    « fix« : Identique à « rkf », mais l’interface est simplifiée, i.e. uniquement rtol et atol sont communiqués au solveur.
    « root« : Solveur d’EDO avec recherche de racines. Le solveur lsodar du package ODEPACK est utilisé. C’est une variante de lsoda permettant la recherche d’une racine d’une fonction vectorielle donnée. Voir ode_root pour plus de détails.
    « discrete« : Simulation en temps discret. Voir ode_discrete pour plus de détails.
  • Auteur : Nom de la personne ayant créer ce contrôleur (utile pour savoir qui contacter en cas de problème ou pour comprendre l’algorithme)

Etape 2 : Sélection des capteurs et des actionneurs

On sélectionne ici les capteurs que l’on va utiliser et les actionneurs que l’on veut contrôler. Lorsque l’on arrête ODIN, on peut vouloir donner une consigne par défaut à un actionneur. Il faut donc indiquer cet valeur (modifiable à partir de l’interface graphique).

Etape 3 : Paramètres de contrôle

Les paramètres de contrôle sont des constantes que l’on peut modifier à partir de l’interface graphique.

  • Sélectionner un type de Paramètre de Contrôle ** : valeur variable, valeur booléenne, reset (uniquement pour le Tes, permet de réinitialiser un compteur).
  • Donner un nom unique (UID) ** : Il ne peut y avoir 2 paramètres de contrôle avec le même nom
  • Unité : si elle existe unité associée paramètre de contrôle
  • Gammes de valeur, minimum/maximum : Domaine dans lequel on pourra faire varier le paramètre à partir de l’interface graphique (à remplir que pour le type « valeur variable »)
  • Valeur par défaut ** : valeur utilisée au lancement du contrôleur
  • Description : description du paramètre de contrôle

Dans l’interface graphique, vous pouvez régler ces paramètres dans l’onglet « Constante à fixer » :

Etape 4 : Variables Estimées

Variables estimées ou capteurs virtuels sont les observateurs. Vous devez remplir, ici les informations comme pour un capteur réel.

  • Donnez un nom unique (UID) ** : Nom du capteur, il doit être unique pour tous les capteurs et actionneurs. ODIN ne sait pas faire la différence entre deux capteurs/actionneurs avec le même nom (l’enregistrement sera défectueux)
  • Unité : si elle existe unité associée au capteur virtuel
  • Gammes de valeur, minimum/maximum : utilisé dans l’expérience pour savoir si la valeur est dans le domaine attendu. Elle s’affichera en rouge dans les graphes sinon. Utilisé aussi dans l’exportation des données pour indiquer si la valeur est fiable ou non
  • Valeur initiale ** : valeur utilisée au lancement du capteur, on utilse ensuite la valeur calculée.
  • Description : description du capteur virtuel
  • Label : Le label est seulement utilisé pour l’export des données au format XML
  • Nom du groupe : Le nom de groupe est seulement utilisé pour l’export des données au format XML

Etape 5 : Variables d’état (facultatives si votre modèle est simple – sans EDO)

Ce sont les variables d’états du système d’équations différentielles.

  • Donnez un nom unique (UID) ** : Ce nom doit être unique pour chaque variable d’état.
  • Unité : si elle existe unité associée au capteur
  • Valeur initiale ** : valeur utilisée au lancement du capteur, on utilise ensuite la valeur calculée.
  • Description : description de la variable d’état

Etape 6 : Paramètres internes

Les paramètres sont des constantes que l’on souhaite identifier avec leurs propriétés pour une meilleure lecture de l’algorithme de calcul (appeler simplement ses variables k1, k2, k3 ce n’est pas vraiment clair pour quelqu’un qui ne connait pas l’algorithme).

  • Donnez un nom unique (UID) ** : Ce nom doit être unique pour chaque paramètre.
  • Unité : si elle existe unité associée à la constante
  • Valeur ** : valeur du paramètre.
  • Description : description du paramètre

Etape 7 : Fonction dynamique (facultatives si votre modèle est simple – sans EDO et que vous ne voulez pas définir d’autres fonctions)

Dans cette page, vous pouvez définir des fonctions Scilab que vous souhaitez utiliser par la suite.
Si vous avez une E.D.O., vous devez remplir la zone de texte inférieur qui contient votre système à résoudre.

Vous pouvez ajouter, avec les listes/boutons sur la partie gauche, les différent-e-s variables/paramètres que vous avez définis précédemment.

Etape 8 : Calcul du contrôleur

Vous devez ici définir le calcul de vos actionneurs et des éventuels capteurs virtuels (variables estimées). Vous avez à votre disposition tou-te-s les variables/paramètres définis lors des étapes précédentes ainsi que les « fonctions de calcul classique » de l’étape 7.
La valeur des variables d’état est celle après la résolution de l’E.D.O.

Vous pouvez maintenant générer votre contrôleur en allant dans le dernier onglet et en cliquant sur générer. Vous pouvez ensuite afficher le contenu du fichier (affichage seulement, pas écriture) pour vérifier qu’il n’y a pas eu de problème de génération (utilisateur connaissant Scilab).

Retour à la page précédente