All good things must come to an end...

...but the next experience awaits!

External User Interface

External User Interface

It’s all over! We had our presentation and demonstration this past Wednesday and we all thought it went great. In the days before the presentation, Les and Justin had time to put together a user interface using an LCD screen, a potentiometer, and a few buttons. This interface allows the user to select between three controllers (Hysteresis, PID, Modal), view and set the reference temperature and shock temperature, and choose the gains for the PID controller. Because it is no longer necessary to use a laptop to change the relevant parameters, the interface should make it much easier for future groups to control shock temperature. We’ll be writing a manual for the whole system in the next couple days and donating the hardware to Hesse Hall in hopes that future groups will be able to run the shock at constant temperature.

We’re all off to the next stage of our lives in a couple weeks, but this project will definitely be one to remember because of our positive results and the friendships that were made along the way.

Thanks Spencer and Alex for all thee help and encouragement this semester!
The Hot Shocks learned a lot and had fun along the way. We couldn't have done it with out you guys.

Thanks for reading!
-The Hot Shocks


Final Report


Final Presentation

The Final Lab!

SUMMARY

Finalized Box

Finalized Box

This week was the last lab for The Hot Shocks. After realizing we hadn’t collected force and temperature data without the heater and with the updated LabVIEW VI, we ran tests at 30 and 90 RPM with no heat addition. Afterwards, we tested out Eric’s PID controller. The controller works, but the gains need to be tuned in order to optimize its respontse. The PID controller is currently not as effective as the hysteresis controller, for several reasons. First, the proportional gain on the controller was too low and it was not ramping up quickly enough. Second, the integral term was contributing significantly to the input during the ramp-up phase, which means it was including terms that were not actually error but merely part of the transient response. We eventually tuned the gains to work well, but this implementation was still not as effective as the hysteresis controller, both because it took longer and because it had greater temperature ripple in steady-state. We believe that a hybrid controller incorporating both hysteresis and PID modes would be the ideal controller for this system - the hysteresis controller would keep system response fast, while the PID would help it maintain a better steady-state temperature, reducing over- and undershoot.

PID Controller Test

At the end of lab, we received thoughtful and valuable advice from our GSI, Spencer, about the transition from undergraduate studies into industry or graduate school. As we move on to bigger, and hopefully better, things, we will always have Spencer’s tips to refer back on. In the coming days, we will work to improve the controller’s user interface, write our final report, and prepare for our presentations to the GSI’s and our classmates next week.

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

This week in lab, we focused on data collection and testing the various controllers we have designed. In the coming days, I plan to design a new piece of hardware to act as a dial for the temperature setpoint. We purchased a small LCD screen from Jacob’s hall, and we plan on laser cutting a small piece of wood to hold the LCD screen and the potentiometer to make the Hot Shocks Hot Box look more visually appealing. I also plan on working on data analysis with some others in our group on Sunday or Monday so that we can use the data to officially verify the functionality of our controller.

This lab has been a great experience this semester. I think the Shock Dyno lab offered something for everyone in our group. Personally, I enjoyed considering the fluid dynamics aspect of the shock dyno, while others spent more time focusing on the control system and data analysis. I appreciate that this lab allowed all of us to explore different aspects of mechanical engineering in which we were most interested.

TURNER

After working a little more on the final report last week, I realized that we didn’t quite have all the data we needed to confirm the improvements from our heaters. Because of this, we started the lab by taking data for force and temperature vs. time with no heat addition with the updated LabVIEW VI. Once again, I manned the workstation while tests were being run to ensure that data was collected and exported correctly. I’m a little sad that my time with the Hot Shocks’ is coming to an end, but I’m very proud of what we accomplished this semester and I’m happy to have forged closer friendships with all my teammates. I’m looking forward to reports and presentations next week so we can show our GSI’s and classmates what we’ve done!

LES

This week I worked with Eric on tuning the PID controller. We found that it is not as effective as the hysteresis controller in stabilizing temperature - I would hypothesize this is because the integral term accumulates too much error during the ramp-up phase and causes the system to overshoot. We were able to compensate for this by reducing the integral gain, but this renders the system less effective at reducing steady-state error and effectively makes the integral term a moot point. An ideal controller for this would be a nonlinear hybrid controller that operates in hysteresis mode when outside of a small range about the reference temperature, and switches to PID mode when it gets close to the reference temperature. This would speed up system response in both the ramp-up region and the steady-state region, and I believe it would improve our controller’s effectiveness by reducing temperature ripple. This weekend I will be working on an LCD and analog interface that allows the user to see the current temperature, the reference temperature, and the PID gain values. This system will also have dials that allow the user to adjust reference temperature and PID gains without having to reprogram the Arduino. By next Wednesday, the system will be able to run independently. It will also incorporate a switch that allows us to turn the heater on and off while leaving the power supply plugged in - currently we have to unplug the power supply to turn the heater off, which is very inconvenient for normal operation. Lastly, I had originally hoped to remove the microcontroller from the system and make it a PID controller, but implementing an LCD requires the use of a microcontroller. If I have time, I may still attempt to transfer some parts of control to hardware, where the signals (especially integral and derivative terms) will be less noisy and more reliable than in the Arduino.

CHRISTY

This week in lab I helped gather data with the rest of my group. In order to make sure that we have enough data to compare, we took a couple more tests without the controller so that we can analyze the difference that the controller makes on the force output. We also tested Eric’s PID controller which is a good reference for future adjustments of this project. I have worked on both the presentation and the final report in this past week and will continue to do so. It is also time for more cupcakes.

ERIC

This week we ran some of the PID tunings and custom PID controller that we had written.  Unfortunately we had some software issues with the custom PWM signal.  Additional controller tuning and system modeling would be required.

JUSTIN

Before lab, I lasercut an acrylic flame logo to finish the hot box. This allows the indicator light to stay inside the box and the light can be viewed through the acrylic. During lab I helped collect data that I plan on analyzing during the next couple days for the final report and presentation. I also plan on helping Les integrate an LCD screen for the box to display the temperature setpoint without the need for a computer.

 

 

Lower Bound Testing

SUMMARY

The Hot Box

The Hot Box

This week we were able to streamline our hardware setup because of the “Hot Shocks’ Hot Box,” designed and laser cut by Justin. With 5W oil in the shock, we established maximum, minimum and optimal temperature set points for shock operation at different RPMs and verified that the hysteresis controller works under varying conditions. Our maximum operating temperature was determined to be 80℃ based on the potential operating temperature for an actual shock and because of issues Alex had with shock modifications for the next lab group when the oil was beyond 80℃.

As can be seen in the figure below, our controller stabilizes the forces within the shock by forcing decreasing the time required for the oil to reach steady state temperature. Once the oil has reached the set temperature, the forces have much less variation, which was one of our original goals.

Force(green) and Temperature(blue) vs. Time

Next week is our final week in lab, and we are hoping to test Eric’s PID controller, which could decrease the slight temperature ripples that have been present in recent tests at lower RPMs. We are also hoping to implement a version of the hysteresis controller that does not involve a micro-controller so that future groups can utilize our system more easily. Although we will miss our time together in lab, we are very happy with everything we have accomplished so far and are looking forward to collecting as much data as possible next week.

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

This week I worked with Les, Turner, Justin, and Christy to characterize the optimal setpoint for 30 and 90 RPM. We attempted to not only determine the optimal setpoint, but also estimate minimum and maximum set points for the given RPMs.

Additionally, for next week, Justin and I are working on creating a panel within the box for a potentiometer. The potentiometer will be used to easily adjust the temperature setpoint. Currently to adjust the setpoint, we have to adjust the arduino code, and re-upload it to the arduino. Using the potentiometer, we can simply program the arduino to read the voltage input from the potentiometer, and map that value to a given temperature. This is a more realistic user friendly option. We will laser cut the panel so that it fits within the box.

TURNER

Before lab this week, I edited the LabView VI to display plots of oil pressure and nitrogen pressure vs. time. Although we did not export this data after our tests this week, it was interesting to note that, although the pressures increased with temperature, the pressure variations decreased with more constant temperatures. During lab, I ran the LabVIEW VI and helped the rest of the group collect data for maximum, minimum, and optimal set points at different RPMs. In the coming week, I plan to help Les eliminate the Arduino from the hysteresis controller and continue working on the final report. I’ve been very satisfied with the way the Hot Shocks have worked together this semester, and I’m a little sad to see our time in lab come to an end next week.

LES

Circuit diagram for the hysteresis controlle

This week we determined more operating setpoints for the heater, this time with 5W oil at 30 RPM and 90 RPM. We found that the lowest operating temperature for the heater with 5W oil at 30 RPM was 37℃ - coincidentally, the homeostatic temperature of the human body. The upper limits for both 30 and 90 RPM were determined by safety constraints rather than the physical limits. Most of this week’s lab session was data collection, but for next week I plan on having a complete hardware controller developed for the hysteresis thermostat. This new controller will eliminate the Arduino and allow the user to change the reference temperature by adjusting a knob.

