EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: CSS BOY and Raspberry Pi?
From: Ryan Pierce <[email protected]>
To: "[email protected]" <[email protected]>
Date: Tue, 22 Dec 2015 23:12:48 -0600
Has anyone been able to run CSS BOY successfully on a Raspberry Pi?

My original plans for an EPICS-based computer controlled beer brewing system involved a control box with no user input except for an e-stop button. The operator interface would either be a laptop running CSS BOY, or an iPad with a WebOPI backend. But with the significantly faster quad core Raspberry Pi 2, and the availability of inexpensive panel mount touchscreen displays that work with Pi, I'm wondering if I could take advantage of some spare panel space on my control box and run CSS BOY on the same Pi that runs my Soft IOC? I believe you can run Java and Eclipse on a Pi, so I'm wondering if CSS BOY would work, and if it would perform reasonably well? Has anyone had any experience with this?

In other news....

I was quite fortunate to meet with Ralph Lange and Michael Davidsaver when they passed through Chicago on their way to an event at Argonne. They toured the makerspace where I was constructing this system, and we had a late night EPICS hacking session where they helped me fix some issues I'd been having with CSS BOY, a calcout record that wasn't updating like I thought it should, and they showed me some neat tricks with alarms. Thanks so much!

A friend and I did some redesign and fabrication to solve the problem of directing waste heat from the burner to keep it from damaging the frame or the actuated valves and sensors on the kegs. This past weekend I did my first test with the control box connected to the actual brewing hardware. I was using CSS BOY, a Soft IOC on the Pi, StreamDevice and asyn, and software I wrote on the Arduino Mega. For this test, I connected one propane burner, which heats one of the kegs, and a single DS18B20 temperature probe to the Arduino. While the test worked, I've now got a control algorithm question about preventing overshoot that is unrelated to EPICS.

For now, the system just has on/off control of the propane burner. (I do have a needle valve on each burner's propane supply, and I am considering putting stepper motors on them.) I didn't think PID would be terribly useful with a binary control output, so I coded an extremely simple thermostat algorithm: if temp < setpoint - deadband then turn on the burner; if temp > setpoint then turn off the burner. The results are here: http://elna.mackenziegems.com/20151220/20151220-2.png

I originally had a 70 F setpoint and 0.5 F deadband. Then I changed the setpoint to 120 F. The burner cut out at 120 F but the temperature overshot by 3 degrees F, and it took over 80 minutes to fall back down below 119.5 F which triggered the burner. That's more than I'd like. But from that point, everything happened as I expected. It took less than 30 seconds to heat the kettle by 0.5 F, it overshot by about 0.4 F, and took about 25 minutes to fall back to 119.5 F. Those numbers are perfectly acceptable.

I'm guessing the initial overshoot happened due to a number of reasons. (Residual heat in the stainless steel base of the keg needing time to transfer to the water? With 10+ gallons of water in the keg, convection to equalize temperature may not be efficient? Lag time in the thermal probe?) I'd think an ideal control algorithm should anticipate that with a large commanded temperature change, cutting off the burner early is necessary to prevent an overshoot, but that would be unnecessary with just a small 0.5 degree F change. I'm guessing this is a common control systems problem, so rather than reinvent the wheel, is there a standard algorithm that handles this? Or can PID be used in a situation like this?

Hopefully over the holidays I'll be able to make some blog posts with pictures of all this. Still, I'm glad I'm getting closer to being able to brew my first batch of beer with this system. (Would that be an IOC IPA? ;-)

Thanks,
Ryan

Replies:
Re: CSS BOY and Raspberry Pi? Pearson, Matthew R.
Re: CSS BOY and Raspberry Pi? Eric Norum

Navigate by Date:
Prev: EPICS synApps installation ERROR. Please, Help me. [email protected]
Next: Re: CSS BOY and Raspberry Pi? Pearson, Matthew R.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS synApps installation ERROR. Please, Help me. Mark Engbretson
Next: Re: CSS BOY and Raspberry Pi? Pearson, Matthew R.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 23 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·