40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 34 of 330  Not logged in ELOG logo
ID Date Authorup Type Category Subject
  10249   Mon Jul 21 18:08:19 2014 HarryUpdateGeneralFiber Mode Measurement

Quote:

 Purpose

The idea was to measure the profile of the light coming out of the fiber, so we could have knowledge of it for further design of measurement apparatuses, for characterization of the fibers' properties.

Methods

The method was the same as the last time I tried to measure the fiber mode.

This time I moved the beam profiler in a wider range along the z-axis.

Additionally, I adjusted the coupling until it gave ~1mW through the fiber, so the signal was high enough to be reliably detectable.

Measurements were taken in both X and Y transections of the beam.

The range of movement was limited by the aperture of the beam profiler, which cuts off at 9mm. My measurements stop at 8.3mm, as the next possible measurement was beyond the beam profiler's range.

fiberModeMeasurement.png

Analysis

I entered my data into A La Mode, which gave me a waist of 5um, at a location of z = -0.0071 m, that is to say, 7.1mm inside the fiber.

Note that in the plot, data points and fits overlap, and so are sometimes hard to distinguish from each other.

Code is attached.

fiberModeFit2.png

Moving Forward

Using this data, I will begin designing setups to measure fiber characteristics, the first of which being Polarization Extinction Ratio.

Eventually, the data collected from these measurements will be put to use in the frequency offset locking setup.

 Edit

 

 

The previous data were flawed, in that they were taken in groups of three, as I had to move the micrometer stage which held the beamscan between holes in the optical table.

In order to correct for this, I clamped a straightedge (ruler) to the table, so I could more consistently align the profiler with the beam axis.

These data gave a waist w_o = 4um, located 6mm inside the fiber. While these figures are very close to what I would expect (3.3um at the end of the fiber) the fitting still isn't as good as I would like.

The fit given by ALM is below.

fiberModeMeasurement3.png

Moving Forward

I would like to get a stage//rail so I can align the axes of the beam and profiler more consistently.

I would also like to use an aperture the more precisely align the profiler aperture with the beam axis.

Once these measurements have been made, I can begin assembling the setup to measure the Polarization Extinction Ratio of the fiber.

  10255   Tue Jul 22 16:26:04 2014 HarryUpdateGeneralFiber Mode Measurement

I repeated this process once more, this time using the computer controlled stage that the beam profiler is designed to be mounted to.

These data//fitting appears to be within error bars. The range of my measurements was limited when the beam width was near the effective aperture of the profiler.

This latest trial yielded a waist of 4um, located 2.9 mm inside the fiber for the X profile, and 3.0mm inside the fiber for the Y profile.

fiberModeProfile3.png

Code is attached in fiberModeMeasurement4.zip. Note that the z=0 point is defined as the end of the fiber.

Attachment 2: fiberModeMeasurement4.zip
  10256   Tue Jul 22 17:45:11 2014 HarryUpdateGeneralWeekly Update

 The Past Week

 

I spent the past week coupling NPRO light into the fibers, and subsequently measuring the fiber mode profile using the beam profiler.

The Next Week

In the next week, I plan to at least do measurements of the Polarization Extinction Ratio of the fibers.

Materials

My current optical setup, plus an additional polarizing beam splitter (have it).

  10264   Wed Jul 23 17:54:51 2014 HarryUpdateGeneralCoupling Improvements plus PER Measurement Setup

 Purpose

We wanted to improve the coupling into the fibers, because it's very rarely good enough to take measurements with, as the beam is obscured by random noise.

Additionally, we want to add some things to the current setup in order to better measure Polarization Extinction Ratio.

What Was Done

After flailing for several hours, Koji helped me couple the NPRO light into the fiber, using the fiber illuminator for alignment. The coupled optical power immediately jumped from 0-1uW to 5.6mW (around 11% coupling).

Q and I discussed the setup for measuring PER. In addition to the current setup, we added a half wave plate to control the angle of the polarization, in addition to the existing quarter wave plate, which corrects the beam for ellipticity.

PERSetup.png

Once everything was coupled, I started minimizing S-Polarization coming out of the first polarizing beam splitter, and maximizing the P-Polarization entering the fibers.

I did this by first varying the Quarter Wave plate to eliminate as much S Polarization as possible, and then, maintaining a constant differential in angle between QWP and HWP, I rotated them both to maximize power coupled into the fibers.

I measured 0.2 mW of S-Polarization, and 54.3 mW of P-Polarization.

At this point, a locking effort started, and I had to leave the 40m.

Moving Forward

 

Tomorrow, I would like to finish the setup of the PER measurement design. That is to say, add a collimator to the other end of the fiber, and align it with the second PBS.

And, of course, take a measurement of the Polarization Extinction Ratio of the fiber.

To eventually be implemented in Frequency Offset Locking.

  10271   Thu Jul 24 17:37:19 2014 HarryUpdateGeneralCoupling Improvements plus PER Measurement Setup

Quote:

 Purpose

We wanted to improve the coupling into the fibers, because it's very rarely good enough to take measurements with, as the beam is obscured by random noise.

Additionally, we want to add some things to the current setup in order to better measure Polarization Extinction Ratio.

What Was Done

After flailing for several hours, Koji helped me couple the NPRO light into the fiber, using the fiber illuminator for alignment. The coupled optical power immediately jumped from 0-1uW to 5.6mW (around 11% coupling).

Q and I discussed the setup for measuring PER. In addition to the current setup, we added a half wave plate to control the angle of the polarization, in addition to the existing quarter wave plate, which corrects the beam for ellipticity.

PERSetup.png

Once everything was coupled, I started minimizing S-Polarization coming out of the first polarizing beam splitter, and maximizing the P-Polarization entering the fibers.

I did this by first varying the Quarter Wave plate to eliminate as much S Polarization as possible, and then, maintaining a constant differential in angle between QWP and HWP, I rotated them both to maximize power coupled into the fibers.

I measured 0.2 mW of S-Polarization, and 54.3 mW of P-Polarization.

At this point, a locking effort started, and I had to leave the 40m.

Moving Forward

 

Tomorrow, I would like to finish the setup of the PER measurement design. That is to say, add a collimator to the other end of the fiber, and align it with the second PBS.

And, of course, take a measurement of the Polarization Extinction Ratio of the fiber.

To eventually be implemented in Frequency Offset Locking. 

 

Today, I encountered a problem with the stage that holds the coupler, in that its ability to rotate unchecked causes coupling to degrade over time due to torsion in the fibers. Our solution was to stress-relieve the fiber with a clamp.

Unfortunately, this also meant losing coupling completely. It was re-coupled at up 72% efficiency. (Subsequent changes in the setup have decreased that to ~24%)