CHRISTY

I worked with Justin, Grace, Turner, and Les in lab this week to gather more data about the operation of the controller with 5W oil under different conditions. We began by running the shock at 30 RPM and modifying the temperature set point until we determined the minimum value that allows the controller to function properly. We determined that the lowest that the shock should be set at for 30 RPM is 37℃. We then repeated the process for 90 RPM. Outside of lab, I have been working with Turner on our final report and presentation. Next week, we plan to gather our final data that will help verify the success of our hysteresis controller and test out the functionality of our PID controller.

ERIC

This week I used the characterized model of our shock dyno plant and our PID controller to test different PID tunings in simulation.  From the initial simulations it  became apparent that the integral gain needed to be limited otherwise the control input would saturate.  Several tunings were simulated showing the ability to control for a variety of factors including: rise time, settling time, and percent overshoot.  At Spencer’s suggestion, noise was added to our simulation.  After simulating several different tunings, the steady state error, rise time, settling time, and percent overshoot were analyzed.  These results will be discussed in detail in our final report.

JUSTIN

Before lab this week, I remade the wiring harness to include longer leads for the heaters and a box to contain the setup. In lab it seemed that the setup took much less time because the hardware was already set up in the box and only needed the wires to be plugged in and the heaters to be ziptied to the shock. I’m happy with how the box came out and think it will help the final presentation look better.

Controller Testing

SUMMARY

This week The Hot Shocks ran the dyno with the heaters and hysteresis? control system to verify successful controller operation and determine optimal temperature set points at different RPMs. Once again, the dyno was configured with 20W oil. However, this week we left the compression and rebound  pins fully closed to generate more heat in the shock. Data was collected for 3 different temperature set points at 30 RPM (50C, 70C, and 90C) and 2 temperatures at 90 RPM (70C and 85C). We found that a set point of 70C worked very well for 30 RPM, but we have not yet determined the optimal set point for other RPMs. Using a modified version of the Shock Dyno VI, we could more easily visualize the effects of the heater and control system by plotting temperature and force versus time, rather than extension. A screenshot of the new LabVIEW VI output can be seen below.

New LabView VI

From the above screenshot of 20W, 0C, 0R at 30 RPM, it can be clearly seen that the forces in the shock decrease as the temperature rises. The internal shock temperature and forces reach steady at around 800 seconds, at which point the heaters allow us to keep the oil temperature at around 70 degrees Celsius.  The new VI gives a good visual representation and also allows us to export data to Excel for further processing. The previous VI only saved data from a single cycle of the shock, rather than a continuous data set.

Temperature response

In the figure above, the temperature response can be seen. There is a ripple of 0.8°C (70.5-71.3°C). Temperature set point recorded by the dyno are slightly higher than the set point because of bias errors in our calibration of the thermocouple for the control scheme.

We are also intending on building an enclosure for the system so the setup is less time intensive each week. We are very excited to have a working system and are looking forward to further optimizing the temperature set points for different oil weights and RPMs in the coming weeks.

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

During testing of the controller this week, we considered what set point temperature must be used for various RPMs. Obviously, it is necessary to choose a set point above the shock’s natural steady state temperature at that given RPM since we have no mechanism to cool the shock through our controller. To assist in this, I used the data collected from last week’s lab in order to determine the steady state temperatures for all three RPM values (30,60,90 RPM). Last week, we collected transient temperature data with the heater in place on the shock, but not on. With this data, I found that the steady state temperature for 90,60 and 30 RPM are respectively 94 C, 69 C, and 67 C. It is interesting that the steady state values for 60 RPM and 30 RPM are so close to one another, and I don’t have a specific explanation for this phenomenon at this time, but it is something to think about for next week. Using these steady state values, we now have a more definite place to start for next week’s texting.

TURNER

This week, in addition to spending some time working on the final report with Christy, I finished modifying the LabView VI so that it would output plots of temperature and force versus time. To make the force changes easier to visualize, I added plots of the maximum and minimum force in each cycle. During lab, I manned the computer station and  helped Justin, Christy, and Les collect data. In the next iteration of the VI, I plan on making the plots easier to export to Excel by automating the export process, and I’m hoping to add a plot of maximum force versus oil temperature. It is somewhat difficult to modify the VI outside of Hesse because of the inability to test it without the shock or necessary DAQ software, but hopefully these changes won’t need too much testing. I also plan on making more progress on our final report during the coming week.

LES

This week I worked on characterizing the important operating characteristics of the heater so that future groups will be able to use it safely and effectively within its operational limits. We took data at 30 RPM with a setpoint of 70℃ to evaluate rise time, and let the heater run for about five minutes to determine steady-state temperature ripple - the range of values that the system will oscillate about its set point once it achieves steady-state operation. After collecting the data for those operational parameters, we then attempted to characterize the lowest setpoint that the heater could operate at. This value is equivalent to the steady-state temperature of the shock at 30 RPM with all valves fully open. We collected sufficient data to generate a curve that we will use to determine the asymptote for that configuration. The last piece of data we had time to collect was the maximum safe operating temperature of the heater - the point at which convection cools the shock faster than the heater can supply energy. We weren’t able to reach this point in the time we had left, but we determined that it was probably safest to set an upper limit somewhere in the range of 100-120℃ so that the heater would not exceed its operational limits. I plan to collate this data in a user manual, and next week I’ll be refining it and installing the heater circuit on a protoboard so it is more stable than its current breadboard configuration.

CHRISTY

Outside of lab, Turner and I began working on the final report this week. We are hoping to be able to finish it by the last week of classes. During lab, I worked with Justin, Les, and Turner to collect more data to help characterize the best operation temperature for our controller at various RPM. We also discussed making a box that will hold the solid state relay and wires so that our heating mechanism is more organized. I plan to work on that task this week. We also thought that adding a potentiometer to allow for easy adjustment of operation temperature might be a neat feature if we have time.

ERIC

This week, Grace and I were able to successfully re-characterize the shock dyno system with the heater on.  The new model holds up well in the lower temperature range but starts to deviate from the data once we go above 50 degrees.  This is a direct result of the low fidelity of our model.  Of the three heat terms used in our differential equation we approximated two of them as linear.  I am considering three possible options to deal with this.  The first option is to limit our simulation and analysis the range where our linearized model successfully represents the actual system.  Secondly we can try and increase the fidelity of our model by adding more parameters.  This presents unique challenges computationally and is difficult to justify without a first principles basis.  The final option is characterizing the model in segmented ranges, creating a piecewise model.  I have discussed some of these options with Spencer and will decide on a course of action with the rest of the team.


JUSTIN

I worked with Christy, Les, and Turner this week to collect temperature set point data for the controller. When running the dyno at 30 RPM, 70C seems like a reasonable set point. We attempted 90C but we had to turn off the heater and controller because the heaters were reaching temperatures exceeding 200C. The continuous heat output of the heaters was not enough at 30 RPM to reach 90C. But at 90 RPM, the 70C is too low of a set point because the shock can exceed that temperature without the heaters. Grace’s data driven characterization estimated that 90C was an appropriate set point for 90 RPM but we ran out of time before we were able to run that test.

This week it seemed that the heater setup took minimal time. I plan to make an even cleaner setup by creating an enclosure for the Arduino, relay, and power supply. Ultimately I want the setup to be only one plug into an outlet and wires for the heaters coming out of the box. 

Working Hardware

SUMMARY

SUCCESS! This week in lab, we were able to get our controller to work, although the majority of the time was spent debugging hardware issues. In the beginning of lab we found out that the Arduino was only capable of supplying 40mA which was not enough current to operate the relay. Les, Eric, and Justin were scrambling to get the hardware to work. The final solutions was to feed the Arduino relay signal into a comparator with rails powered by a 5V, 3A power supply. This gave the necessary current to operate the relay.

Watch the light on the table flicker which indicates when the heater is turned on.

The data showed that at 30 RPM, we were able to operate at 70C with a temperature fluctuation of plus or minus a degree. One major concern from our successful  controller operation is that the heaters do not cool off quickly enough. We plan to work on characterizing the cooling profile of the heaters so that we can improve the controller’s functionality and timing. We also determined that the temperature measurements and control system are more accurate when the shock is operating because otherwise, the hot oil rises towards the top of the shock and the thermocouple continually reads from the more cool section at the bottom of the shock. We are looking forward to taking more data and verifying the successful operation of our controller in the coming weeks.

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

During lab this week, I helped Turner and Christy collect the data necessary to better characterize the shock. For the first set of data, we ran the shock dyno with the heaters in place but not turned on. Through this data we can understand if and how the convective heat losses change with the heater in place. From this data, I plan to run parameter identification so we can tune the gains for the PID controller more accurately. With the help from Eric, I learned more about parameter identification and how to use it as a tool in controller tuning. Thanks Eric! If I have time before next week’s lab, I may also try to adjust our current model of the shock heating to be higher fidelity, and run the parameter identification again. At first, we presumed the heat added to the shock due to the RPM to be a linear function of RPM, but our parameter identification suggests that this may not be the case. I will try to come up with first principle explanation for a better function to characterize the heat added by the RPM.

