示例#1
0
        public void DryAir(
            UnitSystem system,
            double dryBulb,
            double expectedEnthalpy,
            double pressure,
            double expectedDryAirVolume,
            double expectedDryAirDensity,
            double moistAirEnthalpy,
            double humRatio,
            double expectedDryBulb,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.Multiple(() =>
            {
                RelativeDifference(psy.GetDryAirEnthalpy(dryBulb), expectedEnthalpy, within, "GetDryAirEnthalpy");
                RelativeDifference(psy.GetDryAirVolume(dryBulb, pressure), expectedDryAirVolume, within,
                                   "GetDryAirVolume");
                RelativeDifference(psy.GetDryAirDensity(dryBulb, pressure), expectedDryAirDensity, within,
                                   "GetDryAirDensity");
                Assert.That(psy.GetTDryBulbFromEnthalpyAndHumRatio(moistAirEnthalpy, humRatio),
                            Is.EqualTo(expectedDryBulb).Within(0.05), "GetTDryBulbFromEnthalpyAndHumRatio");
                RelativeDifference(psy.GetHumRatioFromEnthalpyAndTDryBulb(moistAirEnthalpy, expectedDryBulb), humRatio,
                                   within, "GetHumRatioFromEnthalpyAndTDryBulb");
            });
        }
示例#2
0
        public void GetTDewPointFromVapPres_convergence(
            UnitSystem system,
            double dryBulbStart,
            double dryBulbMax,
            double dryBulbIncrement,
            double pressureStart,
            double pressureMax,
            double pressureIncrement)
        {
            int iterations = 0;
            var psy        = new Psychrometrics(system);

            for (double tDryBulb = dryBulbStart; tDryBulb <= dryBulbMax; tDryBulb += dryBulbIncrement)
            {
                for (double relHum = 0; relHum <= 1; relHum += 0.1)
                {
                    for (double pressure = pressureStart; pressure <= pressureMax; pressure += pressureIncrement)
                    {
                        Assert.DoesNotThrow(() => psy.GetTWetBulbFromRelHum(tDryBulb, relHum, pressure));
                        iterations++;
                    }
                }
            }

            Console.Write($"{iterations} total iterations.");
        }
示例#3
0
        public void GetTFahrenheitFromTRankine()
        {
            var psy = new Psychrometrics(UnitSystem.IP);

            psy.UnitSystem = UnitSystem.SI;
            Assert.That(psy.GetTFahrenheitFromTRankine(529.67), Is.EqualTo(70).Within(0.000001));
        }
示例#4
0
        public void HumRatio_TWetBulbClamp(UnitSystem system, double dryBulb)
        {
            var psy = new Psychrometrics(system);

            Assert.That(psy.GetTWetBulbFromHumRatio(23, 1e-09, 95461),
                        Is.EqualTo(psy.GetTWetBulbFromHumRatio(23, 1e-07, 95461)));
        }
示例#5
0
        public void GetSatVapPres_Absolute(
            UnitSystem system,
            double dryBulb,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.That(psy.GetSatVapPres(dryBulb), Is.EqualTo(expected).Within(within));
        }
示例#6
0
        public void GetStandardAtmTemperature(
            UnitSystem system,
            double altitude,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.That(psy.GetStandardAtmTemperature(altitude), Is.EqualTo(expected).Within(within));
        }
示例#7
0
        public void GetHumRatioFromSpecificHum(
            UnitSystem system,
            double humRatio,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            RelativeDifference(psy.GetHumRatioFromSpecificHum(humRatio), expected, within, "GetHumRatioFromSpecificHum");
        }
示例#8
0
        public void GetSatVapPres_Relative(
            UnitSystem system,
            double dryBulb,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            RelativeDifference(psy.GetSatVapPres(dryBulb), expected, within, "GetSatVapPres");
            //Assert.That(psy.GetSatVapPres(dryBulb), Is.EqualTo(expected).Within(within));
        }
示例#9
0
        public void GetSatAirEnthalpy(
            UnitSystem system,
            double dryBulb,
            double pressure,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            RelativeDifference(psy.GetSatAirEnthalpy(dryBulb, pressure), expected, within, "GetSatAirEnthalpy");
        }
示例#10
0
        public void GetSatHumRatio(
            UnitSystem system,
            double dryBulb,
            double pressure,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.That(psy.GetSatHumRatio(dryBulb, pressure), Is.EqualTo(expected).Within(within));
        }
