Calculation of cooling and heating loads, people, walls, windows, .... for spaces separately

asked 2022-06-21 04:59:00 -0500

Masoud's avatar

updated 2022-06-21 12:15:27 -0500

Hello I had a question about calculating a separate load for each defined space, for example, I have a wall and ceiling space with internal loads such as people, lighting and electrical equipment, I also created a schedule similar to HAP software, I want to calculate a separate load for all internal loads And get walls, ceilings, windows, etc. for each space separately. For example, 2000 BTU wall load per hour for cooling and heating, as well as for people, electrical equipment, windows, etc. Thank you for your help. And my other question is, is the defined schedule type correct?

            OpenStudio.Model model = new OpenStudio.Model();
            // Creat Schedule like Hap Software Schedule

            OpenStudio.ScheduleTypeLimits scheduleTypeLimits = new OpenStudio.ScheduleTypeLimits(model);
            scheduleTypeLimits.setUpperLimitValue(100);
            scheduleTypeLimits.setLowerLimitValue(0);
            scheduleTypeLimits.setNumericType("Continuous");

            OpenStudio.ScheduleDay scheduleDay = new OpenStudio.ScheduleDay(model);
            scheduleDay.setName("Schedule");
            scheduleDay.setScheduleTypeLimits(scheduleTypeLimits);
            scheduleDay.addValue(new OpenStudio.Time(0, 0), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 1), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 2), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 3), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 4), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 5), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 6), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 7), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 8), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 9), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 10), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 11), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 12), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 13), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 14), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 15), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 16), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 17), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 18), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 19), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 20), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 21), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 22), 100);
            scheduleDay.addValue(new OpenStudio.Time(0, 23), 100);

            OpenStudio.ScheduleWeek allOfWeekAprill = new OpenStudio.ScheduleWeek(model);
            allOfWeekAprill.setName("WeeklySchedule");
            allOfWeekAprill.setSaturdaySchedule(scheduleDay);
            allOfWeekAprill.setSundaySchedule(scheduleDay);
            allOfWeekAprill.setMondaySchedule(scheduleDay);
            allOfWeekAprill.setTuesdaySchedule(scheduleDay);
            allOfWeekAprill.setWednesdaySchedule(scheduleDay);
            allOfWeekAprill.setThursdaySchedule(scheduleDay);
            allOfWeekAprill.setFridaySchedule(scheduleDay);

            OpenStudio.ScheduleYear scheduleYear = new OpenStudio.ScheduleYear(model);
            scheduleYear.setName("ScheduleYear");
            scheduleYear.setScheduleTypeLimits(scheduleTypeLimits);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(0), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(1), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(2), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(3), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(4), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(5), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(6), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(7), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(8), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(9), 31), allOfWeekAprill);
            scheduleYear.addScheduleWeek(new OpenStudio.Date(new OpenStudio.MonthOfYear(10), 31), 
            allOfWeekAprill);
            scheduleYear.addScheduleWeek ...
(more)
edit retag flag offensive close merge delete

Comments

1

If you have not yet, you might try the Envelope and Internal Load Breakdown Measure. It provides breakdown of heat gain and loses for different envelope components and internal loads. It doesn't currently aggregate by space, but that could be an enhancement.

David Goldwasser's avatar David Goldwasser  ( 2022-06-21 10:27:09 -0500 )edit

thank you David I have to define each space in a separate thermal zone to be able to Get output for each space?

Masoud's avatar Masoud  ( 2022-06-21 12:13:55 -0500 )edit