When I took preliminary measurements of the PER, it was significant, which was unexpected. Upon further discussion with Q, we concluded that since the fiber's fast axis hadn't been aligned with the light's polarization, I was getting multiple polarizations out the end of the fiber.

Subsequent measurements of the power contained in the two polarizations of the output light gave about 0.8% S-Polarization introduced by the fiber.

Tomorrow

I would like to find another collimator holder, to hold the output side of the fiber.

Also, I will spend more time aligning the fiber axes, and the second PBS in order to get a better (read: more reasonable) measurement of PER.

  10273   Fri Jul 25 17:28:31 2014 HarryUpdateGeneralFOL Box and PER Update

 Purpose

We're putting together a box to go into the 1X2 rack, to facilitate the frequency counters, and Raspberry Pi that will be used in FOL.

Separately, I am working on characterizing the Polarization Extinction Ratio of the PM980 fibers, for further use in FOL.

What's Been Done

The frequency counters have been mounted on the face of the box, and nylon spacers installed in the bottom, which will insulate the RPi in the future, once it's finally installed.

FOLBox.png

In regard to the PER setup, there is an issue, in that the mounts which hold the collimators rotate, so as to align the axes of the fibers with the polarization of the incoming light.

This rotational degree of freedom, however, isn't "sticky" enough, and rotates under the influence of the stress in the fiber. (It's not much, but enough.)

This causes wild fluctuations in coupled power, making it impossible to make accurate measurements of PER.

What's Next

In the FOL box's case, we've ordered a longer power cable for the raspberry pi (the current one is ~9 inches long).

Once it arrives, we will install the RPi, and move the box into its place in the rack.

In the case of the PER measurement, we've ordered more collimator mounts//adapters, which will hopefully give better control over rotation.

 

  10282   Mon Jul 28 17:25:32 2014 HarryUpdateGeneralFiber Mode With Collimators

 Purpose

We want a measurement of the fiber modes at either end, with the collimators, because these will be the modes that we'll be trying to match in order to couple light into the fibers, for FOL and/or future projects.

Measurement

In order to measure these modes, I used the beam profiler (Thorlabs BP 209-VIS) to take measurements of the beam diameter (cut off at 13.5% of the amplitude) along the optical axis, for each of the fiber ends.

The ends are arbitrarily labelled End 1 and End 2.

For each measurement, the fibers were coupled to roughly 30%, or 25mW at the output.

Regarding the issue of free rotation in the collimator stages: while End 1 was relatively stable, End 2 tended to move away from its optimal coupling position. In order to correct for this, I chose a position where coupling was good, and repositioned the stage to that coordinate (124 degrees) before taking each measurement.

The data were then entered into A La Mode, which gave waist measurements as follows:

End 1--- X Waist: 197um at Z = 4.8mm       Y Waist: 190um at Z = 13.6mm

End 2--- X Waist: 192um at Z = 7.4mm       Y Waist: 190um at Z = 6.0mm

end1Profiles.pngend2Profiles.png

A La Mode code is attached in .zip file

Moving Forward

These are the types of profiles that we will hopefully be matching the PSL and AUX lasers to, for use in frequency offset locking.

More characterization of the fibers is to follow, including Polarization Extinction Ratio.

We also hope to be testing the overall setup soon.

 

 

Attachment 3: FiberModeWCollimators.zip
  10287   Tue Jul 29 18:52:42 2014 HarryUpdateGeneralPSL and AUX Coupling Waist Measurement

//edit Manasa//  Harry will update this elog with before/after pictures of the table and power of the 1064nm rejected beam from the SHG.
While making these measurements, I reduced the Y end laser power (decreasing the current) so that we could use the beam profiler without burning anything and then brought it back up to the nominal power after the measurements were done.

Purpose

We wanted to take measurements of "waists" of the PSL and AUX (Y-Arm) so I can then design a telescope to couple both into fibers for use in FOL.

Measurements

For both lasers, PSL and AUX, I measured the profile of the dumped red (1064nm) beams coming out of the second harmonic generators, as this is the light that we will be using in FOL.

The power in the beam I measured from the PSL was 87.5 mW, and the power in the measured beam at the end table was 96 mW (when reduced from nominal power).

I used the beam profiler to take measurements of spot size at multiple points along the optical axis of both lasers.

An issue with these measurements was space constraints. In other words, there was no room on either table for a translation stage to hold the Profiler. I used a tape measure to determine Z-Coordinates. However, especially in the case of the AUX laser, parallax error caused uncertainty in my position measurements, which I would estimate at plus and minus 1.5cm.

I then fit these data using ALM to determine waist size and location for use in telescope design.

Z = 0 in the PSL graph is the face of the first mirror in the beam path, and in the AUX graph Z = 0 is the face of the SHG.

NPROProfileMeasurement.png

PSLProfile.pngAUXProfile.png

My measurement of the PSL gave:

X Waist = 43um at z = 6.8mm, as measured from the face of the SHG.

Y Waist = 44um at z = 6.8mm, as measured from the face of the SHG.

AUX Measurements gave:

X Waist = 44um at z = -3.1mm from the SHG face

Y Waist = 36um at z = -3.6mm from the SHG face

 

Find attached alm files in .zip

Movement on the Tables

In order to facilitate the measurements, we needed to move some things around, as pictured below.

On the PSL table, we installed a steering mirror after the Green filtering mirror, which is immediately after the SHG output, in addition to appropriate beam dumps.

before PSLBefore.png      after   PSLAfter.JPG

At the end table, we removed some unused optics, as well as a PD, which were in the way . //edit// manasa: We removed IPANG (which has no light on it) and the associated steering optics.

before    AUXBefore.JPG  after   AUXAfter.JPG

Moving Forward

Either tonight or tomorrow morning, I will use these data to design coupling telescopes for the PSL and AUX light.

Tomorrow, I will couple both lasers to fibers, and hopefully finish assembling the optics for FOL

Attachment 4: FOL.zip
Attachment 8: AUXBefore.JPG
AUXBefore.JPG
  10289   Tue Jul 29 19:00:40 2014 HarryUpdateGeneralWeekly Plan (7.29.14)

 The Past Week

In the past week, I have improved the coupling in the fiber testing setup on the SP table to up to ~45%

I also measured the input/output modes of the fiber with collimators.

Manasa, Q and I have designed, and redesigned a setup to measure Polarization Extinction Ratio introduced by fibers.

I have also partially assembled the box that will hold the frequency counters and RPi for FOL.

Today (Tuesday) I measured waists of PSL and AUX, at dumped light from the SHG's for use in designing coupling telescopes for FOL.

Next Week

In the next week, I will design and couple light from PSL and AUX (Y arm) into fibers for use in testing FOL.

Once that's done, I will continue testing fiber characteristics, starting with Polarization Extinction Ratio.

