Я кроме программирования занимаюсь экодомостроительством о чем пишу в своем отдельном блоге:
http://yaricblog.blogspot.com/
В моем доме применяется солнечная энергия для нагрева воздуха и для получение электрической энергии.
В процессе строительства возникла идея проверить как будет экономится энергия для отопления если все поверхности дома использовать для сбора солнечной энергии. Солнечную энергию можно собирать можно коллекторами разного типа. Основные типы это жидкостные (водяные) и воздушные.
Чтобы оценить эффективность того или иного типа солнечного коллектора, а также эффективность формы дома, его размера, утеплителя и массы накопителя тепла внутри дома, для этого был создан программный пакет на python3
https://github.com/yaricp/py-solarhouse
В основе пакета лежат библиотеки:
PyMesh
PVLIB
Pandas
Суть работы пакета в следующем:
Пользователь подготавливает файл описывающий форму дома в формате *.stl или *.obj
Это файл загружается в пакет, также для расчетов указываются параметры дома - масса накопителя тепла, толщина стен дома, материал утеплителя, площадь пола и окон и тип солнечного коллектора.
Кроме этого указывается расположение дома и период времени.
После этого запускается расчет и в итоге получается файл с данными температур определенных элементов дома в укзанный период.
На базе этих данных строится график температур элементов дома и солнечной энергии получаемой с поверхностей дома.
По этим графикам можно оценить когда можно прекращать отапливать дом электричеством или печью или котлом.
Как это работает:
Перед началом расчетов с помощью библиотеки PVLIB получаем значения солнечной энергии от прямых лучей и от рассеянного солнечного света на один квадратный метр поверхности, которая перпендикулярна солнечным случам. При этом если указано, что нужно учитывать погоду, то извлекаются данные о солнечной радиации с учетом погоды.
Все данные извлекаются для указанной точки на карте (координаты дома указываются перед началом расчета).
Данные получаются в виде таблицы Pandas (библиотека Python).
В этой таблице содержатся три вида солнечной активности и температура окружающей среды для указанной местности.
Затем спомощью библиотеки PyMesh поверхность дома, которая задана в файле *.stl или *.obj, разбивается на треугольники. Также спомощью этой библиотеки вычисляется общая площадь дома, внутренний объем.
Также моделируется внутренний объем дома с учетом толщины стенки (указывается во входных данных).
Для каждого треугольник определяется угол наклона над горизонтом и направление относительно сторон света (Tilt, Azimuth). После этого спомощью PVLIB для каждого треугольника вычисляется новая таблица Pandas с почасовыми значениями полученной солнечной энергии.
В итоге солнечного расчета мы имеем столько таблиц сколько треугольников в меше дома. Из этих таблиц суммируются мощности и формируется одна выходная таблица Pandas.
После этого выполняется следующий этап - это тепловой расчет дома.
На базе геометрических данных дома вычисляются размеры и тепловые параметры элементов, которые описаны в тепловой моедли дома:
Тепловая модель дома
Далее для каждого часового значения солнечной энергии и температуры окружающей среды вычисляются температура каждого элемента дома.
В итоге мы получаем Pandas таблицу в которой почасовые значения температур элементов дома и значения солнечной энергии.
Как устроен пакет:
В пакете описаны несколько классов
Calculation
Building
ThermoProcess
ThermoModel
ThermoElement
Класс Calculation описывает весь процесс расчета.
В нем подготавливаются таблицы Pandas из библиотеки PVLIB.
Также в нем организована очередность разных расчетов.
Экзепмляру этого класса передаются все необходимые данные для расчетов, в том числе и файл меша форма дома.
Затем вызывается единственный метод: .compute(date) с указанием даты или периода. И в результате получаем таблицу Pandas.
Класс Building описывает всю геометрию дома на базе PyMesh.
В момент инициализации экземпляра класса проверяются все возможные геометрические коллизии, а также оценивается является ли форма дома выпуклой и замкнутой.
Методы класса вычисляют геометрию разных элементов дома.
Также вычисляются объем и масса элементов.
Класс ThermoProcess подготавливает термоэлементы дома согласно выбранной термомодели и запускает тепловой расчет.
Основным параметром класса является объект класса Building.
Согласно упрощенной тепловой модели описанной тут имеется 9 элементов. Все эти элементы описываются при инициализации экземпляра класса. Данные этих элементов вычисляются на базе геометрии из класса Building.
Элементы соединяются в цепочку согласно выбранной тепловой модели.
Тепловая модель описывается классом: ThermoModel
И в итоге вызывается метод compute в котором для каждого значения солнечной энергии и температуры окружающей среды вычисляются температуры элементов дома.
В тепловой расчет мощность солнечной энергии задается с учетом КПД выбранного типа столнечного коллектора.
Класс ThermoModel описывает цепочку термоэлементов (ThermoElement).
Также здесь указывается какой элемент является начальным для теплового расчета и какой конечный. Т.к. расчет идет изнутри наружу то обычно конечными элементами являются температуры окружающей среди.
Класс ThermoElement описывает свойства термического элемента.
А также именно в этом классе выполняются главные тепловые расчеты.
Расчет выполняется для маленького промежутка времени.
И если термоэлемент является слоистой структурой, то в каждый момент вычисляются изменения температуры для всех слоев.
Установка пакета очень проста:
pip install solarhouse
В общем и процесс установки и использование пакета можно прочесть в документации:
Solarhouse
Вот так!
http://yaricblog.blogspot.com/
В моем доме применяется солнечная энергия для нагрева воздуха и для получение электрической энергии.
В процессе строительства возникла идея проверить как будет экономится энергия для отопления если все поверхности дома использовать для сбора солнечной энергии. Солнечную энергию можно собирать можно коллекторами разного типа. Основные типы это жидкостные (водяные) и воздушные.
Чтобы оценить эффективность того или иного типа солнечного коллектора, а также эффективность формы дома, его размера, утеплителя и массы накопителя тепла внутри дома, для этого был создан программный пакет на python3
https://github.com/yaricp/py-solarhouse
В основе пакета лежат библиотеки:
PyMesh
PVLIB
Pandas
Суть работы пакета в следующем:
Пользователь подготавливает файл описывающий форму дома в формате *.stl или *.obj
Это файл загружается в пакет, также для расчетов указываются параметры дома - масса накопителя тепла, толщина стен дома, материал утеплителя, площадь пола и окон и тип солнечного коллектора.
Кроме этого указывается расположение дома и период времени.
После этого запускается расчет и в итоге получается файл с данными температур определенных элементов дома в укзанный период.
На базе этих данных строится график температур элементов дома и солнечной энергии получаемой с поверхностей дома.
По этим графикам можно оценить когда можно прекращать отапливать дом электричеством или печью или котлом.
Как это работает:
Перед началом расчетов с помощью библиотеки PVLIB получаем значения солнечной энергии от прямых лучей и от рассеянного солнечного света на один квадратный метр поверхности, которая перпендикулярна солнечным случам. При этом если указано, что нужно учитывать погоду, то извлекаются данные о солнечной радиации с учетом погоды.
Все данные извлекаются для указанной точки на карте (координаты дома указываются перед началом расчета).
Данные получаются в виде таблицы Pandas (библиотека Python).
В этой таблице содержатся три вида солнечной активности и температура окружающей среды для указанной местности.
Затем спомощью библиотеки PyMesh поверхность дома, которая задана в файле *.stl или *.obj, разбивается на треугольники. Также спомощью этой библиотеки вычисляется общая площадь дома, внутренний объем.
Также моделируется внутренний объем дома с учетом толщины стенки (указывается во входных данных).
Для каждого треугольник определяется угол наклона над горизонтом и направление относительно сторон света (Tilt, Azimuth). После этого спомощью PVLIB для каждого треугольника вычисляется новая таблица Pandas с почасовыми значениями полученной солнечной энергии.
В итоге солнечного расчета мы имеем столько таблиц сколько треугольников в меше дома. Из этих таблиц суммируются мощности и формируется одна выходная таблица Pandas.
После этого выполняется следующий этап - это тепловой расчет дома.
На базе геометрических данных дома вычисляются размеры и тепловые параметры элементов, которые описаны в тепловой моедли дома:
Тепловая модель дома
Далее для каждого часового значения солнечной энергии и температуры окружающей среды вычисляются температура каждого элемента дома.
В итоге мы получаем Pandas таблицу в которой почасовые значения температур элементов дома и значения солнечной энергии.
Как устроен пакет:
В пакете описаны несколько классов
Calculation
Building
ThermoProcess
ThermoModel
ThermoElement
Класс Calculation описывает весь процесс расчета.
В нем подготавливаются таблицы Pandas из библиотеки PVLIB.
Также в нем организована очередность разных расчетов.
Экзепмляру этого класса передаются все необходимые данные для расчетов, в том числе и файл меша форма дома.
Затем вызывается единственный метод: .compute(date) с указанием даты или периода. И в результате получаем таблицу Pandas.
Класс Building описывает всю геометрию дома на базе PyMesh.
В момент инициализации экземпляра класса проверяются все возможные геометрические коллизии, а также оценивается является ли форма дома выпуклой и замкнутой.
Методы класса вычисляют геометрию разных элементов дома.
Также вычисляются объем и масса элементов.
Класс ThermoProcess подготавливает термоэлементы дома согласно выбранной термомодели и запускает тепловой расчет.
Основным параметром класса является объект класса Building.
Согласно упрощенной тепловой модели описанной тут имеется 9 элементов. Все эти элементы описываются при инициализации экземпляра класса. Данные этих элементов вычисляются на базе геометрии из класса Building.
Элементы соединяются в цепочку согласно выбранной тепловой модели.
Тепловая модель описывается классом: ThermoModel
И в итоге вызывается метод compute в котором для каждого значения солнечной энергии и температуры окружающей среды вычисляются температуры элементов дома.
В тепловой расчет мощность солнечной энергии задается с учетом КПД выбранного типа столнечного коллектора.
Класс ThermoModel описывает цепочку термоэлементов (ThermoElement).
Также здесь указывается какой элемент является начальным для теплового расчета и какой конечный. Т.к. расчет идет изнутри наружу то обычно конечными элементами являются температуры окружающей среди.
Класс ThermoElement описывает свойства термического элемента.
А также именно в этом классе выполняются главные тепловые расчеты.
Расчет выполняется для маленького промежутка времени.
И если термоэлемент является слоистой структурой, то в каждый момент вычисляются изменения температуры для всех слоев.
Установка пакета очень проста:
pip install solarhouse
В общем и процесс установки и использование пакета можно прочесть в документации:
Solarhouse
Вот так!