Skip to content

Commit 446ac29

Browse files
author
Cameron Simmons
committed
optional HOGS fine tracking simulation
requires restructure of ExampleHOGS.m and HOGS.m, as well as addition of new camera constructor OWL320HS.m
1 parent 23b4e1d commit 446ac29

File tree

3 files changed

+43
-5
lines changed

3 files changed

+43
-5
lines changed

Examples/Hub components/ExampleHOGS.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111

1212
%% model HOGS
13-
OGS=HOGS(Wavelength);%current HOGS model
13+
OGS=HOGS(Wavelength,'BeaconCamera','Fine');%current HOGS model
1414

1515
%% model hub satellite
1616
%can run using default times
@@ -50,5 +50,5 @@
5050

5151
%% plot a pass
5252
plotResult(PassResult,OGS,Sat,'x_axis','Time');
53-
plot(DownlinkBeaconResults,"mask","Line of sight");
53+
plot(DownlinkBeaconResults,"mask","Line of sight",'x_axis','Elevation');
5454
plot(UplinkBeaconResults,"mask","Line of sight");

Examples/Hub components/HOGS.m

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
function HOGS = HOGS(Wavelength)
1+
function HOGS = HOGS(Wavelength,options)
22
%HOGS Construct HOGS
33
% need to detail the correct OGS parameters and components
44
% need to implement the Errol_OGS class to give the correct position
55

6-
%% ChannelFlag describes which channel is to be modelled. Options are 780, 808 and 1550
7-
assert(ismember(Wavelength,[785,808,1550]),'Wavelength must be one of the intended channels, 780, 808 or 1550 (nm)');
6+
arguments
7+
Wavelength {mustBeMember(Wavelength,[785,808,1550])}
8+
options.BeaconCamera {mustBeMember(options.BeaconCamera,{'Coarse','Fine'})} = 'Coarse'
9+
end
810

911
%% parameters and components
1012
%Telescope
@@ -47,6 +49,8 @@
4749
end
4850

4951
%beacon camera
52+
switch options.BeaconCamera
53+
case 'Coarse'
5054
Camera_Scope_Diameter = 0.4;
5155
Camera_Scope_Focal_Length = 2.72;
5256
Camera_Scope_Optical_Efficiency = 1-0.39^2;
@@ -59,6 +63,20 @@
5963
Exposure_Time = 0.01;
6064
Spectral_Filter_Width = 10;
6165
HOGS_Camera = AC4040(Camera_Telescope,Exposure_Time,Spectral_Filter_Width);%this is a constructor for the ATIK camera we use
66+
case 'Fine'
67+
Camera_Scope_Diameter = Telescope_Diameter;
68+
Camera_Scope_Focal_Length = Telescope_Focal_Length;
69+
Camera_Scope_Optical_Efficiency = 1-0.3^2;
70+
Camera_Pointing_Precision = 1E-3;
71+
Camera_Telescope = components.Telescope(Camera_Scope_Diameter,...
72+
'Wavelength',685,...
73+
'Optical_Efficiency',Camera_Scope_Optical_Efficiency,...
74+
'Focal_Length',Camera_Scope_Focal_Length,...
75+
'Pointing_Jitter',Camera_Pointing_Precision);
76+
Exposure_Time = 0.001;
77+
Spectral_Filter_Width = 10;
78+
HOGS_Camera = OWL320HS(Camera_Telescope,Exposure_Time,Spectral_Filter_Width);%this is a constructor for the ATIK camera we use
79+
end
6280

6381
%uplink beacon
6482
Beacon_Power = 40E-3; %power of uplink beacon in W

Examples/OWL320HS.m

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
function OWL320HS = OWL320HS(Telescope,Exposure_Time,Spectral_Filter_Width)
2+
%Raptor photonics OWL320HS camera object constructor
3+
4+
%exposure time in s
5+
%spectral filter width in nm
6+
7+
8+
9+
OWL320HS = beacon.Camera(Telescope,...
10+
'Quantum_Efficiency',0.45,...
11+
'Exposure_Time', Exposure_Time,...
12+
'Spectral_Filter_Width',Spectral_Filter_Width,...
13+
'Detector_Diameter',0.00768,...
14+
'Focal_Length', 0.0125,...
15+
'Readout_Noise', 202,...
16+
'Dark_Current', 0,...
17+
'Full_Well_Capacity', 170E3,...
18+
'Pixels',[320,256]);
19+
end
20+

0 commit comments

Comments
 (0)