示例#11
0
        public void VapPres_TDewPoint(
            UnitSystem system,
            double dewPoint,
            double dryBulb,
            double expected,
            double within)
        {
            var psy     = new Psychrometrics(system);
            var vapPres = psy.GetVapPresFromTDewPoint(dewPoint);

            Assert.That(psy.GetTDewPointFromVapPres(dryBulb, vapPres), Is.EqualTo(expected).Within(within));
        }
示例#12
0
        public void TWetBulb_RelHum(
            UnitSystem system,
            double dryBulb,
            double relHum,
            double pressure,
            double expected,
            double within)
        {
            var psy = new Psychrometrics(system);

            RelativeDifference(psy.GetTWetBulbFromRelHum(dryBulb, relHum, pressure), expected, within, "GetTWetBulbFromRelHum");
        }
示例#13
0
        public void TDryBulbFromMoistAirVolumeAndHumRatio(
            UnitSystem system,
            double moistAirVolume,
            double humRatio,
            double pressure,
            double expectedDryBulb,
            double within)
        {
            var psy = new Psychrometrics(system);

            RelativeDifference(psy.GetTDryBulbFromMoistAirVolumeAndHumRatio(moistAirVolume, humRatio, pressure), expectedDryBulb, within,
                               "GetTDryBulbFromMoistAirVolumeAndHumRatio");
        }
示例#14
0
        public void HumRatio_TWetBulb(
            UnitSystem system,
            double dryBulb,
            double wetBulb,
            double pressure,
            double expectedHumRatio,
            double humRatioWithin,
            double wetBulbWithin)
        {
            var psy = new Psychrometrics(system);

            Assert.Multiple(() =>
            {
                var HumRatio = psy.GetHumRatioFromTWetBulb(dryBulb, wetBulb, pressure);
                RelativeDifference(HumRatio, expectedHumRatio, humRatioWithin, "GetHumRatioFromTWetBulb");
                var TWetBulb = psy.GetTWetBulbFromHumRatio(dryBulb, HumRatio, pressure);
                RelativeDifference(TWetBulb, wetBulb, wetBulbWithin, "GetTWetBulbFromHumRatio");
            });
        }
示例#15
0
        public void VapPres_RelHum(
            UnitSystem system,
            double dryBulb,
            double relHum,
            double expectedVapPres,
            double expectedHumRatio,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.Multiple(() =>
            {
                var calculatedVapPres = psy.GetVapPresFromRelHum(dryBulb, relHum);
                RelativeDifference(calculatedVapPres, expectedVapPres, within, "GetVapPresFromRelHum");

                var calculatedHumRatio = psy.GetRelHumFromVapPres(dryBulb, calculatedVapPres);
                RelativeDifference(calculatedHumRatio, expectedHumRatio, within, "GetRelHumFromVapPres");
            });
        }
示例#16
0
        public void HumRatio_VapPres(
            UnitSystem system,
            double vapPres,
            double pressure,
            double expectedHumRatio,
            double humRatioWithin,
            double vapPresWithin)
        {
            var psy = new Psychrometrics(system);

            Assert.Multiple(() =>
            {
                // conditions at 77 F, std atm pressure at 1000 ft; conditions at 25 C, std atm pressure at 500 m
                var calculatedHumRatio = psy.GetHumRatioFromVapPres(vapPres, pressure);
                RelativeDifference(calculatedHumRatio, expectedHumRatio, humRatioWithin, "GetHumRatioFromVapPres");
                var calculatedVapPres = psy.GetVapPresFromHumRatio(calculatedHumRatio, pressure);
                RelativeDifference(calculatedVapPres, vapPres, vapPresWithin, "GetVapPresFromHumRatio");
            });
        }
