Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
1

Развертка спутниковой тарелки

29.06.2016, 12:01. Показов 923. Ответов 3
Метки нет (Все метки)

Пытаюсь разобраться с этим вопросом.
Хотелось бы понимать ход алгоритма и сделать модель на основе результатов(склеить из бумаги, например).
Поверхность задается формулой
https://www.cyberforum.ru/cgi-bin/latex.cgi?z=\frac{1}{4p}({x}^{2}+{y}^{2}) р - высота точки фокуса
Основа:
Подумал, что достаточно наложить некоторую сетку на данную поверхность, посчитать расстояния между соседними узлами сетки и создать сетку на плоскости согласно этим расстояниям.
Предположу, что достаточно сделать только "сектор" поверхности и распечатать несколько его копий, видится что тут лучше взять что-то вроде полярной сетки
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}0\leq phi \leq {phi}_{0}\\ 0\leq r \leq {r}_{0}\\ x=r*cos(phi)\\ y=r*sin(phi)\\ z=\frac{1}{4p}({x}^{2}+{y}^{2})\end{matrix}\right.
Соответственно имеем два массива
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{matrix}D3[R,PHI] \epsilon  {R}^{3}\\ D2[R,PHI]  \epsilon  {R}^{2}\end{matrix}
R0, PHI0, Р - начальные данные.

Сначала пошел по самому простому пути - посчитал расстояния к соседям, в качестве начального состояния взял аналогичный сектор полярной сетки в 2D и стал расталкивать точки друг от друга чтобы они стали на расстояния которые были рассчитаны для 3D образов точек.
В качестве "якоря" добавил правила неизменности координат
D2[R, 0].y = 0 (одна сторона всегда прямая)

В реализации было два минуса: 1) при маленьком шаге я не дождался остановки или заметного замедления процесса 2) при большом шаге точки перепрыгивают через соседей и "зависают" в неправильном месте поскольку без признака правильного взаимного расположения соседей в таком случае точки начинают расталкивать друг друга в неправильном направлении.
Я посчитал что этот подход и не должен был быть правильным, картинок с результатами не сохранял.

Второй вариант был основан на восстановлении координат третьей вершины треугольника при условии что мы знаем координаты двух других вершин и длинны всех 3-х сторон. Хоть в данном случае и будет два решения, я всегда знаю какое из них выбрать. В помощь взята теорема косинусов.
"Описание вычислений
В качестве правила "якорей" взял
D2[0, PHI] = (0, 0)
D2[0, 0] = (0, 0)
D2[R, 0].y = 0
D2[R, 0].x = D2[R-1, 0].x + distance( D3[R, 0] , D3[R-1, 0] )
Т.е. имеем две "линии" точек с известными координатами, отталкиваясь от них можно найти координаты всех остальных.
Для каждой неизвестной точки D2[R,PHI] найдем стороны треугольника
AB = distance(D3[R-1, PHI-1], D3[R, PHI-1])
BC = distance(D3[R, PHI-1], D3[R, PHI])
AC = distance(D3[R-1, PHI-1], D3[R, PHI])
Из теоремы косинусов находим синус и косинус угла BAC
https://www.cyberforum.ru/cgi-bin/latex.cgi?COS(BAC) = \frac{{BC}^{2} - {AC}^{2} - {AB}^{2}}{-2*AC*AB}

https://www.cyberforum.ru/cgi-bin/latex.cgi?SIN(BAC) = \sqrt{1-{COS}^{2}(BAC)}
Поворачиваем вектор AB на угол BAC, и от результата находим единичный вектор, который будет направлен также как и вектор АС, который и нужно найти, а раз есть есть такой единичный вектор и известна длинна вектора АС, то и сам вектор АС теперь можно найти.
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{V}.x = \frac{COS(BAC)*\vec{AB}.x - SIN(BAC)*\vec{AB}.y}{AB}
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{V}.y = \frac{SIN(BAC)*\vec{AB}.x +COS(BAC)*\vec{AB}.y}{AB}
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{AC} = \vec{V}*AC
Отсюда можно найти координаты точки С
https://www.cyberforum.ru/cgi-bin/latex.cgi?C = A + \vec{AC}