Items Needed

Power cord for Raspberry Pi (ordered)

AD9.5F collimator adapter (ordered)

 

  10299   Wed Jul 30 18:09:08 2014 HarryUpdateGeneralAUX and PSL Coupling Telescopes

 Purpose

These telescopes will be used to mode match//couple the dumped SHG light from both PSL and AUX (Y-Arm) lasers into PM fibers for use in FOL.

Methods

Using the waist measurements I made yesterday (29/7/14) as seed waists, I used a la mode to design coupling telescopes.

These are designed to match the output mode of the fibers with collimators.

AUXTelescope.m    PSLTelescope.png

 

 

ALM files are attached in .zip file.

AUXTelescopePlot.png PSLTelescopePlot.png

Moving Forward

Once the fibers are coupled, I will continue in assembling the Y-Arm FOL setup, using fiber coupled beam combiner and photodiodes.

I will also do the same procedure for the X-Arm, access permitting.

Attachment 2: AUXTelescope.png
AUXTelescope.png
Attachment 3: telescopes.zip
  10308   Thu Jul 31 15:25:51 2014 HarryUpdateGeneralPolarizationExtinction Ratio of Fibers

 Purpose

We wanted to measure the PER of the polarization maintaining fibers, so we could say to what extent they are truly polarization maintaining.

Setup

The experimental setup of this measurement includes: The NPRO, quarter and half wave plates for tuning ellipticity and orientation of the resultant polarization, attenuating optics, two steering mirrors for coupling, a polarizing beam splitter before and after the laser coupled fibers, the coupling assembly and fiber, and a powermeter.

PERSetup.png

I measured the beam power at all the pertinent locations, shown in the figure below. Note that dots represent S polarization, and orthogonal line segments represent P polarization.

PERBeamPower.png

 

Methods

I first assembled this, coupling the output to a fiber coupled powermeter, in order to adjust the coupling.

Then I needed to couple the fibers to the NPRO, which I did to 39.8%. This gave me enough output power to have a coherent, visible beam. (Visible to non-fiber coupled power meter, and on the viewer card). It was important to be sure that the fast axis of the fiber was aligned in some known orientation. Mine was aligned to the horizontal, using the key on the fiber as an indicator. This is to be certain that the output polarization is consistent with the input.

Once everything was coupled and collimated, I began tuning the polarization of the beam at different points.

Immediately after the NPRO, I used the quarter and half wave plates to first eliminate as much ellipticity as possible, and then turn the polarization to align it with the beam splitter and the fiber axis. I then tuned the first PBS to reflect as little as possible. At the output, I installed the second PBS. Since there was no fine adjustment for the angle of this one, I tuned it using the yaw controls of the 6-axis mount the collimator was held in.

Once all this tuning was done, I took power measurements (displayed above) using the unfiltered, Orion/PD power meter.

Results

From a theoretically completely P-polarized input, the Polarization Extinction Ratio, calculated at 10*log(P/S), was  -24.26 +/-  0.43 dB.

These results can be effected by environmental conditions, such as high tightly wound the cable it, its length, etc.

 

Moving Forward

The next measurement to make would be to characterize the frequency noise introduced by the fiber.

In addition to this measurement, the setup of the beat note system for FOL can be done as soon as we have more collimator adapters.

These measurements may be important in FOL, and in future experiments that may use these types of apparatuses.

  10336   Wed Aug 6 10:10:45 2014 HarryUpdateGeneralWeekly Plan 8.6.14

Last Week

 

Took first round of PER measurements after a long setup.

Started setting up to take measurement of the other polarization--ran into issues with mounts again. (Spinning of their own free will again.)

Devised a new scheme for taking more robust measurements of PER--still in progress.

Next Week

Finish data analysis of these latest PER measurements

Hopefully finally move on to frequency noise characterization

Materials Needed

None for PER

Unknown for frequency noise

 

  10347   Thu Aug 7 14:50:43 2014 HarryUpdateGeneralPER Measurement

 Purpose

I wanted to do a more robust measurement of PER of PM fibers for FOL, so I thought up this scheme.

Methods

I put together a setup as depicted below in order to take measurements of PER.

PERFinalSetup.png

The first thing to do was to calibrate the whole setup. In order to do so, I first used the quarter and half wave plates closest to the NPRO to eliminate as much ellipticity from the output beam as possible, and then rotate the newly linearized light to be in alignment with the transmittance of the first polarizing beam splitter (P-Polarization).

I then aligned the fiber's fast axis with the P-Polarization on both the input and output sides. This was important so that no virtual ellipticity would be measured in the final measurement of PER.

I then mode matched and fiber coupled the first PBS output into the fibers, to about 30 mW (~60% coupling).

Photodiode Calibration

I wanted to measure both intensity of P and S simultaneously, so as to minimize the random little time-varying changes that would affect the measurements, so I used a powermeter and a PD, calibrated with the aformentioned powermeter.

In order to be able to compare the photodiode (PDA520) output to the powermeter (Orion) output, I fixed them each in their positions, and varied the laser power to produce the type of linear relationship we expect to see between PD Voltage and Optical Power. In this case, the conversion was P = V*2.719.

PDCalibration.png

PER Measurement

As opposed to the first method, which took only one datum, this method records P and S simultaneously, at different points through rotation of a linearly polarized beam.

Using the second HWP, I rotated the linearly polarized beam before it entered the fiber, at each point, recording the outputs of the PD and the Powermeter.

These data were then converted to be the same units, and fit to a sine wave.

Polarization_Intensity_Variation.png

As you can see, the intensities vary nearly identically, at a half wavelength phase difference, which is what one expects in this case. The PER of each polarization can be calculated by dividing the maximum value of one by the minimum of the other, and vice versa. The fact that these oscillate as we expect shows that the beam is relatively well linearized, and essentially that everything is working as it is assumed to be.

By looking at these fits, however, it is visible that they do not overlap with the actual extrema of the data. So, in order to produce more realistic values of extrema, those particular regions were fit to second order polynomials.

Extrema.png

The values of these extrema yield the following measurements:

(SMin / PMax) = 0.007 +/- .004  --->  -21.54 +/- 2.48 dB

(PMin / SMax) = 0.022 +/- .009  --->  -16.58 +/- 1.78 dB

Conclusion

The problem I find with these measurements is that they're hard to reproduce.

Plus they seem high, since non-PM fibers advertise extinction ratios around -30 dB., plus I measured it at roughly -24 dB the first time I tried.

Moving Forward

 

The next thing to do in terms of fiber characterization is to measure the frequency noise they introduce.

With respect to FOL, I just need some time to work on the PSL table, and at the Y end to couple the dumped SHG light, and then we can start using 1064nm beat notes to test//implement the feedback control system.

