Распространение радиоволн ВЧ/Рей-трейсинг: различия между версиями
Nigiluk (обсуждение | вклад) |
|||
Строка 46: | Строка 46: | ||
#<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>\ | ##<math>\forall ~ \omega_n \in</math><tt> [[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].[[Распространение радиоволн ВЧ/Антенна|Антенна()]].[[Распространение радиоволн ВЧ/Тип антенны|Тип антенны()]].[[Распространение радиоволн ВЧ/Амплитудно-частотная характеристика|Амплитудно-частотная характеристика()]]</tt> | ||
###<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> | ||
####Если <math> i=0 \vee \zeta_{\theta} \bmod 2 \neq 0</math> | ####Если <math> i=0 \vee \zeta_{\theta} \bmod 2 \neq 0</math> | ||
Строка 54: | Строка 53: | ||
######Если <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> | ||
#######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> | ||
#######<math>\forall ~ f\in</math> <tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G]].Множество отражающих объектов()</tt> | #######<math>\forall ~ f\in</math><tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G]].Множество отражающих объектов()</tt> | ||
########<math>\forall ~ t_m \in f</math><tt>.Множество отражающих поверхностей()</tt> | ########<math>\forall ~ t_m \in f</math><tt>.Множество отражающих поверхностей()</tt> | ||
#########<math>t'\leftarrow t_m:~\min (</math | #########<tt><math>t'\leftarrow t_m:~\min (</math>Расстояние(Position, Координаты[Ray <math>\cap ~t_m</math>])<math>)</math></tt> | ||
#######<math>\forall ~ \rho_k \in | #######<math>\forall ~ \rho_k \in</math><tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Множество контрольных точек|Множество контрольных точек()]]</tt> | ||
########Если <math>\rho_k \in </math> <tt>[[Распространение радиоволн ВЧ/Источник| | ########Если <math>\rho_k \in </math><tt> [[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Область регистрации луча <math>(\alpha_{\theta},~\alpha_{\varphi},~\frac{\Delta_{\theta} (\zeta_{\theta})}{2^i},~\frac{\Delta_{\varphi} (\zeta_{\varphi})}{2^i},</math> Расстояние(Position, Координаты[Ray <math>\cap ~t'</math>])<math>)</math></tt> | ||
#########<tt><math>\ | #########<tt><math>\rho_k</math>.Зарегистрировать([[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Расстояние(Position, <math>\rho_k</math>.Позиция()), [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]<math>)</math>)</tt> | ||
#######Если <tt>[[Распространение радиоволн ВЧ/Источник|<math>s_j</math>]].Напряженность | #######Если <tt>[[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Расстояние(Position, Координаты[Ray <math>\cap ~t'</math>]), [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]]</tt><math>)>E_{end}</math> | ||
########<math>s' \leftarrow</math> | ########<math>s' \leftarrow</math><tt> [[Распространение радиоволн ВЧ/Вторичный источник при рейтрейсинге|Вторичный источник при рейтрейсинге]].Создать([[Распространение радиоволн ВЧ/Источник|<math>s_j</math>()]].Напряженность<math>(\omega_n,~\alpha_{\theta},~\alpha_{\varphi}</math>, Расстояние(Position, Координаты[Ray <math>\cap ~t'</math>]), [[Распространение радиоволн ВЧ/Геометрическая модель|G]].[[Распространение радиоволн ВЧ/Среда распространения|Среда распространения()]])<math>),~\alpha_{\theta},~\alpha_{\varphi},</math> Position, <math>t'</math>)</tt> | ||
########<math>S \leftarrow s'</math> | ########<math>S \leftarrow S \cup s'</math> | ||
#Переход на шаг 2 | #Переход на шаг 2 | ||
===Свойства алгоритма=== | |||
====Сложность==== | |||
====Возможности распараллеливания==== | |||
==Основной цикл программы | Вариант 2== | ==Основной цикл программы | Вариант 2== |
Версия 18:18, 4 ноября 2016
Алгоритм
Идея последовательного приближения
Идея заключается в последовательном удвоении числа элементарных модельных экспериментов. Это продолжится до тех пор, пока результат текущего моделирования не приблизится к результату моделирования на предыдущей итерации:
, где
- - параметр моделирования, задаваемый пользователем.
Однако сравнение соседних итераций не дает достаточного условия на достижение заданной точности (основная причина этого - излучение по направлениям). Поэтому правильнее будет сравнивать итерации через одну, две и т.д.:
, где
- также будет задаваться пользователем.
- здесь - это параметр цикла, стоящего над циклами основной программы, .
При равномерном увеличении числа направлений излучения от первичного источника в два раза путем деления на 2 соответствующего шага по углу в процессе увеличения
, только каждое второе направление будет новым, т.е. не учитанным на предыдущих итерациях. Другая половина будет повторять эксперименты, уже выполненные ранее. Поэтому в цикл основной программы введено дополнительное условие для учета этих повторений.Шаги
по азимуту и по зениту источника являются функциями от направления либо постоянными.Угловой шаг дискретизации как функция ХН
Большинство современных вещательных систем используют панельные антенны с ограниченными углами раствора диаграммы направленности (ДН) в горизонтальной плоскости (до 120°) и очень малыми углами в вертикальной плоскости (до 20°). Соответственно, в таких системах происходит серьезное перераспределение излучаемой энергии в пространстве. Типичные коэффициенты усиления: 16-18 dBi. Поэтому одним из решений задачи оптимизации является использование динамического углового шага дискретизации
как функции от характеристики направленности источника., где
- - начальная частота дискретизации;
- - функция ХН;
- - азимутальный угол;
- - коэффициент девиации.
Инициализация геометрической модели
Перерасчет высот с учетом кривизны земли и рефракции радиоволн в тропосфере.
Входной параметр
пересчитывается в соответствии с формулой:, где
- - радиус Земли (км),
- - изменение коэффициента преломления с высотой.
- эквивалентный радиус Земли, где
- - расстояние до точки с высотой .
Основной цикл программы | Вариант 1
Предусловия
- входное описание среды распространения моделируемого поля, заданноеОсновное течение
- G.Набор источников()
- Если то ВЫХОД
- . ()Антенна().Тип антенны().Амплитудно-частотная характеристика()
- Если
- Если
- Position . ()Антенна().Позиция()
- Ray Создать луч(Position, )
- G.Множество отражающих объектов()
- Расстояние(Position, Координаты[Ray ])
.Множество отражающих поверхностей()
- G.Множество контрольных точек()
- Если .Область регистрации луча () Расстояние(Position, Координаты[Ray ])
- .Напряженность () , Расстояние(Position, .Позиция()), G.Среда распространения() ) .Зарегистрировать(
- Если .Область регистрации луча () Расстояние(Position, Координаты[Ray ])
- Если .Напряженность () , Расстояние(Position, Координаты[Ray ]), G.Среда распространения()
- Вторичный источник при рейтрейсинге.Создать(.Напряженность () , Расстояние(Position, Координаты[Ray ]), G.Среда распространения()) Position, )
- Если
- Если
- Переход на шаг 2