На практике выяснились нестыковки - длинна второй стороны для склеивания получается больше чем первой (первая - "якорь"), а при уменьшении шага сетки и/или увеличения угла сектора вычисления начинают "раскачиваться". Пока мне разобратьсся в причинах не удалось.
Пример кода второго варианта на Python 3 вложен (изучаю язык, сильно не пинайте).
0
Миниатюры
Развертка спутниковой тарелки   Развертка спутниковой тарелки  
Вложения
Тип файла: zip unwrap.zip (1.4 Кб, 1 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2016, 12:01
Ответы с готовыми решениями:

Подключение спутниковой тарелки к ноутбуку.
интересуюсь как можно ее подключить к ноутбуку. Что нужно купить? Какие есть еще способы...

Настройка спутниковой антенны
Подскажите пожалуйста, можно ли настроить спутниковую "тарелку" с помощью мультиметра (может...

Подбор Спутниковой антенны
Всем привет, у меня такая просьба, помогите подобрать антенну, ресивер, пушку(или облучатель) для...

QPSK сигнал спутниковой связи
Привет. У меня есть парочка вопросов по теории обработки сигналов. Начала этим заниматься месяц...

3
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
29.06.2016, 19:39 2
wingblack
Вы очень интересно пишите. Но не могли бы вы
все-таки уточнить некоторые вещи...
1. Что вы хотите получить и из чего?
2. Математические расчеты? Какова их цель? Иными
словами, какую задачу вы решаете?
примечание
Со стороны видно, что вы что-то делаете, но что?
0
291 / 263 / 47
Регистрация: 09.04.2013
Сообщений: 997
29.06.2016, 23:24  [ТС] 3
Цитата Сообщение от geh Посмотреть сообщение
1. Что вы хотите получить и из чего?
2. Математические расчеты? Какова их цель? Иными словами, какую задачу вы решаете?
1) Подготовить материалы (картинки) для печати на обычном принтере, распечатать, склеить, получить как возможно более точную натурную модель поверхности спутниковой тарелки. В качестве обобщения - учесть возможность создания больших натурных моделей имея только принтер формата А4. Да, обычная бумага не очень твердый материал, но можно взять твердую бумагу или картон.
2) Строю предположение о методе развертки поверхности и пытаюсь его реализовать. Математика - поскольку не хочу брать готовые решения, а сам разобраться как это все строится.

Показываю что сделал, сетую что это не работает как надо, ожидаю критики, советов, и идей альтернативных решений задачи.
0
1080 / 692 / 114
Регистрация: 12.10.2013
Сообщений: 4,587
08.07.2016, 15:46 4
Цитата Сообщение от wingblack Посмотреть сообщение
Пытаюсь разобраться с этим вопросом.
Я бы начал с журналов типа Радио или книг по этой теме, возможно форумов где люди их делали на практике.
Цитата Сообщение от wingblack Посмотреть сообщение
Хотелось бы понимать ход алгоритма и сделать модель на основе результатов(склеить из бумаги, например).
Уверен есть как множество способов развертки антенны\ инфы по этому так и готовых “отполированных формул” но актуально ли это вообще?
Цитата Сообщение от wingblack Посмотреть сообщение
Поверхность задается формулой
Вроде в зависимости от частоты принимаемого сигнала меняется допуск на не идеальность параболы, отсюда нет смысла делать оптического качества параболу. Например в оптике часто строят телескопы систем Ньютон со сферическим зеркалом просто проигрывая в фокусном расстоянии зато получая поверхность сферы правда фокус огромен.

Цитата Сообщение от wingblack Посмотреть сообщение
идей альтернативных решений задачи
Была когда-то (или осталась =) ) фантазия сделать антенну преломления Френеля плоскую на чердаке метра 2 из фольги и пенопласта Гугл “антенна френеля ”.
http://www.telesputnik.ru/arch... le/68.html
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2016, 15:46

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как получить реакцию от спутниковой антенны?
Досталась бесплатно длиннофокусная тарелка 80 см типа ТЕЛЕКАРТА. Конвертер - LSP-04H. Ресивер...

Пропадает сигнал с тарелки
Антенна 1.8 метра диаметр, с тремя пушками гонит по страшному особенно излучатель настроенный на...

Нарисовать летающие тарелки
Подскажите пожалуйста как такое сделать в паскале abc

Кабель для тарелки
Собираюсь подключать нтв+, звонил им, они предложили кабель какой-то модный по 50р за метр, так как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.