Attachment 5: PEReport.zip
  10349   Thu Aug 7 17:09:53 2014 HarryUpdateGeneralAUX Coupling In Progress

 I'm currently in the process of coupling dumped SHG light from the Y arm end table into fibers for FOL.

The main point is that the NPRO at that end in shuttered, because I wasn't sure whether or not leaving it open would've set anything on fire.

  10360   Sun Aug 10 00:54:54 2014 HarryUpdateGeneralAUX Couping

The Y End laser dumped SHG light has been coupled into the yellow fiber that terminates at the PSL table.

It's not super stably coupled, and only at 5mW. I'll be interested to see what it is on monday.

  10371   Tue Aug 12 23:07:24 2014 HarryUpdateGeneralPSL Telescope

I put the PSL telescope in place, and started coupling to it.

Unfortunately, I was only able to couple about 55 uW into the "fiber coupler" (read: fiber coupled splitter). See picture below:

PSLTelescopePic.png

Additionally, I'm not sure why this is, but both of the splitters we ordered don't split equally, but to 90% and 10% in each output port.

We also found that, since we aren't using the fibers we originally intended to, the specs are a little different, and the waist we're trying to have at the collimator face is now 283 um.

  10373   Wed Aug 13 10:49:39 2014 HarryUpdateGeneralWeekly Update

 In the past week, I designed and assembled coupling telescopes for the PSL and Y Arm Lasers

The Y Arm was coupled to ~5mV, and the PSL remains uncoupled.

 

For the next week, I'm planning on working on things like my presentation and/or final report.

Though as of last night, my computer refuses to turn on, so there may be some further "troubleshooting" involved in that whole process.

  10376   Wed Aug 13 16:12:55 2014 HarryUpdateGeneralFOL Layout Diagram

Per Q's request, I've made up a diagram of the complete FOL layout for general reference.

FOLLayout2.png

  10389   Thu Aug 14 18:10:46 2014 HarryUpdateGeneralFiber Temperature Effects Setup

Purpose

We want to characterize the sort of response the fibers have to temperature gradients along them (potentially altering indices of refraction, etc.)

Experimental Setup

I have constructed a sort of two chambered "calorimeter" (by which I mean some coolers and other assorted pieces of recycling.)

The idea is that half of the length of PM fiber resides in one chamber, and the other in the other.

One chamber will remain at an uncontrolled, stable temperature (as measured by thermocouple probe) while the other's temperature is varied using a heat gun.

Using this setup, one can measure losses in power, and effects on polarization within the fiber.

Caveat

This is currently living on the electronics bench until tomorrow morning, and is a little fragile, just in case it needs to be moved.

Attachment 1: tempAffectsSetup.zip
  10403   Fri Aug 15 17:24:44 2014 HarryUpdateGeneralFiber Temp.

 Earlier today Q and I somewhat resurrected my old PER measurement setup so I could run the temperature characterization experiment.

Unfortunately, when I tried to use the fiber illuminator, no light came from the other end, causing me to fail my primary goal for the summer of "don't break anything." The fiber has been re-spooled and labeled appropriately. Also sorry.

In addition to this, Q and I scavenged parts from the telescopes on the PSL and Y End tables, which were either not functional, or needed to have their mode matching adjusted, since we're using the non-PM fibers for FOL, which have a different numerical aperture, and thus slightly different output modes.

Specifically, this is involved removing the rotational mounts, and appropriate beam dumping.

My "calorimeter" still remains intact, in case anyone wants to make this measurement in the future, as this is my last day in the lab.

It's also effective at keeping drinks cold, if you'd rather use it for that.

  10092   Tue Jun 24 13:04:49 2014 Harry, ManasaUpdateGeneralRazorblade Beam Analysis Setup

Harry will update this elog with details about his beam waist measurements for the old NPRO on the SP table.

  10099   Wed Jun 25 09:17:33 2014 Harry, ManasaUpdateGeneralRazorblade Beam Analysis Setup

Quote:

Harry will update this elog with details about his beam waist measurements for the old NPRO on the SP table.

 see http://nodus.ligo.caltech.edu:8080/40m/10098 for the update

  2708   Wed Mar 24 12:38:17 2010 HartmutConfigurationGreen LockingBroadband PD for green PLL

Modified one of the PD assemblies carrying a large SI-Diode (~10mm diameter).

Removed elements used for resonant operation and changed PD readout to transimpedance

configuration. The opamp is a CLC409 with 240 Ohm feedback (i.e. transimpedance) resistor.

To prevent noise peaking at very high frequencies and get some decoupling of the PD,

I added a small series resistor in line with the PD and the inverting opamp input.

It was chosen as 13 Ohm, and still allows for operation up to ~100MHz.

Perhaps it could be smaller, but much more bandwith seems not possible with this opamp anyway.

Changes are marked in the schematic, and I list affected components here.

(Numbers refer to version 'PD327.SCH' from 30-April-1997):

-removed L4

-connected L3 (now open pad) via 100 Ohm to RF opamp output. This restores the DC sognal output.

-removed c17

-connected pin 3 of opamp via 25 Ohm to GND

-connected kathode of PD via 13 Ohm to pin 2 of opamp

-removed L6, C26, L5, C18, and C27

-shorted C27 pad to get signal to the RF output

 

Measured the optical TF with the test laser setup.

(Note that this is at 1064nm, although the PD is meant to work with green light at 532nm!)

Essentially it looks usable out to 100MHz, where the gain dropped only by about

6dB compared to 10MHz.

Beyond 100MHz the TF falls pretty steeply then, probably dominated by the opamp.

 

The maximal bias used is -150V.

If the bias is 'reduced' from -150V to -50V, the response goes down by 4dB at 10MHz and

by 9dB at 100MHz.

 The average output was 30mV at the RF output, corresponding to 60mV at the opamp output (50Ohm divider chain).

With 240 Ohm transimpedance this yields 250µA photo-current used for these transfer functions.

SiAmpl.png

 

SiPhase.png

 

 

  2745   Wed Mar 31 19:29:58 2010 HartmutUpdateElectronics(1cm-) Si PD transfer functions update

Recorded transfer functions for the 1cm Si-PD as described on p. 2708

for different biases. I put the plots in there, to keep the info in one place,

where the label on the PD case (which Steve made without asking him) points

to.

I talked to some people recently about the fact that the responsivity (A/W) of the PD

changes even at DC for different biases. I tested this again and should be more precise about this:

The first time I observed this was in the transfer functions as shown on p. 2708.

With 'DC' I meant 'low frequency' there, as you can still see an effect of the bias as low as 100kHz.

Then at one point I saw the responsivity changing with bias also at true DC.

However, it turned out that this is only the case if the photocurrent is too high.

If the photocurrent is 4mA, you need 400mV bias to get the max. responsivity.