TURNER

Last week, after baking cupcakes and designing experiments with Christy, I spent some time trying to improve our data acquisition in LabVIEW. My main goal was to create a VI that would plot force and temperature vs. time rather than extension. With these plots, we would be able to more easily see whether our controller was reducing the temperature fluctuations, and thereby creating more predictable forces within the shock. The VI that I ended up creating can be seen below.

Because the DAQ from the shock does not output a time signal, the most challenging part of the VI was figuring out how to use the RPM and extension output to create an array that represented the corresponding time steps. The VI also plots the maximum force and temperature from every cycle vs. time in a separate plot so that we don’t have to deal with the force oscillations that occur during every cycle. I am somewhat certain that the VI will plot everything correctly after testing an earlier version of the VI last week, but I plan on confirming this at the beginning of the next lab section. I’m also hoping to work on the final report this weekend. It was exciting to see the controller working this week, and I’m excited to collect data with our working VI and controller!

LES

This week I solved some of the hardware issues we were having with our controller. Even though our controller worked on a breadboard with a simulated input, it wasn’t properly driving the solid-state relay that provided AC power to the heater. The problem was either that A) the Arduino was not outputting enough voltage for the relay to switch; or that B) the Arduino was not supplying enough current to drive the relay. I verified the voltage output and boosted it using an op-amp to be rule out the problem. Having ruled out voltage as the problem, I thought about how to generate more current to drive the switch. I railed the op-amp using one of the nearby DC power supplies and it was able to provide enough current to drive the switch. That tripped the light attached to the heater, which suggested that the controller was indeed working. We then input a set point of 60 ℃, and the controller was able to maintain it with a temperature ripple of about one degree. The next step will be to implement the PID controller - I’ll be sending Eric the gains I tuned in my simulation, and we will probably be spending most of next lab tuning the controller. Last week, I also made a bet with everyone that if the controller was not working, I would eat my shoe. So i’m glad I didn’t have to do that.

CHRISTY

My most important contribution this week would probably be cupcakes. While Turner and I were baking them, we worked on designing experiments for the rest of the semester to help us gather data that will verify the success of our controller and the effect on force measurements. We began this week by taking measurements of the force every 30 second for normal shock operation with the heaters attached but not running to help us characterize the force and temperature versus time with the additional amount of insulation. This baseline will allow us to display the effect of constant temperature and therefore viscosity on creating more consistent force readouts. Now that we have the controller working, we will be able to take more data next week and start verifying the results of our project. This weekend, I plan to start working on the final report for our project.

ERIC

I spent this week focusing primarily on debugging the step controller.  Now that we have successfully implemented that controller I want to focus on the PID controller.  The key to getting a PID implemented is improving our shock dyno model.  We only have three more weeks of testing and because the shock doesn’t cool very quickly, we really only have five or six more tests that we can run.  We will only get a few chances to try different PID gains.  In order to improve the shock dyno model, Grace and I plan to redo the parameter identification with new data.  Previously we had used data without the heater actually attached to the shock.  New data with the heater should provide a much better model.  Once the shock dyno system has been recharacterized we will be able to start with a conservative PID tune and go from there.  This will ensure that we make the best use of our remaining lab time.

JUSTIN

Before lab this week, I made a harness with terminals for the relay that allowed us to easily connect the breadboard. Before, we were using jumper pins jammed underneath the screw terminals of the relay. I believe that this new harness saved setup time and also gave more secure, reliable, and repeatable connections to the relay. In lab, first I helped characterize the thermocouple which had a different calibration than last week. Then I helped Les and Eric troubleshoot the electrical hardware issues. We figured out that the relay needed more power than the Arduino could supply. After a couple of trials, our final solution was to use a comparator with rails powered by the power supply we used the last two weeks to activate the relay. I’m happy that the Hot Shocks were able to get our hardware working and it seems that the controller works too! In the coming weeks I plan to help Les make a permanent circuit board to replace the breadboard.

Calibration

SUMMARY

After taking a week-long hiatus from lab to write our mid-semester report and participate in our final spring break as undergraduates, The Hot Shocks came back to lab this week with a vengeance. Over spring break, Les and Eric made further progress on controller design and Arduino integration, while the rest of the team worked on data analysis and report writing. While updating our milestones for the mid-semester report, we realized that we had met all of our initial goals in regard to model creation and software development, while we are slightly behind our initial plans for hardware construction and data collection.

calibration

During lab on Tuesday, we all worked together on the calibration of the oil and heater thermocouples, with Les, Eric, and Justin manning their laptops while Turner, Christy and Grace operated the shock dyno. In addition, the laptop team worked on integrating the controller with the Arduino Uno while the dyno team gathered baseline data on the temperature response of 20W oil and the heaters’ external surface when the heaters were left on at full power (both seen below). In the last few minutes of lab, we attempted to replace the DC power supply that had been closing the solid state relay with the Uno, but the heaters did not turn on during our first attempt, and we subsequently had to relinquish control of the dyno to the next lab group.

Temperature of internal shock oil and external shock body heater

For next week, we hope to complete both the software and hardware development in preparation for testing and data collection. Our overall goal for the next lab session is to have a complete set-up that is capable of keeping the shock oil at a constant temperature. If everything goes according to plan, that will leave us with three lab sessions to confirm our system and compare it to the bare shock.

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

Over spring break I went to San Diego with Justin. We had fun in the sunny weather and forgot about 107 for a couple of days while we went to Disneyland and hung out on the beach.

This week in lab I also focused on setting up the hardware and taking data to characterize the response of the shock with the heater turned on. At first we worried that the heater may exceed the safe temperature range, but we found that the heater appears to asymptotically approach around 170°F, well within its limits. After fitting the data of the oil with heat applied from the two heating pads, I found that the temperature should asymptote at about 105°F for 30 RPM with 20W oil even while the heaters applying constant heat. This is quite a difference compared to the previous steady state temperature under the same conditions (30 RPM and 20W oil) without the heater, which was 34°F. We planned on trying to maintain the temperature of the shock at about 90°F, so our data so far suggests that this is a reasonable goal.

Temperature characterization

TURNER

Over spring break, I spent most of my time rock climbing in Lake Tahoe and Oregon before working on our mid-semester report. Although the week off provided a welcome break from classes, I came back to Berkeley with some missing skin and a renewed enthusiasm for our project. During lab on Tuesday, I spent most of my time working with the hardware and operating the shock dyno to collect some data and characterize the temperature response of the shock with the heaters. Before next week, I plan on choosing some experiments to run, both with and without the Uno, that would best elucidate the effect of the heaters on the entire shock system. I’m looking forward to seeing everything finally come together!

LES

Kangaroo

I went out of the country for the first time over Spring Break, spending most of it in sunny Sydney, Australia: the happiest place on Earth (so named for its drive-thru liquor stores). I would have stayed there forever but I was so excited to get back to 107 lab and see my group’s smiling faces that I couldn’t help but return. When I got back, I worked on calibrating the thermocouples that we would be wiring into our controller. Though the thermocouples were calibrated to work with the LabView VI and the thermocouple reader, the raw voltages could not be interpreted by our Arduino without a calibration curve. The process of calibrating the sensors was relatively simple - I simply created a voltage amplifier using an op-amp and maximized the gain for the region of temperature that we were likely to operate in (i.e., 0 - 120 ℃). The oil thermocouple was easily calibrated but we ran into some issues calibrating the thermocouple that measures the surface temperature of the heating pads. The raw thermocouple voltage is already large for ambient temperatures and the Arduino can only interpret input voltages of up to 5V. I plan on looking into that again next week by building an amplifier with less than unity gain, but if that does not work we can abandon this particular sensor as it is not necessary for our controller to work.

CHRISTY

Spring break was a whirlwind of travel from Austin to San Diego to Vegas. My team won our dance competition and took 4th place despite 25 MPH winds. Once I got back to Berkeley, I helped our team with the with the mid-semester report. In lab this week, I focused on gathering temperature data to characterize the operation of the heaters. After using the additional thermocouple on the heaters and verifying that the actual maximum operating temperature is 232C, we determined that the heaters overheating should not actually become an issue since after about 100C, the temperature only rises at about 2C per minute.

ERIC

Over the course of Spring Break I wrote polished versions of three controllers for our system.  The first controller is a step/thermostat controller, the second is a PID using the built in PWM functions in Arduino, and the third is a PID that I wrote from scratch.  The reason I wrote a PID controller from scratch is the restriction on the PWM functions in Arduino.  Arduino’s built in PWM function analogWrite() has a PWM frequency of 500 Hz.  This may be too fast for our system, particularly the solid state relay.  The PID controller I wrote allows you to set the PWM frequency.  I am also working on characterizing the heater (heat flux in) and will run more simulations once that is complete.

JUSTIN

