pidtuner / pidtuner.github.io

Free PID Controller gains tuning tool
GNU General Public License v3.0
239 stars 27 forks source link

Idea: Other algorithms besides PID Velocity Form? (Position Form) #1

Closed edgsc closed 5 years ago

edgsc commented 5 years ago

Great tool!

I'd like to know why Velocity Form was the choosed one. I haven't find a way to convert to Position Form. Are there plans to implement it?

Thanks!

pidtuner commented 5 years ago

Hi,

Thank you. Well the tool is mainly focused on tuning an ideal continuous PID. So in a sense is independent of the discrete PID implementation (position or velocity). Actually the biggest contribution of the tool is the identification part, because once you have the plant parameters you can apply any PID tuning rule you want that matches better your PID implementation.

The gains obtained by the tool should give you a good starting point regardless of your PID discrete implementation. From there you can just fine tune online if possible.

Feel free to post some result images or data here if the PID gains from this tool do not work for your PID.

edgsc commented 5 years ago

Thanks for your reply.

With suggested PID-Tuner parameters:

image Kp: 866 Ki: 4365 Kd = 0

I get the following oscillatory control, +-0.2ºC from setpoint: image

With Kp = 419, Ki = 26, Kd = 1688, oscillation is around 4x lower (+-0.05ºC): image

It's implemented on an Arduino; Bret Beauregard's PID code, which is an ISA Ideal PID algorithm. The last parameters were calculated with his autotune code (Astrom's Relay Method; Ziegler Nichol's PID tuning), Ku = 698,46; Pu = 32,24).

I wonder why so different results and if it wasn't Velocity Algorithm the cause and thought if it's because Veloc. calculates how much the output should be changed (based on last output), while Position form already calculates the output.

pidtuner commented 5 years ago

Mmm... those are some interesting results. Would you mind posting your step response data to check the identified model? For reference, the tuning gains given by the tool are the ones from Sigurd Skogestad

edgsc commented 5 years ago

Mmm... those are some interesting results. Would you mind posting your step response data to check the identified model? For reference, the tuning gains given by the tool are the ones from Sigurd Skogestad

I couldn't find the original used, but here's another set of input & output used with similar results.

image

image

image

