Giter Club home page Giter Club logo

automated-beam-coupling's Introduction

README file for Counting-Card-Interface

Optimisation software for Quantum Optics Lab. Software architecture consists of Experiment which initialises and interfaces with hardware, an abstract class OptimizationAlgorithm, as well as a child implementation SimulatedAnnealing. Controller and DataBase classes have also been implemented for running the experiment and tracking/modeling information accordingly.

Project Overview

This software is used for the optimisation of beam coupling or using Zaber TMM-2 motor mounted mirrors. The software uses an abstact OptimizationAlgorithm class to allow for Simmulated Annealing, Gaussian Estimation, SVR amongst other methods to predict the optimal alignment parameters for the mirrors based off semi-frequent data sampling. Initially the script was written to optimise power coupling but has now been migrated to maximuse photon count with a Logic16 Counting Card. Future work for the project will be to alter the software for optimization of coincidence detections.

Prerequisites

Software Requiremements

Ensure you have python installed. Other than that all libraries used are available for download with the requirements.txt file.

Hardware Requirements

The experimental set up for the mirrors requires optionally 1 - 2 Zaber T-MM2 Motor Mounted Mirrors as well as a UQDevices Logic16 CC.

A 69mA 750nm laser was used for development of the project, though this will only be relavant to your optics and the algorithm should work the same regardless. The laser was emmited from a single mode fibre held in place and collimated with a stage. Two ThorLabs BB1-E03 Mirrors were mounted in the Zaber T-MM2 motors and mirror brackets and focused into another stage with attached SMF which fed into an APD. The APD is linked into the second channel of the Logic16 which then connects to the conputer along with the Zaber Motors.

Installation

If python is installed and up to date with pip, use

pip install requirements.txt

to install all required libraries.

Usage

The Beam-Coupling-Optimisation.ipynb file has been included as an example demonstation for the optimisation. Steps in the notebook are annotated with explanations and are ready to go provided the user has 2 mirrors and is working with a 780nm laser. Some modelling is provided at the end of this notebook for visualisation of the coupling proccess.

  • The use of the software requires importing the library
import AutoAlignLib as alb
  • Open the connection with T-MM2 devices and initialise power meter.
  • Optionally, you can enter a wavelength in powerMeterInit() otherwise it will default to 780nm.
alb.powerMeterInit()
alb.openConnection()
  • Manually achieve some coupling into your SMF then use the following to set the starting coordinate
x0 = alb.getCurrentCoordinates()
  • Now, run the optimisation loop
results = alb.optimise(numPoints, x0, Boundary, saveData, convergenceInt, dimensions)

The output of the optimise function will be a dictionary containing x0: the coordinates of best coupling, p0: the best coupling power, data: a dataframe with all coordinates visited and power measured there (with std of power) and numRuns: the total mnumber of algorithm iterations taken.

Experimental Results

Experimental data model examples with 'Database.py' class:

automated-beam-coupling's People

Contributors

goblin588 avatar luyves avatar

Stargazers

 avatar

Watchers

 avatar

automated-beam-coupling's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.