Advertisement
Guest User

Untitled

a guest
Apr 16th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 4.15 KB | None | 0 0
  1. clear;
  2. %Exercice 2 séance 5
  3. DTS=load('DTS.txt');
  4. texp=DTS(:,1); %Temps écoulé depuis l'injection du traceur (s)
  5. Cm=DTS(:,2); %Concentration massique en traceur dans le fluide échantillonné (mg/L)
  6. t = 0:1:3240; %Vecteur temps à haute résolution utilisé pour tracer les courbes théoriques
  7. %%
  8. %Calcul de tm et var avec la fonction trapz
  9. intCm1 = trapz(texp , Cm); %Intégration sur texp de Cm
  10. E1 = Cm./intCm1;
  11. F1 = cumtrapz(texp , E1);
  12. tm1 = trapz(texp , texp.*E1); %Temps de séjour moyen (s)
  13. var1 = trapz(texp , ((texp-tm1).^2).*E1);
  14. %Fin du calcul de tm et var avec la fonction trapz
  15.  
  16. %%
  17. %Calcul de tm et var avec la fonction simpson
  18. intCm2 = simpson(texp , Cm); %Intégration sur texp de Cm
  19. E2 = Cm./intCm2;
  20. F2 = cumtrapz(texp , E2); %Obligé de recalculer F2 car E2 != E1
  21. tm2 = simpson(texp , texp.*E2); %Temps de séjour moyen (s)
  22. var2 = simpson(texp , ((texp-tm2).^2).*E2);
  23. %Fin du calcul de tm et var avec la fonction simpson
  24.  
  25. %%
  26. %Traçage des graphes
  27. subplot(2,2,1);
  28.     plot(texp , E1 , 'x' , texp , E2 , 'o');
  29.     xlabel('t (s)'), ylabel('E(t) (s^{-1})');
  30.     legend('trapz' , 'simpson');
  31.     title('DTS différentielle');
  32. subplot(2,2,2);
  33.     plot(texp , F1 , 'x' , texp , F2 , 'o');
  34.     xlabel('t (s)'), ylabel('F(t) (s^{-1})');
  35.     legend('trapz' , 'simpson');
  36.     title('DTS cumulée');
  37.    
  38. %On voit que la méthode de simpson donne des résultats très proches de la
  39. %fonction trapz. Elle est adaptée à ce type de problème.
  40. %Fin du traçage des graphes
  41.  
  42. %%
  43. %Calcul du tm théorique
  44. Vr = 0.389; %Volume utile théorique du réacteur (m^3)
  45. Qr = 55/(24*3600); %Débit nominal du réacteur (m^3.s^-1)
  46. tmth = Vr/Qr; %Temps moyen de séjour théorique (s)
  47.  
  48. % Conclusions : On se rend compte que le temps moyen de séjour théorique
  49. % est plus haut que le temps de séjour réel. Le débit étant fixé on peut
  50. % donc en déduire que le volume utile du réacteur est plus faible que son
  51. % volume utile théorique.
  52. %Fin calcul du tm théorique
  53.  
  54. %%
  55. %Début du NTE 1 : "Détermination d'un modèle d'association de réacteurs idéaux d'après des
  56. %données expérimentales."
  57.  
  58. fDTS = @(n , V , texp) ( ((n*Qr/V).^n).*( (texp.^(n-1))./factorial(n-1) ).*( exp(-texp*n*Qr/V) ) );
  59. %%Fonction anonyme prenant en entrée n et V, texp est utilisé comme vecteur
  60. %%temps et Qr comme débit.
  61.  
  62. %Début détermination n et V optimaux et traçage des courbes
  63. V=zeros(1,15);
  64. var=zeros(1,15); %pré-allocation de la taille des tableaux pour accélérer l'exécution de la boucle
  65. for n=1 : 15
  66.     ecart = @(V) (sum((E2-fDTS(n , V , texp)).^2)); %Calcul de la variance
  67.     [V(n) , var(n)] = fminbnd(ecart, 0 , Vr); %On récupère les différentes valeurs de V optimisées pour chaque n ainsi que l'écart induit
  68.     %On fixe les bornes de recherche à 0 en mini car c'est le plus petit
  69.     %volume possible et à Vr en maxi car on présume que le volume réel sera
  70.     %légèrement inférieur.
  71. end
  72. [var_opt , n_opt] = min(var); %var_opt ne sera pas utilisé, n_opt est le nombre d'étage pour lequel la variance est minimale
  73. V_opt = V(n_opt); %Valeur du volume total tel que pour n==n_opt la variance est minimale
  74. Eth = fDTS(n_opt , V_opt , t); %Calcul de la DTS théorique avec n et V optimaux
  75. Fth = cumtrapz(t , Eth); %Calcul de la DTS cumulée théorique
  76. %Fin optimisation
  77. %%
  78.  
  79. %Début traçage des courbes
  80. subplot(2,2,3); %Traçage du E théorique et réel
  81.     plot(texp,E1,'x' , t, fDTS(n_opt , V_opt , t))
  82.     title(sprintf('DTS différentielle : n=%i V=%f m^{3}', n_opt, V_opt))%'DTS différentielle : n=',num2str(n_opt),' V=',num2str(V_opt),'m^{3}');
  83.     legend('expérimental (trapz)' , 'théorique');
  84.     xlabel('Temps (s)'), ylabel('E(t) (s^{-1})');
  85. subplot(2,2,4); %Traçage du F théorique et réel
  86.     plot(texp,F1,'x' , t,Fth)
  87.     title('DTS cumulée');
  88.     legend('expérimental (trapz)','théorique');
  89.     xlabel('Temps (s)'), ylabel('F(t) (s^{-1})');
  90. %Fin traçage des courbes
  91. %Fin NTE 1
  92.  
  93. %Conclusions : Comme prévu dans les questions précédentes on trouve bien un
  94. %volume utile plus faible que le volume théorique donné dans l'énoncé.
  95. %%
  96. disp 0; %Return 0 pour vérifier que le programme a été exécuté jusqu'au bout
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement