К задаче моделирования работы солнечных батарей средствами компьютерной графики

К задаче моделирования работы солнечных батарей средствами компьютерной графики

Бородин Д.С., Федоров П.В., МГТУ им. Н.Э.Баумана demansen@yandex.ru, dafferrus@gmail.com

Аннотация

Данная статья посвящена вопросам моделирования работы солнечных батарей. Описывается принцип работы

моделируемой системы батарей, а также рассматриваются различные формы представления объектов для реализации батарей, а также алгоритмы, позволяющие реализовать падение света на панель батареи. Приводятся средства оптимизации работы выбранного алгоритма построения изображения.

1 Введение

Зачастую в современных условиях для получения необходимых данных требуется проведение натурного эксперимента с использованием реальной модели некоторого объекта. Однако, такой эксперимент может быть сопряжен с различного рода трудностями. Так, например, при моделировании работы солнечных батарей исследователь может столкнуться с проблемой поиска подходящих погодных условий для проведения эксперимента.

Более того, использование реального образца в экспериментах может быть затратным с точки зрения временных и, что не менее важно, финансовых ресурсов -стоимость хороших солнечных батарей может достигать немыслимых сумм.

С развитием технических средств появилась возможность проведения различных сложных и затратных экспериментов посредством использования компьютерной модели объекта.

Цель данной работы - промоделировать работу солнечных батарей, используя различные средства компьютерной графики. Для достижения поставленной цели необходимо решить следующие задачи:

• определение структуры реализуемой системы, выделение значимых характеристик при реализации системы;

• определение формата представления реализуемого объекта;

• выбор способа построения изображения при реализации модели;

• определение характеристик источников света, выбор модели освещения;

• оценка эффективности способа построения изображения, выбор средств оптимизации работы алгоритма построения изображения;

Полученная в ходе данной работы модель может быть применима для оценки различных видов солнечных батарей, что позволит существенно сократить затраты на исследование разрабатываемых натурных моделей солнечных батарей.

2 Описание разрабатываемой

модели, выбор значимых характеристик

Условно, основная идея данной работы может быть сведена к изучению падающего света на специальные объекты - «солнечные батареи». Солнечные батареи представляют собой параллелепипеды, одна грань которых имеет специальное покрытие, поглощающее энергию источника света. Таким образом, одной из наиболее эффективных оценок качества солнечных батарей может служить количество поглощенной энергии источника света. Угол падения света также влияет на выдаваемую батареей мощность. Свет, падая на батарею, определяет некоторую условную единицу мощности. Чем больше света падает на панель и чем меньше угол падения света, тем больше выдаваемая батареей мощность.

Следует отметить, что количество поглощенной энергии солнечной батареей от источника света, может быть получено с некоторой точностью с помощью алгоритмов компьютерной графики.

Плоскость, поглощающая энергию, разбивается на несколько частей (для удобства назовем их ячейками). Используя

алгоритмы машинной графики можно получить информацию о затененности солнечной батареи в целом, а именно той плоскости, которая поглощает энергию источника света. Также необходимо учесть положение объекта в пространстве, так как свет, падающий под прямым углом, дает больше энергии, чем свет, падающий под любым другим углом. Для этого, в расчете общей освещенности батареи, вычисляется угол между плоскостью батареи и источником света.

Таким образом, энергию, поглощаемую солнечной батареей, можно выразить через формулу 1.

!5оС • с°5(«) • 1л

U = -

R

где и - общая энергия, полученная данной панелью от источника света, а - угол между нормалью солнечной батареи и прямой, на которой лежит источник света и солнечная батарея. 1л - яркость источника света. R - расстояние между источником света и солнечной панелью.

Всю полученную энергию солнечные батареи распределяют между локальными источниками света, условно называемыми «лампочками».

Для изучения падающего света на панель предполагается реализовать специальный режим «симуляции дня». В данном режиме пользователь выбирает один глобальный источник света и задает его начальное положение на сцене. После запуска данного режима, указанный пользователем источник света перемещается из точки, заданной пользователем, в противоположную точку, через центр координат, тем самым происходит «имитация дня». При выходе из режима, выбранный источник света перемещается в то место, где он находился до запуска режима.

3 Реализация модели 3.1 Представление объектов

Представление объекта играет важную роль в развитии работы. Оно позволяет задать форму, размеры и положение объекта в программе-реализации разработанной

модели. Существует несколько видов представления объектов на сцене:

