- This topic has 3 replies, 2 voices, and was last updated 4 years, 5 months ago by PLCGuru.
- August 28, 2018 at 6:54 pm #3212Jim ManleyModeratorKarma: 262Rank: Jedi
I work in a bourbon distillery. Part of the process is to ferment cooked grains at a set temperature for a period of days. The location of the fermenters is not temperature controlled. When it’s hot outside, it’s hotter where the fermenters are located. In addition to the ambient temperature, the fermentation process generates heat. The fermenters are water cooled vessels (cooling coils inside the fermenter). The fermenter temperature is measured using a temperature sensor. In the PLC, the current temperature is compared to the set point. A PID loop is used to control the chilled water valve in order to maintain the temperature.
Pretty straight forward set up except for one thing: the rate of change of the mash temperature is such that, once the mash temperature hits the set point and the cooling system kicks in, there is no the cooling system can keep up. The mash temperature exceeds the set point for an extended period of time which impacts the alcohol yield of the batch.
I’ve done some experimenting and found that if I start the cooling system when the mash hits 68°F, the system can keep the mash at the desired set point of 75°F.
I’m looking for suggestions on how to modify the PLC PIDE loop to automate this process. Any suggestions would be appreciated.August 30, 2018 at 8:30 pm #3214PLCGuruKeymaster
What you’re describing is a directing acting process (versus the reverse acting a did in my YouTube tutorials on ControlLogix PIDE). So then as the temperature increase your output increases to add more chilled water. The problem you’re going to face is that chilled water (like steam heating in my example) is inefficient and there will be significant deadtime in the system as a result which you will need to manage.
What you could do is use the “Prog” parameters instead of the “Oper” parameters to control the loop. Programmatically run the loop in open-loop control mode until you reach your desired (and manageable) temperature of 68 F and then programmatically flip it into closed-loop mode from there to maintain.
I’m not entirely clear on your issue but this may be a way to programmatically control the loop to get the results you want.
Use the “ProgProgReq” to tell the controller to use Program Control, then you can use the “ProgAutoReq” and “ProgManReq” to programmatically flip the controller from Hand mode to Auto mode.
FredAugust 31, 2018 at 10:32 am #3217Jim ManleyModeratorKarma: 262Rank: Jedi
Thanks. You have a clear grasp on the issue. I need to start the chilled water well before I hit the set point then allow the controller to manage the temperature once I hit the set point.
FYI – I’ve tried doing a bump test on a fermenter but gave up. I could tell it was going to take a long time to see any sort of results (dead time measured in 10’s of hours if not days).
I should be able to modify what you did in the videos (thanks for those by the way) and create a model of my situation. I’ll share what I end up with here once I get it working.
JimAugust 31, 2018 at 12:56 pm #3218PLCGuruKeymaster
Alright sounds good Jim. Good luck!
- You must be logged in to reply to this topic.