I enjoyed my Spring Break in sunny San Diego with Grace. We went to the beach, hiked, took a day visit to Disneyland, and ate tasty Mexican food.

Thermocouple Calbration Curve

In lab this week, I worked with Les to calibrate the K type thermocouple inside the shock body. Previously, the shock dyno thermocouple used a surface mount K type thermocouple to output temperature to the LabView program. Because K type thermocouples output small voltages, the signal needs to be amplified in order to be effectively used. In our project, the thermocouple is one of the inputs to our Arduino and controller. Instead of messing with the current amplifier, we are pulling raw thermocouple signal from an auxiliary port on the shock dyno. This would allow for us to get a signal for our Arduino but to not interfere with the dyno setup for other groups. We made a simple amplifier using a non-inverting op-amp with a gain of about 3 for the internal thermocouple. Because the gain set on our amplifier is not necessarily the same as the amplifier in the dyno, we need to calibrate the thermocouple. We took different voltage measurements at different temperatures using a multimeter and the LabView temperature readout.

It seems that a lot of time is lost in lab during the setup and takedown of our heater and wiring. I’d like make a new harness and permanent circuit board to replace our bread board in the coming weeks to make our labs more efficient.

Initial Hardware Test

SUMMARY

It was a big week for the Hot Shocks, both in terms of project progress and group bonding. The heaters from Omega arrived this week and, with the assistance of Alex and Spencer, we began to assemble and test our hardware. Two 3x3” heaters wrap around the body of the shock and are secured by zipties, as can be seen in the picture below. The heaters are wired in parallel and powered by household 110 VAC - whether they are on or off at any given time depends on the state of a solid-state relay controlled with an Arduino Uno. When heat needs to be added, the Arduino outputs a high signal, which closes the relay and turns the heaters on. When no heat needs to be added, the Arduino outputs low, opening the relay and turning the heaters off. There is also an indicator light wired in parallel with the heaters that turns on and off with the heaters.

Heater Wiring Diaram

Hardware Setup

In lab, we turned the shock on and let the heaters run continuously to establish a baseline temperature response. A 5V power supply was used, rather than the Arduino,  to send a signal to close the relay. It can be clearly seen in the temperature response plots below that the heaters drastically increase the heating rate of the shock. The heater and shock had to be turned off after about five minutes of continuous operation because the heater surface temperature reached 120°C, which is their maximum allowable temperature.In the future, we plan on adding a safety feature to the Arduino code that will turn the heaters off if their surface temperature exceeds 115°C. In order to do this, we will need to attach a thermocouple to the outside of the heaters.

Temperature response of the heater with and without the heater at 30RPM

Menchie's 3D Puzzles

Menchie's 3D Puzzles

In other news, The Hot Shocks received a prize for the 3rd best project proposal and presentation, as decided by out ME 107 classmates. We were rewarded with a Menchie’s gift card, which we used to fund a froyo party after this week’s lab session. Although we were disappointed that Eric could not attend the party, he would not have had fun anyway because he is lactose intolerant (boooooo!). Hopefully there will be more Hot Shock parties that Eric can attend in the near future. Next week is spring break, but hopefully we can hit the ground running with our hardware in two weeks and begin taking data with an operational control system.

Thanks for reading!
-The Hot Shocks

 

INDIVIDUAL THOUGHTS

GRACE

After assembling the heaters this week, we decided to take some data to get an idea of how quickly the heaters could increase the temperature of the system, and the results were pretty exciting! We found that after just 5 minutes, the shock had risen to 40C, which is 8 degrees greater than the predicted steady state of the shock running without a heater at 30RPM. This result tells us that the heaters we specified last week are more than sufficient to bring the shock up to the setpoint temperature of 90 degrees. It also tells us that the heaters will greatly reduce the time to reach our setpoint since the rate of temperature change over time is much higher with the heaters than without. This is very  promising!

I tried to fit the small amount of data that we were able to collect this week, but unfortunately because we collected so few data points, it was challenging to fit a curve with much precision or accuracy; it predicted that the steady state temperature would be 1.05E5 degrees with a 95% confidence interval of ( -1.28E8,1.28E8). Obviously this must be very incorrect since that is significantly hotter than the sun, and our heaters are not quite that powerful. Hopefully next lab section we will have enough time after setting up the heaters to collect more data so we can better verify the heating system. Over break I will also be working on the mid semester lab report.

At Menchies I got mango frozen yogurt with strawberries and bananas! It was very tasty and I enjoyed it a lot. Yum yum yum.

TURNER

When the heaters arrived at my apartment on Monday (just in time for lab!), I was excited to find that they were flexible enough to bend around the shock body, which had been a concern because of the published minimum bending radius of the heaters. During lab, I helped with the hardware setup of the heaters, thermocouples, solid state relay, and controllers. Now that the hardware setup is complete, I’m excited to connect the controller after spring break and start comparing the data to our models. Over break, my main concerns will be writing the mid-semester report and completing the Arduino code, which will use the output of the internal thermocouple to decide whether the heaters should be on or off. 

At Menchie’s, I relished an eclectic mixture of Reese’s Peanut Butter Cup, Dulce de leche, and Peep’s Marshmallow Mania frozen yogurt, topped with coconut, granola, and mini brownies. This delicious treat, when combined with the companionship of my fellow Hot Shocks and the 3D puzzles we were given, may have made for my favorite froyo experience ever!

LES

This week Eric and I implemented the hardware hysteresis controller. We first tested it on a breadboard before booking it up to the solid state relay connecting the heater to power. Using a potentiometer allowed us to simulate a temperature signal, and we verified that the Arduino registered the shock temperature switching above and below the reference temperature. We also verified that the Arduino was outputting a high or low signal to the heater of the shock temperature was below or above the reference temperature, respectively. We ran short of time this week and were not able to hook it up to the heater, but we plan on doing so next lab session. We will also code and verify the PID controller ahead of time so that we may tune it and then compare the performance of the two controllers using metrics such as rise time and temperature ripple.

CHRISTY

This week I worked with my fellow Hot Shocks to set up and run initial tests to determine how our heaters function. With the help of Alex, we were able to set up the solid state relay and run the heaters with a continuous 5 volt input. We began the tests at 30 RPM and then ramped the shock to 90 RPM after five minutes. The heaters produced a smell that seemed like plastic burning. We initially thought this might be the zip ties, but after we finished testing and removed the heaters, the zip ties appeared to be in perfect condition. Since we were not sure what was causing the smell, Alex provided with an IR temperature measuring device. When placed on the heaters and the shock body in between, the measured temperature was close to 115C. We immediately shut off the shock to allow the system to cool down.

Over spring break I will be working on the Mid-Semester project report and implementing a safety control for the heaters to ensure they stay under the maximum temperature allowed by the product specification.

At Menchie’s, I enjoyed Coconut frozen yogurt topped with mini gummy bears, sour gummy worms, and mango popping boba.

ERIC

This week I worked with Les on setting up our controller.  We are using an Arduino UNO and a solid state relay.  The arduino code for Les’s hysteresis controller works as expected.  It worked in simulation and prior to using the actual hardware, we ran the controller and monitored the control input.  The response was what we expected so next week we can fully begin testing.  I am still refining the plant model and using parameter identification.  Spencer has helped me a lot with the do’s and don’ts for parameter identification. 

I was unable to attend the Hot Shocks party because I had class immediately after our lab section.  It was probably for the best since I am lactose intolerant and the party was a froyo party.

JUSTIN

I assisted Alex this week wiring up the hardware on the shock dyno and helped other members collect temperature data. In the coming weeks I plan to make a cleaner wiring harness for easier setup and takedown of our heating hardware.

At Menchie’s, I enjoyed a Reese’s Peanut Butter and Caramel frozen yogurt topped with Butterfingers, Andes Mints, Heath Bars and finished with Hershey’s Magic Chocolate Shell and Caramel sauce.

Heater Ordered

SUMMARY

Omega Rubber Heaters

Omega Rubber Heaters

This week we finalized our hardware specifications and ordered our heater from Omega Engineering. We decided to get two 3x3" silicone rubber heaters, each with a power density of 10 W/in^2. These heaters take an input of 110V, so we shouldn’t have any trouble connecting them to existing power infrastructure in Hesse Hall. The heaters were chosen based on the size of the shock body, the heat input required, and Omega’s current stock. Although there were some heater sizes that may have more perfectly suited our needs, any out of stock heater would require a five week lead time, which is much too long to wait at this stage in the project. By next Tuesday we should have all the necessary hardware - a heater from Omega Engineering, a solid state relay from Alex, and a microcontroller from Eric. With these materials, we should be prepared to assemble our entire project, barring the completion of modeling and simulation.

Advances in the software have also been made.  We now have a successful parameter identification method/code that can be used to characterize future, more complex models.  Our original model has already been characterized using the method and previously taken data.  With all of our hardware purchased and a method for characterizing that hardware, we have a much better idea of how to implement our controller.  Deciding which tests to run, so that we can accurately characterize our system and our model, will be key, especially since our lab time is limited. We believe we are on track with both the hardware and software design, and we are excited to begin verifying our designs

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

