Архитектурная акустика/Интеграл Релея (версия Кулигина): различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 15: Строка 15:
* <math>i = \sqrt{-1}</math>.
* <math>i = \sqrt{-1}</math>.
* <math>r'\left(\theta, \varphi, r\right)=\sqrt{\left(r\sin\varphi\cos\theta-x\right)^2 + \left(r\sin\varphi\sin\theta-y\right)^2+\left(r\cos\varphi\right)^2}</math>.
* <math>r'\left(\theta, \varphi, r\right)=\sqrt{\left(r\sin\varphi\cos\theta-x\right)^2 + \left(r\sin\varphi\sin\theta-y\right)^2+\left(r\cos\varphi\right)^2}</math>.




=Алгоритм=
=Алгоритм=
Предусловия:
# <tt>N</tt> - порядок источника, принимает значения от 1 для первичного источника и до бесконечности
# <tt>SC = M.Множество [[Архитектурная акустика/Первичный источник|источников]]()</tt>;
# <tt>PC = M.Множество [[Архитектурная акустика/Объемный геометрический объект|отражающих элементов]]()</tt>
# <tt>PlC = M.Множество [[Архитектурная акустика/Секущая плоскость вывода результатов|контрольных точек]]()</tt> - множество плоскостей вывода результатов.
# <tt>расстояние(точка1, точка2)</tt> - функция расстояния между двумя точками.
Течение алгоритма:
#Задаются полигоны всех поверхностей помещения.
#Задаются полигоны всех поверхностей помещения.
#Разбитие всех полигонов поверхностей помещения на элементы (источники) с некоторыми линейными размерами, которое зависит от частоты рассчитываемого тона.  
#Разбитие всех полигонов поверхностей помещения на элементы (источники) с некоторыми линейными размерами, которое зависит от частоты рассчитываемого тона.  
#Задаются контрольные плоскости вывода результата.
#Задаются контрольные плоскости вывода результата.
#<math>SC' \gets SC</math> - временное множество источников, для хранения первичных и вторичных источников SC'
#<math>SC' \gets SC</math> - временное множество источников, для хранения первичных и вторичных источников SC'
#Для всех источников <math>s\in SC'</math> (цикл):
#Для всех источников <math>s_j\in SC'</math> (цикл):
#<math>SC' \gets SC'  \setminus\left\{s'_i\right\}</math>
#<math>SC' \gets SC'  \setminus\left\{s_j\right\}</math>
##Из каждого источника излучается луч во все остальные отражающие элементы <math>PC-1</math>при условии, что источник SC излучает только в пределах своего телесного угла <math>\Omega>2\pi</math>.
## <math>s_j</math> создает лучи во все отражающие элементы - источники следующего порядка.
## Для каждого луча <math>r_i\in s</math> (цикл):
## Для каждого луча <math>r_i\in s_j</math> (цикл):
###Если интенсивность луча <math>r_i</math>  меньше какого-либо порогового значения, то перейти на шаг 7.2, иначе:
###Если интенсивность луча <math>r_i</math>  меньше какого-либо порогового значения, то перейти на шаг 7.2, иначе:
####Каждый излученный луч проверяется на пересечение с другими полигонами, т.е. на наличие тени.
####Каждый излученный луч проверяется на пересечение с другими полигонами, т.е. на наличие тени.
Строка 35: Строка 44:




