Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hysteresis feature doesn't seem to work or just really confusing #2946

Open
catsuperberg opened this issue Jan 30, 2025 · 9 comments
Open

Hysteresis feature doesn't seem to work or just really confusing #2946

catsuperberg opened this issue Jan 30, 2025 · 9 comments

Comments

@catsuperberg
Copy link

Hysteresis sounds like a simple and useful feature. But it isn't clear what seems to be the use of hysteresis as it is implemented.

Is it there to create a stairstep effect for people with gradual fan curves?

With the option like "Hysteresis only applies on the way down" and hysteresis set to 10 degrees I'd expect following behavior:

  • i have a graph with 20% below 50 degree temp and 40% above that mark
  • as soon as temp goes over 50 the fan ramps to 40%
  • when the load is lowered some and the temp is 45 degree the fan is still at 40% as the temp isn't 10 degrees below 50
  • when the temp hits 39 degree the fan goes down to 20% until the 50 is reached again

But for now, with a simple stairstep graph it just either shift immediately between fan speed levels no mater if temps go up or down, or if you set response time to something high it lags both on the way up and down.

It would be great to see the implementation like this or another feature that enables this. I find it irritating when fans change speed be it gradually or with distinct steps and for the loads that are shifting right around the point you set on the graph it would be great to force higher RPM until it actually significantly dropped.

@Rem0o
Copy link
Owner

Rem0o commented Jan 30, 2025

Hysteresis is simply the degree of change required from the last change. If the last point of change was 48 degree, it will be centered around that point. Be aware that hysteresis is ignored at the limits of your graph ( first and last point ). That option can be disabled.

Hysteresis doesn't care about the shape of your graph, so if you expect the hysteresis to always applies exactly at a specific point, like around a staircase point, this may be why you got confused. It won't be "centered" around your 50 degree point.

The type of behavior you describe looks a lot more like a trigger fan curve. Look it up.

@Rem0o
Copy link
Owner

Rem0o commented Jan 30, 2025

Image

@catsuperberg
Copy link
Author

Does trigger curve help to make coming down the speed harder that getting higher?
I mean i'd really want to see a feature that allow the fan to stay at higher speeds even when temps go a bit lower. It is just too easy to encounter a load with which temps are flactuating up and down enough to change fan speeds.

I see this feature as a "Negative\Positive Bias Offset" so whenever the temp goes up it checks on the graph what speed it should be and sets fan speed higher accordingly. But when temp goes down a step it check on the graph offset by set temperature and only lowers fan speeds if they are lower on that graph with the offset.

@catsuperberg
Copy link
Author

For me, as i basically use the graph as a trigger. It would suffice to implement a Schmitt trigger behavior. But with that it would be more convenient to set the temp for two fronts rather then the middle point usually used to describe Schmitt trigger

@Rem0o
Copy link
Owner

Rem0o commented Feb 9, 2025

Does trigger curve help to make coming down the speed harder that getting higher?

Yes. It needs to hit either the idle or load temp for a change to occur.

it check on the graph offset by set temperature and only lowers fan speeds if they are lower on that graph with the offset

That's kind of the idea of "hysteresis only applies on the way down". If you set a 10 deg hysteresis, it will require a 10 degree drop from the last highest point hit.

@catsuperberg
Copy link
Author

Oh, sorry, didn't gather that trigger already works like this.

That's kind of the idea of "hysteresis only applies on the way down". If you set a 10 deg hysteresis, it will require a 10 degree drop from the last highest point hit.

That what i though but it seems like it is time dependent or something and even with it set to 10 degree it just switches down even with 2-3 degree drop (I've tested it with some stable 0 degree sensor and custom offset sensor)

@Rem0o
Copy link
Owner

Rem0o commented Feb 9, 2025

@catsuperberg I don't know how you did your test, but try with a file sensor and change the temp manually.

Here's a small video I made showing the behavior.

hysteresis.mp4

@catsuperberg
Copy link
Author

catsuperberg commented Feb 9, 2025

Ok, thanks. I get it now. It wasn't working for me because of "ignore hysteresis at minimum and maximum temps". Idk why it should affect anything until you get to the min\max temp which are set at the bottom right of the graph.
Thanks still for the trigger curve clarification. It seem much more useful as hysteresis only applies on the way down could still result in frequent speed changes if the load is such that it goes down n degrees for couple of seconds but barely passes the threshold temp (node).

@Rem0o
Copy link
Owner

Rem0o commented Feb 9, 2025

that it goes down n degrees for couple of seconds but barely passes the threshold temp

That's what the response time parameter is for. Increase it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants