コード例 #1
0
ファイル: Program.cs プロジェクト: windripple/popolo
        private static void windowTest1()
        {
            //気象データ//直達日射,天空放射,乾球温度,夜間放射
            double[] wdIdn = new double[] { 0, 0, 0, 0, 0, 244, 517, 679, 774, 829, 856, 862, 847, 809, 739, 619, 415, 97, 0, 0, 0, 0, 0, 0 };
            double[] wdIsky = new double[] { 0, 0, 0, 0, 21, 85, 109, 116, 116, 113, 110, 109, 111, 114, 116, 114, 102, 63, 0, 0, 0, 0, 0, 0 };
            double[] wdDbt = new double[] { 27, 27, 27, 27, 27, 28, 29, 30, 31, 32, 32, 33, 33, 33, 34, 33, 32, 32, 31, 30, 29, 29, 28, 28 };
            double[] wdRN = new double[] { 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24 };

            //3mm透明ガラスの窓を作成
            GlassPanes.Pane pane = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.TransparentGlass03mm);
            GlassPanes glassPane = new GlassPanes(pane);
            Window window = new Window(glassPane);

            //表面総合熱伝達率を設定
            WindowSurface ws = window.GetSurface(true);
            ws.FilmCoefficient = 23d;
            ws = window.GetSurface(false);
            ws.FilmCoefficient = 9.3;

            //屋外面の傾斜を設定//南向き垂直壁
            Incline incline = new Incline(Incline.Orientation.S, 0.5 * Math.PI);
            window.OutSideIncline = incline;

            //地表面反射率:アルベドを設定
            ws.Albedo = 0.2;

            //日除けは無し
            window.Shade = SunShade.EmptySunShade;

            //7月21日0:00の東京の太陽を作成
            Sun sun = new Sun(Sun.City.Tokyo);
            DateTime dTime = new DateTime(2001, 7, 21, 0, 0, 0);
            sun.Update(dTime);
            window.Sun = sun;

            //室内側乾球温度は25度で一定とする
            ws = window.GetSurface(false);
            ws.AirTemperature = 25;

            //計算結果タイトル行
            Console.WriteLine(" 時刻 | 透過日射[W] | 吸収日射[W] | 貫流熱[W] | 対流熱取得[W] | 放射熱取得[W]");

            //終日の計算実行
            for (int i = 0; i < 24; i++)
            {
                //日射量設定
                sun.SetGlobalHorizontalRadiation(wdIsky[i], wdIdn[i]);
                //夜間放射設定
                window.NocturnalRadiation = wdRN[i];
                //外気乾球温度を設定
                ws = window.GetSurface(true);
                ws.AirTemperature = wdDbt[i];

                //計算結果書き出し
                Console.WriteLine(dTime.ToShortTimeString().PadLeft(5) + " | " +
                    window.TransmissionHeatGain.ToString("F1").PadLeft(11) + " | " +
                    window.AbsorbedHeatGain.ToString("F1").PadLeft(11) + " | " +
                    window.TransferHeatGain.ToString("F1").PadLeft(9) + " | " +
                    window.ConvectiveHeatGain.ToString("F1").PadLeft(13) + " | " +
                    window.RadiativeHeatGain.ToString("F1").PadLeft(13));

                //時刻更新
                dTime = dTime.AddHours(1);
                sun.Update(dTime);
            }

            Console.Read();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: windripple/popolo
        private static void glassPanesTest()
        {
            //ガラス板を作成
            GlassPanes.Pane[] panes = new GlassPanes.Pane[2];

            //室内側は6mmの透明ガラス、室外側は6mmの熱線吸収ガラスの場合
            panes[0] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.TransparentGlass06mm);
            panes[1] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.HeatAbsorbingGlass06mm);

            //物性確認
            Console.WriteLine("透明ガラスの透過率=" + panes[0].InnerSideTransmissivity.ToString("F2"));
            Console.WriteLine("透明ガラスの吸収率=" + panes[0].InnerSideAbsorptivity.ToString("F2"));
            Console.WriteLine("熱線吸収ガラスの透過率=" + panes[1].InnerSideTransmissivity.ToString("F2"));
            Console.WriteLine("熱線吸収ガラスの吸収率=" + panes[1].InnerSideAbsorptivity.ToString("F2"));
            Console.WriteLine();

            //ガラス作成
            GlassPanes glass = new GlassPanes(panes);

            //空気層の総合熱伝達率[W/(m2-K)]を設定
            glass.SetHeatTransferCoefficientsOfGaps(0, 6d);

            Console.WriteLine("室内側:透明ガラス 室外側:熱線吸収ガラス");
            Console.WriteLine("総合透過率[-] = " + glass.OverallTransmissivity.ToString("F3"));
            Console.WriteLine("総合吸収率[-] = " + glass.OverallAbsorptivity.ToString("F3"));
            //Console.WriteLine("熱貫流率[W/(m2-K)]" + glass.OverallHeatTransferCoefficient.ToString("F3"));
            Console.WriteLine();

            //室内側は6mmの熱線吸収ガラス、室外側は6mmの透明ガラスの場合
            panes[0] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.HeatAbsorbingGlass06mm);
            panes[1] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.TransparentGlass06mm);

            //ガラス作成
            glass = new GlassPanes(panes);

            //空気層の総合熱伝達率[W/(m2-K)]を設定
            glass.SetHeatTransferCoefficientsOfGaps(0, 6d);

            Console.WriteLine("室内側:熱線吸収ガラス 室外側:透明ガラス");
            Console.WriteLine("総合透過率[-] = " + glass.OverallTransmissivity.ToString("F3"));
            Console.WriteLine("総合吸収率[-] = " + glass.OverallAbsorptivity.ToString("F3"));
            //Console.WriteLine("熱貫流率[W/(m2-K)]" + glass.OverallHeatTransferCoefficient.ToString("F3"));

            Console.Read();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: windripple/popolo
        private static void makeWindows(
            Dictionary<string, Zone> zones,Dictionary<string, Incline> inclines, Outdoor outdoor, Dictionary<string, WallLayers> wallLayers,
            out Dictionary<string, Window> windows, out Dictionary<string, Wall> frames)
        {
            bool makeWindowFrame = true;

            const double WIN1720 = 2.89;//1.7 * 2.0;   //
            const double WIN1712 = 1.64;//1.7 * 1.2;   //
            const double WIN0512 = 0.42;//0.5 * 1.2;   //
            const double WIN1745 = 0.45;//1.7 * 0.45;  //

            //外側Low-e 6mm, 内側フロート 6mm
            GlassPanes.Pane[] panes = new GlassPanes.Pane[2];
            panes[0] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.TransparentGlass06mm);
            panes[1] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.HeatReflectingGlass06mm);
            GlassPanes gPanes = new GlassPanes(panes);
            gPanes.SetHeatTransferCoefficientsOfGaps(0, 5.9);

            windows = new Dictionary<string, Window>();
            Window win;
            frames = new Dictionary<string, Wall>();
            Wall frm;

            win = new Window(gPanes, "WI1-1");
            win.SurfaceArea = WIN1720;
            win.OutSideIncline = inclines["S"];
            zones["1F居間"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-1");
            frm.SurfaceArea = Math.Max(1.7 * 2.0 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["S"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F居間"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-2");
            win.SurfaceArea = WIN1720;
            win.OutSideIncline = inclines["S"];
            zones["1F居間"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-2");
            frm.SurfaceArea = Math.Max(1.7 * 2.0 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["S"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F居間"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-3");
            win.SurfaceArea = WIN1720;
            win.OutSideIncline = inclines["S"];
            zones["1F和室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-3");
            frm.SurfaceArea = Math.Max(1.7 * 2.0 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["S"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F和室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-4");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["E"];
            zones["1F浴室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-4");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["E"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F浴室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-5");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["N"];
            zones["1F洗面所"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-5");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["N"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F洗面所"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-6");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["N"];
            zones["1FWC"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-6");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["N"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1FWC"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-7");
            win.SurfaceArea = WIN1745;
            win.OutSideIncline = inclines["W"];
            zones["1F台所"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-7");
            frm.SurfaceArea = Math.Max(1.7 * 0.45 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["W"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F台所"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-8");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["W"];
            zones["1F居間"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-8");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["W"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F居間"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI1-9");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["W"];
            zones["1F居間"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS1-9");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["W"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["1F居間"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-1");
            win.SurfaceArea = WIN1712;
            win.OutSideIncline = inclines["S"];
            zones["2F主寝室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-1");
            frm.SurfaceArea = Math.Max(1.7 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["S"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F主寝室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-2");
            win.SurfaceArea = WIN1712;
            win.OutSideIncline = inclines["S"];
            zones["2F主寝室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-2");
            frm.SurfaceArea = Math.Max(1.7 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["S"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F主寝室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-3");
            win.SurfaceArea = WIN1712;
            win.OutSideIncline = inclines["S"];
            zones["2F子供室1"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-3");
            frm.SurfaceArea = Math.Max(1.7 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["S"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F子供室1"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-4");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["E"];
            zones["2F子供室1"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-4");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["E"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F子供室1"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-5");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["E"];
            zones["2F子供室2"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-5");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["E"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F子供室2"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-6");
            win.SurfaceArea = WIN1712;
            win.OutSideIncline = inclines["N"];
            zones["2F子供室2"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-6");
            frm.SurfaceArea = Math.Max(1.7 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["N"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F子供室2"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-7");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["N"];
            zones["階段室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-7");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["N"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["階段室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-8");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["N"];
            zones["2FWC"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-8");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["N"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2FWC"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-9");
            win.SurfaceArea = WIN1712;
            win.OutSideIncline = inclines["N"];
            zones["2F予備室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-9");
            frm.SurfaceArea = Math.Max(1.7 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["N"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F予備室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            win = new Window(gPanes, "WI2-10");
            win.SurfaceArea = WIN0512;
            win.OutSideIncline = inclines["E"];
            zones["2F主寝室"].AddWindow(win);
            outdoor.AddWindow(win);
            windows.Add(win.Name, win);

            frm = new Wall(wallLayers["サッシ"], "SS2-10");
            frm.SurfaceArea = Math.Max(0.5 * 1.2 - win.SurfaceArea, 0.0001);
            frm.SetIncline(inclines["E"], true);
            outdoor.AddWallSurface(frm.GetSurface(true));
            zones["2F主寝室"].AddSurface(frm.GetSurface(false));
            frames.Add(frm.Name, frm);

            //総合熱伝達率設定
            foreach (string key in windows.Keys)
            {
                windows[key].GetSurface(true).FilmCoefficient = AO;
                windows[key].GetSurface(false).FilmCoefficient = AI;
            }
            //総合熱伝達率設定
            foreach (string key in frames.Keys)
            {
                frames[key].GetSurface(true).FilmCoefficient = AO;
                frames[key].GetSurface(false).FilmCoefficient = AI;

                if (! makeWindowFrame) frames[key].SurfaceArea = 0.000001;
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: windripple/popolo
        /// <summary>Sample program calculating the charateristics of a glass panes</summary>
        private static void glassPanesTest()
        {
            //Create an array of the GlassPanes.Glass class
            GlassPanes.Pane[] panes = new GlassPanes.Pane[3];

            //Create a transparent glass (3mm).
            panes[0] = new GlassPanes.Pane(0.79, 0.07, 0.85, 0.07, 131);    //Inside of the window
            panes[1] = new GlassPanes.Pane(0.79, 0.07, 0.85, 0.07, 131);
            panes[2] = new GlassPanes.Pane(0.79, 0.07, 0.85, 0.07, 131);    //Outside of the window

            //Create an instance of GlassPanes class
            GlassPanes glass = new GlassPanes(panes);

            //Set heat transfer coefficients[W/(m2-K)] of air gap
            glass.SetHeatTransferCoefficientsOfGaps(0, 1 / 0.12);
            glass.SetHeatTransferCoefficientsOfGaps(1, 1 / 0.12);

            //Set overall heat transfer coefficients[W/(m2-K)] at the surface of glass.
            glass.SetInsideFilmCoefficient(9.26);      //Inside of the window
            glass.SetOutsideFilmCoefficient(23.26);    //Outside of the window

            //Check the characteristics of the glass panes.
            Console.WriteLine("Transparent glass(3mm) * 3");
            Console.WriteLine("Overall transmissivity[-] = " + glass.OverallTransmissivity.ToString("F2"));
            Console.WriteLine("Overall absorptivity[-] = " + glass.OverallAbsorptivity.ToString("F2"));
            Console.WriteLine("Heat transfer coefficient of glass[-] = " + glass.ThermalTransmittanceOfGlass.ToString("F2"));
            Console.WriteLine("Heat transmission coefficient[-] = " + glass.ThermalTransmittance.ToString("F2"));
            Console.WriteLine();

            //Change the outside glass pane to heat reflecting glass(6mm)
            panes[0] = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.HeatReflectingGlass06mm);

            //Check the characteristics of a single glass pane.
            Console.WriteLine("Heat reflecting glass(6mm)");
            Console.WriteLine("Transmissivity[-] = " + panes[0].OuterSideTransmissivity.ToString("F2"));
            Console.WriteLine("absorptivity[-] = " + panes[0].OuterSideAbsorptivity.ToString("F2"));
            Console.WriteLine("Reflectivity[-] = " + panes[0].OuterSideReflectivity.ToString("F2"));
            Console.WriteLine();

            //Create an instance of GlassPanes class. Other properties are same as above
            glass = new GlassPanes(panes);
            glass.SetHeatTransferCoefficientsOfGaps(0, 1 / 0.12);
            glass.SetHeatTransferCoefficientsOfGaps(1, 1 / 0.12);
            glass.SetInsideFilmCoefficient(9.26);      //Inside of the window
            glass.SetOutsideFilmCoefficient(23.26);    //Outside of the window

            //Check the characteristics of the glass panes.
            Console.WriteLine("Heat reflecting glass(6mm) + Transparent glass(3mm) * 2");
            Console.WriteLine("Overall transmissivity[-] = " + glass.OverallTransmissivity.ToString("F2"));
            Console.WriteLine("Overall absorptivity[-] = " + glass.OverallAbsorptivity.ToString("F2"));
            Console.WriteLine("Heat transfer coefficient of glass[-] = " + glass.ThermalTransmittanceOfGlass.ToString("F2"));
            Console.WriteLine("Heat transmission coefficient[-] = " + glass.ThermalTransmittance.ToString("F2"));

            Console.Read();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: windripple/popolo
        /// <summary>Sample program calculating the heat gain from the window</summary>
        private static void windowTest()
        {
            //A sample weather data
            //direct normal radiation [W/m2]
            double[] wdIdn = new double[] { 0, 0, 0, 0, 0, 244, 517, 679, 774, 829, 856, 862, 847, 809, 739, 619, 415, 97, 0, 0, 0, 0, 0, 0 };
            //diffuse horizontal radiation [W/m2]
            double[] wdIsky = new double[] { 0, 0, 0, 0, 21, 85, 109, 116, 116, 113, 110, 109, 111, 114, 116, 114, 102, 63, 0, 0, 0, 0, 0, 0 };
            //drybulb temperature [C]
            double[] wdDbt = new double[] { 27, 27, 27, 27, 27, 28, 29, 30, 31, 32, 32, 33, 33, 33, 34, 33, 32, 32, 31, 30, 29, 29, 28, 28 };
            //nocturnal radiation [W/m2]
            double[] wdRN = new double[] { 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 24, 24, 24 };

            //Create a window with a single 3mm transparent glass pane
            GlassPanes.Pane pane = new GlassPanes.Pane(GlassPanes.Pane.PredifinedGlassPane.TransparentGlass03mm);
            GlassPanes glassPane = new GlassPanes(pane);
            Window window = new Window(glassPane);

            //Set wall surface information
            WindowSurface outsideWindowSurface = window.GetSurface(true);
            outsideWindowSurface.FilmCoefficient = 23d;
            outsideWindowSurface.Albedo = 0.2;
            WindowSurface insideWindowSurface = window.GetSurface(false);
            insideWindowSurface.FilmCoefficient = 9.3;

            //Set incline of an outdoor surface : South, vertical incline
            window.OutSideIncline = new Incline(Incline.Orientation.S, 0.5 * Math.PI);

            //There is no sun shade
            window.Shade = SunShade.EmptySunShade;

            //Initialize sun. Tokyo : 7/21 0:00
            Sun sun = new Sun(Sun.City.Tokyo);
            DateTime dTime = new DateTime(2001, 7, 21, 0, 0, 0);
            sun.Update(dTime);
            window.Sun = sun;

            //Indoor drybulb temperature is constant (25C)
            window.IndoorDrybulbTemperature = 25;

            //Result : Title line
            Console.WriteLine(" Time |Transmission[W]|Absorption[W]|Transfer[W]|Convective[W]|Radiative[W]");

            //execute simulation
            for (int i = 0; i < 24; i++)
            {
                //Set radiations (calculate global horizontal radiation from direct normal and diffuse horizontal radiation)
                sun.SetGlobalHorizontalRadiation(wdIsky[i], wdIdn[i]);
                //Set nocturnal radiation
                window.NocturnalRadiation = wdRN[i];
                //Set outdoor temperature
                window.OutdoorDrybulbTemperature = wdDbt[i];

                //Output result
                Console.WriteLine(dTime.ToShortTimeString().PadLeft(5) + " | " + window.TransmissionHeatGain.ToString("F1").PadLeft(13) + " | " +
                  window.AbsorbedHeatGain.ToString("F1").PadLeft(11) + " | " + window.TransferHeatGain.ToString("F1").PadLeft(9) + " | " +
                  window.ConvectiveHeatGain.ToString("F1").PadLeft(11) + " | " + window.RadiativeHeatGain.ToString("F1").PadLeft(11));

                //Update time
                dTime = dTime.AddHours(1);
                sun.Update(dTime);
            }

            Console.Read();
        }
コード例 #6
0
ファイル: AirFlowWindow.cs プロジェクト: windripple/popolo
        /// <summary>Constructor</summary>
        /// <param name="interiorGlassPane">glass pane of interior side</param>
        /// <param name="interiorAirGap">interior side air gap thickness[m]</param>
        /// <param name="exteriorGlassPane">glass pnae of exterior side</param>
        /// <param name="exteriorAirGap">exterior side air gap thickness[m]</param>
        /// <param name="windowWidth">width [m] of the air flow window</param>
        /// <param name="windowHeight">height [m] of the air flow window</param>
        /// <param name="outsideIncline"></param>
        public AirFlowWindow(GlassPanes.Pane interiorGlassPane, double interiorAirGap,
            GlassPanes.Pane exteriorGlassPane, double exteriorAirGap,double windowWidth, double windowHeight,
            ImmutableIncline outsideIncline)
        {
            //initialize temperatures.
            tVector.SetValue(25);

            this.interiorGlassPane = interiorGlassPane;
            this.exteriorGlassPane = exteriorGlassPane;
            this.ExteriorAirGap = exteriorAirGap;
            this.InteriorAirGap = interiorAirGap;
            this.WindowWidth = windowWidth;
            this.WindowHeight = windowHeight;

            SetBlind(0.75, 0.07);

            this.OutSideIncline = outsideIncline;
        }