top of page

Heater Control

A standard 3D printer relies on two heaters to operate properly: one at the extruder to melt the printer filament, and one on the print bed to prevent components from adhering to the printer.  Generally both of these heaters are controlled via two identical resistive heating elements; in the IFFF, these take the form of two 24V, 40 Watt devices, meaning they have an impedance of ≅15Ω. In order to set a temperature, we simply set a PWM the voltage over this resistance, and an increase of voltage/current will map directly to an increase of our output temperature.

Temperature Sensing

In order to close the loop of this temperature control, the IFFF came with two analog temperature sensors, yielding the following non-linear temperature to voltage relation:

temp_measure.png

Our two heaters will operate around two fixed points: the bed heater ought to maintain a temperature of 60℃ throughout the print, and the extruder ought to maintain a temperature of  200℃. The temperature-voltage relation is approximately linear around both of these regimes, with a linear approximation having an R^2 of 96%, so we control the temperature according to linearizations around t=60 and 200℃. This allows for very rapid temperature measurements with minimal calculation time, without sacrificing much accuracy.

Controlling Temperature:

Heating is controlled via a PWM circuit connecting this resistive heating element from the 24V rail to ground, this circuit is composed of a single gate-driver and a high-voltage NMOS according to the following circuit diagram:

heater_spice.PNG

Note in a true gate-driver, the voltage reference would be internal to the IC. The gate-driver serves to step-up the 3.3V logic of our MCU to the 24V logic of our NMOS, allowing for faster more effective switching for our PWM.  The NMOS ought to be selected to allow at least 40 Watts of power, and have as low an RON as possible, to maximize the power going to the heating element.

 

When translating our control signals to the output temperature, it is best to discuss it according to a duty cycle.  For example, it was found experimentally that a steady temperature of 185℃ is found when the voltage over the resistor is Vapp=14V. To find the required duty cycle to achieve this voltage in our circuitry, we then turn to the duty cycle expression:

Vapp = D%*24V100

Where D% is the duty cycle as a percentage of the driving waveform.  Meaning we achieve the desired heating when the heater is supplied with a waveform D%=58%

 

Generally temperature control systems such as the one we have described are going to be first order systems with some small time delay. A good analogy of this control would be the temperature control of a shower, where the effects of turning the shower knobs, our PWM, are not felt for many seconds, allowing for significant overshoot.  For that reason it is important to outline an effective PID control scheme to ensure our heater circuits do not over-reach their operating temperatures and damage the electronics, though generally much shorter than the time delays of a shower, the delay of our systems is caused by the separation between the heating and sensing elements, as well as the size of the components to be heated, and as such the tuning of this controller will have to be repeated independently for any heater system.

bottom of page