For 2mA photocurrent, the responsivity is already maximal for 0V bias.

An effect for relative low frequencies remains however.

The DC check of responsivity was done with white light from a bulb.

 

 

  2752   Thu Apr 1 16:34:29 2010 HartmutUpdateGreen LockingSilicon PDs

just a few infos on Silicon PDs I looked up.

If you want to go beyond the 100MHz achievable with the device I worked on,

the one thing to improve is the opamp, where Steve is trying to find OPA657.

This is a FET with 1.6GHz BWP, minimum stable gain of 7, and 4.8nV/rt(Hz) noise.

Should be ok with 750-1000 Ohm transimpedance.

The other thing you might want to change is the PD

(although it might be the 1cm PD with high bias is as fast as smaller ones with lower bias).

There are two types of other Si diodes at the 40m right now (~3mm):

-Rana and I found a Centronic OSD 15-5T in the old equipment

-Frank gave me a Hamamatsu S1223-01 on a Thorlabs pre-amp device (could be taken out).

 

The Centronic OSD 15-5T has up to 80pF with 12 V bias according to the datasheet.

The Hamamatsu S1223-01 is stated with 20pF only, but stated to have a max. frequency resp. of 20MHz ('-3db point').

I dont know what this means, as the corner freq. of 10pF into 50Ohm is still 160MHz.

In any case there are faster 3mm types to start with, as for example Hamamatsu S3399 (~ 90$),

which is stated to have the corner at 100MHz with 50 Ohm load.

For this type the stated capacity (20pF) looks consistent with ~100MHz corner into 50 Ohm.

So probably you can get higher BW with this one using much smaller load, as in transimpedance stage.

 

 

  2757   Thu Apr 1 20:29:02 2010 HartmutUpdateGreen Lockingsimple PD test circuit

I made a simple PD test circuit which may allow to test PD response up to few 100MHz.

Its not for low noise, only for characterising PD response.

Here is the circuit:

The 2 capacitor values (for bypassing) are kind of arbitrary, just what I found around

(one medium, one small capacity). Could be improved by better RF types (e.g. Mica).

The PD type has no meaning. I put in the Centronic 15-T5 for a start.

The bias can be up to 20V for this diode.

The signal appears across R1. It is small, to make a large bandwidth.

R2 is just for slightly decoupling the signal from the following RF amplifier.

The wire into the RF amplifier is short (~cm). And the amplifier is supposed to have 50 Ohm

input impedance.

I use a mini circuits ZFL 500 here.

power supply for this is 15V.

pdtest.png

  16021   Tue Apr 13 16:24:38 2021 Ian MacMillanUpdateCDS40m LSC simPlant model

Added Matlab to the Docker machine. This should help immensely with workflow as well as keeping installed libraries consistent. Next step is outlining the project so coding is easier

Command to launch is:     $ matlab &

From Jon just for bookkeeping: 

Then in the Matlab command window, open the CDS parts library via:

addpath /home/controls/simLink/lib/

open /home/controls/simLink/CDS_PARTS.mdl

Then open an RTCDS model (for example, here the LSC plant) via:

open /home/controls/docker-cymac/userapps/x1lsp.mdl

 

 

  16050   Mon Apr 19 13:15:20 2021 Ian MacMillanUpdateCDS40m LSC simPlant model

The x1SUSsim model on the docker was made in a more recent version of Simulink so I updated Matlab (see this)

I updated Matlab to 2021a so now the docker has 2020b and 2021a installed. This should also install Simulink 10.3 for the sus model to open. I used my account to activate it but I can change it over if I get a dedicated license for this. I am not sure what Jon did for the 2020b that he installed.

it is giving me "License error: -9,57" so I guess it didn't work... I will try to just make the model on the 2020b just so I have something.

-----------------------------------------------------------------------------------------------------------------------------

I was able to fix the problem with the activation (using this).

I can now open the x1sussim.mdl file. It is trying to access a BSFM_MASTER Library that it doesn't seem to have. the other files don't seem to have any warnings though. 

the simple suspension model can be found in home/controls/docker-cymac/userapps/c1simpsus.mdl on the docker system. This is where I will put my model. (right now it is just a copied file)

Also using Simulink on the docker is very slow. I think this is either a limit of the x2goclient software or the hardware that the docker is running on.

  16059   Wed Apr 21 10:03:01 2021 Ian MacMillanUpdateCDS40m LSC simPlant model

So I am stuck on how to add the control block to my model. I am trying to make it as simple as possible with just a simple transfer function for a damped harmonic oscillator and then the control block (see overview.png). 

The transfer function I am using is:

 H(s)=\frac{Q^{-2} f^{-2}s^2+1}{f^{-4}s^4+(Q^{-2} f^{-2}-2f^{-2})s^2+1}

For future generations: To measure the transfer function (to verify that it is doing what it says it is) I am using the discrete transfer function estimator block. To get a quick transfer function estimator Simulink program run ex_discrete_transfer_function_estimator in the Matlab command line. This works well for filters but it was hit or miss using the discrete transfer function. 

The roadblock I am running into right now is that I can't figure out how to add the controller to the model. Not on an interpretation level but in a very straightforward "can I drag it into my model and will it just work" kind of way.

I am also a little confused as to exactly which block would do the controlling. Because I want to just use the x of the pendulum (its position) I think I want to use the suspension controls which come are connected to in the suspension plant model. But where exactly is it and how can I get the model? I can't seem to find it. 

Attachment 1: Overview.png
Overview.png
  16081   Fri Apr 23 15:52:19 2021 Ian MacMillanUpdateCDS40m LSC simPlant model

I have attached the framework that I am using for the full system. Plantframework.pdf has the important aspects that I will be changed. Right now I am trying to keep it mostly as is, but I have disconnected the Optic Force Noise and hope to disconnect the Suspension Position Noise. The Optic Force Noise Block is additive to the signal so eliminating it from the system should make it less realistic but simpler. It can be added back easily by reconnecting it.

The next step is adding my plant response, which is simply the transfer function and measurement from the last post. These should be inserted in the place of the red TM_RESP in the model.

The TM_RESP block takes in a vector of dimension 12 and returns a vector of dimension 6. The confusing part is that the block does not seem to do anything. it simply passes the vector through with no changes. I'm not sure why this is the case and I am looking for documentation to explain it but haven't found anything. As to how a 12 vector turns into a 6 vector I am also lost. I will probably just disconnect everything but the x position.

I tried to just throw in my model (see Simple_Plant.pdf) and see what happened but the model would not let me add built-in blocks to the model. This is weird because all the blocks that I am adding are part of the basic library. My guess is that this mode will only accept blocks from the CDL library. I will either need to change my blocks to be made from blocks in the CDL library or maybe I can pass the signal out of the plant framework model then into my model then back to the plant framework model. I think this is just a Matlab thing that I don't know about yet. (Jon probably knows)

