• Aucun résultat trouvé

Suite à la saisie des paramètres, l'interface génère une série de fonctions S qui peuvent être utilisées par le biais d'une librairie de blocs. Cette section présente la librairie de blocs qui dissimulent les procédures de simulation du modèle, de l'observateur et de la loi de commande prédictive sélectionnés par l'utilisateur.

2.2.1 Fonction S de niveau 2

L'objectif de l'application est de simplier la conception et l'ajustement de loi de commande prédictive. Comme énoncé précédemment, pour une loi de commande prédictive non linéaire couplée d'un observateur à horizon glissant, il n'existe pas encore de structure ou d'interface developpé par MATLAB. Ainsi, pour pouvoir orir un maximum de exibilité et de simpli- cité aux futurs utilisateurs, l'interface de simulation utilise l'environnement SIMULINK. Par contre, même s'il permet de simuler une diversité de scénarios, les algorithmes présentés aux chapitres 1 et 2 doivent être adaptés à cet environnement. De plus, il faut prioritairement donner un accès aux paramètres saisis antérieurement. Pour ce faire, une librairie de blocs personnalisés a été implantée. Cette librairie est basée sur des fonctions S de niveau 2.

Principalement, il existe deux phases de simulation, soit la compilation du schéma fonctionnel et la boucle de simulation de celui-ci. L'accès aux paramètres du modèle, de l'observateur et de la loi de commande doit être intégré dans cette compilation tandis que les algorithmes le sont dans la boucle de simulation.

Pour sa part, la boucle de simulation comporte deux sous-phases, soit l'initialisation et l'ité- ration [17]. C'est dans la phase d'initialisation que l'ajustement des paramètres doit avoir un eet sur le résultat de la simulation en modiant les équations contenues dans l'algorithme du bloc. Par exemple, si l'utilisateur veut évaluer l'eet de l'allongement de l'horizon de prédic- tion, cet ajustement doit se traduire par une augmentation de la taille du vecteur des sorties prédites et, évidemment, le bloc doit gérer cette manipulation pour l'utilisateur.

Pour tous les blocs de l'environnement SIMULINK, les étapes fondamentales de la phase d'itération se décrivent comme suit :

1. Évaluation des sorties

Le bloc évalue les sorties spéciées dans la méthode Output du bloc. Les sorties sont passées de bloc en bloc selon le diagramme programmé.

2. Évolution des états

Le bloc évalue les états à l'instant discret suivant (k + 1) selon le solveur spécié par l'utilisateur. L'évolution des états est programmée dans la méthode Update du bloc. 3. Mise à jour de l'instant discret

L'instant discretkest incrémenté de 1 période d'échantillonnage et la simulation retourne

à l'étape 1.

Sachant que cet environnement possède une structure de simulation particulière, l'application doit générer une série de programmes en mesure d'implanter les divers algorithmes dans cette structure.

Il est possible de programmer une fonction S dans SIMULINK sous divers types de lan- gage comme le C, le Fortran ou le langage API de MATLAB. L'application (via le bouton Simulation) génère des fonctions MATLAB de niveau 2 parce que ce type de langage per- met d'utiliser les fonctions intégrées de MATLAB. Elles sont moins rapides qu'une routine programmée en C. Cependant, puisque l'observateur à horizon glissant et la commande pré- dictive invoquent la routine d'optimisation fmincon, le choix des fonctions MATLAB de niveau 2 devient justié.

2.2.2 Librairie de blocs

Comme énoncé précédemment, les fonctions S générées par l'application utilise une librairie de blocs personnalisés pour pouvoir ajuster et simuler un modèle, un observateur et une loi de commande prédictive. La librairie est présentée à la gure 2.3.

Figure 2.3  Librairie de blocs disponible pour toutes les fonctions S générées par l'application

Ceux-ci sont de type Level-2 MATLAB S-function, disponibles dans la librairie de base de l'environnement SIMULINK. Ils sont supplantés par des masques où les paramètres saisis antérieurement peuvent être modiés pour n d'ajustement. Il en existe un pour chacun des algorithmes présentés dans cet ouvrage. Un exemple de masque supplantant un bloc de la librairie est présenté à la gure 2.4.

Autres que les entrées et les sorties, les blocs personnalisés communiquent de l'information sous forme de variables globales, puisque les méthodes des blocs possèdent des domaines locaux. Par exemple, si l'utilisateur décide d'ajouter ou de retirer des états intégrateurs du modèle augmenté de son observateur, cette manipulation a une inuence sur l'équation de prédiction des sorties de l'algorithme de la loi de commande prédictive. Cette information se communique par des variables globales. Entre les blocs, l'information est communiquée via des blocs Data Store Memory, aussi disponible dans la librairie de base de l'environnement SIMULINK. Entre autres, il communique les matrices du modèle augmenté soit Aaug, Baug

etCaug du ltre de Kalman au bloc de commande prédictive linéaire. Il communique aussi le

schéma d'augmentation jint etG. L'information est aussi véhiculée de méthode en méthode,

puisque celles-ci possèdent des domaines locaux. Dans le cas du ltre de Kalman, les matrices de covariance Q, R et P doivent être passées puisqu'il y a une étape de mise à jour dans

l'algorithme. Enn, les fenêtres d'observation de l'observateur à horizon glissant sont aussi conservées dans des variables globales pour les communiquer à l'instant discret suivant.

2.2.3 Précisions concernant la programmation de l'asservissement

Comme énoncé à la section 2.2.1, chaque simulation, de l'instant où elle est exécutée jusqu'à son instant de terminaison, suit une procédure séquentielle itérative. Les fonctions S de niveau 2 généré par l'application doivent suivre cette procédure. La prochaine section apporte des précisions sur la programmation des algorithmes.

Figure 2.4  Exemple de masque supplantant le bloc  observateur à horizon glissant  de la librarie

Simulateur phénoménologique

La programmation des algorithmes au sein de l'application permet l'adaptation d'un couplage entre la commande prédictive et l'observateur MHE à n'importe quel procédé, pourvu que son modèle soit déni comme une représentation d'état discrète. Il se peut que certains soient diciles, voire impossibles, à vectoriser. Ainsi, la simulation du modèle (équations 1.1 et

1.2) et celle du modèle augmenté (équations 2.5a et 2.5b) sont mises sous forme de routine qui calcule tous les états et sorties pour une série d'entrées données. Cette routine possède notamment pour argument les fonctionsf (·)eth(·)saisies dans l'application rendant possible

la simulation de n'importe quel modèle phénoménologique sur un horizon donné. Dans le cadre de l'observateurMHE, cette routine de simulation s'étend sur l'horizon d'observationN tandis

qu'il s'étend sur l'horizon de prédiction Hp dans le cadre de la commande prédictive.

Optimisation sous contraintes

La compilation du schéma fonctionnel survient lorsqu'un changement de paramètres est eec- tué au sein des masques supplantant les blocs de la librairie. Chacun des paramètres présentés au tableau2.1peut être ajusté avant le lancement d'une simulation. Dès lors, une vaste gamme d'ajustement est envisageable.

Pour l'algorithme du ltre de Kalman contraint, la routine de simulation comprend les équa- tions (1.14a) à (1.15c) supplémentées de la résolution de l'équation (1.60). Pour l'observateur

MHE, l'algorithme non linéaire complet est précisé à la section3.3.2puisque le capteur virtuel conçu découle d'une utilisation directe de l'application.

La résolution de la loi de commande prédictive économique, tant pour un système linéaire ou non linéaire, et l'observateur MHE sont des problèmes d'optimisation non linéaires sous contraintes. D'emblée, la loi de commande prédictive économique est résolue l'aide de la fonc- tion intégrée nlmpcmove fournie dans le model predictive control toolbox. Les problèmes d'opti- misation des équations (2.6) (EMPC) et (3.14) (MHE) sont résolus à l'aide de la méthode SQP, disponible dans l'optimization toolbox. Il est possible de changer les algorithmes d'optimisation directement dans le code de la fonction S en fonction de la situation.

