Incorrect hysteresis?

Get help and insight.
Post Reply
nedbrush
Posts: 6
Joined: Sat Dec 03, 2011 10:05 am
Bot?: No

Incorrect hysteresis?

Post by nedbrush »

Hi,

I've been using my BCS-460 for a few months now, so I'm still getting used to it. It's exhibiting a behavior with the hysteresis control that doesn't make sense to me.

I've got it controlling a lager fridge in my garage that also has a space heater in it. So, I have two Douts on the BCS-460, one controlling the fridge in cooling mode and one controlling the heater in heating mode. Each one is set to 1 degree of hysteresis (37-38 for heating) and (38-39 for cooling). I have an "idle" state that chooses to either go into heat mode or cool mode. For example, if it goes below 37, then go into heating mode.

Here's the problem, the temp goes low and it goes into heat mode. The temp is below 37, and it kicks the heater on, but it kicks it off at 37. Maybe I don't understand the hysteresis. I would expect it to drop to 36.9, go into heat mode and not kick off the heater until it gets to 38.

As it behaves no the heater is cycling on and off all of the time, which I really want to avoid.

Can somebody explain hysteresis in more detail and maybe give me some hints on a better way to program my lager fridge?

Thanks,
NB
User avatar
ECC
Posts: 676
Joined: Fri Sep 12, 2008 12:29 pm
Bot?: No
Contact:

Re: Incorrect hysteresis?

Post by ECC »

I agree, that doesn't make any sense.

For heating, a setpoint of 38 with a 1deg hyst range (37-38), this means that the output will be ON until it hits 38 and then turn off, and when the temp then drops below 37 it will turn on again.

Similarly for cooling with a setpoint of 38 with a 1deg hyst range (38-39), this means that the output will be ON until it hits 38 and then turn off, and when the temp then rises above 39 it will turn on again.

My guess is that there is something incorrect in your 'Idle' state programming or exit conditions. In fact, I would simplify the whole thing into a single state process and ditch the idle state. This is your basic dual stage controller, one heat output and one cool output from the same state. The range of the hysteresis alone should keep switching to a minimum. If you want less switching, just widen the hysteresis range or separate the setpoints.

All of that being said, if you have a specific need to have an idle state, of course the BCS can do that. If you want to give us more information on the exit conditions and process layout we can help solve the problem.
ChuckO2999
Posts: 29
Joined: Tue Aug 24, 2010 4:33 am
Bot?: No

Re: Incorrect hysteresis?

Post by ChuckO2999 »

Take a look at the System Settings page and verify that you have both PID and Hysteresis Output Control Settings properly, heat radio button on for the heater and cool radio button on for the fridge.
nedbrush
Posts: 6
Joined: Sat Dec 03, 2011 10:05 am
Bot?: No

Re: Incorrect hysteresis?

Post by nedbrush »

I have an Idle state because it's controlling multiple heaters in multiple fermentation fridges and I don't want them all to come on at the same time for power reasons. So, the Idle state forces it to choose one fridge at a time. I will try it without the Idle state.

I'm starting to think this is a bug of some sort. I changed the heater to a different Temp input/Discrete output and the hysteresis worked correctly. I changed the Idle state minimally, just to support the new Temp exit condition. So, I don't know if it's wrong specifically for that Dout or if it's that I have the same Temp controlling both heat and cool. Either way, I get different behavior on different Temp Ins/Douts with the same settings (heat with hysteresis). I guess I can try removing the Cool from the Dout that wasn't working and see if that's it.

Chuck, I verified everything looked correct in the System Settings. All of the PIDs were set to 3, but I don't use PID. And the hysteresis setting were correct, output (heat/cool) and the hysteresis values were set to 1 (or 2).

To describe the system a bit more, I have Out3 set to Temp0 in heat mode with 1degreee of hysteresis. I have Out4 set to Temp0 in cool mode with 1degree of hysteresis. I have Out5 set to Temp1 in heat mode with 2degrees of hysteresis (controlling a second heater in another fridge). The Idle state (state0) has exit conditions of Temp0 < 37 -> Lager Fridge Warm (state1), Temp0 > 39 -> Lager Fridge Cool (state2), Temp1 < 66 -> Ale Fridge Warm (state3). State1 has Dout3 on heat with hysteresis 37-38. Exit condition Temp0 >= 38 or Timer > 20min (basically a timeout) both exit to -> All Off (state4) (a timeout state for all states to make sure fridges don't get excessively cycled, all Douts off) which has a Timer1 > 5min exit to-> All Idle. State2 had Dout4 on cool with hysteresis 38-39. Exit condition Temp0 <= 38 or timeout. exit to-> All off. State3 has Dout5 on heat with hysteresis 66-68 or timeout exit to -> All off.

The problem is that the fridge will drop to 36.9 and the Idle state will jump to Lager Warm. It gets stuck in Lager warm with the heater cutting on for Temp0 < 37 and cutting off for Temp0 > 37. So, it never exits the state until the timeout. During that time, the heater is cycling frequently.

Hopefully that explanation works. I can try screenshots or saved state files if that's easier.

Thanks for your help on this.
NB
User avatar
ECC
Posts: 676
Joined: Fri Sep 12, 2008 12:29 pm
Bot?: No
Contact:

Re: Incorrect hysteresis?

Post by ECC »

Thanks for the detailed explanation. I'll try to reproduce this. If you could post the processs config file, that would help, but I can easily program this and see if i get the same strange behavior. It should definitely not be switching around 37 in state1 if you have the setpoint at 38.
User avatar
ECC
Posts: 676
Joined: Fri Sep 12, 2008 12:29 pm
Bot?: No
Contact:

Re: Incorrect hysteresis?

Post by ECC »

I programmed this based on your description, but it seems to be working as expected. If you email me your process file I can look at your programming in more detail.
Post Reply