コード例 #1
0
        public double GetSaturationTemperature(double pressure)
        {
            double temperature = 1.0e-10;

            if (moisture.Name.Equals("Water"))
            {
                temperature = ThermalPropCalculator.CalculateWaterSaturationTemperature(pressure);
            }
            else
            {
                temperature = ThermalPropCalculator.CalculateSaturationTemperature(pressure, vapPressureCoeffs);
            }
            return(temperature);
        }
コード例 #2
0
        public static double CalculateBoilingPointElevation(DryingMaterial dryingMaterial, double concentrationValue, double pressureValue)
        {
            SolutionType solutionType       = dryingMaterial.SolutionType;
            double       deltaT             = 0;
            Substance    s                  = dryingMaterial.Moisture;
            double       solventMolarWeight = s.MolarWeight;

            s = dryingMaterial.AbsoluteDryMaterial;
            double soluteMolarWeight = s.MolarWeight;
            double tEvap             = 0.0;

            /*if (solutionType == SolutionType.Raoult) {
             * //Unit Operations in Food Engieering Eq. 18.13
             * double soluteMassRatio = 1.0/owner.MoistureContentDryBase.Value;
             * double boilingConstant = 1.0;
             * deltaT = 1000 * boilingConstant * soluteMassRatio/soluteMolarWeight;
             * }
             * else if (solutionType == SolutionType.Aqueous) {
             * //Unit Operations in Food Engieering Eq. 18.14
             * double molarConcentration = concentrationValue/soluteMolarWeight/(concentrationValue/soluteMolarWeight+(1-concentrationValue)/solventMolarWeight);
             * deltaT = 0.52 * molarConcentration;
             * }
             * else if (solutionType == SolutionType.InorganicSalts) {
             * //Unit Operations in Food Engieering Eq. 18.17
             * double molarConcentration = concentrationValue/soluteMolarWeight/(concentrationValue/soluteMolarWeight+(1-concentrationValue)/solventMolarWeight);
             * deltaT = 104.9 * Math.Pow(molarConcentration, 1.14);
             * }
             * else if (solutionType == SolutionType.Ideal) {
             * //Unit Operations in Food Engieering Eq. 18.15
             * double tEvap = ThermalPropCalculator.CalculateTemperatureFromWaterVaporPressure(pressureValue);
             * double evapHeat = owner.GetEvaporationHeat(tEvap);
             * double solventMassFraction = 1.0/owner.MoistureContentWetBase.Value;
             * deltaT = -tEvap/(1.0 + (evapHeat/(8.314*tEvap*Math.Log(solventMassFraction))));
             * }*/
            if (solutionType == SolutionType.Sucrose)
            {
                //Unit Operations in Food Engieering Eq. 18.17
                pressureValue = pressureValue / 100; //note: pressure unit is mbar
                deltaT        = 3.061 * Math.Pow(concentrationValue, 0.094) * Math.Pow(pressureValue, 0.136) * Math.Exp(5.328 * concentrationValue);
            }
            else if (solutionType == SolutionType.ReducingSugars)
            {
                //Unit Operations in Food Engieering Eq. 18.17
                pressureValue = pressureValue / 100; //note: pressure unit is mbar
                deltaT        = 2.227 * Math.Pow(concentrationValue, 0.588) * Math.Pow(pressureValue, 0.119) * Math.Exp(3.593 * concentrationValue);
            }
            else if (solutionType == SolutionType.Juices)
            {
                //Unit Operations in Food Engieering Eq. 18.17
                pressureValue = pressureValue / 100; //note: pressure unit is mbar
                //deltaT = 0.04904 * Math.Pow(concentration, 0.029)*Math.Pow(pressureValue, 0.113)*Math.Exp(-0.03899*concentration + 6.52e-4*concentration*concentration);
                deltaT = 1.36 * Math.Pow(concentrationValue, 0.749) * Math.Pow(pressureValue, 0.106) * Math.Exp(3.39 * concentrationValue);
            }
            else if (solutionType == SolutionType.Unknown)
            {
                //Duhring rules
                tEvap = ThermalPropCalculator.CalculateWaterSaturationTemperature(pressureValue);
                CurveF[] duhringLines = dryingMaterial.DuhringLines;
                if (duhringLines != null)
                {
                    double tEvapReal = ChartUtil.GetInterpolatedValue(duhringLines, concentrationValue, tEvap);
                    deltaT = tEvapReal - tEvap;
                }

                /*double correctionCoeff = 1.0;
                 * if (duhringLines.VarValue == Constants.NO_VALUE && Math.Abs(pressureValue-1.0132685e5) < 1.0e-3) {
                 * double evapHeat = GetEvaporationHeat(tEvap);
                 * correctionCoeff = 0.0162*tEvap*tEvap/evapHeat;  //Chemical Engineering Eq. 7-15 at p.310
                 * deltaT *= correctionCoeff;
                 * }*/
            }
            return(deltaT);
        }