This week, we focused as a group on purchasing the hardware necessary for the shock. It was crucial that we buy the heater this week so that next week we can begin constructing our project. We ended up deciding to use a flexible silicone rubber heater, because it fits our specs in terms of power density and dimensions and it was in stock. After looking at the datasheet and manual for the part, I decided to also make a list of possible hazards we should monitor to assure the safety of our team and the heater. 

  • Maximum operating temperature (232C): Though we cannot monitor this temperature directly, it would be best to make sure that the oil temperature does not reach half of the max operating temperature to assure that the heater is well within its safe range.
  • Heater attachment: In attaching the heater to the shock, we must be sure to prevent any air pockets from existing between the shock and the heater, otherwise we may have heater failure. To assure this, it will probably be necessary for two people to install the heater: one to hold it in contact with the shock, and one to clamp it down.
  • Maximum bending radius (2 in.): The maximum bending radius of the heater is 2 in, and the shock is about 1.5 inches in radius. This may pose a difficulty in attaching the heater, and we will need to assess the situation more thoroughly once we receive the heater.

TURNER

Early this week, after estimating the required heat input from the specifications of the dyno motor, I spent a lot of time on omega.com looking at all of their different options for heaters. Once Christy, Grace, and I narrowed our choices to flexible heating blankets and flexible silicon rubber heaters, we had to decide on the correct size and power density for our desired heater. After accounting for cost and the Omega’s current stock, we decided to go with the flexible silicon rubber heaters. I ordered the heaters described in the summary on Tuesday afternoon with three day shipping, and they should be arriving at my apartment by Monday. The plan for this weekend is to help Les further refine his plant model by finding a more accurate value for the overall heat transfer coefficient as a function of RPM. Once the model is complete, we will be able to simulate the system just in time to start assembling hardware. 

LES

I finished developing the controller models for the heater. Working with Grace, Turner, and Christy, I implemented the properties of the heaters in the model and was able to get a good estimate of engine’s energy generation and of the convective cooling coefficient of the system. The plant model is now accurate for a limited set of operating conditions, and with the parameter fits Justin and Eric developed, we should be able to accurately model the shock for any setup we want to test. I solved the error saturation problem I was having in the PID controller by mapping the output of the controller to the Arduino’s AnalogWrite method, and then saturating that argument after it was mapped. I then compared the transient characteristics of both controllers in terms of 10-90 rise time and temperature ripple. From this transient analysis I found that that rise times of both controllers were identical but that the PID controller had less temperature ripple. We might be able to implement a more ideal controller if we use hysteresis to effect the initial rise time, and then switch to an aggressively-controlled PID algorithm to maintain the temperature setpoint. An alternative to this method would be using a PID controller for everything and changing the gains once the temperature set point is achieved.

CHRISTY

This week in lab, I worked with Turner and Grace to determine which heating blanket we should purchase. Our limitations are the amount of space available on the shock and the required heat input into this system. Unfortunately when we started looking at the heat blanket that we wanted to order, we realized that many of the blankets were out of stock and would take 5 weeks to arrive. After looking at various sites and types of heat blankets, we decided to purchase two silicone rubber heaters with power density of 10 Watts/inch. They are both 3in x 3in so we will be able to get a total power input of 180 Watts.

ERIC

My primary focus this week was to complete the parameter identification for our most basic model, with Justin’s help.  We were able to do this by utilizing the “lsqcurvefit” function in MATLAB.  For each data set I wrote a nested function that solved the plant differential equation using “ode45” and a function handle that called the nested function.  This function handle was then used in “lsqcurvefit”.  Originally the parameters that were getting returned did not produce curves that were close to the data.  After speaking with Spencer, We learned that this phenomena was due to local minimums in the least squares cost function.  When the gradient descent method is given an initial guess that is far from the actual global minimum the optimization fails.  After refining our initial guess, I was able to get parameters that fit the data.  These parameters may only be useful for our basic model, but the method/code can be used to characterize future, more complex models.

JUSTIN

I worked with Eric again this week to characterize the gains for shock heating and convective cooling parameter inputs for our model. Initially we were having trouble fitting our gain values to our model and our simulation was producing the correct response. With the help of our GSI Spencer, we realized we're only finding a local minimum instead of a global one when running our least squares function. We were able to fix this issue by picking a better initial guess. I plan to integrate MATLAB's global minimum search to our code to permanently fix this issue.

New Internal Thermocouple

SUMMARY

New thermocouple located in the base of the shock

New thermocouple located in the base of the shock

This week on the Hot Shocks, we received help from both Alex and Spencer to help us further progress on our final project. Alex was able to drill a hole in the body of the shock and insert an additional thermocouple, which allows us to measure the actual temperature of the oil rather the temperature of the exterior of the shock. With this new thermocouple, we were able to determine whether there was any detectable temperature difference between the oil and the shock exterior. Alex believes that for future labs the surface thermocouple will be retired and the new internal thermocouple will replace it! After running the dyno at 90 rpm for 20 minutes, the maximum temperature difference between the two thermocouples was 1.5 degrees, leading us to believe that conduction through the aluminum shock body takes place on a relatively short time scale. In addition, by operating the shock with 20W oil instead of 10W oil, we were able to more effectively calculate the internal heat generation and set an upper bound on the temperature of the oil during operation. At this point, we believe we have fully characterized the heating rates, cooling rates, and asymptotic temperatures of the oil without any external heat addition.

System Model

Outside of lab, we made much progress on the modeling and simulation of the entire system. Although there are still some challenges to be overcome, the majority of the controller has been designed in Simulink, and MATLAB functions have been created to estimate the viscous heat generation and convective heat loss as functions of dyno RPM and ambient temperature. Rather than using a first principles model and known empirical formulas as we first attempted, we are now approaching the system with a data-driven model using the known specifications of the motor and the measured force values at different RPM’s. The main goal for next week is to finish designing the controller and modeling the system heat losses so that we can run effective and realistic simulations. Once simulations are complete, we can then begin to order hardware and design the physical heating system.

Thanks for reading!
-The Hot Shocks

INDIVIDUAL THOUGHTS

GRACE

This week I focused on a couple of things. First, I, once again fit the temperature vs. time data to the same y = a + (1 + exp(-x/b))*c curve for the 20W oil at RPMs of 30,60, and 90. For this oil we would postulate that the steady state temperature would be higher for each given RPM than the 10W oil,  and it is! Since the oil is more viscous, the motor must put out more force to shear it, so it is inputting more work (and more heat) into the system. Shout out to Couette for helping us predict this result. I found that the steady state temperatures are about  32, 50, and 75 degrees Celsius for RPMs of 30, 60, and 90 respectively.

Second I gave a go at understanding more about the input work into the system. In lab we had talked about using the work done by the motor to characterize the heat added to the system through the shock. This is a great idea, but I thought I’d give a go at simply using our temperature vs. time data to solve for Qin so we could hopefully verify our results. I used the equation Qin + Qout = mcdT to start. I know that the viscosity decreases more or less exponentially with temperature, so I let Qin be modeled by Qin = X*e^(1/T) where X is some parameter to be solved for and T is the oil temperature. Next, I let Qout = Y*(T - Tenv) where Y is the combined heat transfer coefficient and surface area. The mass, m, and heat capacity, c, were previously estimated. Next I used our temperature vs. time data to make a system of equations to solve for X and Y. I used a least squares fit method to find these parameters from the data. I found that for 30, 60, and 90 RPM, the shock dissipates about 14W, 40W and 60W. These values feel a little low to me, so I’ll work with other group members to try to improve these results, or understand the errors.   

TURNER

This week I focused on finalizing the energy balance for the shock, which would help Les and Eric tune the gains of the controller by allowing them to accurately simulate the heat transfer processes in the shock. My first attempt involved using the steady state temperature of the shock at different rpm’s to estimate the heat transfer coefficient, h. Assuming radiation to be negligible, I wrote a MATLAB function that, when given the rpm, the steady state temperature of the shock body, and the ambient temperature, outputs the heat transfer coefficient and total convective heat loss. Because the calculations were done for steady state, the idea was to equate the convective heat loss to the viscous heat generation within the shock. The heat transfer coefficient was estimated using empirical relations for the Nusselt number of a cylinder in cross-flow given in Fundamentals of Heat and Mass Transfer by Bergman, Lavine, Incopera, and Dewitt.

However, after using the estimated heat transfer coefficient in simulations, it did not seem to agree with our data, especially in the transient cases. This discrepancy is most likely due to the fact that the velocity used in forced convection calculations is not easily defined in this scenario and because there is no empirical relation that exactly fits the motion of the shock dyno. Because of this, on the suggestion of our GSI, Spencer, we decided  to estimate the power input to the shock (via the motor) rather than the convective heat loss. We have received the specifications for the motor being used by the dyno, and now we must make appropriate assumptions and use our data to calculate the power input, and thus estimate the heat generation due to viscous forces within the shock. This work is scheduled to be completed within the next couple days, and I’m excited to see our simulations coming together so we can start working on the hardware in the near future.