示例#17
0
        public static RefrigantProp RefNistProp;// = new RefrigantProp();

        public static void UtilityIni()
        {
            Agilent_COM1 = new Agilent34970A(1);
            //2015:com2
            PLC_COM2        = new S7200("COM2", 19200, System.IO.Ports.Parity.Even, 8, System.IO.Ports.StopBits.One);
            WTCOM3          = new YokogawaWT3XX(4);
            Controller_COM6 = new UT35A("COM3", 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
            WetAir          = new Psychrometrics();
            RefNistProp     = new RefrigantProp();
            Water           = new WaterCal();

            //Agilent_COM1 = new Agilent34970A(1);
            ////2015:com2
            //PLC_COM2 = new S7200("COM2", 9600, System.IO.Ports.Parity.Even, 8, System.IO.Ports.StopBits.One);
            //WTCOM3 = new YokogawaWT3XX(4);
            //Controller_COM6 = new UT35A("COM3", 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
            //WetAir = new Psychrometrics();
            //RefNistProp = new RefrigantProp();
            //Water = new WaterCal();
        }
示例#18
0
        public void SeaLevel_Station_Pressure(
            UnitSystem system,
            double stnPressure,
            double altitude,
            double dryBulb,
            double expectedSeaLevelPressure,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.Multiple(() =>
            {
                var seaLevelPressure = psy.GetSeaLevelPressure(stnPressure, altitude, dryBulb);

                Assert.That(seaLevelPressure, Is.EqualTo(expectedSeaLevelPressure).Within(within),
                            "GetSeaLevelPressure");

                Assert.That(psy.GetStationPressure(seaLevelPressure, altitude, dryBulb),
                            Is.EqualTo(stnPressure).Within(within), "GetStationPressure");
            });
        }
示例#19
0
        public void AllPsychrometrics()
        {
            Assert.Multiple(() =>
            {
                {
                    var psySi    = new Psychrometrics(UnitSystem.SI);
                    var results1 = psySi.CalcPsychrometricsFromTWetBulb(40, 20, 101325);
                    Assert.That(results1.HumRatio, Is.EqualTo(0.0065).Within(0.0001), "HumRatio");
                    Assert.That(results1.TDewPoint, Is.EqualTo(7).Within(0.5), "TDewPoint"); // not great agreement
                    Assert.That(results1.RelHum, Is.EqualTo(0.14).Within(0.01), "RelHum");
                    Assert.That(results1.MoistAirEnthalpy, Is.EqualTo(56700).Within(100), "MoistAirEnthalpy");
                    RelativeDifference(results1.MoistAirVolume, 0.896, 0.01, "MoistAirVolume");


                    var results2 = psySi.CalcPsychrometricsFromTDewPoint(40, results1.TDewPoint, 101325);
                    Assert.That(results2.TWetBulb, Is.EqualTo(20).Within(0.1),
                                " CalcPsychrometricsFromTDewPointTWetBulb");

                    var results3 = psySi.CalcPsychrometricsFromRelHum(40, results2.RelHum, 101325);
                    Assert.That(results3.TWetBulb, Is.EqualTo(20).Within(0.1), "CalcPsychrometricsFromRelHum TWetBulb");
                }
                {
                    var psyIp    = new Psychrometrics(UnitSystem.IP);
                    var results1 = psyIp.CalcPsychrometricsFromTWetBulb(100, 65, 14.696);
                    Assert.That(results1.HumRatio, Is.EqualTo(0.00523).Within(0.0001), "HumRatio");
                    Assert.That(results1.TDewPoint, Is.EqualTo(40).Within(1), "TDewPoint"); // not great agreement
                    Assert.That(results1.RelHum, Is.EqualTo(0.13).Within(0.01), "RelHum");
                    Assert.That(results1.MoistAirEnthalpy, Is.EqualTo(29.80).Within(0.1), "MoistAirEnthalpy");
                    Assert.That(results1.MoistAirVolume, Is.EqualTo(14.22).Within(0.01), "MoistAirVolume");


                    var results2 = psyIp.CalcPsychrometricsFromTDewPoint(100, results1.TDewPoint, 14.696);
                    Assert.That(results2.TWetBulb, Is.EqualTo(65).Within(0.1),
                                "CalcPsychrometricsFromTDewPoint TWetBulb");

                    var results3 = psyIp.CalcPsychrometricsFromRelHum(100, results2.RelHum, 14.696);
                    Assert.That(results3.TWetBulb, Is.EqualTo(65).Within(0.1), "CalcPsychrometricsFromRelHum TWetBulb");
                }
            });
        }
示例#20
0
        public void MoistAir(
            UnitSystem system,
            double dryBulb,
            double humRatio,
            double expectedEnthalpy,
            double pressure,
            double expectedVolume,
            double expectedDensity,
            double within)
        {
            var psy = new Psychrometrics(system);

            Assert.Multiple(() =>
            {
                RelativeDifference(psy.GetMoistAirEnthalpy(dryBulb, humRatio), expectedEnthalpy, within,
                                   "GetMoistAirEnthalpy");
                RelativeDifference(psy.GetMoistAirVolume(dryBulb, humRatio, pressure), expectedVolume, within,
                                   "GetMoistAirVolume");
                RelativeDifference(psy.GetMoistAirDensity(dryBulb, humRatio, pressure), expectedDensity, within,
                                   "GetMoistAirDensity");
            });
        }
示例#21
0
        public void GetTCelsiusFromTKelvin()
        {
            var psy = new Psychrometrics(UnitSystem.SI);

            Assert.That(psy.GetTCelsiusFromTKelvin(293.15), Is.EqualTo(20).Within(0.000001));
        }