Распространение радиоволн ВЧ/Рей-трейсинг: различия между версиями
Nigiluk (обсуждение | вклад) |
Nigiluk (обсуждение | вклад) |
||
| Строка 111: | Строка 111: | ||
===Предусловия=== | ===Предусловия=== | ||
* <math>G</math> - входное описание среды распространения моделируемого поля, заданное [[Распространение радиоволн ВЧ/Геометрическая модель|геометрической моделью]]. | * <math>G</math> - входное описание среды распространения моделируемого поля, заданное [[Распространение радиоволн ВЧ/Геометрическая модель|геометрической моделью]]. | ||
* <math> | * <math>E_{end}</math> - критическое значение напряженности, на котором дальнейшая трассировка луча прекращается. | ||
* <math>\Delta</math> - максимальная разность между текущим и предыдущим результатом моделирования, при которой можно считать, что поле промоделированно точно. | |||
===Основное течение=== | ===Основное течение=== | ||
| Строка 141: | Строка 142: | ||
===<tt>Trace</tt>=== | ===<tt>Trace</tt>=== | ||
Функция трассирует луч через геометрическую модель и и фиксирует его прохождение вблизи контрольной точки. | |||
#Distance <math>\leftarrow \infty</math> | #Distance <math>\leftarrow \infty</math> | ||
#<math>\forall ~ f_m\in</math><tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G]].Множество отражающих объектов()</tt> | #<math>\forall ~ f_m\in</math><tt> [[Распространение радиоволн ВЧ/Геометрическая модель|G]].Множество отражающих объектов()</tt> | ||
| Строка 161: | Строка 163: | ||
#<tt>Trace(Ray, [[Распространение радиоволн ВЧ/Геометрическая модель|G]], <math>E_{end}</math>)</tt> | #<tt>Trace(Ray, [[Распространение радиоволн ВЧ/Геометрическая модель|G]], <math>E_{end}</math>)</tt> | ||
===<tt>Postprocessing</tt>=== | |||
Функция "проявляет" поле в контрольных точках по накопленным значениям напряженности от всех пришедших лучей. | |||
===<tt>SucApprox</tt>=== | |||
Функция сравнивает текущие результаты моделирования с результатами, полученными на предыдущем шаге. На выходе получаем флаг, по которому решаем, следует ли продолжать уточнять модель. | |||
===Свойства алгоритма=== | ===Свойства алгоритма=== | ||
====Сложность==== | ====Сложность==== | ||
Версия 23:47, 16 февраля 2017
Модель
Алгоритм
Идея последовательного приближения
Идея заключается в последовательном удвоении числа элементарных модельных экспериментов. Это продолжится до тех пор, пока результат текущего моделирования не приблизится к результату моделирования на предыдущей итерации:
, где
- - параметр моделирования, задаваемый пользователем.
Однако сравнение соседних итераций не дает достаточного условия на достижение заданной точности (основная причина этого - излучение по направлениям). Поэтому правильнее будет сравнивать итерации через одну, две и т.д.:
, где
- также будет задаваться пользователем.
- здесь - это параметр цикла, стоящего над циклами основной программы, .
При равномерном увеличении числа направлений излучения от первичного источника в два раза путем деления на 2 соответствующего шага по углу в процессе увеличения , только каждое второе направление будет новым, т.е. не учитанным на предыдущих итерациях. Другая половина будет повторять эксперименты, уже выполненные ранее. Поэтому в цикл основной программы введено дополнительное условие для учета этих повторений.
Шаги по азимуту и по зениту источника являются функциями от направления либо постоянными.
Угловой шаг дискретизации как функция ХН
Большинство современных вещательных систем используют панельные антенны с ограниченными углами раствора диаграммы направленности (ДН) в горизонтальной плоскости (до 120°) и очень малыми углами в вертикальной плоскости (до 20°). Соответственно, в таких системах происходит серьезное перераспределение излучаемой энергии в пространстве. Типичные коэффициенты усиления: 16-18 dBi. Поэтому одним из решений задачи оптимизации является использование динамического углового шага дискретизации как функции от характеристики направленности источника.
Изменение частоты дискретизации происходит по следующему закону:
, где
- - коэффициент девиации, где
- - максимальное и (для любого ) минимальное значение частоты дискретизации;
- - максимальное расстояние от источника до границ модели;
- - функция ХН;
- - угол места и азимутальный угол;
- - частота излучения;
- - длина излучаемой волны.
Тогда шаг дискретизации (угол) будет меняться по следующим образом:
Общее кол-во лучей определяется выражением:
С учетом, что максимум ДН находится в , получим выражения:
,
.
Инициализация геометрической модели
Перерасчет высот с учетом кривизны земли и рефракции радиоволн в тропосфере.
Входной параметр пересчитывается в соответствии с формулой:
, где
- - эквивалентный радиус Земли, где
- - радиус Земли (км),
- - изменение коэффициента преломления с высотой.
- - расстояние до точки с высотой .
Основной цикл программы | Вариант 1
Предусловия
- - входное описание среды распространения моделируемого поля, заданное геометрической моделью.
- - номер итерации моделирования, .
Основное течение
- G.Множество первичных источников()
- Если то ВЫХОД
-
- .Антенна().Тип антенны().Амплитудно-частотная характеристика()
- Если
- Если
- Position .Антенна().Позиция()
- Ray Луч().Создать(Position, .Антенна().Мировая система координат(Вектор))
- Distance
- G.Множество отражающих объектов()
- .Множество отражающих поверхностей()
- Ray.Пересечение(.Плоскость грани())
- Если .Принадлежность()
- Distance' Расстояние(Position, )
- Если Distance' Distance
- Distance Distance'
- .Множество отражающих поверхностей()
- G.Множество контрольных точек()
- Если .Область регистрации луча Distance
- .Зарегистрировать(.Напряженность, Расстояние(Position, .Позиция()), G.Среда распространения())
- Если .Область регистрации луча Distance
- Если .Напряженность, Distance, G.Среда распространения()
- Angle Ray.Угол пересечения(.Плоскость грани())
- Вторичный источник при рейтрейсинге.Создать(.Напряженность, Distance, G.Среда распространения() Angle, )
- Переход на шаг 2
Свойства алгоритма
Сложность
Возможности распараллеливания
Основной цикл программы | Вариант 2
Предусловия
- - входное описание среды распространения моделируемого поля, заданное геометрической моделью.
- - критическое значение напряженности, на котором дальнейшая трассировка луча прекращается.
- - максимальная разность между текущим и предыдущим результатом моделирования, при которой можно считать, что поле промоделированно точно.
Основное течение
- G.Множество первичных источников()
- .Антенна().Тип антенны().Амплитудно-частотная характеристика()
- Множество контрольных точек(-1) G.Множество контрольных точек()
- Пока
- Postprocessing(G.Множество контрольных точек())
- SAcheck SucApprox(G.Множество контрольных точек(), Множество контрольных точек(-1), )
- Если SAcheck
- Множество контрольных точек(-1) G.Множество контрольных точек()
- Переход на 1.1.3
- .Антенна().Тип антенны().Амплитудно-частотная характеристика()
- ВЫХОД
Trace
Функция трассирует луч через геометрическую модель и и фиксирует его прохождение вблизи контрольной точки.
- Distance
- G.Множество отражающих объектов()
- .Множество отражающих поверхностей()
- Ray.Пересечение(.Плоскость грани())
- Если .Принадлежность()
- Distance' Расстояние(Position, )
- Если Distance' Distance
- Distance Distance'
- .Множество отражающих поверхностей()
- G.Множество контрольных точек()
- Если .Область регистрации луча Distance
- .Зарегистрировать(.Напряженность, Расстояние(Position, .Позиция()), G.Среда распространения())
- Если .Область регистрации луча Distance
- Если .Напряженность, Distance, G.Среда распространения()
- Angle Ray.Угол пересечения(.Плоскость грани())
- Вторичный источник при рейтрейсинге.Создать(.Напряженность, Distance, G.Среда распространения() Angle, )
- Trace(Ray, G, )
Postprocessing
Функция "проявляет" поле в контрольных точках по накопленным значениям напряженности от всех пришедших лучей.
SucApprox
Функция сравнивает текущие результаты моделирования с результатами, полученными на предыдущем шаге. На выходе получаем флаг, по которому решаем, следует ли продолжать уточнять модель.