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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 30: Строка 30:
==Основной цикл программы | Вариант 1==
==Основной цикл программы | Вариант 1==
#<math>S \leftarrow </math>  <tt>[[Распространение радиоволн ВЧ/Источник|набор источников()]]</tt>
#<math>S \leftarrow </math>  <tt>[[Распространение радиоволн ВЧ/Источник|набор источников()]]</tt>
#Если <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>\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>
Строка 46: Строка 48:
########<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</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>
########<math>S \leftarrow s'</math>
#Переход на шаг 2


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

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

Алгоритм

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

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

, где

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

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

, где

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

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

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

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

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

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

, где

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


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

  1. набор источников()
  2. Если то ВЫХОД
        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().Антенна().Позиция(), )
  3. Переход на шаг 2

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