daily pastebin goal
75%
SHARE
TWEET

Untitled

a guest Apr 16th, 2018 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top