Les contraintes, sous forme de limites inférieures et supérieures, sont directement gérées par la fonction nlmpcmove. Elles sont explicites sur les entrées manipulées u et les incréments de

ces derniers ∆u. Les contraintes non linéaires sur les prédictions by et les estimations xb sont

générées récursivement à l'aide du modèle augmenté dans leurs algorithmes respectifs. La méthode de gestion des erreurs de faisabilité pour la loi de commande prédictive est par contraintes relaxées. Dans le cas d'une erreur à l'optimisation pour l'observateur MHE, la solution approximative de départ est utilisée. Cette solution correspond à la solution calculée à l'instant précédent (k−1). Ainsi, une erreur à l'optimisation revient à ouvrir temporairement la boucle de l'observateur et un message d'erreur est aché à l'utilisateur dans le Diagnostic Viewer de SIMULINK.

Conclusion

La programmation de l'application est fondée sur la mise en place d'une interface graphique permettant de saisir les paramètres d'un asservissement basé sur une commande prédictive

EMPC. Ces paramètres ont été énumérés. Par la suite, les outils nécessaires à la simulation de l'asservissement sont générés automatiquement. Le déploiement d'une librairie de blocs rend possible l'ajustement dans un environnement de simulation. L'utilisation de cette application est montrée au chapitre suivant en répondant au second objectif de ce projet, soit la conception d'un capteur virtuel de teneur en eau pour le séchage de granules pharmaceutiques. L'algo- rithme complet de l'observateur MHE y est aussi présenté. L'algorithme de base est ensuite modié manuellement pour prendre en charge des mesures occasionnelles.

Chapitre 3

Monitoring the Moisture Content in

Pharmaceutical Batch Fluidized Bed

Dryers Using Observer-Based Soft

Sensors

Résumé

Le séchage à lit uidisé est une technique communément utilisée pour réduire la teneur en eau de produits solides et poudreux dans l'industrie pharmaceutique. Dans ce chapitre, diérentes approches sont présentées pour la mesure de la teneur en eau reposant soit sur un modèle phénoménologique complexe soit sur une version simpliée de ce dernier. Les deux premiers capteurs virtuels sont des estimateurs en boucle ouverte, c'est-à-dire qu'ils sont simplement la simulation de ces modèles alimentés par les variables manipulées du système. Trois obser- vateurs à horizon glissant en boucle fermée, basés sur le modèle simplié, sont aussi décrits. Dans le premier cas, les mesures de températures du gaz d'admission et des particules lui sont rétro-alimentées. Le second observateur en boucle fermée prend en charge des mesures hors ligne et occasionelles de teneur en eau. Une validation des capteurs virtuels est réalisée avec des données expérimentales enregistrées sur un montage pilote. Les résultats montrent que l'observateur en boucle fermée prenant en charge les mesures occasionnelles de teneur en eau reproduit aussi précisément les données que le modèle phénoménologique complexe.

Abstract

Tablet manufacturing in the pharmaceutical industry involves batch uidized bed drying for particle moisture removal. This paper introduces ve approaches for moisture content moni- toring, relying either on a complex phenomenological model or its simplied version. The rst

two soft sensors consist of open-loop estimators, i.e. they simply simulate the models fed by the manipulated variables. Three closed-loop moving horizon estimators based on the simplied model are also proposed for improved robustness. In the rst one, the measurements of the in- let gas and particle temperatures feed back the soft sensor. The last two closed-loop observers additionally can take into account infrequent delayed moisture content measurements, such as at-line loss on drying analysis. A validation of the soft sensors is performed with experimental data collected on a pilot scale uidized bed dryer. Results show that the closed-loop observer with the delayed moisture content measurements still has an accuracy that is equivalent (and sometimes better) than the complex phenomenological model.

Documents relatifs