Master Chimie Fondamentale et Appliquée : spécialité «Ingénierie Chimique» Examen «Programmation, Simulation des procédés» avril 2008a Nom : Prénom : groupe TD : I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):
(6 points) I.2 Donnez les affichages (sauf boite de dialogue) du début à la fin du programme en considérant que l utilisateur entre les valeurs suivantes A= 2, B=3. (4 points)
II. SIMULATION DES PROCEDES Une société souhaite utiliser un échangeur à contre courant pour chauffer de l eau à pression atmosphérique. Le problème confié à l ingénieur consiste à définir les conditions de fonctionnement. Le système est modélisé par les équations suivantes : Phi= Dmc*Cpe*(Tc2-Tc1) Phi= Dmh*Cph*(Th1-Th2) Phi = U.A.DTlm DTml= ((Th1-Tc2)-(Th2-Tc1))/ln((Th1-Tc2)/(Th2-Tc1)) Avec : Dmc, Dmh : débits massiques d eau et de l huile Cpc, Cph : capacités calorifiques massique de l eau liquide et de l huile U coefficient de transfert global A surface d échange DTml : moyenne logarithmique de différence de température eau Tc1 Huile Th1 eau TC2 Huile Th2
Faire le bilan du nombre de variables/ paramètres et du nombre d équation, conclure sur le nombre de degrés de liberté et l existence d une solution (justifier) 1 point L ingénieur en charge du travail, obtient du fabricant les caractéristiques de l échangeur : surface d échange et coefficient de transfert. De plus, il obtient les propriétés des fluides, le débit d eau à traiter et trois débits massiques d huile possible. Quelles sont selon vous les informations qu il doit encore obtenir avant de pouvoir calculer les conditions de fonctionnement de l échangeur (justifier). Quelles sont les paramètres, les variables dépendantes et indépendantes? Paramètres 2 points Variables dépendantes Variables indépendantes 2 points Le service en charge des utilités et du process donne les informations suivantes : En régime stationnaire Tc1 = 80 et Th1 =250 C L ingénieur cherche une méthode numérique à utiliser. La documentation de sa librairie de méthode numérique lui propose plusieurs choix. La ou lesquelles doit il choisir (cocher les lignes correspondantes) :
Chapters of the Library * A02 Arithmétique complexe * C02 Zéros d un polynôme * C05 racine d une ou plusieurs équations non-linéaires * C06 Somme d une série * D02 Système d Equations Différentielles Ordinaires (EDO) * D03 Equations aux dérivés Partielles (EDP) * D04 Différentiation numérique * E01 Interpolation * F Algèbre Linéaire * F04 Equations Linéaire simultanées * G01 Calcul Statistique * 2 points La méthode choisie est une méthode itérative, à chaque itération la valeur de Te2(k) permet de calculer Te2*(k). On attend que Te2*(k) tende vers Te2(k). A l itération suivante Te2(k+1) est choisit tel que : Te2(k+1)=(te2(k)+te2*(k))/2 Proposer un critère de convergence et d arrêt des itérations. 2 points
L ingénieur lance trois calculs pour les 3 débits d huile possible, il obtient les résultats suivants. Pouvez-vous l aider à faire le ou les bons choix (penser aux bonnes pratiques en simulation des procédés!) : Débit huile Tc1 Tc2 Th1 Th2 commentaires Dmh=100kg/h 80 120 250 200 Dmh=50kg/h 80 90 250 125 Dmh=15kg/h 80 85 250 75 1 point
III ANNEXE : Scilab Function (extrait de la documentation SCILAB) Cette Partie ne fait pas partie de l examen, mais est là pour vous aider. X_MDIALOG x_mdialog - boîte de dialogue pour la saisie de paramètres Calling Sequence result=x_mdialog(title,labels,default_inputs_vector) result=x_mdialog(title,labelsv,labelsh,default_input_matrix) Parameters title : vecteur colonne de chaînes de caractères. Titre général labels : n vecteurs colonnes de chaînes de caractères, labels(i) est l'intitulé du i-ème paramètre à saisir default_input_vector : n vecteurs colonnes de chaînes de caractères, default_input_vector(i) la valeur initiale du i-ème paramètre labelsv : vecteur de n chaînes de caractères, labelsv(i) est la légende de la i-ème ligne de la matrice de paramètres labelsh : vecteur de m chaînes de caractères, labelsh(j) est la légende de la j-ième colonne de la matrice de paramètres default_input_matrix : matrice n x m de chaînes de caractères, default_input_matrix(i,j) est la valeur initiale du terme (i,j) de la matrice à saisir result : matrice n x m de chaînes de caractères si le bouton "Ok" a été pressé ou [] si c'est le bouton "Cancel". Description Boîte de dialogue pour la saisie de paramètres Examples txt=['module';'frequence';'phase ']; sig=x_mdialog('choisir le signal sinusoidal',txt,['1';'10';'0']) mag=evstr(sig(1)) frq=evstr(sig(2)) ph=evstr(sig(3)) rep=x_mdialog(['simulation d''un systeme';'avec un regulateur PI'],... ['gain P';'gain I'],[' ';' '])
MPRINTF mfprintf - converts, formats, and writes data to a file mprintf - converts, formats, and writes data to the main scilab window msprintf - converts, formats, and writes data in a string Calling Sequence mfprintf(fd,format,a1,...,an); mprintf(format,a1,...,an); str=msprintf(format,a1,...,an); Parameters fd : scalar, file descriptor given by mopen (it's a positive integer). The value -1 refers to the default file ( i.e the last opened file). format : a Scilab string describing the format to use to write the remaining operands. The format operand follows, as close as possible, the C printf format operand syntax. str : a character string, string to be scanned. a1,...,an : Specifies the data to be converted and printed according to the format parameter. Description The mprintf, mfprintf, and msprintf functions are interface for C-coded version of printf, fprintf and sprintf functions. The mprintf function writes formatted operands to the standard Scilab output (i.e the Scilab window). The argument operands are formatted under control of the format operand. The mfprintf function writes formatted operands to the file specified by the file desciptor fd. The argument operands are formatted under control of the format operand. The msprintf writes formatted operands in its returned value (a Scilab string). The argument operands are formatted under control of the format operand. Note that, in this case, the escape sequences ( "\n, \t,.." ) are treated as a normal sequence of characters. All these functions may be used to output column vectors of numbers and string vectors without an explicit loop on the elements. In that case these functions iterates on the rows. The shortest vector gives the number of time the format has to be iterated. An homogeneous sequence of identical type parameters can be replaced by a matrix Examples mprintf('at iteration %i, Result is:\nalpha=%f',33,0.535)
msprintf('%5.3f %5.3f',123,0.732) msprintf('%5.3f\n%5.3f',123,0.732) A=rand(5,2); // vectorized forms: the format directive needs // two operand, each column of A is used as an operand. // and the mprintf function is applied on each row of A mprintf('%5.3f\t%5.3f\n',a) colors=['red';'green';'blue';'pink';'black']; RGB=[1 0 0;0 1 0;0 0 1;1 0.75 0.75;0 0 0]; mprintf('%d\t%s\t%f\t%f\t%f\n',(1:5)',colors,rgb)