Outputting data to Microsoft Excel
The example file associated with the Laser Diode to Fiber article includes Embedded Scripts that scan the position/orientation of the fiber and automatically output the data to Microsoft Excel using FRED's COM capability.
There are three Embedded Scripts associated with the attached FRED document:
- Distance Scan
- Lateral Offset Scan
- Tilt Scan
The three scripts are similar to each other: each script adjusts the position of the fiber in user-controlled steps and calculates the coupling efficiency and prints the data to the Output Window and into a Microsoft Excel spreadsheet.
Steps
First, input the start and end positions of the fiber and the resolution of the scan. Then, set the exportToExcel flag to True to print the data to a Microsoft Excel spreadsheet and plot a graph. Define the fiber parameters for the fiber coupling efficiency calculation only.
'***********SCAN SETTINGS************
'Z-position of the fiber interface
startVal = 1.5
endVal = 2.5
resolution = 0.02
exportToExcel = True
'***********SCAN SETTINGS************<br>
Before outputting data to Excel, create the Excel Application object ("excelApp"), add a workbook ("excelWB"), and a starting cell location ("excelRange").
If exportToExcel = True Then
'set up Excel
Set excelApp = CreateObject("Excel.Application")
Set excelWB = excelApp.Workbooks.Add
Set excelRange = excelWB.ActiveSheet.Cells(1,1)
excelApp.Visible = True
'print fiber details and headers to Excel
excelRange.Cells(1,1).Value = "Core Index: "
excelRange.Cells(1,2).Value = n_core
excelRange.Cells(2,1).Value = "Cladding Index: "
excelRange.Cells(2,2).Value = n_clad
excelRange.Cells(3,1).Value = "Core Radius (um): "
excelRange.Cells(3,2).Value = r*1000
excelRange.Cells(5,1).Value = "Distance (mm)"
excelRange.Cells(5,2).Value = "Fiber Coupling (%)"
excelRange.Cells(5,3).Value = "Power at Fiber (frac)"
excelRange.Cells(5,4).Value = "Overlap Coefficient (frac)"
cellpos = 5 'Excel row counter
End If<br>
The script prints the headers and starts its main "For" loop which:
- alters the position of the fiber
- traces the rays
- calculates the Irradiance & determine the total power
- calculates the fiber coupling coefficient
- calculates the mode power
The script then writes the data to both the Output Window and to Excel. Notice that the cell position is specified for each input.
'print results to Excel
If exportToExcel = True Then
cellpos = cellpos + 1
excelRange.Cells(cellpos,1).Value = i
excelRange.Cells(cellpos,2).Value = modePower * 100
excelRange.Cells(cellpos,3).Value = fiberPower
excelRange.Cells(cellpos,4).Value = CE
End If<br>
After the simulations are complete, FRED instructs Excel to plot a graph of the data using the following code. The result is shown below (in Excel 2013).
'Now create graph in Excel
Set excelChart = excelWB.Charts.Add
excelChart.ChartType = 75 'scatter plot
excelChart.HasTitle = True
excelChart.name = "Fiber Coupling vs Distance"
excelChart.ChartTitle.text = "Fiber Coupling vs Distance"
excelChart.SetSourceData(excelRange.Range("a5:b"&CStr(cellpos)))
excelChart.PlotBy = 2 'plots by columns.
excelChart.Axes(1).MinimumScale = startVal
excelChart.Axes(1).MaximumScale = endVal
excelChart.Axes(1).HasTitle = True
excelChart.Axes(1).AxisTitle.text = "Distance (mm)"
excelChart.Axes(2).HasTitle = True
excelChart.Axes(2).AxisTitle.text = "Fiber Coupling (%)"
excelChart.Location 2, "Sheet1"<br>
The final step is to close the Excel application and clean up the variables.
'Excel clean up
Set excelRange = Nothing
Set excelWB = Nothing
Set excelApp = Nothing
Associated FRED file: Laser Diode to Fiber Coupling Analysis.frd