O antenă cu formă arbitrară

De la YO3ITI
Sari la navigare Sari la căutare

În Matlab sunt două metode importante prin care se poate genera o formă arbitrară, personalizată, a unei antene de tip "patch":

  1. prin combinarea unor forme geometrice
  2. prin desenarea formei în utilitarul pdetool din PDE Toolbox (Partial Differential Equation Toolbox).

Antena ca o combinație de forme geometrice

% creez elementele antenei - forme geometrice
% care vor fi combinate pentru a genera forma finală a antenei
rect = antenna.Rectangle('Length',0.01,'Width',0.005);
circle = antenna.Circle('Radius',0.004,'Center',[0.002 0.005]);
% slot este deschiderea care va fi folosită pentru feeder
slot = antenna.Rectangle('Length',0.0005,'Width',0.00025,'Center', [-0.004 0]);
% forma finală...
ant = rect + circle - slot;
fig = figure('Name','Antenă custom');
show(ant)
Antenă custom 1
figure('Name','Antenă custom cu teselare')
mesh(ant,'MaxEdgeLength',0.001)
Antenă cu teselare

Modelare parametrică

% se descriu trei matrici care conțin vertex-urile fiecărui obiect teselat
p1 = getShapeVertices(rect);
p2 = getShapeVertices(circle);
p3 = getShapeVertices(slot);

% se generează o antenă cu o geometrie personalizată
ant2 = customAntennaGeometry;

% antena este definită de matricile care conțin vertex-urile
ant2.Boundary = {p1,p2,p3};

% forma antenei este definită de suma booleană a componentelor
ant2.Operation = 'P1+P2-P3';

% dimensiunea și poziția punctului de alimentare
ant2.FeedWidth = 0.5e-3;
ant2.FeedLocation = [-2e-3 0 0];
show(ant2)

% aspectul radiației la 10GHz
pattern(ant2,10e9)
Aspectul radiației

În continuare realizăm un GIF animat cu variația distribuții sarcinii la diferite frecvențe

h = figure;
filename='animatedCharge.gif';

% frecvența va crește de la pas la pas cu această valoare - 1 GHz
increment = 1e9;

% frecvența de pornire - 1GHz
fs = 1e9;

% timpul pentru fiecare cadru, o secundă
delay = 1;

for n = 1:1:20
    h.Name = (['Charge plot - freq: ', num2str(fs/1e9), ' GHz']);
    charge(ant2,fs,'scale','log10');
    fs = fs + increment;
    frame = getframe(h);
    im = frame2im(frame);
    [imind,cm] = rgb2ind(im,256);
    fprintf('frame number %i\n', n);
    %write to GIF
    if n == 1
        imwrite(imind,cm,filename, 'gif', 'Loopcount', inf, 'DelayTime', delay);
    else
        imwrite(imind,cm,filename, 'gif', 'WriteMode', 'append', 'DelayTime', delay);
    end
end
Distribuția sarcinii - GIF animat

Și același exercițiu pentru distribuția curenților în antenă, între 1 și 20GHz.

Distribuția curenților - GIF animat

Link-uri externe