LES

I spent most of this past week further developing the model for both the plant and controller. The the system model is fully operational and the open-loop system shows results that are consistent with the data we have gathered in lab, thanks to the heat transfer analysis Turner and Grace have been performing.  I’ve begun tuning the closed-loop model but it became apparent this week that this particular type of control problem is a part of what’ is known as bang-bang control theory, so-called because the controller operates solely on its rails, i.e. maximum input or minimum input. In our particular case, we have an Arduino microcontroller that takes in temperature error (e=Tref-T) and uses it to determine a pulse-width modulation (PWM) output to send to the solid-state relay controlling the heater. This is problematic because the temperature error is theoretically unbounded, but PWM duty cycles are fundamentally bounded between 0 and 100%. I was able to linearize the system by bounding the system error and performing a one-to-one linear mapping of error to PWM duty cycle.

The error bounds are consistent with how we expect the shock temperature to behave in real life, and for kP=1 our system response as a first-order closed-loop system should. Unfortunately, once I started tuning the gains of the PID controller, I realized the mapping was no longer bounded appropriately and so I devised a programmatic rebound proportional to the selected value of kP.When I bounded the output of the controller in this manner, the system response no longer changed for different kPvalues, which suggests to me there may be an error in the model somewhere. I will investigate and resolve this issue before next lab, and once I have done so I will begin tuning the kD and kI gains to speed up the response and improve setpoint tracking. I will also update the model to include a rough estimate of internal energy generation from the viscous heating of the shock, and will refine this energy generation term when Turner and Grace have developed a better data-driven model for it.

CHRISTY

In lab this week, I focused on data collection to help our group finalize the heating and cooling characterizations in order to fully develop our model. We followed the same procedure for temperature measurements as last week with the addition of a second thermocouple to measure the interior temperature of oil as well. In order to get a more robust view of our system, I also took twenty minutes of data at 60 RPM to help determine the rate of temperature increase at a middle speed.

Out of lab, I have been working on answering the questions that Spencer posed last week regarding the safety of the heating blankets and the capability of them to heat the oil quickly enough at a low RPM. Since after twenty minutes at 30 RPM, the max temperature generated was … for the 20W oil, I do not think we will be able to heat the oil rapidly enough with the heat blanket alone. I think that our system will require initial energy input generated by running the shock at 90 RPM for a designated amount of time to prep the system for regulation. This amount of time will be determined based upon our final temperature bounds, but the system should be ran at fully closed compression and rebound to ramp the temperature more quickly. Since Spencer was supportive of my idea to use zip ties to attach the heating blanket, I have begun researching zip ties that can withstand a great enough heat without melting.

ERIC

This week I continued to try and do parameter identification on our original model.  In addition to that I have begun to transfer the Simulink block diagrams into Arduino Code.  This goes for both the thermostat controller model and a proportional model that I have constructed.  In all likelihood the heater we purchase will not have a built in controller.  It will simply have two leads and a set impedance.  In order to achieve different amounts of heat flux we will have to use H-bridges and a PWM output from the Arduino.  Much like a DC motor, this setup will allow us to vary the current sent through the heater.  I will map the duty cycle to 100% when the temperature differential is at the extreme (room temp vs 100+ C) and to 0% when the temperatures are within a set tolerance of each other.  Once the heater is purchased we can begin testing.

JUSTIN

Actual data vs. gain simulation 

This week I finished writing a MATLAB function and script that calculates gain values with our given shock model of temperature. The function takes temperature data collected in lab and calculates the gain by using least squares between temperature data and simulation based on gain constants.

 

 

Gains calculated from least squares of three tests.

The script works and the simulation matches the data for each heating and cooling test but when finding gains using least squares for all of the heating and cooling tests, the simulation doesn’t match up with the tests. The model will have to be tweaked but I believe the script and function I wrote will help tune gains in the coming weeks even with changes to the model.

 

Also, currently our model only has RPM and ambient temperature difference, I think that viscosity should be added too since this week in lab we tested a higher weight oil and imagine different weight oils in the coming weeks.

Initial Project Data and Modeling

SUMMARY

Since we have completed our initial testing of the shock dyno, we were able to focus the entire two hours of lab on our project. While Les and Eric discussed the progress in developing their control loop with our GSI Spencer, Grace, Justin, and Christy worked on gathering more data to help characterize the temperature system. In order to see the heat generation at lower speed, the group gathered temperature data at 30 second time intervals while the system ran at 30 RPM with the compression and rebound valves fully open. After 20 minutes of observing the shock temperature raise, we sped up to 90 RPM to more quickly heat the oil so that it’s cooling properties could be observed. After another 20 minutes at 90 RPM with open rebound and compression, the temperature of the shock had reached 55 C. Then the shock was allowed to cool back down at 30 RPM and data was collected every 30 seconds to characterize the cooling pattern. After 20 minutes, the shock was turned off, but we continued to measure the temperature as the shock cooled. Hopefully the data gathered in lab this week will help Eric determine the gain values for his PID controller.

Shock Temperature Model

Shock Temperature Model

Thanks for reading!
-The Hot Shocks

Individual Thoughts

Grace

This week I again focused on fitting the data so that we could determine our upper and lower bounds for temperature. Also, if we can estimate the steady state temperatures for a given shock setting, that steady state value could be useful in calculating the energy that is added to the system through the work done by the shock, which would help use to spec out the heater. For our minimum work case (30 RPM), I found that the steady state temperature is 30-35 degrees Celsius, whereas for the maximum work case scenario (90 RPM) is about 50 degrees Celsius. For these temperature values, we can equate Qgen = Qconvection so that we can determine the heat input to the system for both 30 and 90 RPM. Once we know how much work is required to heat the shock to these steady state temperatures, we can then determine how much more must be added to bring the shock’s temperature up to whichever given temperature we choose. Hopefully these temperature values will help us in characterizing the heat transfer of the shock.

90 RPM steady state temperature (click to zoom)

 

Turner

Although I couldn’t make it to lab this Tuesday, I tried to make my presence known from afar. My work was mainly focused on estimation of the heat transfer processes within the shock, such as viscous heat generation in the oil, heat conduction through the aluminum body, and convective and radiative heat loss from the aluminum shell. The main challenge I’ve been encountering is the calculation of a heat transfer coefficient. The sinusoidal motion of the shock body does not lend itself directly to either forced or free convection. Using Grace’s steady state temperature bounds, I am attempting to solve for an effective heat transfer coefficient by equating the heat generation within the shock to the heat loss terms due to radiation and convection. Hopefully in the coming weeks I can more fully commit myself to The Hot Shocks and make up for my brief absence. I’m excited to see this project start to come together!

Les

I spend this week’s lab focused on the first-principles derived model for the plant. Using Newton’s law of cooling gives us a first-order representation of the heat transfer in the plant. Fitting the k value will give us a good representation of the convective transfer in the shock, and using a data-driven k means we don't need to worry about the particulars of the convective processes. This weekend I'll be putting together a model for the controller and I'll include the feedback loop with PID gains so that we can start tuning the system in simulation. We also need to order the heat blanket we intend to use, and get our microcontroller setup so that we can start working on the hardware.

Christy

This week in lab I focused on gathering data that will allow our group to better understand how the operation of the shock affects the temperature of the oil in hopes of determining how to better regulate the system. Measuring the temperature at 30 RPM with fully open compression and rebound allows us to gauge a minimum steady state for our project since this is the smallest amount of work that the shock can employ. Looking at the amount of heat that was generated by the shock compared to time, it is apparent that the oil does not heat quickly without a large work input. Since whichever heat blanket we finalize on using will not cover the entirety of the shock, I think that it will be necessary to develop an initial procedure for heating the shock to a certain value by running the dyno. Since the temperature ramps up most quickly at 90 RPM with fully closed shock and rebound, I believe that this is how we should initiate use of the shock dyno in order to more quickly reach a steady state temperature. Since our design needs to be modular on the shock, one solution for easy addition and removal of the heater would be zip ties since they will hold it tight and can be removed easily. We just need to verify that they will not be overheated by whichever blanket we chose.

Eric

This week I worked on refining the plant model for the shock dyno.  While the general shapes of the responses generated were correct, the time scale and temperature scale were not.  In order to correct for this we are utilizing parameter identification.  We took some baseline data with some of the variables held constant to determine the parameters.  In addition to improving the plant model, I am beginning preliminary work for a PD controller.  Currently the simulation uses a thermostat type controller which is simply on or off.  By implementing H bridges we should be able to control the heater current, and subsequently the heat flux into the shock from the heater.  This means our actuator will be proportional instead of binary which warrants the use of a PD controller instead of just a relay.

Justin

heating_90RPM0r0c