Предусловия:
# <tt>N</tt> - порядок источника, принимает значения от 1 для первичного источника и до бесконечности
# <tt>SC = M.Множество [[Архитектурная акустика/Первичный источник|источников]]()</tt>;
# <tt>PC = M.Множество [[Архитектурная акустика/Объемный геометрический объект|отражающих элементов]]()</tt>
# <tt>PlC = M.Множество [[Архитектурная акустика/Секущая плоскость вывода результатов|контрольных точек]]()</tt> - множество плоскостей вывода результатов.
# <tt>расстояние(точка1, точка2)</tt> - функция расстояния между двумя точками.
Течение алгоритма:
# <math>SC' \gets SC</math> - изменяемое множество <u>всех</u> [[Архитектурная акустика/Источник|источников]].
# Если <tt>SC'</tt> пусто.
## Завершение алгоритма.
# Для всех источников <math>s\in SC'</math>
## <math>SC' \gets SC' \setminus s</math>
## Пусть множество лучей: <tt>RS = s.Излучаемый звук()</tt>
## Для всех лучей <math>r\in RS</math>
### Если <tt>r.Интенсивность() > M.Пренебрежимый уровень звука()</tt>
#### <math>PlC' = \left\{pl_i\right\}\subset PlC: \exists pt = pl_i\cap r\land</math><tt>расстояние(r.Позиция(), pt)</tt><math>\leq</math><tt>расстояние(r.Позиция(), r.Ближайшая поверхность(PC)</tt><math>\cap</math><tt>r)</tt> - множество плоскостей вывода результатов, с которыми существуют пересечения луча <math>r</math>, и которые не находятся в тени.
#### Для всех плоскостей <math>pl\in PlC'</math>
##### Точка пересечения <math>pt \gets pl\cap r</math>
##### <math>I\gets</math><tt>r.Интенсивность(расстояние(r.Позиция(), pt))</tt>
##### Если <math>I > </math><tt>M.Пренебрежимый уровень звука()</tt>
###### <tt>pl.Зарегистрировать звук(pt, I, r.Частота())</tt>
#### Если <math>\exists</math><tt>f = r.Ближайшая поверхность(PC)</tt>
##### Пусть <math>P\gets f\cap r</math>
##### Если <tt>r.Интенсивность(расстояние(r.Позиция(), P)) > M.Пренебрежимый уровень звука()</tt>
###### Пусть <math>f'</math> - плоская круглая поверхность диаметром, равным длине волны звука, ассоциированного с лучом <math>r</math> (см. <tt>r.[[Архитектурная акустика/Луч|Частота()]]</tt>), вокруг точки пересечения P.
###### <tt>s' = [[Архитектурная акустика/Вторичный источник на основе интеграла Релея|Вторичный источник на основе интеграла Релея]]</tt><math>(f\cap f', r, f \cap r)</math>
###### <math>SC' \gets SC' \cup \left\{s'\right\}</math> - дополнение множества <tt>SC'</tt> новым вторичным источником <tt>s'</tt>
#Переход на шаг 2.
[[Файл:ArchAc-RelayParFlow.jpg|thumb|800px|Граф параллельного выполнения алгоритма. Для краткости используются сокращенные записи методов сущностей [[Архитектурная акустика|архитектурной акустики]]:
<math>I\left(r\right)\sim r</math><tt>.[[Архитектурная акустика/Луч|Интенсивность]]()</tt>;
<math>I\left(r, pt\right)\sim r</math><tt>.[[Архитектурная акустика/Луч|Интенсивность]](расстояние(r.[[Архитектурная акустика/Луч|Позиция]](), pt))</tt>;
<math>I_0\sim M</math><tt>.[[Архитектурная акустика/Среда распространения звука|Пренебрежимый уровень звука]]()</tt>;
<math>\omega\left(r\right)\sim r</math><tt>.[[Архитектурная акустика/Луч|Частота]]()</tt>;
<math>pl.Reg\left(pt, I, \omega\right)\sim pl</math><tt>.[[Архитектурная акустика/Секущая плоскость вывода результатов|Зарегистрировать звук]]</tt><math>\left(pt, I, \omega\right)</math>;]]


=Свойства алгоритма=
=Свойства алгоритма=

Версия 15:32, 16 июня 2016

Архитектурная акустика\Интеграл Релея (версия Кулигина)

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

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

на сфере , где:

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


Алгоритм

Предусловия:

  1. N - порядок источника, принимает значения от 1 для первичного источника и до бесконечности
  2. SC = M.Множество источников();
  3. PC = M.Множество отражающих элементов()
  4. PlC = M.Множество контрольных точек() - множество плоскостей вывода результатов.
  5. расстояние(точка1, точка2) - функция расстояния между двумя точками.

Течение алгоритма:

  1. Задаются полигоны всех поверхностей помещения.
  2. Разбитие всех полигонов поверхностей помещения на элементы (источники) с некоторыми линейными размерами, которое зависит от частоты рассчитываемого тона.
  3. Задаются контрольные плоскости вывода результата.
  4. - временное множество источников, для хранения первичных и вторичных источников SC'
  5. Для всех источников (цикл):
    1. создает лучи во все отражающие элементы - источники следующего порядка.
    2. Для каждого луча (цикл):
      1. Если интенсивность луча меньше какого-либо порогового значения, то перейти на шаг 7.2, иначе:
        1. Каждый излученный луч проверяется на пересечение с другими полигонами, т.е. на наличие тени.
        2. Каждый излученный луч пересекается с контрольной плоскостью. Фиксируется характеристика в комплексном виде и записывается в буфер, связанный с точкой.
        3. Луч пересекает отражающий элемент, возбуждая колебания с определенной фазой в зависимости от того, с какой фазой на него упал луч. В формуле (1) имеем:
        4. Каждый отражающий элемент становится источником с определенными характеристиками (объемной скоростью колебаний), т.е. .
  1. Конец цикла


Свойства алгоритма

Пусть - множество первичных источников (см. свойство множество источников() среды распространения звука).

Пусть Излучаемый звук() - суммарное количество лучей от всех первичных источников.

Тогда сложность: , где (s.Интенсивность(0, 0, )) - максимальное значение характеристики звука, излучаемого источником по частотам , на которых определена его АЧХ, - пренебрежимый уровень звука (свойство среды распространения).