Перейти к содержанию
    

Построение диаграмма направленности

Стоит задача построить диагармму направленности в 3D.

 

Имеем:

 

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

Значения угла по углу места в полярной системе координат (градус, минута, секунда)

Напряжонность эллектрического поля в Вольтах

 

Значений масса диаграмма будет гладнькая.

 

Хотелось бы получить изображение 3D диаграммы привязанной к полярной системе координат, чтобы можно было её поворачивать (вращать)

 

У меня получилось построить даграмму в полярных координатах (Строил в Mathlab (построть 3D в полярных координах он не может)), но плоскость не наглядно, темболее значений столлько что грех не воспользоваться.

 

Поделитесь своми мыслями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоит задача построить диагармму направленности в 3D.

 

Имеем:

 

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

Значения угла по углу места в полярной системе координат (градус, минута, секунда)

Напряжонность эллектрического поля в Вольтах

 

Значений масса диаграмма будет гладнькая.

 

Хотелось бы получить изображение 3D диаграммы привязанной к полярной системе координат, чтобы можно было её поворачивать (вращать)

 

У меня получилось построить даграмму в полярных координатах (Строил в Mathlab (построть 3D в полярных координах он не может)), но плоскость не наглядно, темболее значений столлько что грех не воспользоваться.

 

Поделитесь своми мыслями.

Для программы mmana был где-то 3D-визуализатор, но поскольку это увеличивает время рассчёта, особо ей не пользовался, обходился двумя проекциями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня получилось построить даграмму в полярных координатах (Строил в Mathlab (построть 3D в полярных координах он не может)), но плоскость не наглядно, темболее значений столлько что грех не воспользоваться.

 

Поделитесь своми мыслями.

 

Если в полярных строить 3D не может, тогда нужно перевести их в декартовы и строить трёхмерный график в них. Преобразования там элементарные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если в полярных строить 3D не может, тогда нужно перевести их в декартовы и строить трёхмерный график в них. Преобразования там элементарные.

Построение по оси X,Y проблемм не вызывает, а вот построение по оси Z проекция угла через тангенс (tan(PHI) PHI угол места) очень сильно искажает график.

Жаль что нет средств для таких задач.

 

кому интересно данные в файле

 

первые 3 колонки данные угла места, следующие 3 колонки данные угла по азимуту, последняя колонка значение мощьности

 

60;54;30; ;106;26;8; ;1,39

 

 

визуализация должна выглядеть следующим образом: 4 блина диаграммы направленности расположенные на углах 0град, 30град, 60град, 90град (практически цилиндр),

0904.txt

Изменено пользователем vatyl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наткнулся на эту ветку, пытаясь построить ДН для своей антенны... в итоге построил таким образом:

 

 

dia_sq = dia .* conj(dia);

[u,V] = meshgrid((hor_begin*pi/180:hor_step*pi/180:hor_end*pi/180),(ver_begin*pi/180:ver_step*pi/180:ver_end*pi/180));

X = dia_sq .* cos(V) .* cos(U);

Y = dia_sq .* cos(V) .* sin(U);

Z = dia_sq .* sin(V);

figure(2);

mesh(X,Z,Y);

 

поясняю: dia - это сетка комплексных значений где орты сетки это углы по горизонтали и вертикали.

соответственно, dia_sq это аналогичная сетка мощностей с разных направлений

дальше из полярных трёхмерных координат переходим в декартовые трёхмерные и строим mesh.

 

На всякий случай привожу полную функцию (хотя там есть ещё другие функции, которые здесь не буду приводить)

 

function f=directive_pattern_vert_hfa_3d(freq, hor_begin, hor_end, hor_step, ver_begin, ver_end, ver_step)

antenna = init_antenna_def();

LO_FREQ_LIM = antenna.lo_freq_limit;

HI_FREQ_LIM = antenna.hi_freq_limit;

antenna.beams_count = 1;

antenna.elevation = 0;

elevation_grid = (ver_begin:ver_step:ver_end)';

azimuth_grid = (hor_begin:hor_step:hor_end)';

elevation_steps_count = size(elevation_grid, 1);

azimuth_steps_count = size(azimuth_grid, 1);

dia = zeros(elevation_steps_count,azimuth_steps_count);

bin = convert_freq_to_bin(freq, 12207, 2048);

freq = convert_bin_to_freq(bin, 12207, 2048);

progress_bar(sprintf('frequency corrected to %f to be equal to closest bin\n',freq), 0, 0);

for j = (1:1:azimuth_steps_count);

azimuth = azimuth_grid(j);

antenna.beams(1) = azimuth*pi/180;

for i = (1:1:elevation_steps_count);

progress_bar('', (i-1)+elevation_steps_count*(j-1), azimuth_steps_count*elevation_steps_count);

elevation = elevation_grid(i);

signal_time = sim_signal_hfa(freq, 1, 0, -azimuth*pi/180, elevation*pi/180, antenna );

signal_freq = FftTime(antenna, signal_time, '', LO_FREQ_LIM, HI_FREQ_LIM);

clear signal_time;

spectrum = sim_antenna3d_direct_beam_forming(signal_freq, antenna, bin);

dia(i,j) = spectrum(bin);

end

end

fprintf(1,'\n');

figure(1);

surf(azimuth_grid, elevation_grid, dia.*conj(dia));

title(sprintf('direct transform, f=%f Hz',freq));

dia_sq = dia .* conj(dia);

[u,V] = meshgrid((hor_begin*pi/180:hor_step*pi/180:hor_end*pi/180),(ver_begin*pi/180:ver_step*pi/180:ver_end*pi/180));

X = dia_sq .* cos(V) .* cos(U);

Y = dia_sq .* cos(V) .* sin(U);

Z = dia_sq .* sin(V);

figure(2);

mesh(X,Z,Y);

f = dia;

 

на рисунке моя диаграмма в 3d:

post-40369-1323957925_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поясню ещё... то, что строится и нарисовано - это не совсем ДН, т.к. направление компенсации антенны тоже меняется с изменением направления прихода сигнала - это скорее диаграмма отклика.. не знаю, как правильно это назвать. И ещё там перепутано, надо делать mesh(X,Y,Z). Но это не суть важно, важно, что код пригоден для формирования 3d диаграмм направленности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...