A simple approch would be using the range-node for scaling the temperatur to a preheating time.
[{"id":"e029089a247cd7f6","type":"range","z":"afa28cf7e65fe890","minin":"5","maxin":"15","minout":"120","maxout":"30","action":"clamp","round":true,"property":"payload","name":"temperatur -> preheat time","x":460,"y":1300,"wires":[["6934b46b0ac49088"]]},{"id":"404d04c648d2d5d6","type":"inject","z":"afa28cf7e65fe890","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":150,"y":1200,"wires":[["e029089a247cd7f6"]]},{"id":"08610b58a7aaa7ff","type":"inject","z":"afa28cf7e65fe890","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"15","payloadType":"num","x":150,"y":1360,"wires":[["e029089a247cd7f6"]]},{"id":"6934b46b0ac49088","type":"debug","z":"afa28cf7e65fe890","name":"debug 520","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":690,"y":1300,"wires":[]},{"id":"f69cccad482dc0ac","type":"inject","z":"afa28cf7e65fe890","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"30","payloadType":"num","x":150,"y":1400,"wires":[["e029089a247cd7f6"]]},{"id":"912025a4f18abc22","type":"inject","z":"afa28cf7e65fe890","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":150,"y":1240,"wires":[["e029089a247cd7f6"]]},{"id":"0fa17bf54ce4649e","type":"inject","z":"afa28cf7e65fe890","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"10","payloadType":"num","x":150,"y":1320,"wires":[["e029089a247cd7f6"]]},{"id":"ed050f9f4e4f0397","type":"inject","z":"afa28cf7e65fe890","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"7","payloadType":"num","x":150,"y":1280,"wires":[["e029089a247cd7f6"]]}]
The result can be stored in the flow-context for later.
If you need a non-linear function, you can build one with an excel sheet?
I use something similar, but with the outside temperatur to determine the needed preheating time.
But i don't use much math for it. I just save some data, plot it with the outside temperatur and then guess the values xD