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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 29: Строка 29:


==Основной цикл программы | Вариант 1==
==Основной цикл программы | Вариант 1==
При переотражениях лучевая модель предполагает один входящий луч и два выходящих - отраженный и преломленный. Инициализируем множество источников <math>SC</math>.
#<math>S \leftarrow </math>  <tt>[[Распространение радиоволн ВЧ/Источник|набор источников()]]</tt>
#<math>S \leftarrow </math>  <tt>[[Распространение радиоволн ВЧ/Источник|набор источников()]]</tt>
#<math>\forall ~ s_j \in S</math>
#<math>\forall ~ s_j \in S</math>
Строка 44: Строка 43:
########Если <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}, 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}, t'</math>)</tt>
#########<tt><math>\rho</math>.Зарегистрировать([[Распространение радиоволн ВЧ/Источник|s()]].Напряженность(<math>\omega_n,\alpha_{\theta},\alpha_{\varphi}</math>,Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\rho</math>.Позиция()), [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]))</tt>
#########<tt><math>\rho</math>.Зарегистрировать([[Распространение радиоволн ВЧ/Источник|s()]].Напряженность(<math>\omega_n,\alpha_{\theta},\alpha_{\varphi}</math>,Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\rho</math>.Позиция()), [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]))</tt>
#######Если <tt>[[Распространение радиоволн ВЧ/Источник|s()]].Напряженность(<math>\omega_n,\alpha_{\theta},\alpha_{\varphi}</math>,Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\alpha_{\theta},\alpha_{\varphi}</math>)  <math> \cap ~t'</math>), [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]))</tt> <math>>E_{lim}</math>
#######Если <tt>[[Распространение радиоволн ВЧ/Источник|s()]].Напряженность(<math>\omega_n,\alpha_{\theta},\alpha_{\varphi}</math>,Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\alpha_{\theta},\alpha_{\varphi}</math>)  <math> \cap ~t'</math>), [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]])</tt> <math>>E_{end}</math>
########<math>s' \leftarrow</math>  <tt>[[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|s_II()]].Создать([[Распространение радиоволн ВЧ/Источник|s()]].Напряженность(<math>\omega_n,\alpha_{\theta},\alpha_{\varphi}</math>,Расстояние([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), Луч([[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(), <math>\alpha_{\theta},\alpha_{\varphi}</math>)  <math> \cap ~t'</math>), [[Распространение радиоволн ВЧ/Геометрическая модель|G()]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]),  <math>\alpha_{\theta},\alpha_{\varphi}</math>,  [[Распространение радиоволн ВЧ/Источник|s()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].Позиция(),  <math>t'</math>)</tt>
########<math>S \leftarrow s'</math>


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

Версия 22:39, 31 октября 2016

Алгоритм

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

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

, где

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

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

, где

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

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

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

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

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

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

, где

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


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

  1. набор источников()
        1. Если  : нечет. &
            1. Если  : нечет. &
              1. G().Набор полигональных объектов().Набор поверхностей()
                1. Расстояние(s().Антенна().Позиция(), Луч(s().Антенна().Позиция(),) )
                1. Если s().Область регистрации луча ()
                  1. .Зарегистрировать(s().Напряженность(,Расстояние(s().Антенна().Позиция(), .Позиция()), G().Среда распространения()))
              2. Если s().Напряженность(,Расстояние(s().Антенна().Позиция(), Луч(s().Антенна().Позиция(), ) ), G().Среда распространения())
                1. s_II().Создать(s().Напряженность(,Расстояние(s().Антенна().Позиция(), Луч(s().Антенна().Позиция(), ) ), G().Среда распространения()), , s().Антенна().Позиция(), )

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