• математическое представление (каждый объект задается неким набором поверхностей и начальных данных);

• полигональное представление (каждый объект определяется набором одинаковых плоскостей, точек, образующих данную плоскость).

Данные представления обладают рядом преимуществ и недостатков. Так, математическое представление позволяет легко находить видимые, пересекающиеся области, осуществлять работу с реальным телом, а не его аппроксимацией, а также осуществлять достаточно быстрые преобразования объекта на сцене. Но вместе с тем, математическое представление предполагает уникальный набор данных для каждого объекта, что значительно усложняет задание объектов. В данной работе выбор был сделан в пользу полигонального представления объектов, при котором объект состоит из:

• набора полигонов, задающих объект;

• набора точек, образующих каждый полигон;

• набора нормалей для каждой вершины полигона.

Такое представление позволяет задать тело любой по сложности формы, а также позволяет провести унификацию по работе с объектами сцены. Описанные выше преимущества являются весомыми по сравнению с недостатками такого представления, а именно медленная работа с объектами по сравнению с математическим представлением и поиск видимых областей зависит от сложности объекта.

3.2 Выбор способа построения изображения

Для того, чтобы получить изображения объектов на сцене, а также для изучения влияния интенсивности падающего света на объекты, необходимо выбрать такой алгоритм, который является приближенным к реалистичному изображению.

Рассмотрим несколько распространенных методов получения изображения: 1. Построчное сканирование строк (scan line). Данный алгоритм является

быстродейственным и не требует вспомогательных алгоритмов по отображению сцены (удаления невидимых поверхностей и граней). К недостаткам

относят сложность в дополнении эффектами отражения и преломления (сложность модификации) [Мельниченко, Легейда, 2005].

2. Карты теней (shadow mapping) -освещенность рассчитывается в зависимости от параметров источника света и расстояния до него. При этом не используется трассировка лучей. К преимуществам алгоритма относят то, что алгоритм хорошо работает для сцен, содержащих статические объекты, а также то, что для отображения падающей тени объектов сцены достаточно один раз рассмотреть сцену со стороны источника света. Однако, из-за неточных вычислений метод страдает проблемой самозатенения (объект может быть признан затененным) и ступенчатости теней, близких к камере (aliasing). Также при каждом изменении объектов на сцене необходимо обновлять Z-буфер каждый раз, что вносит трудности в работе с динамическими объектами [Цыганков, 2015].

3. Прямая трассировка лучей -рассчитываются пути лучей света, идущие от источников до объектов сцены. Многократно отражаясь и преломляясь, какая-то часть лучей приходит в точку наблюдения. Главным недостатком алгоритма является то, что из-за большого числа лучей, не попадающих в точку наблюдения, происходит огромное число лишних вычислительных операций [Роджерс, 2001]..

4. Обратная трассировка лучей - устраняет недостаток прямой трассировки путем рассмотрения путей лучей от точки наблюдения, при этом учитываются только те лучи, которые формируют изображение [Трассировка лучей, 2011]. Преимуществами этого алгоритма является возможность доработки для получения других эффектов, а также возможность не отображать невидимые грани и поверхности без вспомогательных алгоритмов. Основными недостатками являются большое число вычислений и проблема поиска пересечений луча с объектами сцены или самой сцены [Обратная трассировка лучей, 2004]

В данной работе выбор был сделан в

пользу обратной трассировки лучей, так как

этот алгоритм позволяет проводить

дальнейшую модификацию, а также получить

эффекты теней при малых затратах засчет работы по удалению невидимых граней и поверхностей.

Алгоритм обратной трассировки по подсчетам получается довольно медленным [Обратная трассировка на CUDA, 2016], так как при размере плоскости отображения сцены в 1024*768 пикселей количество только первичных лучей равно 786432. Следовательно, необходимо ускорить процессы вычисления данных путем усложнения структур вычисления, но уменьшения количества самих операций.

3.3 Определение пересечений

Важной задачей алгоритма обратной трассировки является нахождение

пересечения с объектами сцены. При использовании полигонального

представления объектов сцены, нахождение пересечения луча с объектом сводится к нахождению пересечения луча с одним из треугольников, образующих объекты сцены [Перемитина, 2012].

Для нахождения пересечения используется барицентрический тест (fast minimal storage ray triangle intersection). Тест на пересечение «луч-треугольник» определяет, пересекает ли луч треугольник. Также данный тест определяет, в какой точке данного треугольника произошло пересечение и определяет нормаль в точке пересечения. Имея три точки на плоскости (см. рис. 1), можно выразить любую другую точку через ее барицентрические координаты [Фролов, 2007].

