Controller Testing


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



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.


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.


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.


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.


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.


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.