0.1 0   27.12
0.11    0   27.12
0.12    0   27.12
0.14    0   27.12
0.15    0   27.12
0.16    0   27.12
0.18    0   27.12
0.19    234.6   27.12
0.21    234.6   27.12
0.22    234.6   27.19
0.24    234.6   27.31
0.25    234.6   27.37
0.27    234.6   27.44
0.28    234.6   27.56
0.3 234.6   27.62
0.31    234.6   27.75
0.33    234.6   27.87
0.34    234.6   27.94
0.36    234.6   28.06
0.37    234.6   28.12
0.39    234.6   28.25
0.41    234.6   28.31
0.42    234.6   28.37
0.44    234.6   28.5
0.45    234.6   28.56
0.47    234.6   28.69
0.48    234.6   28.75
0.5 234.6   28.81
0.51    234.6   28.94
0.53    234.6   29
0.54    234.6   29.06
0.56    234.6   29.12
0.58    234.6   29.25
0.59    234.6   29.31
0.61    234.6   29.37
0.62    234.6   29.44
0.64    234.6   29.56
0.66    234.6   29.62
0.67    234.6   29.69
0.69    234.6   29.75
0.71    234.6   29.81
0.72    234.6   29.87
0.74    234.6   29.94
0.75    234.6   30
0.77    234.6   30.06
0.79    234.6   30.12
0.8 234.6   30.25
0.82    234.6   30.25
0.83    234.6   30.37
0.85    234.6   30.44
0.87    234.6   30.5
0.88    234.6   30.56
0.9 234.6   30.56
0.92    234.6   30.62
0.93    234.6   30.69
0.95    234.6   30.75
0.96    234.6   30.81
0.98    234.6   30.87
1   234.6   30.94
1.01    234.6   31
1.03    234.6   31
1.04    234.6   31.06
1.06    234.6   31.12
1.08    234.6   31.19
1.09    234.6   31.19
1.11    234.6   31.25
1.13    234.6   31.31
1.14    234.6   31.37
1.16    234.6   31.37
1.18    234.6   31.44
1.2 234.6   31.5
1.21    234.6   31.56
1.23    234.6   31.56
1.25    234.6   31.62
1.27    234.6   31.69
1.28    234.6   31.69
1.3 234.6   31.75
1.32    234.6   31.81
1.34    234.6   31.81
1.35    234.6   31.87
1.37    234.6   31.94
1.39    234.6   32
1.41    234.6   32
1.42    234.6   32.06
1.44    234.6   32.06
1.46    234.6   32.13
1.48    234.6   32.19
1.49    234.6   32.19
1.51    234.6   32.25
1.53    234.6   32.25
1.55    234.6   32.31
1.56    234.6   32.31
1.58    234.6   32.38
1.6 234.6   32.44
1.62    234.6   32.44
1.63    234.6   32.5
1.65    234.6   32.5
1.67    234.6   32.56
1.69    234.6   32.56
1.7 234.6   32.63
1.72    234.6   32.63
1.74    234.6   32.63
1.76    234.6   32.69
1.77    234.6   32.69
1.79    234.6   32.75
1.81    234.6   32.75
1.83    234.6   32.81
1.84    234.6   32.81
1.86    234.6   32.88
1.88    234.6   32.88
1.9 234.6   32.88
1.91    234.6   32.94
1.93    234.6   32.94
1.95    234.6   32.94
1.97    234.6   33
1.98    234.6   33
2   234.6   33.06
2.02    234.6   33.06
2.04    234.6   33.13
2.05    234.6   33.13
2.07    234.6   33.13
2.09    234.6   33.19
2.11    234.6   33.19
2.12    234.6   33.19
2.14    234.6   33.25
2.16    234.6   33.25
2.18    234.6   33.25
2.19    234.6   33.31
2.21    234.6   33.31
2.23    234.6   33.38
2.25    234.6   33.38
2.27    234.6   33.38
2.29    234.6   33.44
2.31    234.6   33.44
2.33    234.6   33.44
2.35    234.6   33.5
2.37    234.6   33.5
2.39    234.6   33.56
2.4 234.6   33.56
2.42    234.6   33.56
2.44    234.6   33.63
2.46    234.6   33.63
2.48    234.6   33.63
2.5 234.6   33.69
2.52    234.6   33.69
2.54    234.6   33.69
2.56    234.6   33.69
2.58    234.6   33.75
2.6 234.6   33.75
2.62    234.6   33.75
2.64    234.6   33.81
2.66    234.6   33.81
2.68    234.6   33.81
2.7 234.6   33.88
2.72    234.6   33.88
2.74    234.6   33.88
2.76    234.6   33.88
2.78    234.6   33.94
2.8 234.6   33.94
2.82    234.6   33.94
2.83    234.6   34
2.85    234.6   34
2.87    234.6   34
2.89    234.6   34
2.91    234.6   34
2.93    234.6   34.06
2.95    234.6   34.06
2.97    234.6   34.06
2.99    234.6   34.06
3.01    234.6   34.13
3.03    234.6   34.13
3.05    234.6   34.13
3.07    234.6   34.13
3.09    234.6   34.19
3.11    234.6   34.19
3.13    234.6   34.19
3.15    234.6   34.19
3.17    234.6   34.19
3.19    234.6   34.19
3.21    234.6   34.25
3.23    234.6   34.25
3.25    234.6   34.25
3.27    234.6   34.25
3.28    234.6   34.25
3.3 234.6   34.31
3.32    234.6   34.31
3.34    234.6   34.31
3.36    234.6   34.31
3.38    234.6   34.38
3.4 234.6   34.38
3.42    234.6   34.38
3.44    234.6   34.38
3.46    234.6   34.38
3.48    234.6   34.38
3.5 234.6   34.44
3.52    234.6   34.44
3.54    234.6   34.44
3.56    234.6   34.44
3.58    234.6   34.44
3.6 234.6   34.5
3.62    234.6   34.5
3.64    234.6   34.5
3.66    234.6   34.5
3.68    234.6   34.5
3.7 234.6   34.56
3.72    234.6   34.56
3.73    234.6   34.56
3.75    234.6   34.56
3.77    234.6   34.56
3.79    234.6   34.56
3.81    234.6   34.56
3.83    234.6   34.56
3.85    234.6   34.56
3.87    234.6   34.56
3.89    234.6   34.56
3.91    234.6   34.56
3.93    234.6   34.56
3.95    234.6   34.56
3.97    234.6   34.56
3.99    234.6   34.63
4.01    234.6   34.63
4.03    234.6   34.63
4.05    234.6   34.63
4.07    234.6   34.63
4.09    234.6   34.63
4.11    234.6   34.69
4.13    234.6   34.69
4.15    234.6   34.69
4.17    234.6   34.69
4.18    234.6   34.69
4.2 234.6   34.69
4.22    234.6   34.69
4.24    234.6   34.69
4.26    234.6   34.69
4.28    234.6   34.69
4.3 234.6   34.75
4.32    234.6   34.75
4.34    234.6   34.75
4.36    234.6   34.75
4.38    234.6   34.75
4.4 234.6   34.75
4.42    234.6   34.75
4.44    234.6   34.75
4.46    234.6   34.75
4.48    234.6   34.75
4.5 234.6   34.75
4.52    234.6   34.75
4.55    234.6   34.81
4.57    234.6   34.81
4.59    234.6   34.81
4.61    234.6   34.81
4.63    234.6   34.81
4.66    234.6   34.81
4.68    234.6   34.81
4.7 234.6   34.81
4.72    234.6   34.81
4.74    234.6   34.88
4.77    234.6   34.88
4.79    234.6   34.88
4.81    234.6   34.88
4.83    234.6   34.88
4.85    234.6   34.88
4.88    234.6   34.81
4.9 234.6   34.81
4.92    234.6   34.81
4.94    234.6   34.81
4.96    234.6   34.81
4.99    234.6   34.88
5.01    234.6   34.88
5.03    234.6   34.88
5.05    234.6   34.88
5.07    234.6   34.88
5.09    234.6   34.88
5.12    234.6   34.88
5.14    234.6   34.88
5.16    234.6   34.88
5.18    234.6   34.88
5.2 234.6   34.88
5.23    234.6   34.94
5.25    234.6   34.94
5.27    234.6   34.94
5.29    234.6   34.94
5.31    234.6   34.94
5.34    234.6   34.94
5.36    234.6   34.88
5.38    234.6   34.94
5.4 234.6   34.94
5.42    234.6   34.94
5.45    234.6   34.94
5.47    234.6   34.94
5.49    234.6   34.94
5.51    234.6   34.94
5.53    234.6   34.94
5.56    234.6   34.94
5.58    234.6   34.94
5.6 234.6   34.94
5.62    234.6   34.94
5.64    234.6   34.94
5.67    234.6   34.94
5.69    234.6   34.94
5.71    234.6   34.94
5.73    234.6   34.94
5.75    234.6   35
5.78    234.6   35
5.8 234.6   35
5.82    234.6   35
5.84    234.6   35
5.86    234.6   35
5.88    234.6   35
5.91    234.6   35
5.93    234.6   35
5.95    234.6   35
5.97    234.6   35
5.99    234.6   35
6.02    234.6   35
6.04    234.6   35
6.06    234.6   35
6.08    234.6   35
6.1 234.6   35
6.13    234.6   35
6.15    234.6   35
6.17    234.6   35
6.19    234.6   35
6.21    234.6   35
6.24    234.6   35.06
6.26    234.6   35.06
6.28    234.6   35.06
6.3 234.6   35.06
6.32    234.6   35.06
6.35    234.6   35.06
6.37    234.6   35.06
6.39    234.6   35.06
6.41    234.6   35.06
6.43    234.6   35.06
6.46    234.6   35.06
6.48    234.6   35.06
6.5 234.6   35.06
6.52    234.6   35.06
6.54    234.6   35.06
6.56    234.6   35.06
6.59    234.6   35.06
6.61    234.6   35.06
6.63    234.6   35.13
6.65    234.6   35.06
6.67    234.6   35.06
6.7 234.6   35.06
6.72    234.6   35.13
6.74    234.6   35.13
6.76    234.6   35.13
6.78    234.6   35.13
6.81    234.6   35.13
6.83    234.6   35.13
6.85    234.6   35.13
6.87    234.6   35.13
6.89    234.6   35.13
6.92    234.6   35.13
6.94    234.6   35.13
6.96    234.6   35.13
6.98    234.6   35.13
7   234.6   35.13
7.03    234.6   35.13
7.05    234.6   35.13
7.07    234.6   35.13
7.09    234.6   35.13
7.11    234.6   35.13
7.14    234.6   35.13
7.16    234.6   35.06
7.18    234.6   35.13
7.2 234.6   35.13
7.22    234.6   35.13
7.25    234.6   35.13
7.27    234.6   35.13
7.29    234.6   35.13
7.31    234.6   35.13
7.33    234.6   35.13
7.36    234.6   35.13
7.38    234.6   35.13
7.4 234.6   35.13
7.42    234.6   35.13
7.44    234.6   35.13
7.46    234.6   35.13
7.49    234.6   35.13
7.51    234.6   35.13
7.53    234.6   35.13
7.55    234.6   35.13
7.57    234.6   35.13
7.6 234.6   35.13
7.62    234.6   35.13
7.64    234.6   35.13
7.66    234.6   35.13
7.68    234.6   35.13
7.71    234.6   35.13
7.73    234.6   35.13
7.75    234.6   35.13
7.77    234.6   35.13
7.79    234.6   35.13
7.82    234.6   35.13
7.84    234.6   35.13
7.86    234.6   35.13
7.88    234.6   35.06
7.9 234.6   35.06
7.93    234.6   35.06
7.95    234.6   35.06
7.97    234.6   35.06
7.99    234.6   35.06
8.01    234.6   35.06
8.04    234.6   35.06
8.06    234.6   35.06
8.08    234.6   35.06
8.1 234.6   35.06
8.12    234.6   35.06
8.14    234.6   35.06
8.17    234.6   35.06
8.19    234.6   35.06
8.21    234.6   35.06
8.23    234.6   35.06
8.25    234.6   35.06
8.28    234.6   35.06
8.3 234.6   35.06
8.32    234.6   35.06
8.34    234.6   35.06
8.36    234.6   35.06
8.39    234.6   35.06
8.41    234.6   35.06
8.43    234.6   35.06
8.45    234.6   35.06
8.47    234.6   35.06
8.5 234.6   35.06
8.52    234.6   35.06
8.54    234.6   35.06
8.56    234.6   35.06
8.58    234.6   35.13
8.61    234.6   35.06
8.63    234.6   35.13
8.65    234.6   35.13
8.67    234.6   35.06
8.69    234.6   35.06
8.71    234.6   35.06
8.74    234.6   35.06
8.76    234.6   35.06
8.78    234.6   35.06
8.8 234.6   35.06
8.82    234.6   35.06
8.85    234.6   35.06
8.87    234.6   35
8.89    234.6   35.06
8.91    234.6   35.06
8.93    234.6   35.06
8.96    234.6   35.06
8.98    234.6   35.06
9.01    234.6   35.06
9.03    234.6   35.06
9.06    234.6   35.06
9.08    234.6   35.06
9.11    234.6   35
9.13    234.6   35.06
9.16    234.6   35.06
9.18    234.6   35
9.21    234.6   35
9.23    234.6   35
9.26    234.6   35
9.28    234.6   35.06
9.31    234.6   35.06
9.33    234.6   35.06
9.36    234.6   35.06
9.38    234.6   35.06
9.41    234.6   35.06
9.43    234.6   35.06
9.46    234.6   35.06
9.48    234.6   35.06
9.51    234.6   35.06
9.53    234.6   35.06
9.55    234.6   35.06
9.58    234.6   35.06
9.6 234.6   35.06
9.63    234.6   35.06
9.65    234.6   35.13
9.68    234.6   35.13
9.7 234.6   35.13
9.73    234.6   35.13
9.75    234.6   35.13
9.78    234.6   35.13
9.8 234.6   35.13
9.83    234.6   35.13
9.85    234.6   35.13
9.88    234.6   35.13
9.9 234.6   35.13
9.93    234.6   35.13
9.95    234.6   35.13
9.98    234.6   35.13
10  234.6   35.13

And now how it performs: temperature oscillates between 29,95ºC to 30,25ºC. Kp: 961 Ki: 5950 Kd: 0

image

Again, for comparison, with Kp = 419, Ki = 26, Kd = 1688, oscillation is around 4x lower (+-0.05ºC): image

edgsc commented 5 years ago

I discovered my mistake. I was using different time units to get the parameters Kp, Ki, Kd. I changed PID Tuner's input from minutes to seconds and the results were closer do Brett's PID Autotune.

pidtuner commented 5 years ago

Sorry I was on holidays. Good to hear you found the issue. I was going to ask if your PID has rate limits implemented? Because the simulation shows that for a step change, the PID will give a strong kick as a response, but the rate limits help with this.

pidtuner commented 5 years ago

Closing due to inactivity. Please re-open if issue persist.