VU

и / v

Р

Рис. 1. Барицентрический тест

Первое уравнение берется из определения барицентрических координат, выражая точку пересечения Ъ. С другой стороны, эта же точка Ъ лежит на прямой. Второе уравнение, таким образом - это параметрическое уравнение прямой. Приравняв правые части

уравнений, получаем третье уравнение

z(u,v) = (1- и - у) • у1+и • У2+V • У0 z(t) = р +1 • d р +1 • d = (1 - и - у) • у1 + и • у2 + у • у0 (2) Преобразуем (2) к (3):

" t"

[-а,у2 - у0,у1 - у0] • и = р - у0

V

Произведем замену переменных: обозначим:

Е1 = у1 - у0, Е2 = у2 - у0,Т = р - у0

Ч

[-d,E2,E1] •

= T

1

I-d,E1,E2|

Используя правило Крамера, получим уравнение 5:

Из линейной алгебры известно, что |А,В,С| = -(А х С) • В = -(С х В) • А

Применив это правило к уравнению 5, получим:

"t" 1 "(TxE1)E2 1 QE2

u v (dxE2)T (TxEl)d PT _ Qd _

(dxE2) El PE1

В итоге данных: " t

получим следующий набор

1

dot

dot

dot

dot(Q,D) _

где E1 = v1 - v0,E2 = v2 - v0, P = cross(D, E2) Q = cross(T,E1),D = v Функция dot - скалярное произведение векторов, cross - векторное произведение.

Подставив полученный вектор в одно из уравнений, получим необходимую точку Z. Для проверки факта пересечения луча с треугольником, необходимо чтобы все параметры t, u, v лежали в промежутке от 0 до 1. При этом количество операций (* : 23, +/- : 24, / : 1) [Фролов, 2007].

Для определения ближайшей, видимой точки пересечения луча с объектом воспользуемся двумя методами. Первый метод рассматривает направление нормали относительно луча. Если нормали направлены

в одну и ту же сторону, то данное пересечение является не видимым для пользователя. Если же нормали направлены в разные стороны, то данная точка является видимой по отношению к камере. Второй метод находит ближайшую точку, пересечения луча с объектом, к камере. Этот метод реализован с помощью вычисления длины между позицией камеры на сцене и найденной точкой пересечения.

Для ускоренного нахождения факта пересечения использовалось BVH-дерево.

Bounding Volume Hierarchy (BVH) -иерархия ограничивающих объемов. BVH активно стараются задействовать в трассировке лучей в связи с тем, что достаточно быстро, объемлющие оболочки [Mezger, 2005].

Существует множество разновидностей BVH деревьев. Достаточно взять некую произвольную фигуру и использовать ее в качестве ограничивающего объема. Из ряда стандартных выделяют несколько типов BVH деревьев (см. рис 2):

• Sphere tree.

• AABB tree

• OBB tree

• k-DOP

можно определить которые луч пересек

Рис. 2. Виды ВУН-деревьев

Двоичное дерево объемлющих оболочек ускоряет нахождение пересечения луча с объектами, путем создания объемлющих оболочек вокруг объектов или группы объектов.

Принцип построения дерева прост. Каждый новый объект сразу заключается в объемлющую оболочку. Затем, если дерево пусто, то данная оболочка становится образующей, к которой в дальнейшем происходит присоединение. Если же в дереве уже имеются оболочки, то происходит сравнение, лежит ли добавляемая оболочка внутри существующей. Таким образом, уменьшается область поиска пересечения.

u

v

Если оболочка лежит внутри, то рассматриваем добавление относительно оболочек, которые принадлежат

рассматриваемого элемента дерева. Если оболочка не лежит внутри, то найти такую оболочку, которая содержит в себе и добавляемую оболочку и существующую.

Самое простое и легко строящееся дерево - сферическое дерево. Данный вид деревьев хорош тем, что в нем легко определить факт пересечения луча с объектом, а кроме того, объединение в группы объектов происходит довольно просто, однако внутри самих оболочек остается достаточно много свободного пространства (где нет пересечения).

ААВВ-дерево, которое выделяет объемлющей оболочкой параллепипед. Дерево данного типа сложнее в построении, чем сферическое дерево. Кроме того, определение факта пересечения луча с объектом требует больше вычислений, однако в такой оболочке остается меньше свободного пространства [Mezger, 2005].

