tempus System Class BLAT01


MZA Associates Corporation

This documentation is generated by the WaveTrain graphical user interface (GUI). It is compiled from the information entered by the model builder as he is building the model. You can navigate the hierarchical structure of the model by clicking on the blocks in the diagram below. Scrolling below the diagram, you will find the formulas used to set the various model parameters at the top level. You can also navigate to documentation for the runset BLAT01RunAtoG which implements the parameter settings for an Air-to-Ground engagement.

Baseline Adaptive Optics and Track (BLAT) Model

Version 1.0 (BLAT01)

BLAT is a basic model intended to give WaveTrain users a start in implementing their own closed-loop adaptive optics (AO) systems. BLAT is flexible enough so that users can implement a wide variety of scenarios by modifying the runset as opposed to the block diagram itself. However, it is anticipated that users will also update the block diagram to implement different aperture sharing schemes, active illumination, and other concepts not captured in the basic model.

BLAT01 implements a closed-loop AO and track system using a standard tip-tilt centroid tracker and a tilt-removed least-squares reconstructor on a Shack-Hartmann wavefront sensor. Both the track and wavefront sensor cameras image a cooperative point source from the target. A compensated Gauss Ian beam is propagated back through the shared aperture and sampled by a targetboard at the target. In addition a multiple point source extended object is imaged at the platform so that the effects of the compensation on and extended object can be seen.

At this point this model has not been fully checked out. It seems to work well closed-loop dynamic conditions, however, a few runs have exhibited a build-up of an coma-like term on the DM. Also, when modifying the model, keep in mind that a very specific feature is used to minimize redundant propagations. All the sensors have their sampleInterval set to -1.0. And the exposureLength and pulseLength of sensors and pulsed sources respectively are set to be exactly equal. These settings are optimal to ensure only a single propagation per pulse, where as other combinations of settings often result in propagations which come very close in time, even though they are essentially redundant.

The documentation of the model can be traversed by clicking on the blocks below.

The documentation for the runset BLAT01RunAtoG which implements a BLAT01 configuration for an Air-to-Ground engagement can be seen by clicking here.

Tempus Block Diagram Editor Snapshot

