Распространение радиоволн ВЧ/Рей-трейсинг: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 83: Строка 83:
######Если <math> i=0 \vee \zeta_{\varphi} \bmod 2 \neq 0</math>
######Если <math> i=0 \vee \zeta_{\varphi} \bmod 2 \neq 0</math>
#######<math>\alpha_{\varphi} \leftarrow \zeta_{\varphi} \frac{\Delta_{\varphi} (\zeta_{\varphi})}{2^i}</math>
#######<math>\alpha_{\varphi} \leftarrow \zeta_{\varphi} \frac{\Delta_{\varphi} (\zeta_{\varphi})}{2^i}</math>
#######<math>s'' \leftarrow s_j</math>
#######<math>\alpha_{\theta}' \leftarrow \alpha_{\theta}</math>
#######Position <math>\leftarrow</math> <tt> [[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция()</tt>
#######Position <math>\leftarrow</math> <tt> [[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция()</tt>
#######Ray <math>\leftarrow</math> <tt>Создать луч(Position, <math>\alpha_{\theta},~\alpha_{\varphi}</math>)</tt>
#######Ray <math>\leftarrow</math> <tt>Создать луч(Position, <math>\alpha_{\theta},~\alpha_{\varphi}</math>)</tt>
Строка 94: Строка 96:
#######Если <tt>[[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Distance, [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]</tt><math>)>E_{end}</math>
#######Если <tt>[[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Distance, [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]</tt><math>)>E_{end}</math>
########<math>s' \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|Вторичный источник при рейтрейсинге]].Создать([[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Distance, [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]<math>),~\alpha_{\theta},~\alpha_{\varphi},</math> Position, <math>t'</math>)</tt>
########<math>s' \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|Вторичный источник при рейтрейсинге]].Создать([[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Distance, [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]<math>),~\alpha_{\theta},~\alpha_{\varphi},</math> Position, <math>t'</math>)</tt>
########<math>\alpha_{\theta}' \leftarrow \alpha_{\theta}</math>
########<math>\alpha_{\theta} \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|<math>s'</math>()]].Получить зенит()</tt>
########<math>\alpha_{\theta} \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|<math>s'</math>()]].Получить зенит()</tt>
########<math>\alpha_{\varphi} \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|<math>s'</math>()]].Получить азимут()</tt>
########<math>\alpha_{\varphi} \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|<math>s'</math>()]].Получить азимут()</tt>
########<math>s'' \leftarrow s_j</math>
########<math>s_j \leftarrow s'</math>
########<math>s_j \leftarrow s'</math>
########Переход на шаг 1.1.1.1.2.1.2
########Переход на шаг 1.1.1.1.2.1.4
#######<math>s_j \leftarrow s''</math>
#######<math>s_j \leftarrow s''</math>
#######<math>\alpha_{\theta} \leftarrow \alpha_{\theta}'</math>
#######<math>\alpha_{\theta} \leftarrow \alpha_{\theta}'</math>

Версия 23:59, 4 ноября 2016

Алгоритм

Идея последовательного приближения

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

, где

- параметр моделирования, задаваемый пользователем.

Однако сравнение соседних итераций не дает достаточного условия на достижение заданной точности (основная причина этого - излучение по направлениям). Поэтому правильнее будет сравнивать итерации через одну, две и т.д.:

, где

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

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

Шаги по азимуту и по зениту источника являются функциями от направления либо постоянными.

Пример ХН и зависимости углового шага

Угловой шаг дискретизации как функция ХН

Большинство современных вещательных систем используют панельные антенны с ограниченными углами раствора диаграммы направленности (ДН) в горизонтальной плоскости (до 120°) и очень малыми углами в вертикальной плоскости (до 20°). Соответственно, в таких системах происходит серьезное перераспределение излучаемой энергии в пространстве. Типичные коэффициенты усиления: 16-18 dBi. Поэтому одним из решений задачи оптимизации является использование динамического углового шага дискретизации как функции от характеристики направленности источника.

, где

- начальная частота дискретизации;
- функция ХН;
- азимутальный угол;
- коэффициент девиации.

Инициализация геометрической модели

Перерасчет высот с учетом кривизны земли и рефракции радиоволн в тропосфере.

Входной параметр пересчитывается в соответствии с формулой:

, где

- эквивалентный радиус Земли, где
- радиус Земли (км),
- изменение коэффициента преломления с высотой.
- расстояние до точки с высотой .


Основной цикл программы | Вариант 1

Предусловия

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

Основное течение

  1. G.Набор источников()
  2. Если то ВЫХОД
    1. ().Антенна().Тип антенны().Амплитудно-частотная характеристика()
        1. Если
            1. Если
              1. Position ().Антенна().Позиция()
              2. Ray Создать луч(Position, )
              3. G.Множество отражающих объектов()
                1. .Множество отражающих поверхностей()
                  1. Расстояние(Position, Координаты[Ray ])
              4. Distance Расстояние(Position, Координаты[Ray ])
              5. G.Множество контрольных точек()
                1. Если ().Область регистрации луча Distance
                  1. .Зарегистрировать(().Напряженность, Расстояние(Position, .Позиция()), G.Среда распространения())
              6. Если ().Напряженность, Distance, G.Среда распространения()
                1. Вторичный источник при рейтрейсинге.Создать(().Напряженность, Distance, G.Среда распространения() Position, )
  3. Переход на шаг 2

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

Сложность

Возможности распараллеливания

Основной цикл программы | Вариант 2

Предусловия

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

Основное течение

  1. G.Набор источников()
    1. ().Антенна().Тип антенны().Амплитудно-частотная характеристика()
        1. Если
            1. Если
              1. Position ().Антенна().Позиция()
              2. Ray Создать луч(Position, )
              3. G.Множество отражающих объектов()
                1. .Множество отражающих поверхностей()
                  1. Расстояние(Position, Координаты[Ray ])
              4. Distance Расстояние(Position, Координаты[Ray ])
              5. G.Множество контрольных точек()
                1. Если ().Область регистрации луча Distance
                  1. .Зарегистрировать(().Напряженность, Расстояние(Position, .Позиция()), G.Среда распространения())
              6. Если ().Напряженность, Distance, G.Среда распространения()
                1. Вторичный источник при рейтрейсинге.Создать(().Напряженность, Distance, G.Среда распространения() Position, )
                2. ().Получить зенит()
                3. ().Получить азимут()
                4. Переход на шаг 1.1.1.1.2.1.4
  2. ВЫХОД

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

Сложность

Возможности распараллеливания