In lab this week, I gathered heating and cooling data over 20 minute periods. I am working on using this data to improve the gain values in our model. I’m working with Eric to use least squares fit method between solutions to our model based differential equation and actual heating/cooling data to find better gain values for our model. This will allow us to have a data driven and first principles temperature model of the shock.

The Viscometer

Previously

Last week we tested a mystery oil with unknown weight. We initially guessed in the range of 7-10W oil. After applying linear regressions to our plots we had a final guess of 7W oil. This week we learned the actual weight of the oil was 10W. Although we were close, we lost the bet to our wonderful GSI.


SUMMARY

In lab this week, we used a viscometer to measure the viscosity of different oils including 3 calibration oils and 4 SAE rated shock oils. The viscometer in the lab uses a mass connected to a string wound on a spool which spins an inner cylinder which is immersed in an oil contained by an outer cylindrical cup. As the mass is released to free fall, the spool is unwound and the inner cylinder spins. The torque of the spinning inner cylinder is resisted by the viscosity of the oil. The inner cylinder is also connected an indicator which counts the number of revolutions. We timed 100 revolutions using a stopwatch which would give us angular velocity of the inner cylinder and repeated the measurements 5 times for each oil.

Viscometer Equation

Viscometer Equation

Using Newton’s Law of Viscosity and dimensions of the viscometer, the viscosity of the oil can be calculated knowing the angular velocity of the inner cylinder.

Viscosity Equation

This equation however would give inaccurate viscosities because it did not account for frictional losses in the viscometer system. A better method to find the viscosities of the shock oils would be to use the calibration oils with known viscosities to calculate some constant C between dynamic viscosity and angular velocity.

We decided to average the constants derived from all of the calibration oils instead of the results from a single oil because when back calculating for the viscosities of the calibration oils, the averaged constant resulted in the closest viscosity to tabulated values.

Viscosity Constants

The averaged constant was then used to calculate the viscosity for the 4 shock oils. Precision error was calculated for the constant value (3.76% error at 95% confidence interval) and for the averaged angular velocity for each shock oil. The precision uncertainty propagation was calculated for the total viscosity uncertainty.

Shock Oil Viscosity


We also turned in a one page Project Proposal this week, which detailed our goals this semester in regard to our final project. Briefly, our aim is to improve the shock dynamometer by creating a controller that regulates the temperature of the oil inside the shock. Oil viscosity is highly dependent on temperature, such that even a small temperature difference between sampling periods on the shock dyno can lead to wildly varying results. By creating a device that has the capability to maintain a consistent oil temperature within the shock, we will create an isothermal environment within the shock, which will reduce the number of variables that affect the outcome of shock dyno measurements. This device will be created using a heat blanket in conjunction with a microcontroller, which will allow us to switch the heater between its on and off settings at precise intervals. Our plan for the rest of the semester can be seen in the following timeline:

Project Gantt Chart (click to zoom)

As can be seen in the Gantt chart above, we are hoping to front load our work in the next few weeks in order to allow adequate time for testing and data analysis in April and May. This week, we are hoping to use our newly collected data to begin designing the heater and control scheme. By this time next week, we should be well on our way to conducting simulations for temperature regulation of the shock. See you then!

Thanks for reading!
-The Hot Shocks

Individual Thoughts

Grace

Steady state temperature fit (click to zoom)

This week we collected some temperature data to try to characterize the temperature response of the shock. I focused on trying to fit this data and understand its implications as to our project. We collected data every thirty seconds as the shock heated up from ambient temperature. We collected the data with 0 compression 0 rebound and 90RPM, because at these settings the shock should reach its maximum temperature (highest resistance, highest velocity). I chose to fit the data to an exponential function of the form T = a + (1 - exp(-t/b))*c. This is a logical function to characterize the temperature response because it has clear transient and steady state pieces. The shock should logically reach a steady state temperature because of the energy balance between the work being done by the shock to heat the oil and the convection cooling from the ambient environment. After fitting the data I found that the steady state temperature (the asymptote of the function) should be a + c, which I found to be about 90 C.

Turner

My work this week was mostly focused on concept generation for our final project. The first step in this process was to research possible heaters, some of which included flexible heating tape, heat blankets, and barrel heaters. In order to guide my research, I attempted to estimate the total heat capacity of the shock assembly, because an estimate of this value is necessary for choosing a heater that can supply the required amount of heat.

 

After asking Alex how much oil is contained in the shock body, I estimated the volumetric ratio of steel to aluminum in the shock, weighed the whole assembly, and used this knowledge, along with each material’s density and heat capacity, to estimate the total heat capacity of the shock. I calculated that the total heat capacity of the shock is about 2.5 kJ/C, which would lead to a required heat input of 150 kJ if we were to heat the shock from 20 C to 80 C. However, the necessary heat input will be much lower if the shock is left running while being heated.

It was another great week for the Hot Shocks, and although I unfortunately won’t be able to attend lab next week I can’t wait to see what my wonderful teammates will be able to accomplish!

 

Les

This week I worked on the project proposal, presentation, and development of the plant model for the temperature controller. I also thought about material acquisition and what kind of heat flux we would need to maintain a reasonable temperature. Many of the heating sources used for this kind of work are intended to keep already warm containers warm, so it looks like our best bet would be to heat up the shock by running it at 90 RPM, and then keep it warm using a heat blanket or similar type of wraparound material. Eric and I discussed the feasibility of using a PID or PD controller to maintain temperature, and after we develop and initial model, we’ll begin a software implementation next week. We’ll need to decide on using an Arduino or myRIO. My preference would probably be Arduino because it is cheaper and there is a massive community from which we could get some assistance.

Christy

During this past week I worked on the project proposal and creating a feasible timeline for achieving our project goal. With assigned roles and deadlines our group can begin to tackle tasks that will allow us to get our device working and still allow for testing and troubleshooting.

In lab, I worked on gathering measurements for the shock at constant compression and rebound settings while the temperature ramped upwards to help create a temperature model for the oil. Knowing a steady state temperature for the oil allows us to determine what temperature we would like to bound our system at. In this upcoming week, I plan on working on the design for the heater and making sure that it is easy to attach and detach since it will need to be taken off between lab sessions. I also plan on finalizing temperature blankets research to find one that can apply enough heat to maintain our ideal temperature.

Eric

My focus this week has been a combination of preparing for the project proposal presentation and working on an initial model for our temperature controller.  While a high fidelity model is always ideal, I’ve decided to start with a basic dynamic model, as suggested by Spencer.  This week we ran some initial tests to figure out the temperature bounds for our controller to operate in.  Because we are only able to add heat to the system we must operate in a range above the system’s natural steady state temperature.  In order to correctly determine the coefficients to use in our initial model we will have to take more measurements and characterize the rates of heating and cooling as they relate to system temperature and time.  I predict that achieving temperature control will be achievable even without a high fidelity model because we are able to directly measure oil temperature and have direct feedback.  In the future we may want to control other variables using our controller that we cannot measure directly, like viscosity.  To do this we will definitely need an improved model and an observe for our controller.

Justin

This week in lab, I ran the viscometer tests with Les while the rest of my teammates gathered baseline temperature data from the shock dyno. Outside of lab, I calculated the viscosities of the shock oil by using a constant to correspond angular velocity to viscosity. This constant was derived from the calibration oils of known viscosities. I also did statistical analysis on precision errors from the viscometer data. I did not think of any ways to measure bias error during lab and wished I would have gathered data on human reaction bias error when operating the stopwatch.

Next week I plan on working on heater design for our project. I'm excited for our group to start working on the project! Go Hot Shocks! 

The Mystery Oil

Summary

In this week’s lab session, we used the shock dynamometer to collect data for a “mystery oil” with an unknown weight. Using the same procedure of sweeping intervals of 15RPM and rebound/compression settings of 5 clicks as the previous two weeks, we collected data from the dyno's LVDT and pressure transducers.

Force vs Velocity comparision between 5W, 20W, and the unknown oil. (Click to zoom.)

Outside of data collection, we had two main goals for this week. The first was to finalize our viscosity model, enabling us to predict the weight of the mystery oil by comparing this week’s data to the previous data for 5W and 20W oil. The basis of our viscosity model comes from the linear relationship between viscous force and a fluid’s velocity gradient, and a plot comparing the force and velocity for each of the three oils can be seen above. Our current guess is a viscosity between 7-10W. As of this writing, we are on track to finalize our model by next week’s lab session, although additional filtering needs to be applied to our velocity data in order to more confidently predict the weight of the mystery oil.

Our second goal for this week, motivated by the February 16th project proposal deadline,  was to decide on a final project. After talking through some ideas amongst ourselves and with the teaching staff during Tuesday’s lab session, our group was split between two potential projects: a semi-active suspension system that would mount onto the shock’s rebound pin, thereby allowing us to alter the shock’s stiffness in real-time, and a heated enclosure that would create an isothermal environment around the shock and minimize the effects of thermal drift on the viscosity of the oil.

After taking a night to consider our options, we decided to focus our efforts on controlling the oil temperature within the shock. Although both projects intrigued us, we ultimately chose the temperature control project mainly because of the considerably higher time commitment involved with semi-active suspension. In addition, temperature control has the potential to benefit future ME 107 students by improving the data acquisition of the entire system.

Looking ahead, our main goal for next week, other than determining the viscosities of the three oils and guessing the weight of the mystery oil during our lab session, is to begin work on our final project. Our first steps will include researching necessary microcontrollers and heating elements, creating a model to predict viscous heat generation and convective heat loss within the shock, and starting to consider the advantages and disadvantages of different data acquisition methods in LabVIEW.

Thanks for reading!
-The Hot Shocks

Individual Thoughts

Grace

My main goal this week was to fit the load vs. velocity plots to determine which of the parameters (rebound setting, compression setting, RPM) would be best suited for our model to predict the viscosity of the mystery oil. I fit a linear regression to plots with data taken at varying RPMs, and with multiple settings for compression and rebound. In determining which data sets were the “best,” I looked for the plots that were the most linear (R square values close to 1), since the the load should be a linear function of velocity. Second, after completing some research, I found that the 20W should be about 1.2x as viscous as the 5W oil at 50C, so I looked to see if the slope of the 20W oil were 1.2x that of the 5W oil, since the slope should be proportional to the viscosity. With these conditions, it seems that 90 RPM with 0 clicks on compression and 20 clicks on the rebound setting was best.

Our group has gotten along really well so far this semester and we are excited for what’s to come! The freedom to choose our own project for the rest of the semester has definitely helped to engage me and my teammates in this class.

Turner

My work this week was mainly focused on data analysis and plot creation with the goal of accurately predicting the weight of our mystery oil. Although our model will not be perfect because of the noise in the LVDT measurements, I believe our filtering methods will allow for suitable linear fits to be made between force and velocity. I was very happy with the Hot Shocks’ communication and teamwork this week; we were able to efficiently assign tasks and brainstorm project ideas, which bodes well for the weeks to come.

Les

The bulk of my work this week focused on data collection and analysis of the underlying assumptions of our predictive model. Because we were able to collect data on both position and force, we believe our best predictive model will be based on the viscous force equation. Unfortunately, sensor noise in the shock dynamometer and the noise from derivating the position readout to velocity hinder the accuracy of our model. I also put a lot of thought into our semester’s experiment and was eager to work on a semi-active shock absorber controller, but we agreed as a team that it might be too ambitious of a project. I’m a little disappointed, but still excited to work on the controller algorithm for our oil temperature regulator. Our team gets along really well inside and outside the lab, and I’m excited to work with them this semester. I feel like I should have contributed more this week, but I appreciate that my team understands I was busy and I plan to devote a lot of time to the control algorithm and microprocessor in the coming weeks.

Christy

This week I focused on creating plots that compare the outcome of testing with different oil weights. Keeping all other variables constant, I was able to analyze the effect of altering the oil weight on force and pressure. While the different oil weights did not have a huge impact on the force measurements, the differences between the oils was much more apparent in the oil reservoir pressure plots. All of the plots place the mystery oil in between 5W and 20W. For a majority of the plots, the mystery oil has an almost identical force plot to the 5W leading me to believe that the mystery oil is somewhere between 5W and 10W. The Hot Shocks appears to have really good chemistry thus far and I am excited to start our temperature control project!

Eric

I spent the majority of my time working on our data acquisition this week.  My focus, in particular, was the filtering of our data.  The raw data collected provides only a position measurement.  This is insufficient for the characterization of fluid dynamics models as velocity and the velocity gradient are key.  Generating a velocity vector by simply taking the derivative of our position measurement resulted in a clear trend, but suffered from significant amounts of noise.  This is to be expected as differentiating an already noisy signal will amplify the noise.  To deal with the noise, several basic filters were implemented: blurring, exponential moving average, kalman, and basic model based.  My future work will include tuning the individual filter parameters, quantitatively analyzing the effectiveness of each style of filter, and deciding on a filter or combination of filters that best suits the job.  There is much to be explored and much to learn with regard to our data acquisition.  The value of effective, validated statistical analysis cannot be overstated.  Go Hot Shocks!

Justin

This week I worked on refining our MATLAB dataParser function. During the first week of lab, I wrote this function to pull data from Excel files generated by the shock dyno. This week I added lines to calculate error bars for our velocity. I also looked into using averaging as a filtering method. When we calculate the viscosity of the mystery oil by using a linear regression on a force vs velocity plot, error bars will be useful to visually determine how confident our viscosity guess is. I am happy with the work our group has done so far and excited to start our project! I have high hopes that our attempt to create an isothermal shock body will help future shock dyno groups.

Meet The Hot Shocks

Grace Alexander

I am a senior studying Mechanical Engineering at UC Berkeley. After I graduate I will be working at Chevron as a design engineer, though I hope to return to school at some point in the future to continue my education by studying fluid mechanics, or more specifically biofluid mechanics. My interest in fluid mechanics is also what drove me to choose the shock dyno because it offers an opportunity to connect the theories learned in class to a physical system.

Personally, I enjoy most activities outdoors or sports related. As a freshmen, I actually had a contract as a professional cyclist, though I soon learned that balancing academics and a professional level training regimen is quite difficult. I still enjoy a quality Sunday bike ride from time to time, and I also love running, hiking, skiing, and playing IM soccer.

I am looking forward to spending my final semester at Cal learning about the shock dyno and completing our experiment!

 

Turner Anderson

I’m a senior at UC Berkeley majoring in Mechanical Engineering and minoring in Energy Engineering, and upon my graduation in May I hope to pursue a career in either the aerospace or the alternative energy industry.

I chose the Shock Dyno lab because it allows me to combine my prior knowledge of fluid mechanics (from ME 106) and suspension system modeling (from my E 177 final project) with my interest in vehicle dynamics and predictive modeling.

When I’m not in class or at LBNL conducting research on fuel-switching biogas burners, my hobbies include rock climbing, skiing, and running. I can’t wait to see what The Hot Shocks can do with a semester in front of the Shock Dyno!

 

Les Girard

I am a senior mechanical engineering student at the University of California, Berkeley. Upon graduating, I will be working in San Diego as a Production Associate for General Dynamics - NASSCO, building container and tanker ships for the US domestic shipping fleet. In the future, I plan on returning to my studies in order to pursue a more advanced degree in control systems and aerospace.

I chose the shock dyno lab because I have previous experience working with car suspension in ME 131 and E 177, where my team and I designed a suspension simulation program that allowed users to simulate car suspensions using various models and control algorithms. Fluid mechanics is also an area of study that I need to improve in, and working in this lab allows me to both improve my knowledge in this field and study the shock absorber at the local level, rather than at the system level.

Outside of class, you can find me at the climbing gym with young Turner, playing beach volleyball, throwing some mad disc golf, and mixing a wide variety of classic and modern cocktails in my home bar.

 

Christy Jarman

I am a senior studying Mechanical Engineering at Cal. I will be continuing my education at UC Berkeley in the 5th year Master’s program with a focus in design. Upon my graduation in 2017, I hope to work in product design or manufacturing in San Diego or the Bay Area. I was interested in the Shock Dyno lab because I want to further develop my knowledge of fluids.  I am excited to be a member of The Hot Shocks and cannot wait for to further explore the Shock Dyno.

In my spare time, I play ultimate frisbee for the Women’s Club Team, mentor Berkeley youth through BEAM (Berkeley Engineers and Mentors) and volunteer as a counselor for Camp Kesem. I also enjoy playing sand volleyball, Spikeball or any other sport on the weekends. I love spending time outdoors, hiking, scuba diving, and traveling around the world.

 

Eric Mica

I am a senior studying Mechanical Engineering at the University of California, Berkeley.  After graduation I will work full time at Ursa Mechanical, a wearable technology company that I founded with some of my colleagues here at Cal.  The Shock Dyno lab presents an interesting challenge in both understanding the physics of what is actually going on, as well as interpreting the wealth of data in a meaningful way.  

When I’m not working in any sort of engineering capacity, I like to relax by either playing guitar or riding my motorcycle.  I frequent open mics in the bay area and love to talk about music.  Sharing music is one of my favorite ways of connecting with people.

 

Justin Wang

I am a senior at Cal studying Mechanical Engineering and will graduate this May. After graduating, I plan on working in Product Design or Manufacturing in the Bay Area. Currently I have interests in going to graduate school for an MBA after a couple years in industry.

When not in class, I can be found at the Berkeley Formula Racing garage. BFR is UC Berkeley’s Formula SAE team which designs and builds a small racecar every year and competes with other FSAE teams around the world. At BFR, I am a Senior Engine Team member and a Competition Driver for 2016.

My love of motorsports drew me to the ME 107 Shock Dyno lab with the hope to gain a deeper knowledge and understanding of shocks and suspension this semester. The Hot Shocks is full of talented members and I am excited to be a part of the team.


Next week we plan to post our initial findings from our first weeks of experimenting.

-The Hot Shocks