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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 41: Строка 41:
===Предусловия===
===Предусловия===
===Основное течение===
===Основное течение===
#<math>S \leftarrow </math> <tt>[[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Источник|набор источников()]]</tt>
#<math>S \leftarrow </math><tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Первичный источник|Набор источников()]]</tt>
#Если <math>S: \varnothing </math> то ВЫХОД
#Если <math>S: \varnothing </math> то ВЫХОД
#<math>\forall ~ s_j \in S</math>
#<math>\forall ~ s_j \in S</math>
##<math>S \leftarrow S~ \backslash \left \{ s_j \right \}</math>
##<math>S \leftarrow S~ \backslash \left \{ s_j \right \}</math>
##<math>\Omega\leftarrow s_j</math><tt>.Антенна().Тип антенны ().Амплитудно-частотная характеристика()</tt>
##<math>\Omega\leftarrow</math><tt> [[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].[[Распространение радиоволн ВЧ/Тип антенны|Тип антенны()]].[[Распространение радиоволн ВЧ/Амплитудно-частотная характеристика|Амплитудно-частотная характеристика()]]</tt>
##<math>\forall ~ \omega_n \in \Omega</math>
##<math>\forall ~ \omega_n \in \Omega</math>
###<math>\forall ~ \zeta_{\theta} : ~~ 0 \leqslant \zeta_{\theta} < \left [ \frac{\pi}{\left \langle \Delta_{\theta} \right \rangle} 2^{i} \right ]</math>
###<math>\forall ~ \zeta_{\theta} : ~~ 0 \leqslant \zeta_{\theta} < \left [ \frac{\pi}{\left \langle \Delta_{\theta} \right \rangle} 2^{i} \right ]</math>
Строка 53: Строка 53:
######Если <math> \zeta_{\varphi} </math> : нечет. & <math>i>0</math>
######Если <math> \zeta_{\varphi} </math> : нечет. & <math>i>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>\forall f\in G</math><tt>.Множество отражающих объектов()</tt>
#######Position <math>\leftarrow</math> <tt> [[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция()</tt>
########<math>\forall t_m \in f</math><tt>.Множество отражающих поверхностей()</tt>
#######Ray <math>\leftarrow</math> <tt>  Создать луч(Position, <math>\alpha_{\theta},~\alpha_{\varphi}</math>)</tt>
#########<math>t'\leftarrow t_m:~\min (</math><tt>Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(),</tt><math>\alpha_{\theta},\alpha_{\varphi}</math><tt>) </tt><math> \cap ~t_m</math><tt>)</tt><math>)</math>
#######<math>\forall ~ f\in</math> <tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].Множество отражающих объектов()</tt>
########<math>\forall ~ t_m \in f</math><tt>.Множество отражающих поверхностей()</tt>
#########<math>t'\leftarrow t_m:~\min (</math><tt>Расстояние([[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(),</tt><math>\alpha_{\theta},\alpha_{\varphi}</math><tt>) </tt><math> \cap ~t_m</math><tt>)</tt><math>)</math>
#######<math>\forall ~ \rho_k \in P \leftarrow</math>  <tt>[[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Множество контрольных точек|Множество контрольных точек()]]</tt>
#######<math>\forall ~ \rho_k \in P \leftarrow</math>  <tt>[[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Множество контрольных точек|Множество контрольных точек()]]</tt>
########Если <math>\rho_k \in </math> <tt>[[Распространение радиоволн ВЧ/Источник|s()]].Область регистрации луча (<math>\alpha_{\theta},\alpha_{\varphi},\frac{\Delta_{\theta} (\zeta_{\theta})}{2^i},\frac{\Delta_{\varphi} (\zeta_{\varphi})}{2^i},</math> Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\alpha_{\theta},\alpha_{\varphi}</math>)  <math> \cap ~t'</math>))</tt>
########Если <math>\rho_k \in </math> <tt>[[Распространение радиоволн ВЧ/Источник|s()]].Область регистрации луча (<math>\alpha_{\theta},\alpha_{\varphi},\frac{\Delta_{\theta} (\zeta_{\theta})}{2^i},\frac{\Delta_{\varphi} (\zeta_{\varphi})}{2^i},</math> Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\alpha_{\theta},\alpha_{\varphi}</math>)  <math> \cap ~t'</math>))</tt>

Версия 01:30, 2 ноября 2016

Алгоритм

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

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

, где

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

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

, где

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

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

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

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

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

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

, где

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

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

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

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

, где

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


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

Предусловия

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

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

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