В данной работе используется ВУН-дерево типа ААВВ, которое состоит из параллелепипедов. Рассмотрим ниже определение факта пересечения луча с параллелепипедом.

Объемлющая оболочка задана двумя диагональными вершинами. Для понимания обозначим координаты вершин (Х_, Y_, Ъ_) и (Х+,У+,Ъ+). Луч исходит из точки (Х0,У0,Ъ0)в направлении вектора (1,ш,п) .

На первом этапе рассмотрим пару плоскостей, параллельных осям УЪ: х = Х_и х = X + .

При 1 = 0 заданный луч параллелен этим плоскостям, если Х0 < X + или Х0 > Х_, то луч не пересекает данный прямоугольник. Если условия не выполняются, то вычислим параметры пересечения:

т =

_ - _ , V"/

l

Если T„ear > Tf,

l

, то меняем их местами и

'near ' far •

переходим к рассмотрению других плоскостей. Рассмотрим плоскости, параллельные осям XZ: Если m не равна нулю, то вычислим значения параметров в данных плоскостях:

Ту! = —

ТУ2 =

ш ш

Затем сравним новые значения с уже полученными ранее:

• если Tyj > Tnear , тогда пусть Tnear = Ту1

• если Ту2 < Tfar , тогда пусть Tfar = Ту2

Если на данном шаге Tnear > ^^или при

Tfar < 0, то заданный луч проходит мимо прямоугольника, а следовательно, дальнейшее рассмотрение параллелепипеда нецелесообразно. Если же данные условия не выполняются, то необходимо рассмотреть последние плоскости, параллельные XY и повторить предыдущие сравнения.

Если в итоге получим, что 0 < Tnear < Tfar или 0 < Tfar , то заданный луч непременно пересечет исходный параллепипед со сторонами, параллельными координатным осям.

Для поиска пересечения используется очередь, которая и будет запоминать все факты пересечения, после чего будет происходить анализ.

BVH обладают высокой адаптивностью, хорошей скоростью построения. Самое главное, они позволяют узнать, пересекает ли луч объект, который находится на сцене.

3.4 Модели освещения

Степень соответствия модели

взаимодействия света с поверхностью 3D-объектов, лежащей в основе той или иной модели освещения, прежде всего определяет степень реализма получаемого изображения.

В данной работе были проанализированы следующие модели освещения [Боресков, 2010]:

1. Плоская модель затенения (flat shading). Преимуществами данной модели является высокая скорость работы и возможность четкого наблюдения переходов между гранями на визуализированной модели. Однако, в настоящее время плоское затенение используется лишь в случаях, когда необходимо подчеркнуть, что объект состоит из плоских граней.

2. Затенение по Гуро (Gouraud shading) - при использовании данной модели человеческому глазу незаметны эффекты ступенчатой градации цвета, при этом так как основные вычисления освещения осуществляются в вершинах, объем вычислений увеличивается незначительно, а блики на освещаемой поверхности при невысоком уровне детализации будут смазаны или могут вовсе потеряться. Однако, в данной

работе не рассматриваются эффекты бликов, поэтому последнее утверждение о модели не является значительным [Кулагин, 2008].

3. Затенение по Фонгу (Phong shading) -основная идея алгоритма в интерполяции цвета, а не нормали. При использовании затенения по Фонгу изображение получается более качественным по сравнению с предыдущими техниками и исчезает проблема с бликами, но алгоритм требует больше

вычислительных ресурсов [Кулагин, 2008].

Проанализировав вышеописанные модели освещения, выбор был сделан в пользу модели затенения по Фонгу, так как в отличие от модели затенения по Гуро, модель затенения по Фонгу позволяет избежать ступенчатости градации двух разных цветов, в то время как модель Гуро позволяет избежать ступенчатости лишь при одном цвете. Вместе с тем, качество получаемого изображения, оцененное визуально, гораздо выше при использовании модели освещения по Фонгу нежели при использовании модели освещения по Гуро или плоского затенения.

4 Оценка эффективности работы модели

Для оценки эффективности работы разработанной модели были произведены замеры времени работы разработанной модели.

Алгоритм обратной трассировки выполняется через каждый пиксель экранной плоскости, таким образом, увеличение количества пикселей экранной плоскости увеличивает время работы по формуле 10.

К = В • Ш