I have also attached an image of the controls model for reference. It looks like a mess but I'm sure there is a method. I won't get lost in going through it just assume it works... for now.

The next question I have been asking is how do I show that the system works. When anchal and I made a python simulation of the system, we tested it by seeing the evolution of the degrees of freedom over time given some initial conditions. We could see the pendulum propagating and some of the coupling between the DOFs. This is a fast and dirty way to check if everything is working and should be easy to add. I simply recorded the POS signal and graph it over time. Once we get to a state-space model we can test it by taking the transfer function, but since our plant is literally already just a transfer function there isn't much of a point yet.

Also, I need to add color to my Simple_Plant.pdf model because it looks really boring :(

Attachment 1: Plant_framework.pdf
Plant_framework.pdf
Attachment 2: Simple_Plant.pdf
Simple_Plant.pdf
Attachment 3: Controls.pdf
Controls.pdf
  16088   Tue Apr 27 15:15:17 2021 Ian MacMillanUpdateCDSSUS simPlant model

The first version of the single filter plant is below. Jon and I went through compiling a model and running it on the docker (see this post)

We activated an early version of the plant model (from about 10 years ago) but this model was not designed to run on its own so we had to ground lots of unconnected pieces. the model compiled and ran so we moved on to the x1sus_single_plant model that I prepared.

This model is shown in the first attachment wasn't made to be run alone because it is technically a locked library (see the lock in the bottom left). It is supposed to be referenced by another file: x1sup.mdl (see the second attachment). This works great in the Simulink framework. I add the x1sus_single_plant model to the path and Matlab automatically attaches the two. but the docker does not seem to be able to combine the two. Starting the cymac it gives these errors:

cymac    | Can't find sus_single_plant.mdl; RCG_LIB_PATH=/opt/rtcds/userapps:/opt/rtcds/userapps/lib:/usr/share/advligorts/src/src/epics/simLink/:/usr/share/advligorts/src/src/epics/simLink/lib:/usr/share/advligorts/src/src/epics/simLink
cymac    | make[1]: *** [Makefile:30: x1sup] Error 2
cymac    | make: *** [Makefile:35: x1sup] Error 1

I have tried putting the x1sus_single_plant.mdl file everywhere as well as physically dragging the blocks that I need into the x1sup.mdl file but it always seems to throw an error. Basically, I want to combine them into one file that is not referencing anything other than the CDS library but I cant figure out how to combine them.

Okay but the next problem is the medm screen generation. When we had the original 2010 model running the sitemap did not include it. It included models that weren't even running before but not the model Jon and I had added. I think this is because the other models that were not running had medm screens made for them. I need to figure out how to generate those screens. I need to figure out how to use the tool Chris made to auto-generate medm screens from Simulink but I can't seem to figure it out. And honestly, it won't be much use to me until I can actually connect the plant block to its framework. One option is to just copy each piece over one by one. this will take forever but at this point, I am frustrated enough to try it. I'll try to give another update later tonight.

Attachment 1: x1sus_single_plant.pdf
x1sus_single_plant.pdf
Attachment 2: x1sup.pdf
x1sup.pdf
  16096   Thu Apr 29 13:41:40 2021 Ian MacMillanUpdateCDSSUS simPlant model

To add the required library: put the .mdl file that contains the library into the userapps/lib folder. That will allow it to compile correctly

I got these errors:

Module ‘mbuf’ symvers file could not be found.
Module ‘gpstime’ symvers file could not be found.
***ERROR: IPCx parameter file /opt/rtcds/zzz/c1/chans/ipc/c1.ipc not found
make[1]: *** [Makefile:30: c1sup] Error 2
make: *** [Makefile:35: c1sup] Error 1

I removed all IPC parts (as seen in Attachment 1) and that did the trick. IPC parts (Inter-Process Communication) were how this model was linked to the controller so I don't know how exactly how I can link them now. 

I also went through the model and grounded all un-attached inputs and outputs. Now the model compiles

Also, The computer seems to be running very slowly in the past 24 hours. I know Jon was working on it so I'm wondering if that had any impact. I think it has to do with the connection speed because I am connected through X2goclient. And one thing that has probably been said before but I want to note again is that you don't need a campus VPN to access the docker.

Attachment 1: Non-IPC_Plant.pdf
Non-IPC_Plant.pdf
  16106   Fri Apr 30 12:52:14 2021 Ian MacMillanUpdateCDSSUS simPlant model

Now that the model is finally compiled I need to make an medm screen for it and put it in the c1sim:/home/controls/docker-cymac/userapps/medm/ directory. 

But before doing that I really want to test it using the autogenerated medm screens which are in the virtual cymac in the folder /opt/rtcds/tst/x1/medm/x1sup. In Jon's post he said that I can use the virtual path for sitemap after running $ eval $(./env_cymac)

  16109   Mon May 3 13:35:12 2021 Ian MacMillanUpdateCDSSUS simPlant model

When the cymac is started it gives me a list of channels shown below. 

 $  Initialized TP interface node=8, host=98e93ecffcca
 $  Creating X1:DAQ-DC0_X1IOP_STATUS
 $  Creating X1:DAQ-DC0_X1IOP_CRC_CPS
 $  Creating X1:DAQ-DC0_X1IOP_CRC_SUM
 $  Creating X1:DAQ-DC0_X1SUP_STATUS
 $  Creating X1:DAQ-DC0_X1SUP_CRC_CPS
 $  Creating X1:DAQ-DC0_X1SUP_CRC_SUM

But when I enter it into the Diaggui I get an error:

The following channel could not be found:
X1:DAQ-DC0_X1SUP_CRC_CPS

My guess is that need to connect to the Diaggui to something that can access those channels. I also need to figure out what those channels are.

  16118   Tue May 4 14:55:38 2021 Ian MacMillanUpdateCDSSUS simPlant model

After a helpful meeting with Jon, we realized that I have somehow corrupted the sitemap file. So I am going to use the code Chris wrote to regenerate it. 

Also, I am going to connect the controller using the IPC parts. The error that I was having before had to do with the IPC parts not being connected properly. 

  16122   Wed May 5 15:11:54 2021 Ian MacMillanUpdateCDSSUS simPlant model

I added the IPC parts back to the plant model so that should be done now. It looks like this again here.

I can't seem to find the control model which should look like this. When I open sus_single_control.mdl, it just shows the C1_SUS_SINGLE_PLANT.mdl model. Which should not be the case.

  16124   Thu May 6 16:13:24 2021 Ian MacMillanUpdateCDSSUS simPlant model

When using mdl2adl I was getting the error:

$  cd /home/controls/mdl2adl
$  ./mdl2adl x1sup.mdl
error: set $site and $ifo environment variables

to set these in the terminal use the following commands:

$  export site=tst
$  export ifo=x1

On most of the systems, there is a script that automatically runs when a terminal is opened that sets these but that hasn't been added here so you must run these commands every time you open the terminal when you are using mdl2adl.

  16126   Fri May 7 11:19:29 2021 Ian MacMillanUpdateCDSSUS simPlant model

I copied c1scx.mdl to the docker to attach to the plant using the commands:

$  ssh nodus.ligo.caltech.edu
[Enter Password]
$  cd opt/rtcds/userapps/release/isc/c1/models/simPlant
$  scp c1scx.mdl controls@c1sim:/home/controls/docker-cymac/userapps
  16134   Wed May 12 13:06:15 2021 Ian MacMillanUpdateCDSSUS simPlant model

Working with Chris, we decided that it is probably better to use a simple filter module as a controller before we make the model more complicated. I will use the plant model that I have already made (see attachment 1 of this). then attach a single control filter module to that: as seen in attachment 1. because I only want to work with one degree of freedom (position) I will average the four outputs which should give me the position. Then by feeding the same signal to all four inputs I should isolate one degree of freedom while still using the premade plant model.

The model I made that is shown in attachment 2 is the model I made from the plan. And it complies! yay! I think there is a better way to do the average than the way I showed. And since the model is feeding back on itself I think I need to add a delay which Rana noted a while ago. I think it was a UnitDelay (see page 41 of RTS Developer’s Guide). So I will add that if we run into problems but I think there is enough going on that it might already be delayed.

Since our model (x1sup_isolated.mdl) has compiled we can open the medm screens for it. I provide a procedure below which is based on Jon's post

[First start the cymac and have the model running]
$  cd docker-cymac
$  eval $(./env_cymac)

$  medm -x /opt/rtcds/tst/x1/medm/x1sup_isolated/X1SUP_ISOLATED_GDS_TP.adl

To see a list of all medm screens use:

$  cd docker-cymac
$  ./login_cymac
 #  cd /opt/rtcds/tst/x1/medm/x1sup_isolated
 #  ls

Some of the other useful ones are:

adl screen Description
X1SUP_ISOLATED_Control_Module.adl This is the control filter module shown in attachment 2 at the top in the center. This module will represent the control system.
X1SUP_ISOLATED_C1_SUS_SINGLE_PLANT_Plant_POS_Mod.adl

See attachment 4. This screen shows the POS plant filter module that will be filled by the filter representing the transfer function of a damped harmonic oscillator:        \frac{x}{F}=\frac{\omega_0^2}{\omega_0^2+i\frac{\omega_0 \omega}{Q}-\omega^2}

THIS TF HAS BEEN UPDATED SEE NEXT POST

The first one of these screens that are of interest to us (shown in attachment 3) is the X1SUP_ISOLATED_GDS_TP.adl screen, which is the CDS runtime diagnostics screen. This screen tells us "the success/fail state of the model and all its dependencies." I am still figuring out these screens and the best guide is T1100625.

The next step is taking some data and seeing if I can see the position damp over time. To do this I need to:

  1. Edit the plant filter for the model and add the correct filter.
  2. Figure out a filter for the control system and add it to that. (I can leave it as is to see what the plant is doing) 
  3. Take some position data to show that the plant is a harmonic oscillator and is damping away.
Attachment 1: SimplePlant_SingleContr.pdf
SimplePlant_SingleContr.pdf
Attachment 2: x1sup_isolated.pdf
x1sup_isolated.pdf
Attachment 3: X1SUP_ISOLATED_GDS_TP.png
X1SUP_ISOLATED_GDS_TP.png
Attachment 4: X1SUP_ISOLATED_C1_SUS_SINGLE_PLANT_Plant_POS_Mod.png
X1SUP_ISOLATED_C1_SUS_SINGLE_PLANT_Plant_POS_Mod.png
  16151   Fri May 21 09:44:52 2021 Ian MacMillanUpdateCDSSUS simPlant model

The transfer function given in the previous post was slightly incorrect the units did not make sense the new function is:

\frac{x}{F}=\frac{1}{m\omega_0^2-m\omega^2+im\frac{\omega_0 \omega }{Q}}

I have attached a quick derivation below in attachment 1

Attachment 1: Transfer_Function_of_Damped_Harmonic_Oscillator.pdf
Transfer_Function_of_Damped_Harmonic_Oscillator.pdf
  16153   Fri May 21 14:36:20 2021 Ian MacMillanUpdateCDSSUS simPlant model

The plant transfer function of the pendulum in the s domain is:

H(s)=\frac{x(s)}{F(s)}=\frac{1}{ms^2+m\frac{\omega_0}{Q}s+m\omega_0^2}

Using Foton to make a plot of the TF needed and using m=40kg, w0=3Hz, and Q=50 (See attachment 1). It is easiest to enter the above filter using RPoly and saved it as Plant_V1

Attachment 1: Plant_Mod_TF.pdf
Plant_Mod_TF.pdf
  16177   Thu Jun 3 13:06:47 2021 Ian MacMillanUpdateCDSSUS simPlant model

I was able to measure the transfer function of the plant filter module from the channel X1:SUP-C1_SUS_SINGLE_PLANT_Plant_POS_Mod_EXC to X1:SUP-C1_SUS_SINGLE_PLANT_Plant_POS_Mod_OUT. The resulting transfer function is shown below. I have also attached the raw data for making the graph.

Next, I will make a script that will make the photon filters for all the degrees of freedom and start working on the matrix version of the filter module so that there can be multiple degrees of freedom.

Attachment 1: SingleSusPlantTF.pdf
SingleSusPlantTF.pdf
Attachment 2: SUS_PLANT_TF.zip
  16191   Mon Jun 7 17:49:19 2021 Ian MacMillanUpdateCDSSUS simPlant model

Added difference to the graph. I included the code so that others could see what it looks like and use it for easy use.

Attachment 1: SingleSusPlantTF.pdf
SingleSusPlantTF.pdf
Attachment 2: TF_Graph_Code.zip
  16195   Wed Jun 9 13:50:48 2021 Ian MacMillanUpdateCDSSUS simPlant model

I have attached an updated transfer function graph with the residual easier to see. I thought here I would include a better explanation of what this transfer function was measuring.

This transfer function was mainly about learning how to use DTT and Foton to make and measure transfer functions. Therefore it is just measuring across a single CDS filter block. X1SUP_ISOLATED_C1_SUS_SINGLE_PLANT_Plant_POS_Mod block to be specific. This measurement shows that the block is doing what I programmed it to do with Foton. The residual is probably just because the measured TF had fewer points than the calculated one.

The next step is to take a closed-loop TF of the system and the control module.

After that, I want to add more degrees of freedom to the model. both in the plant and in the controls.

Attachment 1: SingleSusPlantTF.pdf
SingleSusPlantTF.pdf
  16201   Tue Jun 15 11:46:40 2021 Ian MacMillanUpdateCDSSUS simPlant model

I have added more degrees of freedom. The model includes x, y, z, pitch, yaw, roll and is controlled by a matrix of transfer functions (See Attachment 2). I have added 5 control filters to individually control UL, UR, LL, LR, and side. Eventually, this should become a matrix too but for the moment this is fine.

Note the Unit delay blocks in the control in Attachment 1. The model will not compile without these blocks.

Attachment 1: x1sup_isolated-6-15-v1.pdf
x1sup_isolated-6-15-v1.pdf
Attachment 2: C1_SUS_SINGLE_PLANT-6-15-v1.pdf
C1_SUS_SINGLE_PLANT-6-15-v1.pdf
  16208   Thu Jun 17 11:19:37 2021 Ian MacMillanUpdateCDSCDS Upgrade

Jon and I tested the ADC and DAC cards in both of the systems on the test stand. We had to swap out an 18-bit DAC for a 16-bit one that worked but now both machines have at least one working ADC and DAC.

[Still working on this post. I need to look at what is in the machines to say everything ]

  16217   Mon Jun 21 17:15:49 2021 Ian MacMillanUpdateCDSCDS Upgrade

Anchal and I wrote a script (Attachment 1) that will test the ADC and DAC connections with inputs on the INMON from -3000 to 3000. We could not run it because some of the channels seemed to be frozen. 

Attachment 1: DAC2ADC_Test.py
´╗┐import os
import time
import numpy as np
import subprocess
from traceback import print_exc
import argparse


def grabInputArgs():
    parser = argparse.ArgumentParser(
... 75 more lines ...
  16220   Tue Jun 22 16:53:01 2021 Ian MacMillanUpdateCDSFront-End Assembly and Testing

The channels on both the C1BHD and C1SUS2 seem to be frozen: they arent updating and are holding one value. To fix this Anchal and I tried:

  • restarting the computers 
    • restarting basically everything including the models
  • Changing the matrix values
  • adding filters
  • messing with the offset 
  • restarting the network ports (Paco suggested this apparently it worked for him at some point)
  • Checking to make sure everything was still connected inside the case (DAC, ADC, etc..)

I wonder if Jon has any ideas. 

  16224   Thu Jun 24 17:32:52 2021 Ian MacMillanUpdateCDSFront-End Assembly and Testing

Anchal and I ran tests on the two systems (C1-SUS2 and C1-BHD). Attached are the results and the code and data to recreate them.

We connected one DAC channel to one ADC channel and thus all of the results represent a DAC/ADC pair. We then set the offset to different values from -3000 to 3000 and recorded the measured signal. I then plotted the response curve of every DAC/ADC pair so each was tested at least once.

There are two types of plots included in the attachments

1) a summary plot found on the last pages of the pdf files. This is a quick and dirty way to see if all of the channels are working. It is NOT a replacement for the other plots. It shows all the data quickly but sacrifices precision.

2) In an in-depth look at an ADC/DAC pair. Here I show the measured value for a defined DC offset. The Gain of the system should be 0.5 (put in an offset of 100 and measure 50). I included a line to show where this should be. I also plotted the difference between the 0.5 gain line and the measured data. 

