-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
RFC: Cooperative Heaters predictive control #6837
base: master
Are you sure you want to change the base?
RFC: Cooperative Heaters predictive control #6837
Conversation
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
6d385ad
to
b56d658
Compare
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
097a22c
to
1b115b6
Compare
Nice! |
1b115b6
to
e5001e1
Compare
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
e5001e1
to
5b36fbe
Compare
I imported some changes from there, and I hope, now it is a little better. |
From the eyes emoticon, I gather you found my comment confusing. What I tried to say: The display template functions in Klipper for LEDs and fans (example) seem to be using the same overarching logic, albeit with a bit of different nomenclature. |
I got the idea of what you meant after your comment in the temperature_fan PR. Thanks for checking. I was totally unaware of that functionality, now I will try to wrap my head around it. |
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
I don't know how I feel about adding a G-code command to reload the template or directly alter the PWM output. So, for now, I only leave here a bare config binding between template and heater. Thanks. |
Some time ago I dug heaters a little on the Discourse
I don't think PID is bad or needs to be replaced.
I tried to do some fun stuff, like train DNN or write my own algo to control the power.
In the end, everything looks the same.
There are historically various topics, that try to replace it or tune it differently.
I think the only practical reason is to handle something important for that human being.
So, there is an ultimate solution, I think.
Pid is still under the control of a heater and is able to drive it.
The end-user has the ability to adjust it freely, like in my doc example - drive PWM in a feedforward way if the fan is suddenly enabled, like for bridges.
If it is needed, it is definitely possible to get the current chamber temperature, adjust to the fan curve, try to parse the extruder moving queue (IDK) and drive PWM higher before the temperature falls and PID will reactively compensate for that.
I hope that will add enough flexibility to stop rituals like "how to do PID autotune properly".
Another example, for some reason people do not insulate the heating beds, adding thermistors inside a thick aluminum plate and then want sort of PID control by two thermistors, and feel that combined sensor is not good enough.
Well, now it is possible to literally query the sensors and decide what to do, like return the
-N
value and decrease bed heater power on demand.I hope it is made in a way to is safe and acceptable, leaves all existing safety measures in place, and mostly does not touch safety-critical code.
Thanks.
Btw, I will try to add templates to temperature FANs in a similar way, to fit most of the wishes, like curves, formulas & etc.