Replies: 3 comments 1 reply
-
That sounds like a good idea. Probably best to create interface for filters, so it would be then easy to add new filters. Filters probably need to have 'context' so they may save state information, that should allow creating more complex filters.... like moving/rolling average, etc... |
Beta Was this translation helpful? Give feedback.
-
At least for CPU cooling, cooling fan speed 'undershoot' can cause instability or throttling. All averages 'react' with delay, hence I think peak detector with decay would be the most optimal way to handle changing load. Probably the next step up would be a PID loop, which would likely only be more optimal in low heat capacity systems like air cooling. I am not a software engineer so thank you for considering the idea. |
Beta Was this translation helpful? Give feedback.
-
Initial "filter" framework is now checked-in (79b6221). This adds new commands to set/query filter on FAN output: SYS:FANx:FILTER First filter implemented is a version of "Lossy Peak Detector", with option to add delay before decay starts after a peak.. Currently this is just for adding filter on each fan output, but it might make sense allow adding filter on the "mbfan" inputs as well... |
Beta Was this translation helpful? Give feedback.
-
My motherboard is tying PWM to real-time CPU temperature. This is far from optimal as there's a lot of latency in the system, which is even larger when water cooling. In other words, fans should run at higher speed for a while longer after the demand trigger. Therefore I think cooling would work better if it was possible to apply a filter to sensor data such as peak detector with a time decay:
if current_value > peak_value
peak_value = current_value
else
peak_value = peak_value * decay
Beta Was this translation helpful? Give feedback.
All reactions