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.
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
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.
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!
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.
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.
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.
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.