As seen in the provided plots the channels get saturated after about the -2000 to 2000 mark, which is why the difference graph is only concentrated on -2000 to 2000 range. 

Summary: all the channels look to be working they all report very little deviation off of the theoretical gain. 

Note: ADC channel 31 is the timing signal so it is the only channel that is wildly off. It is not a measurement channel and we just measured it by mistake.

Attachment 1: C1-SU2_Channel_Responses.pdf
C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf C1-SU2_Channel_Responses.pdf
Attachment 2: C1-BHD_Channel_Responses.pdf
C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf C1-BHD_Channel_Responses.pdf
Attachment 3: CDS_Channel_Test.zip
  16230   Wed Jun 30 14:09:26 2021 Ian MacMillanUpdateCDSSUS simPlant model

I have looked at my code from the previous plot of the transfer function and realized that there is a slight error that must be fixed before we can analyze the difference between the theoretical transfer function and the measured transfer function.

The theoretical transfer function, which was generated from Photon has approximately 1000 data points while the measured one has about 120. There are no points between the two datasets that have the same frequency values, so they are not directly comparable. In order to compare them I must infer the data between the points. In the previous post [16195] I expanded the measured dataset. In other words: I filled in the space between points linearly so that I could compare the two data sets. Using this code:

#make values for the comparison
tck_mag = splrep(tst_f, tst_mag) # get bspline representation given (x,y) values
gen_mag = splev(sim_f, tck_mag) # generate intermediate values
dif_mag=[]
for x in range(len(gen_mag)):
    dif_mag.append(gen_mag[x]-sim_mag[x]) # measured minus predicted

