AOtools / soapy

A Python Adaptive Optics Simulation
GNU General Public License v3.0
85 stars 32 forks source link

minor LGS developments #127

Closed ojdf closed 1 year ago

ojdf commented 2 years ago

Two new config parameters added to the LGS object:

obsDiam, allows LGS to be launched from an aperture with a central obscuration. This is mainly only relevant for larger launch apertures. I've also added a focus term that is applied to the LGS which is required for larger apertures.

precompensated, the DM phase is applied to the LGS before launch

andrewpaulreeves commented 2 years ago

Cool! I think this all looks good - though I can't test it all right now. I always hoped that it should be simple to use the LOS in its current form for predistortion, but I'm slightly suspect that the LOS will "just work" without too much modification! Maybe we could have a quick chat next week to review? I'll get in touch on Monday morning for us to find a slot

ojdf commented 2 years ago

Hi @andrewpaulreeves sorry didn't manage to catch you this week. I've been having a play around and the following config file (adapted from sh_8x8_uplink) works for me. You can set precompensated: false and see what happens!

simName: sh_8x8_lgsUp
pupilSize: 128
nGS: 2
nDM: 2
nSci: 1
nIters: 5000
loopTime: 0.0025

verbosity: 2

saveCMat: False
saveSlopes: True
saveDmCommands: False
saveLgsPsf: True
saveSciPsf: True

Atmosphere:
  scrnNo:  4
  scrnHeights: [0,5000,10000,15000]
  scrnStrengths: [0.5,0.3,0.1,0.1]
  windDirs: [0,45,90,135]
  windSpeeds: [10,10,15,20]
  wholeScrnSize: 2048
  r0: 0.15

Telescope:
  telDiam: 1
  obsDiam: 0.35
  mask: circle

WFS:
  0:
    type: ShackHartmann
    GSPosition: [0,0]
    nxSubaps: 2
    pxlsPerSubap: 10
    subapFOV: 5.0
    wavelength: 600e-9

  1:
    type: ShackHartmann
    GSPosition: [0, 0]
    GSHeight: 90000
    GSMag: 8
    nxSubaps: 10
    pxlsPerSubap: 10
    subapFOV: 4.0
    wavelength: 600e-9
    removeTT: True
    centThreshold: 0.3
    fftOversamp: 6
    lgs:
      propagationMode: Physical
      uplink: True
      pupilDiam: 1.0
      obsDiam: 0.35
      wavelength: 600e-9
      height:   90e3
      precompensated: True

DM:
  0: 
    type: TT
    nxActuators: 2
    svdConditioning: 0.
    gain: 0.6
    iMatValue: 0.25
    wfs: 0

  1:
    type: Piezo
    nxActuators: 11
    svdConditioning: 0.05
    gain: 0.6
    iMatValue: 500
    wfs: 1

Reconstructor:
  type: MVM_SeparateDMs
  svdConditioning: 0.03
  gain: 0.6

Science:
  0:
    type: PSF
    position: [0,0]
    FOV: 4.0
    wavelength: 600e-9
    pxls: 120