Laser calibration
Warning
This module will change in nature in future versions. Currently it is setup to perform calibrations only on a NewportMeter
and Diode_Laser
, but these features will be generalized in the future to support generic power meters and lasers.
The catalight.equipment.run_diode_calibration
module is an extremely useful tool for running calibrations on your laser system. This module imports a NewportMeter
and Diode_Laser
to test the power transmission of your setup. You must make sure you have the proper hardware configuration before getting started. Your laser and power meter should be connected and communicating with the computer. You should place the power meter sensor in the laser beam path, usually in the same location that your sample would typically be placed. Make sure the beam is properly isolated and proper laser safety is being followed. When the main()
function is called with the appropriate parameters, the system will sweep through laser current settings (range defined by current_range
parameter), measure the laser power until the 20 most recent sample fall within the tolerance
parameter, then perform a linear fit to the resulting current vs power curve. The resulting fit parameters are saved in the diode_laser directory next to the diode_control
file.
Danger
This module will automatically sweep the laser power, potentially through very high power settings. Take appropriate safety precautions.
Note
This module uses the same “run_” notation as the UI supported modules in the analysis package, but does not yet have a “get_user_inputs()” function. This will be a future update.
GC delay measurement
The catalight.equipment.gc_delay_tester
module allows the user to check the time it takes to reach steady state gas flow to the GC. Gas flow is initiated by the Gas_System
and chromatograms produced by the GC_Connector
from catalight.equipment import gc_delay_tester
# Example usage:
# User Inputs:
# ------------
main_dir = r'C:\Peak489Win10\GCDATA' # Save location
delay_times = [5, 15, 25, 35, 45, 55] # In minutes
flows = [5, 25, 50] # Total gas flow rate in sccm
gas_list = ['C2H4', 'C2H2', 'H2', 'Ar'] # Input Gasses
comp_list_on = ([0, 0.1, 0, 0.9]) # Composition to use for testing
comp_list_off = ([0, 0, 0, 1]) # Composition to flush system
ctrl_file = 'users/path/to/ctrl_file'
# Function call
gc_delay_tester.main(main_dir, delay_times, flows,
gas_list, comp_list_on, comp_list_off, ctrl_file)
Pressure drop measurement
The test_pressure()
method within the Gas_System
class allows the user to test the pressure drop across the reactor using the builtin pressure sensors of the MFC. A single MFC is used for both flowing inert gas measuring the pressure. The user supplies a list of total flow rates to sweep through and the system measures the pressure at each point after waiting 1 minute. Repeat measurements are made every minute at each setpoint based on the number provided to the num_samples
kwarg
.
from catalight.equipment.gas_control.alicat import Gas_System
gas_controller = Gas_System()
# MFC used for testing is last mfc w/ gas set to either Ar or N2
gas_controller.set_gasses(['Ar', 'C2H2, 'C2H2', C2H2'])
test_points = list(range(5, 51, 5))
output_path = 'path/to/users/data'
gas_controller.test_pressure(output_path, test_points, num_samples=6)
MFC port connection tester
connection_tester
is a command line tool that sweeps through every COM port on a PC and every letter of the alphabet searching for alicat MFC connections. If you don’t know which ports your MFCs are connected to, this script will find those connection and print a summary at the end of the search. The script takes several minutes to complete, but only needs to be run once. The results can then be used to change the address parameters of the Gas_System
init method which defines the systems MFC locations.
Beginning search: This process will take several minutes
COM4 A is not MFC
COM4 B is not MFC
⋮
COM5 Y is not MFC
COM5 Z is not MFC
Search concluded. Results:
COM10 D is flow controller
COM8 C is flow controller
COM11 E is flow meter
COM9 B is flow controller
COM6 A is flow controller
Heater performance measurements
The Heater
class has a test_heater_performance()
method which applies various heating rates to the reactor while constantly measuring the temperature reading of the system. A csv and plot.svg file are saved for each heat rate tested. The output data is a DataFrame with columns: [time, set point, temperature]. Data is logged at 3 second intervals.
Note
test_heater_performance()
utilizes ramp()
with the record
parameter set to True
.
heater = Heater()
data_fol = 'path/to/users/folder'
rates = list(range(5, 30, 5))
T_max = 140
heater.test_heater_performance(data_fol, rates, T_max)