All three coil driver boards are complete and have been tested. Modification for all 4 sat amp have been completed. Ideally, I would like to finish all the chassis on Monday I have one just about done.
Finished all 3 Coil Drover chassis and power lines still need to install the rear cables will do that after I finish Sat Amp chassis tomorrow.
I have finished all coil driver and sat amp chassis they all seem to be functioning properly.
Just a general update of what I have been up to deriving Lagrange for double pendulum system and also been looking at code that koji gave to me I've add comment to some of the code also working on my report.
we have 23 OSEMS they look all full built and I will try and test them this week and or next week.
Sat amp seems to be working just fine. There does seem to be a saturation issue with one of the outputs we may need to change a resistor on the board.
In the following test, a single Sat Amp chassis that holds Sat Amp Board S1106078 and S1106077
Verification of Sat Amp
First, as the test of the LED driver circuits in the chassis, 8 of various color LEDs were inserted to the appropriate output pins of the chassis. This resulted in all the LED lit and the LED mon TP was confirmed to have voltage outputs of 5V. (See my previous ELOG)
Connected OSEMs to the sat amp to test the OSEM LED/PD pairs. With the first test, the PD out gave us 15V. We wondered if this was just the problem of the OSEM or circuit, or just there are too much light for the transimpedance gain of 121K Ohm.
By blocking the OSEM light by a random heat shrink tube found on the table, we saw the number got reduced. This indicates that the OSEM/Satamp outputs are working and there are just too much light.
We decided to reduce the gain: The transimpedance gain R18 was reduced to 16k, which gave us a voltage range from 5V~7V with some outlier OSEMS at 1V (See the attached table)
There are 24 total OSEMs:
(These numbers given after the change of R18 to 16k Ohm)
Note: We originally aimed for 8~9V. However, from a previous study of OSEM at cryogenic temperature, we learned that there was about an about 30% increase in the response.
Therefore, we decided to leave a sufficient margin from 10V considering this expected increase in the response.
- Changes to sat amp 15.8 k ohm resistors instead of 16k The change has been made on Sat Amp - S1103733 & S1103732 ONLY Channel 4 and 2 have been changed on both boards.
- I developed a test bed for our OSEM to measure force
I will attach images of the setup and some of the results from 3 different OSEMs.
- For the current test bed, we are using a clear plastic bin although not ideal it manages to get the job done and works for now there could be a better solution for this,
- Next step for OSEM we want to use 40 m single pendulum to test OSEM and measure the transfer function.
Attached is a cartoon partial view into the heat load experienced by the Mariner assembly.
The omnigraffle file with more explicit arrow labelling in the 'layers' tab is available here. The dashed red lines along to top represent vacuum chamber radiation incident on all sides of the OS/IS, not just from the top. Off picture to the right is the BS, left is the beam tube/ETM chamber -- hence the lower absored laser power (solid line) absorbtion (PR power + no HR coating absorption).
Missing or wrong
*Note: the current modeling script can be found at: CryoEngineering/MarinerCooldownEstimation.ipynb
Nina pointed me to the current mariner cooldown estimation script (path above) and we have since met a few times to discuss upgrades/changes. Nina's hand calculations were mostly consistent with the existing model, so minimal changes were necessary. The material properties and geometric parameters of the TM and snout were updated to the values recently verified by Nina. To summarize, the model considers the following heat sources onto the testmass (Pin):
- laser absorption by ITM bulk (function of incident laser power, PR gain, and bulk absorption)
- laser absorption by ITM HR coating (function of incident laser power and HR coating absorption)
- radiative heating from room-temp tube snout (function of snout radius and length, and TM radius)
The heat transfer out of the testmass (Pout) is simply the sum of the radiative heat emitted by the HR and AR faces and the barrel. Note that the script currently assumes an inner shield T of 77K, and the inner/outer shield geometric parameters need to be obtained/verified.
Nina and Paco have been working towards obtaining tabulated emissivity data as a function of temperature and wavelength. In the meantime, I created the framework to import this tabulated data, use cubic spline interpolation, and return temperature-dependent emissivities. It should be straightforward to incorporate the emissivity data once it is available. Currently, the script uses room-temperature values for the emissivities of various materials.
- Incorporate tabulated emissivity data
- Verify and update inner/outer shield dimensions
How about a diagram so that we can understand what this model includes?
Attachment 1 is a geometric diagram that reflects the current state of the ITM cooldown model, introduced in . The inner shield is assumed to be held at 77K for simplicity, and 2 heat sources are considered: laser heating, and radiative heating from the room-temperature snout opening. The view factor Fij between the snout opening and test mass (modeled as 2 coaxial parallel discs separated by length L - equation found in Cengel Heat Transfer) is calculated to be 0.022. The parameters used in the model are noted in the figure.
Attachment 2 is a simplified diagram that includes the heating/cooling links to the test mass. At 123K, the radiative cooling power from the inner shield (at 77K) is 161 mW. The radiative heating from the snout opening is 35 mW, and the laser heating (constant) is 101.5 mW. Due to the tiny view factor betwen the snout opening and the test mass, most of the heat emitted by the opening does not get absorbed.
The magnitudes of heating and cooling power can be seen in Attachment 3. Lastly, Attachment 4 plots the final cooldown curve given this model.
My next step is to add the outer shield and fix its temperature, and then determine the optimal size/location of the inner shield to maximize cooling of the test mass. This is question was posed by Koji in order to inform inner shield/outer shield geometric specs. Then, I will add a cold finger and cryo cooler (conductive cooling). Diagrams will be updated/posted accordingly.
Building on , I added a copper cold finger to conductively cool the inner shield, instead of holding the inner shield fixed at 77K. The cold finger draws cooling power from a cyro cooler or "cold bath" held at 60K, for simplicity. I added an outer shield and set its temperature to 100K. The outer shield supplies some radiative heating to the inner shield, but blocks out 295K heating, which is what we want. The expanded diagram can be seen in Attachment 1.
I wanted to find the optimal choice of inner shield area (AIS) to maximize the radiative cooling to the test mass. I chose 5 values for AIS (from ATM to AOS) and plotted the test mass cooldown for each in Attachment 2. The radiative coupling between the inner shield and test mass is maximized when the ratio of the areas, ATM/AIS, is minimized. Therefore, the larger AIS, the colder the test mass can be cooled. Even though choosing AIS close to AOS increases the coupling between the 2 shields, the resulting heating from the outer shield is negligible compared to the enhancement in cooling.
I chose AIS = 0.22 m2 to model the inner shield and test mass cooldown in Attachment 3. The test mass reaches 123 K at ~ 125 hours, or a little over 5 days. I have pushed the updated script which can be found under mariner40/CryoEngineering/MarinerCooldownEstimation.ipynb.
I used the same model in  to consider how test mass length affects the cooldown. Attachment 1 plots the curves for TM length=100mm and 150mm. The coupling between the test mass and inner shield is proportional to the area of the test mass, and therefore increases with increasing length. Choosing l=100mm (compared to 150mm) thus reduces the radiative cooling of the test mass. The cooldown time to 123K is ~125 hrs or over 5 days for TM length=150mm (unchanged from ), but choosing TM length=100m increases this time to ~170 hrs or ~7 days. (Note that these times/curves are derived from choosing an arbitrary inner shield area of 0.22 m2, but the relative times should stay roughly consistent with different IS area choices.)
I reran the cooldown model, setting the emissivity of the inner surface of the inner shield to 0.7 (coating), and the emissivity of the outer surface to 0.03 (polished Al). Previously, the value for both surfaces was set to 0.3 (rough aluminum).
Attachment 1: TM cooldown, varying area of the inner shield. Now, the marginal improvement in cooldown once the IS area reaches 0.22 m2 is negligible. Cooldown time to 123K is ~100 hrs, just over 4 days. I've kept IS area set to 0.22 m2 moving forward.
Attachment 2: TM/IS cooldown, considering 2 lengths for the test mass. Choosing l=100m instead of 150mm increases cooldown time from ~100 hrs to ~145 hrs, or 6 days.
Here I describe the current radiative cooldown model for a Mariner test mass, using parameters from the most recent CAD model. A diagram of all conductive and radiative links can be seen in Attachment 1. Below are some distilled key points:
All parameters have been taken from CAD, with the exception of:
Attachment 2 contains the cooldown curves for the system components. With the above assumptions, the test mass takes ~59hrs to reach 123K, and the final steady-state temperature is 96K. (*This was edited - found a bug in previous iteration of code that underestimated the TM cooldown time constant and incorrectly concluded ~36hrs to reach 123K. The figures have been updated accordingly.)
Attachment 3-6 are power budgets for major components: TM, IS, Cage, OS (can produce for UM if there's interest). For each, the top plot shows the total heating and cooling power delivered to the component, and the bottom plot separates the heating into individual heat loads. I'll discuss these below:
The next post will describe optimization of the snout length/radius for cooldown.
Here is a more detailed analysis of varying the length and radius of the snout.
Attachment 1 plots the heat load (W) from the snout opening as a function of temperature, for different combinations of snout length and radius. The model using the CAD snout parameters (length=0.67m end-to-end; radius=5.08cm) results in ~0.3W of heat load at steady state. The plot shows that the largest marginal reduction in heat load is achieved by doubling the length of the snout (green curve), which cuts the heat load by over a factor of 2/3. This validates the choice in snout length used in the previous ELOG entry analysis. The bottom line is that the end-to-end snout length should be on the order of 1 meter, if physically possible.
The next marginal improvement comes from reducing the radius of the snout. Attachment 1 considers reducing the radius by a half in addition to doubling the length (red curve). A snout radius of an inch is quite small and might not be feasible within system constraints, but it would reduce the snout heat load to only 25mW at steady state (along with length doubling).
The cooldown model resulting from optimizing parameters of the snout (length=1.33m, radius=2.54cm) is shown in Attachment 2. The test mass reaches 123K in ~57hrs - only 2 hours faster than the case where only the snout length is doubled (see previous ELOG entry) - and the test mass reaches steady state at 92K - only 6K colder than in the previous case. This could discourage efforts to reduce the radius of the snout at all, since increasing the length provides the most marginal gains.
The attached plot (upper) compares the heat load delivered to the test mass from various snout lengths (end to end), as a function of test mass temperature. (At steady state, our point of interest is 123K.) Note that these curves use the original CAD snout radius of 5.08cm (2").
The greatest marginal reduction in heat load comes from increasing the end-to-end snout length to 1m, as concluded in the prevous ELOG. This drops the heat load from just under 0.5W (from snout length 0.5m) to 0.15W. Further increase in snout length to 1.5m drops the heat load to well under 0.1W. After this point, we get diminishing marginal benefit for increase in snout length.
The effect on the TM cooldown curve can be seen in the lower plot. A snout length of 1m drops the steady-state TM temperature to under 100K. Then, like above, increasing the length to 1.5m makes the next non-negligible impact.
For our optical contacting, Jennifer and I are starting out with glass (microscope slides), with the setup in the EE shop next to the drill press (photos from Jennifer to follow).
Some interesting links:
This was performed last Friday (7/8).
I secured a thermocouple perpendicular against the hotplate and recorded the maximum temperature the hotplate reached at Low, Medium, and High. It took about 5 minutes to reach a stable temperature, where stable means that the temperature stayed within +/- 0.5°C for a minute. The hotplate maintains a certain temperature by turning itself on and off, so the temperature would drop slightly (at most, a few °C) while the hotplate was off. The maximums were:
At the max temperature, I moved the perpendicular thermocouple around to roughly find the variation in tempearture at different locations on the hotplate. Facing the nob, the top right quadrant is about 10-20°C cooler than the other quadrants, which are within 5°C of eachother. Excluding the cooler quandrant, the center and the outer edge are within 5°C of eachother. The temperature increases as one approaches half the radius, with it being about 20-40°C greater than the center and outer edge. The highest recorded temparture was 289°C at half the radius in the bottom left quandrant. This was only meant to be a rough test to see how even the heating is.
Note that the slides have "GLOBE" printed on one side. I always bond the opposite using the opposite side without the text.
On Monday (7/11), I began experimenting with bonding, starting with "air-bonding," which is trying to make dry, gently cleaned slides stick. I achieved my first succesful optical contact with what I call "acidental water-assisted direct bonding" or "water-bonding," where I accidentally clasped two wet slides together while washing my dirty finger prints off them. After the accidental discovery, I repeated it by running water over the slides while there were clasped together and achieved the same result. After a few hours, I attempted partially sliding apart the second water-bonded sample. I could slowly push them apart by pressing my thumbs against the long edge, but it took quite a bit of force. I decided to let 4 samples sit overnight: 1 air-bonded, 1 air-bonded with the brass hunk on top of it, and 2 water-bonded. Neither time nor pressure improved the air-bonded samples as they still slid apart very easily. The first water-bonded sample slid apart easier, but one part remained stubornly attached until I began shaking it violently. The second water-bonded sample was much harder to slide apart than the last time I tested it. With all the force of my fingers, I could barely make it budge.
Note that I am just testing out different techniques, so I have not set up the thermocouples to precisely measure the temperatue.
On Tuesday, I developed a new method of putting water, isopropanol, or methanol on one slide then squishing the other slide on top of it to fill the gap with the afformentioned liquid. The slides are slippery at first, but as they dried, which took about 15 minutes, the bond forms. The bonds were strong enough that I could just barely push the slides appart by applying pressure to the side using my thumbs. I prepared 4 samples this way, 2 with iso and 2 with meth. I took one of each and heated them on Medium for 30 minutes under the brass hunk with the aluminum square on the bottom and copper foil on both sides of the samples. Earlier in the day, I tried heating them without the weight on top, but the heat just broke the bond. I took the remain two and set them aside as controls.
On Thursday, I returned to check the bonds. The heated samples had broken. I intented to check on Wednesday, but I was sick from food poisoning, so I do not know whether the bonds broke immediately after heating or due to sitting for an extra day. For the control samples, one also had a broken bond, but the other had become even stronger.
I noticed that, when the slides are successfully bonded, the shape and appearance of the Newton's rings change, which can be seen in the pictures. I speculate that the circles on the unbroken control are the bonded regions. Ideally, we want to see no Newton's rings.
I have found that, after cleaning the glass with methanol (or even sometimes with just a dry lense-cleaning cloth), I can get glass slides to bond by rappidly rubbing them together until something sticks. This was inspired by watching "Wizard of Vaz" perform bonds on YoutTube. While cleaning, I now use enough strength to make the glass squeak, as advised by him.
Upon heating, I encountered the same issue as when I bonded them by putting a liquid (water, methanol, etc.) in the gap, which leads me to now believe that the broken bond is not due to the expansion of a liquid. Further, even at the low temperature of 60°C, placing the liquid-less sample on the hotplate breaks the bond in seconds, which I caught on video. In the attached video*, you can see that, before the heat, the bond is strong enough that I cannot push it appart with my fingers, but after the heat, it slides easily. Note that, outside of taking the video, I always lay the entire slide on the center of the metal so the sample is evenly heated.
*This is my first time attaching a video. If it didn't attach properly, I'll add it on to a later log. I also want to record myself performing the rubbing bonding technique.
Yesterday, I did two rounds of slowly heating 4 samples to the maximum hot plate temperature. This was to formally test if my success with a single sample earlier in the week was a fluke. Note that the hot plate takes about 10-15 minutes to reach a stable temperature when it is turned up one notch.
I bonded 4 samples by putting methanol in the gap between the glass slides and letting it dry to create a gap.
Starting at room temperature, I heated the slides on each setting for roughly 15 minutes, then let them cool down naturally over the course of an hour. 3 broke broke at medium heat, and 1 survived the whole process. I belive these broke because the bonds were weaker and I heated them slightly too quickly. In previous tests, I would manually switch the hot plate on and off, but I wanted to see if the hot plate could heat up slow enough on its own.
I bonded 4 samples by scrubbing the slides with methanol, using a compressed air duster to blow off the fibers, rubbing them together with the pressure of my fingers, and repeating this whole procedure until they stuck (it took 2-4 repeats).
Starting at room temperature, I heated the slides on each setting for exactly 20 minutes, then let them cool down naturally over the course of an hour. All of them survived to the maximum temperature (the pictures show them at the start and end of the heating, note the temperature). I credit this to the stronger bonding proceedure and the extra 5 minutes for them to adjust to the temperature. I did not turn the hot plate on or off at any point, I just let it heat up at its own rate.
I cannot tell if the bonds are stronger. The size and shape of the Newtons rings did not change.
We succeeded in setting up an apparatus for quantifiying the razor blade test. After mounting the glass slides such that the razor edge rested against the gap, we slowly turned the knob to push the blade into the gap. We started with the knob at 0.111, and at 0.757, the bond between the glass slides failed. As we approached 0.757, the interference pattern in the glass shifted, foreshadowing the break.
(Edit by Koji. This 0.757 is 0.0757 I suppose...? And the unit is in inch)
Pictures of the razor test apparatus before and after disassembly, to make future reassembly easier.
While finalizing my work plan for the quarter, I decided to look at the Thor Lab slides. This was instructive because they highlighted the troubles I will have with working with silicone. They are fragile and their small, thin sizes makes cleaning and manipulating them (without contamination) much more difficult compared to the glass sides from before.
I tried cleaning and bonding them the same way as the larger slides. Rubbing them together did not work like with the larger sides, but that may also be a function of being more careful, as not to break them. Once I cleaned them, it only took a tap from my finger to get the center to bond, but the bonded surface area still did not spread out like it did in the YouTube videos (http://youtu.be/se3K_MWR488?t=80). By pressing down around the bonded area, I could expand it slighty. Note that I did crack one slide in the process of doing this, as shown in the pictures.
Because the slides are so thin, I think they will benefit greatly from being left under a heavy object, although it may be difficult to put the weight on the slides without them breaking.
Continuining with my casual exploration of the Thor Lab slides, I heated them from off --> low --> med --> high, with 10 minutes on each setting. The only pressure I applied was 3 larger glass slides, and that was only to flatten out the copper that the smaller, bonded slides sat on top of (so the contact with the heating plate was even).
The heat made the bonded area smaller, but it did not break. As the slides cooled, the bond area increased slightly but not back to the original size. Next I will try this with slower heating and additional pressure.
Given that these glass slides are much thinner than the ones I worked with prior, I suspected they would be more receptive to pressure. I decided to replicate the tests I performed with the larger slides: I prepared 8 samples, 4 by smushing the slides together with methanol in the middle and another 4 by cleaning the slides with methanol before pressing them together with my fingers. I put 2 of each type under the cylindrical weight, and 2 of each type under the rectangular weight with the addition of heating. The heating consisted of switching the temperature from off --> low --> med --> high with 15 minutes on each setting.
I will check the results in the morning. I need to wait until the rectangular weight is completely cooled, otherwise I cannot remove it from the hot plate in manner that does not risk cracking the glass.
The first sample picture shows the pressed slides on the top and the smushed slides on the bottom. For the second picture, this is reveresed. Correction: the order is the same for both samples.
These are the results from the previous log.
At long last, there was an improvement with pressure and heat! Pressure without heat and pressure with heat both showed a small improvement. Although the improvement was not major, it does show that pursuing this method of adding weight and heat are viable. Since this was a test, I put less weight on and heated it fast than intended, but now I feel confident to add more weight and slower/greater amounts of heat.
Before jumping to conclusions based on my previous results, I wanted to check that it was indeed heat and pressure, not time, that led to the bonds improving.
I prepared 4 samples, all with my standard pressing technique (which still leaves room for improvement). 2 samples will simply be left to sit undisturbed, and the other 2 will be left under both (rectangular and cylindrical) weights. I will check these in roughly 24 hours, just like the last test.
The 2 slides on the right are the ones under the weights.
I was unable to check the samples because I could not get access to Bridge, so they will be checked tomorrow and the results will be added as an edit to this log.
Given that I was unable to do work in the lab, I instead began a second attempt at writing code for the Arduino to use PWM to control the hot plate temperature.
As expected, the suface area of the bond only increased for the samples under the weights. I did notice something worrying: one of the non-weighted samples actually had its surface area decrease. It is unclear if this is a one-time thing or if all of the bonds deteriorate with time. Unrelated, but I also noticed that the bonded areas always have small dots that refuse to bond. It's unclear if that is due to imperfections or contamination (I suspect the latter).
I left all 4 samples under both weights out of curiosity to see if the bonded surface area would increase further (or possibly decrese further).
I wrote a program to control the heating rate of the hot plate using Pulse Width Modulation (PWM), and it was a great success!
For roughly 6 minutes, the hot plate was power cycled with a rate of 100 ms on followed by 900 ms off. Based on my calculations, this should correspond to a 0.08°C/sec temperature increase. In other terms, we expect a 24°C increase in the span of 5 minutes. For comparision, without PWM, the hot plate heats up roughly 100°C in that same timespan. I recorded the temperature by filming a thermometer and transcribing that video into a text file, which could be analyzed and graphed. I only transcribed the first 5 minutes of the 17 minute video (I also filmed part of the cool down) because 5 minutes was enough to show clear results.
At t=0, the hot plate was 21.4°C, and at t=300, the hot plate was 49.7°C. That is a 28.3°C increase in the span of 5 minutes, only 4.3°C higher than the predicted value. The rate, 0.094°C/sec, is only slightly faster than the desired 0.08°C/sec. Further, as shown in the graph, the temperature increase was almost perfectly linear, which is ideal. Overall, using an Arduino to PWM the hot plate is looking very promising.
I repeated the first test, but let the hot plate run longer. It revealed that the linearity for the lower temperatures completely falls apart at the higher temperatures. I think it should be fairly straightforward to modify the code to accommodate this.
The previous test was cycled with 0.3s on follwed by 0.7s off*. This test was 0.7s on followed by 0.3s off. I intended to let it run longer, but I accidetly knocked the thermocouple over while trying to move the cable father from the hot plate so the plastic would not risk melting.
Like before, we see that it starts out relatively linear. I noticed the heating light kind of fluttering around 200°C which appeared in the data as a small decrease around 450s on the graph. I do not know the source of this issue, but I fear it may be the hot plate overriding my cycling with its own built-in cycle; something left for future testing. This is the last data I will gather using v1 of my Arduino code, as am I now working on implementing what I have learned in a smarter v2 of the code. I included v1 of the code, and the txt files for the first three tests.
*I think. Could have been 0.1 on, 0.9 off. Note to self: double check this.
I had a little set back regarding the non-linear portion of the heating. After about 150°C, if the heating rate is kept constant, the heating graph transitions from linear to logarithmic. I was able to show graphically that, yes, it is indeed logarithmic, but I could not think of an algorithmic way to translate this logarithmic curve into the increase in heating rate to maintain a linear heating rate. I do have some ideas which I will test tomorrow.
I had some trouble with the code not working as intended (partially because it has been I while since I coded in C++). However, I was able to run two tests with the new code, although I ran out of time to type up the data for the 2nd. Graphing the 1st test's data, it appears that my improved code is an improvement, but the heating is still slowing down as it approaches 200°C. I need to re-run this test, but with v1 of the code, for better comparison.
The hot plate was supposed to increase 180°C in 10 minutes (so that I would reach 200°C), but due to an inscrutable bug, it did not exit the while loop, so it continued past 10 minutes.
For the following two graphs, I ram four tests: two using the the v1 of the PWM code and two using v2 of the PWM code. The graphs show the heating rate I was aiming for and the actual results. It turns out, my v2 does not work better than my v1. Before 150°C (which is where I believed that (assuming the rate is kept constantly) the heating rate shifted from linear to logarithmic), v1 is an overshoot and v2 is slightly less of an overshoot. The goal of v2 was to increase the rate after 150°C to compensate for this drop off, but it does not appear to have worked.
While I would still like to refine my code, I think it will be good enough to try using it to actually heat the samples.
Before trying the PWM on actual samples, I wanted to make one final attempt at improving my code (labled as v2.1). This change appears to have 1) broken the code regulating the basic heat cycling process 2) caused the hot plate to heat up far, far too quick. Since the thermometer strangely turned off halfway through, I only have two pictures as evidence that this test existed: a screenshot of the Arduino program telling me that the max cycle rate had been reached (which should have not happened) and a frame from the video filming the thermometer showing the peak temperature (which is 100°C high than expected). Somehow the hot plate reached over 300°C, which I thought was impossible because the hot plate's built-in heat cycle should have kicked in around 260°C. Unrelated, but I am performing this test in my dorm room because I was quarentined due to COVID exposure, and I like using my personal fan and the house's freezer to cool down the hot plate quicker.
I made some adjustments (labled as v2.2), and I had the same failure as v2.1, except I managed to capture it on camera.
Finally, with v2.3, I managed to fix all the issues. I ran out time today to transcribe the temperatures for graphing, but this itteration of the code managed to reach 200°C in 10 and 7 minutes for test #1 and #2, respectively. I also managed to fix the problem of the hot plate not turning off after the desired heating time. The real test will be trying a slower heating time, like 20 minutes, but I am glad I postponed using actual samples because this fix has given me code that appears to work exactly as I hoped.
Here are the graphed results from yesterday's tests, both by themselves and overlayed with the previous tests. I am satisfied with my code; it has given me the (roughly) linear heat increase that I desired. The only last thing I would like to test is heating over a signficantly slower time.
I tried increasing the temperature by 180°C over 20 minutes. As suspected, it did not quite reach the target temperature because the temperature started to drop off around 100°C instead of 150°C, as the program expected. This should be an easy adjustment, since it is just a matter of increasing the duration of the cycle at an earlier time.
My two corrections ended up being huge overshoots. The drop off time (100°C) is correct, but the default rate increase that worked in the other cases is not working at all here.
The goal of "v2.X test #3" is to heat the hot plate to 200°C over the course of 20 minutes, and with v2.6, I have effectively succeeded. There will likely be more issues once I try, for example, to heat the hot plate to 300°C over the course of 60 minutes, but for now, I want to stick with lower temps and shorter times while I work out the kinks. Now that I understand the difficulties of PWMing a hot plate, adapting the code to combat future issues should be straightforward.
To summarize my code, I control the heating rate by cycling the hot plate's power on and off for some % of 1000ms. In other words, the hot plate is on 300ms then off 700ms then on 300ms etc., where the relation between target heating rate and hot plate on time is based on previously gathered data. This produces a nice, linear(ish) temperature increase up until a certain temperature, at which point it plateaus. In the previous versions, the way I compensated for this was by increasing the on time by 5ms for every cycle after 150°C. This did not work for slower heating rates, so the newer versions changed this by making the 5ms and 150°C varry depending on the target heating rate. The exact value is a linear extrapoliation from previous data. This is imperfect, but I do not think perfection will ever be possible with the current equipent, and I think I have reached something good enough that now I can finally apply it to my optically contacted samples.
Since I have finished this "stage" of work, for completeness, I am including all of the code, data*, and graphs involved so far.
*the .txt data files are in the cycle_vX_graphs folders; these folders also have the Jupyter notebooks I used for graphing the data
I realized that, after changing so much from v2.3 to 6, I should check that my first two tests produce correct results with the latest version. This was good because all three tests turned out to be innaccurate, as they were all short roughly 10°C. However, they were very precise. For all three, the final temperature was 193.15±1.5°C.
Since I was focusing on the hot plate code and therefore did not need my weights, I decided to leave them on top of my samples for roughly 2 weeks.
It appears that an increased amount of time under pressure does not result in any noticable differences. A slight increase in surface area (SA) in two places, and a slight decrease in SA in another place, but overall no change. Note that "(initally)" in the picture below refers to http://nodus.ligo.caltech.edu:8081/Mariner/89.
Now that I have (relatively) good PWM code, I wanted to do my first real test with actual samples. Since everything went smoothly, I will now work on building the original set up for the project, which included attaching thermocouples to two plates so we could precisely measure the heat between them.
As you can see in the pictures below, I am running an Arduino off of my laptop which controls an AC/DC control replay that turns the AC power to the hot plate on and off.
Firstly, last night's heating did not change the contacted surface area greatly, but there is too many factors to speculate as to why that is the case. I leave that for future testing.
I attached the thermocouples by adhering them to the two aluminum plates. I was careful to make sure that the thermocouple was in the dead center of the aluminum plate. The other end of the thermocouples—exposed positive and negative wires—were screwed into the K Type connector so they can be plugged into the thermometer/multimeter. Taking the average between the top and bottom plate will give a more precise estimate of the temperature of the samples.
I intended to test the new thermocouple set up today, but when I plugged them in, both did not read a temperature. It took me a long time to figure out what went wrong: when installing the K Type thermocouple connector, the wires of the thermocouple need to be pushed in as far in as possible, otherwise the circuit would not be completed. It took a lot of trial and error to figure this out. I first created a test "circuit" with wire and a resistor to make sure that the connector itself was not broken. Then I carefully observed how moving the wires in different places affected the reading.
Once I did carefully reassemble the thermocouples, they worked perfectly, as indicated by the non-zero current. I ran tests with my three thermocouples and two devices to see how precise the temperature reading is. The results are below and pictures of the readings can be found in the zip file. I cannot explain why one of the adhered thermocouples is hotter than the other.
Plate #1 and 2 refers to the two different aluminum plates. T1 and T2 refers to the two ports on the Digital Thermometer 343. It cannot read two thermocouples simultaneously (as far as I can tell); it's so one can be used as a baseline/reference value for the other.
Since the two devices are giving different temperature readings, I would like to find out if this imprecision is linear (e.g. they are always 3°C off, so I just need to add/subtract 3°C after taking the measurements). If not, some sort of calibration is probably required. I decided to figure this out by running the heating tests I did before, but this time with the plates. This also serves as a test to see how the plates heat up.
Or rather, this is what I would have done, had I not realized that the thermometers were going down as the heat was increaing, meaning I had switched the polarity for both thermocouples. It turns out that this mix-up is a common mistake. I thought that I double checked that red was positive for thermocouples, but it is in fact not:
"red is the usual color for positive charges, whereas the red wire in thermocouple cables typically contains the negative signal. This coloration is ANSI standard for thermocouples, but it is not what most people expect."
I performed the same tests I have been doing prior (+180°C in 10 minutes) but now with the (correctly wired) thermocouples attached to the metal plates. The top plate is thermocouple #1 attached to the Fluke and the bottom plate is thermocouple #2 attached to the TPI (the lime green one).
The base heating rate for the new set up will require some tweaking to the code because the plates heat up much slower, but as I have mentioned previously, I do not think this will require a lot of extra work since I now know the tips and tricks to PWMing the hot plate. The only difficulty might come from the increase in hysteresis (i.e. the plates continue to increase in the temperature long after it turns off). For future tests, I need to remember to continue recording the temperature after program finishes its 10 min cycle.
On the positive, I think this test shows that taking the average of the two thermocouples to find the temperature in the center (where the optically contacted samples are) is a worthwhile endevor, considering how much the top plate lags behind the bottom plate in terms of heating speed.