Interface
Parameters
range  float   Range to beacon/target (m)   10000.0
tel_focus_range  float   Focal distance of telescope (m)   10000.0
AtmSpec  AcsAtmSpec   Specification of atmosphere: AcsAtmSpec(wavelength,nscreen,clear1Factor,hPlatform,hTarget,range)   AcsAtmSpec()
AtmSeed  int   Random seed for phase screens   -987654323
tmax  float   Maximum length of time used to size phase screens (s)   0.01
vplat  Vector<float>   Platform velocity (x,y in m/s)   Vector()
vtarg  Vector<float>   Target velocity (x,y in m/s)   Vector()
vwind  Vector<float>   Wind velocity assumed uniform throughout (x,y, m/s)   ZeroVecF(2)
dmModel  DMModel&   Specification of DM geometry   DMModel()
Dap  float   Diameter of telescope aperture (m)   1.0
hel_wavelength  float   Wavelength of outgoing laser (m)   1.315e-06
beacon_wavelength  float   Wavelength of incoming point source (m)   1.315e-06
img_wavelength  float   Wavelength of auxiliary point source image (m)   1.365e-06
beacon_x  float   X location of the beacon (m)   0.0
beacon_y  float   Y location of the beacon (m)   0.0
propnxy  int   Number of grid points on the propagation grid   256
propdxy  float   Propagation grid spacing (m)   0.01
tbd_nxy  int   Number of pixels on the targetboard   256
tbd_dxy  float   Targetboard detector spacing (m)   0.01
control_interval  double   Update interval of the optical sensors (s)   1.0/2500.0
trk_nxy  int   Number of pixels on the track camera   128
trk_dxy  float   Track camera [pixel IFOV (rad)   1.0e-06
trk_gain  float   Tracker gain (0.0= open loop, 1.0=closed loop)   1.0
bsm_timeConstant  float   Settling time of the BSM (s)   1.0e-07
AO_gain  float   AO gain (0.0= open loop, 1.0=closed loop)   1.0
dm_timeConstant  float   Settling time of the DM (s)   1.0e-07
wfs_ifov  float   WFS camera pixel IFOV (rad)   10.0e-06
img_on  bool   Flag indicating whether the auxiliary imaging camera is on   true
img_nxy  int   Number of pixels on the auxiliary imaging camera   256
img_dxy  float   Auxiliary imaging camera IFOV (rad)   1.0e-06
img_x  Vector<float>   X locations of point sources for auxiliary image point sources (m)   ZeroVecF(2)
img_y  Vector<float>   Y locations of point sources for auxiliary image point sources (m)   ZeroVecF(2)
Inputs
None
Outputs
None
Implementation
Subsystems
  GaussianCwLaser    HEL 
nametypevalue
power  float   1.0
wavelength  float   hel_wavelength
apertureRadius  float   Dap
annulusRadius  float   0.0
sigma  float   (Dap*(6.0/7.0))
gridWidth  float   propnxy*propdxy
gridDim  int   propnxy

  WindAtmoPath    Atmosphere 
nametypevalue
AtmSpec  AcsAtmSpec   AtmSpec
AtmSeed  int   AtmSeed
propnxy  int   propnxy
propdxy  float   propdxy
vplat  Vector<float>   vplat
vtarg  Vector<float>   vtarg
vwind  Vector<float>   vwind
tmax  float   tmax
Dap  float   Dap

  BeamSteeringMirror    BSM 
nametypevalue
timeLimit  double   0.0
timeConstant  float   bsm_timeConstant
pos0  Vector<float>   Vector()
vel0  Vector<float>   Vector()
acc0  Vector<float>   Vector()

  IncomingSplitter    BS Beam Splitter
 
  DeformableMirror    DM 
nametypevalue
dmModel  DMModel&   dmModel
timeLimit  double   0.0
timeConstant  float   dm_timeConstant
pos0  Vector<float>   Vector()
vel0  Vector<float>   Vector()
acc0  Vector<float>   Vector()

  TrackController    Tracker 
nametypevalue
range  float   range
control_interval  double   control_interval
trk_gain  float   trk_gain
Dap  float   Dap
propdxy  float   propdxy
trk_wavelength  float   beacon_wavelength
trk_nxy  int   trk_nxy
trk_dxy  float   trk_dxy
img_wavelength  float   img_wavelength
img_nxy  int   img_nxy
img_dxy  float   img_dxy
img_on  bool   img_on

  AOController    WFS 
nametypevalue
range  float   range
dmModel  DMModel&   dmModel
propnxy  int   propnxy
propdxy  float   propdxy
wfs_wavelength  float   beacon_wavelength
wfs_ifov  float   wfs_ifov
wfs_interval  double   control_interval
AO_gain  float   AO_gain

  Target    Target 
nametypevalue
control_interval  double   control_interval
range  float   range
vtarg  Vector<float>   vtarg
tbd_wavelength  float   hel_wavelength
tbd_nxy  int   tbd_nxy
tbd_dxy  float   tbd_dxy
beacon_wavelength  float   beacon_wavelength
beacon_x  float   beacon_x
beacon_y  float   beacon_y
img_wavelength  float   img_wavelength
img_x  Vector<float>   img_x
img_y  Vector<float>   img_y

  TelescopeSys    Telescope_ 
nametypevalue
range  float   range
tel_focus_range  float   tel_focus_range
Dap  float   Dap
vplat  Vector<float>   vplat
vtarg  Vector<float>   vtarg
propdxy  float   propdxy
control_interval  double   control_interval
beacon_wavelength  float   beacon_wavelength

  IncomingSplitter    ASE Beam Splitter
 
Connections
DM.incomingIncident  <<=  BSM.incomingTransmitted
BSM.outgoingIncident  <<=  DM.outgoingTransmitted
BS.incomingIncident  <<=  DM.incomingTransmitted
BSM.tiltCommands  <<=  Tracker.trackcommand
DM.actuatorCommands  <<=  WFS.dmcommands
Atmosphere.incomingincident  <<=  Target.transmitted
Telescope_.incomingIncident  <<=  Atmosphere.incomingtransmitted
Atmosphere.outgoingincident  <<=  Telescope_.outgoingTransmitted
BSM.incomingIncident  <<=  Telescope_.incomingTransmitted
Telescope_.outgoingIncident  <<=  BSM.outgoingTransmitted
DM.outgoingIncident  <<=  BS.outgoingTransmitted
ASE.incomingIncident  <<=  BS.incomingTransmitted2
ASE.outgoingIncident  <<=  HEL.transmitted
BS.outgoingIncident  <<=  ASE.outgoingTransmitted
Tracker.incident  <<=  BS.incomingTransmitted
WFS.incident  <<=  ASE.incomingTransmitted
Target.incident  <<=  Atmosphere.outgoingtransmitted
WFS.actuatorpositions  <<=  DM.measuredActuatorPositions
Tracker.actuatorpositions  <<=  BSM.measuredTilts