где К - количество лучей, В - количество пикселей в высоту, а Ш - количество пикселей в ширину экранной плоскости, тем самым при размере 550х360 количество первичных трассируемых лучей составляет 198000. Для ускорения обработки лучей используется BVH-дерево, а также барицентрический тест.

Объекты представляются из полигонов, то есть время поиска зависит от сложности фигуры. Сравнительная

характеристика зависимости времени обработки луча от количества полигонов приведена в таблице 1. Табл. 1. Сравнительна характеристика времени обработки луча от количества полигонов

Следует отметить, что приведенные выше значения являются результатами теста для объекта - сферы.

Время обработки зависит от количества объектов на сцене. Оно может быть выражено через количество

вычислительных операций, вычисляемое по формуле 11.

N

Count = ^ CountPol

i=0

где Count - количество операций, N -количество объектов, "подозреваемых" на факт пересечения, CountPol - количество полигонов, образующих i-ое тело.

Скорость трассирования лучей зависит от количества источников света, так как это приводит к трассированию луча из точки пересечения до источника света. Для увеличения скорости испускания теневого луча используется функция трассирования теневого луча. Данная функция заканчивает трассирование, если теневой луч пересек объект. Тем самым точно измерить время обработки теневого луча невозможно, так как время зависит не только от сложности объекта, но и от того, какой полигон пересекся с лучом.

Стоит учесть, что BVH-дерево не рассматривает пересечения с объектами, чья оболочка не пересекает луч. То есть, если объекты находятся за пределами видимости камеры, то эти объекты не рассматриваются для отображения на экранной плоскости, что уменьшает время обработки сцены. Также следует принять во внимание тот факт, что BVH помогает найти все объекты, с которыми у луча было пересечение, но для определения ближайшего видимого объекта берется минимальное расстояние

Количество полигонов, шт. Время поиска, с

12 0.001

25 0.004

50 0.009

100 0.020

200 0.042

300 0.068

от источника, испускающего лучи, до объекта.

5 Заключение

На основании определенных в работе методов и средств, а также с учетом исследованных в работе алгоритмов, была разработана система оценки

эффективности работы солнечных батарей относительно положения источника света. Использование при реализации модели алгоритма обратной трассировки позволяет рассмотреть получение изображения геометрическим образом, позволяющее получить эффекты теней и визуально качественное изображение с помощью модели освещения Фонга.

Такая система дает возможность промоделировать реальные объекты и наглядным образом отобразить эффективность солнечной батареи в зависимости от ее местоположения и уровня наклона по отношению к источнику света.

Данная модель имеет следующие перспективы развития:

• увеличение скорости обработки лучей путем распараллеливания основного алгоритма на графическое устройство (GPU);

• получение эффектов преломления лучей, отражения света от объектов, имеющих зеркальную поверхность.

Список литературы

Боресков А. Модели освещения. [Электронный ресурс], 2010. URL:

http://steps3d.narod.ru/tutorials/lighting-tutorial.html

Кулагин Д. Модели затенения. Плоская модель. Затенение по Гуро и Фонгу. [Электронный ресурс], 2008. URL:

http://compgraphics.info/3D/lighting/shading mod el.php

Мельниченко В.В., Легейда В.В. Настоящий самоучитель компьютерной графики. К: Век+, 2005. 560 с.

Обратная трассировка лучей. [Электронный ресурс], 2004. URL: http://students.uni-vologda.ac.ru/pages/pm01/kps/index.htm

Обратная трассировка на CUDA. [Электронный ресурс], 2016. URL:

http://www2.sscc.ru/Seminars/Docum/NVIDIA%2 0CUDA-2012/Lec 6 Novsb.pdf

Перемитина Т.О. Компьютерная графика. Самоучитель. Томск: ТУСУР, 2012, 144 с.

Роджерс Д. Алгоритмические основы машинной графики. М: Мир, 2001. 604 с.

Трассировка лучей. Алгоритмы поиска пересечений. Спецкурс ОФСИ [Электронный ресурс], 2011. URL:

http://courses.graphicon.ru/files/courses/imagesynt/

2011/lectures/mis lect11 11.pdf _(дата

обращения 27.02.2017).

Фролов В. Барицентрический тест. [Электронный ресурс], 2007. URL: http://ray-tracing.ru/articles213.html

Цыганков А. Тени в реальном времени [Электронный ресурс], 2015. URL: https://dtf.ru

Mezger J. Collision Handling in Dynamic Simulation Environments: Bounding Volume Hierarchies, University of Bremen, Germany, 2005