- Sep 12, 2024
- 2
- 3
Recently, I’ve installed an Auber AW-1520H PID controller to my SmokinTex PRO 1400 model smoker. This model of smoker comes with a manual thermostat base temperature controller which makes it a great candidate to upgrade with a PID controller. Due to the simplicity of the smoker’s system, it makes the AW-1520H basically plug and play upgrade. I’ve researched online to see if someone has published PID settings for this smoker but I did not find any. So, I came up with a test procedure to find out the best PID settings for my smoker and write this post to educate fellow smokers on the logic behind a PID controller and how you can configure your PID controller for your smoker as accurately as possible.
Before we get started, the most important thing about configuring a PID controller for a smoker is the location and permanency of the temperature location inside the smoker. The temperature probe that reads the temperature inside the smoker provides the most critical information for the PID controller. Auber recommends the probe to be placed 1/3rd distance from the top of the smoker, and certainly not anywhere close to the heating element. In addition to that, for your PID settings to work correctly, the location of the probe has to be exactly the same, every single time you operate the smoker. The best way to accomplish this is to place the probe in its location permanently (e.g. screw in the probe). If you are unable to do that, then make sure to attach the probe to the exact same location every single time when you use the smoker.
In this calibration exercise, we have a couple of variables of measurement that we will be using.
Error: The error is the temperature difference between the target temperature and the current temperature. If you set your smoker target temperature to 225F, and the current temperature of the smoker is 210F, then the error would be 15F.
Error Spread: Once the smoker reaches the target temperature, the controller will attempt to keep it there. In a perfect world, the temperature would stay at your target temperature, let’s say 225F, but it won’t. It will fluctuate over and under that target temperature as the controller powers up and down the heating element. So, if you observe the temperature fluctuating, let’s say, between 230F and 220F, then your error spread would be +-5F. By calibrating the PIDs, our goal is to get the error spread to as minimum as possible. After calibrating, my smoker is able to hold an error spread of +-1F.
Target Temperature: It is the temperature you set the controller to keep the smoker at. We will use 225F.
During this calibration, you must put some heat absorber inside the smoker. When you use your smoker, you have a piece of meat that absorbs the heat. We need to create a real-world scenario for the calibration. Yes, you can use a piece of meat (which may be ruined), or you can find two or three bricks, wrap them in aluminum foil, and place them in the smoker. The bricks will absorb heat, like a piece of meat would do, thus creating real-world conditions.
Step 1: Figure out full power overshoot
Make sure the smoker is empty! No bricks or meat inside for the first step. Set the controller settings to P:1, I:0, D:0, and target temperature 225F. Turn on the controller and let the temperature come up to 225F. The temperature will overshoot, note by how much. In my case, the temperature overshot by 27F degrees which means the temperature reading was 252F before it started to come down. The reason overshoot happens is that even though the controller cut the power from the heating element exactly at 225F (due to P being set to 1), the element is still hot and it will continue to heat.
Step 2: Figure out P value
Open the door of the smoker and let it cool down. Place the bricks (heat absorbers) inside. Set the controller PID to P: Half of the overshoot amount (in my case I set it to 13), I:0, D:0. Close the door, let the smoker heat up and temperature stabilize. Note the error spread. In my case, I was seeing -11F+2F, meaning the temperature fluctuated between 214F and 227F. This is where the experiment begins. Half of the overshoot as a P value will always be too high. So, we will repeat this experiment, each time, open the door, let the smoker cool down a bit, lower the P value by one, close the door, and note down the spread after the temperature stabilizes. You will end up with something like this:
As you can see, the lower the P number is, the more power the controller will apply as the temperature starts dropping, hence lower negative spread, but the consequence is, that the carryover heat from the heating element due to high power will overshoot the target temperature. You want to find a P value that gives you the closest negative and positive spread. In my case, I picked a P value of 10.
Step 3: Figure out I value
So far our controller is set to P:10, I:0, D:0. This setting will give us a -7F+6F error spread with a target temperature of 225F. We will not change the P value anymore. So, the temperature will fluctuate between 218F and 231F. This is already a big improvement compared to the results without a PID controller, but we want to be better. If we can, we want an error spread of +-1F. This is where the I setting comes in. The P value is like a drummer, banging on the drums with a lot of power. The I value acts like a harpist playing a harp, gentle power with fingers. So, the I value will help smooth out the power inputs coming from the P value to help us get the error spread even smaller. At this point, the smoker is still on, with the bricks inside and holding a temperature of around 225F. Set the PID settings to P10, I: 200, D:0. Open the door, and let the temperature drop to 190F. Close the door. Let the temperature stabilize around 225F, and take a look at the error spread. At this time, the error spread should be better than what we had before. In my case, the error spread now was -5F+6F. Now, we will repeat the same process, by increasing the I value by 100. So, set the PID to P10, I: 300, D:0, open the door, let the temperature drop to 190F, close the door, and let the temperature stabilize. Observe and note the error spread. In my case, I had to repeat this experiment 4 times until I hit the I value of 600 which resulted in an error spread of +-1F. Thus, with the PID settings, P:10, I:600, D:0, my smoker was holding a temperature of 224F and 226F. At this point, you have a very stable smoker.
Step 4: Figure out D value
Now, we have a very stable smoker that is holding temperature really well. However, what would happen if we open the door, let's say for a bit to take the temperature of our meat? The smoker's temperature will drop like crazy because all the heat will escape from the open door. This is where the D value will come in. The D value is for emergencies when the temperature drops massively due to the open door, the D value will determine how aggressive the controller needs to be with power to get back to the target temperature. To figure out the D value, we need to time measurements. Time to Recovery, and Time to Stable. The experiment will go as follows. We will open the door and let the temperature drop to 190F. We will close the door and time how many minutes it will take for the temperature to hit back up to our target temperature which is 225F. Time to stabilize will be calculated as how many minutes it will take the temperature to stabilize with the expected error spread (+-1F in our case). For example, at 1pm you open the door, let the temp drop to 190F, and close the door. You will have a temperature chart over time like this:
In this example, Time to Recovery is the time elapsed between 1:01 and 1:07, thus 6 minutes. Time to stable is the first target temperature we hit once stable error spread is observed after time to recovery point, hence 1:07 to 1:14, thus 7 minutes.
Now you know how we measure, we will set the D value in 50 increments and measure both Time to Recovery and Time to Stable, then chart it. The experiment is, to set the D value, open the door, close the door once the temperature drops 190F, let the smoker heat and stabilize, take a look at the temperature data, and calculate. In my case, this is what I observed.
As you can see, between 150 and 200 seemed to be right where I needed to be to minimize the time it takes to recover and stabilize. To fine-tune, you can reduce the increments. So in this case, I did one more experiment by setting the D value to 175 which gave me a very good result, and I’ve decided to keep it there. So for my smoker, and based on the location of the temperature probe, P:10, I:600, and D:175 worked great.
After all this, with the PID settings I got, here is an example of how well it worked. Here I have the smoker started cold with a smoke tube (already smoking), and a couple of beef short rib racks! From cold to target temp of 235F, it only overshoots by 2F and kept holding the temps -+1F. Really amazing stuff.
I hope this was useful. You can follow these steps to calculate your PID settings for any smoker or any controller really. They work the same way regardless of brand or smoker. Happy smoking!
Before we get started, the most important thing about configuring a PID controller for a smoker is the location and permanency of the temperature location inside the smoker. The temperature probe that reads the temperature inside the smoker provides the most critical information for the PID controller. Auber recommends the probe to be placed 1/3rd distance from the top of the smoker, and certainly not anywhere close to the heating element. In addition to that, for your PID settings to work correctly, the location of the probe has to be exactly the same, every single time you operate the smoker. The best way to accomplish this is to place the probe in its location permanently (e.g. screw in the probe). If you are unable to do that, then make sure to attach the probe to the exact same location every single time when you use the smoker.
In this calibration exercise, we have a couple of variables of measurement that we will be using.
Error: The error is the temperature difference between the target temperature and the current temperature. If you set your smoker target temperature to 225F, and the current temperature of the smoker is 210F, then the error would be 15F.
Error Spread: Once the smoker reaches the target temperature, the controller will attempt to keep it there. In a perfect world, the temperature would stay at your target temperature, let’s say 225F, but it won’t. It will fluctuate over and under that target temperature as the controller powers up and down the heating element. So, if you observe the temperature fluctuating, let’s say, between 230F and 220F, then your error spread would be +-5F. By calibrating the PIDs, our goal is to get the error spread to as minimum as possible. After calibrating, my smoker is able to hold an error spread of +-1F.
Target Temperature: It is the temperature you set the controller to keep the smoker at. We will use 225F.
During this calibration, you must put some heat absorber inside the smoker. When you use your smoker, you have a piece of meat that absorbs the heat. We need to create a real-world scenario for the calibration. Yes, you can use a piece of meat (which may be ruined), or you can find two or three bricks, wrap them in aluminum foil, and place them in the smoker. The bricks will absorb heat, like a piece of meat would do, thus creating real-world conditions.
Step 1: Figure out full power overshoot
Make sure the smoker is empty! No bricks or meat inside for the first step. Set the controller settings to P:1, I:0, D:0, and target temperature 225F. Turn on the controller and let the temperature come up to 225F. The temperature will overshoot, note by how much. In my case, the temperature overshot by 27F degrees which means the temperature reading was 252F before it started to come down. The reason overshoot happens is that even though the controller cut the power from the heating element exactly at 225F (due to P being set to 1), the element is still hot and it will continue to heat.
Step 2: Figure out P value
Open the door of the smoker and let it cool down. Place the bricks (heat absorbers) inside. Set the controller PID to P: Half of the overshoot amount (in my case I set it to 13), I:0, D:0. Close the door, let the smoker heat up and temperature stabilize. Note the error spread. In my case, I was seeing -11F+2F, meaning the temperature fluctuated between 214F and 227F. This is where the experiment begins. Half of the overshoot as a P value will always be too high. So, we will repeat this experiment, each time, open the door, let the smoker cool down a bit, lower the P value by one, close the door, and note down the spread after the temperature stabilizes. You will end up with something like this:
P Value | Negative Spread | Positive Spread |
---|---|---|
13 | -11 | +2 |
12 | -10 | +3 |
11 | -8 | +5 |
10 | -7 | +6 |
9 | -5 | +7 |
8 | -5 | +9 |
7 | -4 | +11 |
As you can see, the lower the P number is, the more power the controller will apply as the temperature starts dropping, hence lower negative spread, but the consequence is, that the carryover heat from the heating element due to high power will overshoot the target temperature. You want to find a P value that gives you the closest negative and positive spread. In my case, I picked a P value of 10.
Step 3: Figure out I value
So far our controller is set to P:10, I:0, D:0. This setting will give us a -7F+6F error spread with a target temperature of 225F. We will not change the P value anymore. So, the temperature will fluctuate between 218F and 231F. This is already a big improvement compared to the results without a PID controller, but we want to be better. If we can, we want an error spread of +-1F. This is where the I setting comes in. The P value is like a drummer, banging on the drums with a lot of power. The I value acts like a harpist playing a harp, gentle power with fingers. So, the I value will help smooth out the power inputs coming from the P value to help us get the error spread even smaller. At this point, the smoker is still on, with the bricks inside and holding a temperature of around 225F. Set the PID settings to P10, I: 200, D:0. Open the door, and let the temperature drop to 190F. Close the door. Let the temperature stabilize around 225F, and take a look at the error spread. At this time, the error spread should be better than what we had before. In my case, the error spread now was -5F+6F. Now, we will repeat the same process, by increasing the I value by 100. So, set the PID to P10, I: 300, D:0, open the door, let the temperature drop to 190F, close the door, and let the temperature stabilize. Observe and note the error spread. In my case, I had to repeat this experiment 4 times until I hit the I value of 600 which resulted in an error spread of +-1F. Thus, with the PID settings, P:10, I:600, D:0, my smoker was holding a temperature of 224F and 226F. At this point, you have a very stable smoker.
Step 4: Figure out D value
Now, we have a very stable smoker that is holding temperature really well. However, what would happen if we open the door, let's say for a bit to take the temperature of our meat? The smoker's temperature will drop like crazy because all the heat will escape from the open door. This is where the D value will come in. The D value is for emergencies when the temperature drops massively due to the open door, the D value will determine how aggressive the controller needs to be with power to get back to the target temperature. To figure out the D value, we need to time measurements. Time to Recovery, and Time to Stable. The experiment will go as follows. We will open the door and let the temperature drop to 190F. We will close the door and time how many minutes it will take for the temperature to hit back up to our target temperature which is 225F. Time to stabilize will be calculated as how many minutes it will take the temperature to stabilize with the expected error spread (+-1F in our case). For example, at 1pm you open the door, let the temp drop to 190F, and close the door. You will have a temperature chart over time like this:
Time | Smoker Temperature (F) |
---|---|
1:00 | 225 |
1:01 | 190 |
1:02 | 182 |
1:03 | 185 |
1:04 | 198 |
1:05 | 211 |
1:06 | 219 |
1:07 | 225 |
1:08 | 229 |
1:09 | 226 |
1:10 | 223 |
1:11 | 220 |
1:12 | 222 |
1:13 | 226 |
1:14 | 225 |
1:15 | 224 |
1:16 | 225 |
1:17 | 226 |
1:18 | 225 |
1:19 | 224 |
1:20 | 225 |
In this example, Time to Recovery is the time elapsed between 1:01 and 1:07, thus 6 minutes. Time to stable is the first target temperature we hit once stable error spread is observed after time to recovery point, hence 1:07 to 1:14, thus 7 minutes.
Now you know how we measure, we will set the D value in 50 increments and measure both Time to Recovery and Time to Stable, then chart it. The experiment is, to set the D value, open the door, close the door once the temperature drops 190F, let the smoker heat and stabilize, take a look at the temperature data, and calculate. In my case, this is what I observed.
D Value | Time to Recovery (min) | Time to Stable (min) |
---|---|---|
50 | 6 | 39 |
100 | 7 | 14 |
150 | 8 | 10 |
175 | 8 | 4 |
200 | 9 | 3 |
250 | 10 | 3 |
300 | 11 | 3 |
350 | 13 | 2 |
As you can see, between 150 and 200 seemed to be right where I needed to be to minimize the time it takes to recover and stabilize. To fine-tune, you can reduce the increments. So in this case, I did one more experiment by setting the D value to 175 which gave me a very good result, and I’ve decided to keep it there. So for my smoker, and based on the location of the temperature probe, P:10, I:600, and D:175 worked great.
After all this, with the PID settings I got, here is an example of how well it worked. Here I have the smoker started cold with a smoke tube (already smoking), and a couple of beef short rib racks! From cold to target temp of 235F, it only overshoots by 2F and kept holding the temps -+1F. Really amazing stuff.
I hope this was useful. You can follow these steps to calculate your PID settings for any smoker or any controller really. They work the same way regardless of brand or smoker. Happy smoking!