Add files via upload
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
% Open file to write
|
||||
csvFileName = 'pattern_data.csv';
|
||||
fileID = fopen(csvFileName, 'w');
|
||||
fprintf(fileID, 'Theta,Phi,Pattern\n'); % CSV headers
|
||||
|
||||
% Define angles (break into smaller chunks)
|
||||
theta = -90:1:90;
|
||||
phi = -180:1:180;
|
||||
chunk_size = 50;
|
||||
|
||||
%Size of PCB
|
||||
pcbThickness = 0.508e-3;
|
||||
pcbLength = 100e-3;
|
||||
pcbWidth = 100e-3;
|
||||
|
||||
n_array = 3;
|
||||
m_array = 2;
|
||||
|
||||
f = 10.5e+9;
|
||||
c = 3e+8;
|
||||
lambda = c/f;
|
||||
|
||||
Length_patch = 8.76e-3;
|
||||
Width_patch = 9.545e-3;
|
||||
dist_patch = lambda/2;
|
||||
feeder_width = 0.94e-3;
|
||||
delta_phy = 15; %in degrees
|
||||
|
||||
%Specifying Material of PCB
|
||||
pcbMaterial = 'RO4350B';
|
||||
pcbEpsilonR = 3.48;
|
||||
%Creating dielectic Material
|
||||
d = dielectric(pcbMaterial);
|
||||
d.EpsilonR = pcbEpsilonR;
|
||||
d.Thickness = pcbThickness;
|
||||
GndPlane = antenna.Rectangle('Length',pcbLength,'Width',pcbWidth); %Creating Ground Plane of Antenna
|
||||
%Creating Different Shapes of antenna
|
||||
%Rec1 = antenna.Rectangle('Length',feeder_width,'Width',dist_patch-Length_patch,'Center',[0,(dist_patch-Length_patch)/2]); %feeder
|
||||
%Rec2 = antenna.Rectangle('Length',Length_patch,'Width',Width_patch,'Center',[0,(dist_patch-Length_patch)+(Length_patch)/2]); %patch
|
||||
|
||||
for i=1:1:n_array
|
||||
for j=1:1:m_array
|
||||
Rec1 = Rec1 + antenna.Rectangle('Length',feeder_width,'Width',dist_patch-Length_patch,'Center',[(i-1)*(dist_patch),(j-1)*(dist_patch)+(dist_patch-Length_patch)/2]);
|
||||
Rec2 = Rec2 + antenna.Rectangle('Length',Length_patch,'Width',Width_patch,'Center',[(i-1)*(dist_patch),(j-1)*(dist_patch)+(dist_patch-Length_patch)+(Length_patch)/2]);
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
%Adding all different shapes of antenna
|
||||
AntennaPlane = Rec1 + Rec2;
|
||||
|
||||
%%Creating PCB Stack
|
||||
p = pcbStack;
|
||||
p.Name = 'patch slot';
|
||||
p.BoardShape = GndPlane;
|
||||
p.BoardThickness = pcbThickness;
|
||||
p.Layers = {AntennaPlane,d,GndPlane};
|
||||
%[x Cordinate,y Cordinate,startLayer stopLayer]
|
||||
% p.FeedLocations = [0,0,1,3;dist_patch,0,1,3;dist_patch*2,0,1,3;dist_patch*3,0,1,3;dist_patch*4,0,1,3;dist_patch*5,0,1,3;dist_patch*6,0,1,3;dist_patch*7,0,1,3;dist_patch*8,0,1,3;dist_patch*9,0,1,3;dist_patch*10,0,1,3;dist_patch*11,0,1,3;dist_patch*12,0,1,3;dist_patch*13,0,1,3;dist_patch*14,0,1,3;dist_patch*15,0,1,3];
|
||||
% p.FeedPhase = [0,delta_phy, delta_phy*2, delta_phy*3, delta_phy*4, delta_phy*5, delta_phy*6, delta_phy*7, delta_phy*8, delta_phy*9, delta_phy*10, delta_phy*11, delta_phy*12, delta_phy*13, delta_phy*14, delta_phy*15];
|
||||
|
||||
p.FeedLocations = [0,0.001,1,3;dist_patch,0.001,1,3;dist_patch*2,0.001,1,3];
|
||||
|
||||
|
||||
%Plotting Different patterns and graphs
|
||||
figure(1);
|
||||
show(p); %Display Antenna
|
||||
%pattern(p,10.5e9); %Display Radiation Pattern at 10.5GHz
|
||||
% Process and save in chunks
|
||||
for i = 1:chunk_size:length(theta)
|
||||
for j = 1:chunk_size:length(phi)
|
||||
% Simulated computation (replace with actual pattern function)
|
||||
p_val = rand(); % Example placeholder
|
||||
|
||||
% Write to file
|
||||
fprintf(fileID, '%.2f,%.2f,%.6f\n', theta(i), phi(j), p_val);
|
||||
end
|
||||
end
|
||||
|
||||
% Close the file
|
||||
fclose(fileID);
|
||||
|
||||
% Display confirmation message
|
||||
figure(2);
|
||||
disp('Pattern data saved to CSV.');
|
||||
|
||||
% figure(3);
|
||||
% impedance(p,0.8*f:0.05*f:1.2*f); %Display Impedance Graph from 1.6GHz to 2.2GHz
|
||||
% freq = linspace(0.8*f, 1.2*f, 50); % Creating Frequency Vector
|
||||
% s = sparameters(p,freq,50); % Calalculate S11 for all frequencys
|
||||
% figure(4);
|
||||
% rfplot(s);%Diplay S11 Plot
|
||||
Reference in New Issue
Block a user