Skip to content

Latest commit

 

History

History
115 lines (91 loc) · 3.81 KB

README.md

File metadata and controls

115 lines (91 loc) · 3.81 KB

ProyectoTermo

  • Proyecto final modelos termodinámicos
  • Universidad Panamericana

Autores:

  • Rafael Patino
  • Ramón Ruiz

Documentación

proyecto.html

Es el archivo principal y está dividido en dos secciones, primero consiste de toda la interfaz, incluyendo la gráfica, ingreso de parámetros y la base para la tabla de resultados.

La siguiente función se encarga de actualizar la gráfica

chart.updateSeries([{
  data: mydata
}]);

La función start() se llama cuando es oprimido el botón de comenzar.

function start() {
  flag++;

Se accede a los valores que el usuario ingresó mediante la interfaz y se hace el cálculo de la temp sat, así como hfg.

  var ti = parseFloat(document.getElementById("ti").value);
  var mi = parseFloat(document.getElementById("mi").value);
  var potencia = parseFloat(document.getElementById("potencia").value);
  var p_atm = parseFloat(document.getElementById("p_atm").value);
  var intervalo = parseFloat(document.getElementById("intervalo").value);
  var tf = 0;
  var tsat = Math.pow(((1/373.14)-(0.00874*Math.log(p_atm/101325)/40.66)),-1) - 273.15;
  var h_fg = 2256.4 * Math.pow(((1-((tsat+273.15)/647.096))/(1-0.57665623)),0.375);
  var mf = 0;
  temp = ti;

Aquí se inicializa la función de actualizado constante (para nutrir la gráfica y la tabla).
Contamos con una bandera que nos indica si debemos seguir graficando y un condicional para escoger Calor sensible o Calor latente.

De esta manera, consideramos que para calor sensible (Qs) la siguiente fórmula es útil, puesto que nos permite conocer la variación de temperatura que es el dato que buscamos reflejar en los resultados.

Para Qs despejamos:

7f5b9564b088d5656c018dee6ac961d3

Considerando que el calor es potencia por tiempo:



  window.setInterval(function () {

    mydata.push({x: time, y: temp.toFixed(4)});

    if(flag != 0){
      if(temp < tsat) {

        document.getElementById("data-table").innerHTML += `
        <div class="col-4 border bg-white text-center">`+ time +`</div>
        <div class="col-4 border bg-white text-center">`+ temp.toFixed(4) +`</div>
        <div class="col-4 border bg-white text-center">`+ mi +`</div>
        `
        time+=intervalo;
        temp = (potencia * (intervalo))/(mi*4186) + ti;
        ti = temp;

        chart.updateSeries([{
          data: mydata
        }]);
      }

Consideramos que para calor latente (Ql) la siguiente fórmula es útil, puesto que nos permite conocer el cambio de masa en la fase de ebullición.

Para Ql despejamos:





     else {
       temp = tsat;
       mf = -((potencia * (intervalo))/(h_fg*1000)) + mi;
       mi = mf;
       console.log(temp);
       if(mf < 0){ mf = 0;}

       document.getElementById("data-table").innerHTML += `
       <div class="col-4 border bg-white text-center">`+ time +`</div>
       <div class="col-4 border bg-white text-center">`+ temp.toFixed(4) +`</div>
       <div class="col-4 border bg-white text-center">`+ mf.toFixed(4) +`</div>
       `
       time+=intervalo;
       if(mf <= 0){
         alert("proceso terminado");
         flag = 0;
       }
       else {
         chart.updateSeries([{
           data: mydata
         }]);
       }
     }
   }


 }, 1000)

}