O antenă cu formă arbitrară: Diferență între versiuni
Sari la navigare
Sari la căutare
Fără descriere a modificării |
Fără descriere a modificării |
||
| (Nu s-au afișat 4 versiuni intermediare efectuate de același utilizator) | |||
| Linia 16: | Linia 16: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Fișier: | [[Fișier:Antena_custom_1.png|none|Antenă custom 1]] | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
| Linia 23: | Linia 23: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Fișier: | [[Fișier:Antena_cu_teselare.png|none|Antenă cu teselare]] | ||
== | ===Modelare parametrică=== | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
% se descriu trei matrici care conțin vertex-urile fiecărui obiect teselat | % se descriu trei matrici care conțin vertex-urile fiecărui obiect teselat | ||
| Linia 38: | Linia 38: | ||
ant2.Boundary = {p1,p2,p3}; | ant2.Boundary = {p1,p2,p3}; | ||
% forma antenei este definită de | % forma antenei este definită de suma booleană a componentelor | ||
ant2.Operation = 'P1+P2-P3'; | ant2.Operation = 'P1+P2-P3'; | ||
| Linia 49: | Linia 49: | ||
pattern(ant2,10e9) | pattern(ant2,10e9) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Fișier:Aspectul radiației la 10GHz.png | [[Fișier:Aspectul radiației la 10GHz.png|none|Aspectul radiației]] | ||
În continuare realizăm un GIF animat cu variația distribuții sarcinii la diferite frecvențe | În continuare realizăm un GIF animat cu variația distribuții sarcinii la diferite frecvențe | ||
<syntaxhighlight lang="Matlab"> | <syntaxhighlight lang="Matlab"> | ||
| Linia 81: | Linia 81: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Fișier:Distribuția sarcinii - GIF animat.gif|none|Distribuția sarcinii - GIF animat]] | [[Fișier:Distribuția sarcinii - GIF animat.gif|none|Distribuția sarcinii - GIF animat]] | ||
Și același exercițiu pentru distribuția curenților în antenă, între 1 și 20GHz. | |||
[[Fișier:Distribuția curenților - GIF animat.gif|none|Distribuția curenților - GIF animat]] | |||
==Link-uri externe== | ==Link-uri externe== | ||
* [https://www.mathworks.com/help/antenna/ref/customantennageometry.html customAntennaGeometry] – Crează modelul geometric 2D al unei antene | * [https://www.mathworks.com/help/antenna/ref/customantennageometry.html customAntennaGeometry] – Crează modelul geometric 2D al unei antene | ||
* [https://www.mathworks.com/help/antenna/ug/double-slot-cavity-patch-on-tmm10-substrate.html Double slot cavity patch on TMM10 substrate] | * [https://www.mathworks.com/help/antenna/ug/double-slot-cavity-patch-on-tmm10-substrate.html Double slot cavity patch on TMM10 substrate] | ||
Versiunea curentă din 25 ianuarie 2026 01:12
În Matlab sunt două metode importante prin care se poate genera o formă arbitrară, personalizată, a unei antene de tip "patch":
- prin combinarea unor forme geometrice
- 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)
figure('Name','Antenă custom cu teselare')
mesh(ant,'MaxEdgeLength',0.001)

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)

Î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

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

Link-uri externe
- customAntennaGeometry – Crează modelul geometric 2D al unei antene
- Double slot cavity patch on TMM10 substrate