tck_ph = splrep(tst_f, tst_ph) # get bspline representation given (x,y) values
gen_ph = splev(sim_f, tck_ph) # generate intermediate values
dif_ph=[]
for x in range(len(gen_ph)):
    dif_ph.append(gen_ph[x]-sim_ph[x])

At points like a sharp peak where the measured data set was sparse compared to the peak, the difference would see the difference between the intermediate “measured” values and the theoretical ones, which would make the difference much higher than it really was.

To fix this I changed the code to generate the intermediate values for the theoretical data set. Using the code here:

tck_mag = splrep(sim_f, sim_mag) # get bspline representation given (x,y) values
gen_mag = splev(tst_f, tck_mag) # generate intermediate values
dif_mag=[]
for x in range(len(tst_mag)):
    dif_mag.append(tst_mag[x]-gen_mag[x])#measured minus predicted

tck_ph = splrep(sim_f, sim_ph) # get bspline representation given (x,y) values
gen_ph = splev(tst_f, tck_ph) # generate intermediate values
dif_ph=[]
for x in range(len(tst_ph)):
    dif_ph.append(tst_ph[x]-gen_ph[x])

Because this dataset has far more values (about 10 times more) the previous problem is not such an issue. In addition, there is never an inferred measured value used. That makes it more representative of the true accuracy of the real transfer function.

This is an update to a previous plot, so I am still using the same data just changing the way it is coded. This plot/data does not have a Q of 1000. That plot will be in a later post along with the error estimation that we talked about in this week’s meeting.

The new plot is shown below in attachment 1. Data and code are contained in attachment 2

Attachment 1: SingleSusPlantTF.pdf
SingleSusPlantTF.pdf
Attachment 2: Plant_TF_Test.zip
ELOG V3.1.3-