Temperature Control
Vicki has an internal temperature control algorithms that allows it to intelligently adjust the valve openness in order to reach the target temperature and remain within as close a proximity of it as possible. The main algorithm that is utilized is the Proportionate integral (PI) control algorithms.
This algorithm is the newest and most optimized one available for Vicki devices and is the only one available for firmware >=4.3.
Other algorithms are available for older firmware versions, you can find information on them in the Deprecated temperature control algorithms page.
Proportionate Integral (PI) Control Algorithm
This algorithm is an implementation of a typical PI algorithm.
Both the proportional gain Kp and the integral gain Ki can be set with 5 decimal places after the comma.
The algorithm will run on 3 occasions:
- Periodic run (by default every 10 minutes)
- New target temperature is set
- T(measured) - T(target) > 2 degrees Celsius
There's a software hysteresis in place, which prevents the movement of the motor unless the error is > Thys.
Maximum allowed Integral value
Byte Index
Byte value - meaning
0
4C - The command code
1
XX - I[15:8]
2
XX -I[7:0]
Example command: 0x4C012C
I[15:0] = 0x012C = 300
Integral = I / 10 = 300 / 10 = 30
The error is set to its maximum allowed value of 30°C
Default:
I[15:0] = 0x01F4 = 500 = 50°C
0
4D – The command code.
4D – The command code.
1
XX - I[15:8]
2
XX -I[7:0]
Example command: 0x4D
Example command response: 0x4D03E8
I[15:0] = 0x03E8 = 1000
Integral = I / 10 = 1000 / 10 = 100
The error is set to its maximum allowed value of 100°C
Default:
I[15:0] = 0x01F4 = 50 = 50°C
Proportional gain - Kp
Byte Index
Byte value - meaning
0
37 - The command code
1
XX[23:16]
2
XX[15:8]
3
XX[7:0]
XX[23:0] = Kp * 131072
Default: 0x0C0000= 786432 -> Kp = 6
Example command: Setting Kp to 2.74688: 37057E67
2.74688*131072 = 360039 = 0x057E67
0
36 – The command code.
36 – The command code.
1
A[23:16]
2
A[15:8]
3
A[7:0]
Kp = A[23:0]/131072
Example command: 0x36
Example response: 0x36123456
A[23:0] = 0x123456 = 1193046
Kp = 1193046 / 131072 = 9.1
Integral gain - Ki
Byte Index
Byte value - meaning
0
3E - The command code
1
XX[23:16]
2
XX[15:8]
3
XX[7:0]
XX[23:0] = Ki * 131072
Default: 0x020000 = 131072 -> Kpi = 1
Example command: Setting Ki to 0.412678: 0x3E00D34A
0.412678*131072 = 54090 = 0x00D34A
0
3D – The command code.
3D – The command code.
1
B[23:16]
2
B[15:8]
3
B[7:0]
Ki = B[23:0]/131072
Example command: 0x3D
Example response: 0x3D112233
B[23:0] = 0x112233 = 1122867
Ki = 1122867/131072 = 8.57
Get the value of the integral
0
3F – The command code.
3F – The command code.
1
Integral [15:8]
2
Integral [7:0]
The value of the integral is pre-multiplied by 10 by the device, so it can use 0.1 resolution.
Example command: 0x3F
Example response: 0x3f0019
Integral [15:0] = 0x0019 = 25
Integral = 25/10 = 2.5
PI run period
Byte Index
Byte value - meaning
0
41 - The command code
1
XX = Run period in minutes. (default value: 10 minutes)
Example command: 0x410F - sets the run period to 15 minutes.
0
40 – The command code.
40 – The command code.
1
XX - Run period in minutes.
Example command: 0x40
Example response: 0x400B - the run period is 11 minutes
Temperature hysteresis (Thys)
Byte Index
Byte value - meaning
0
43 - The command code
1
XX = Temperature hysteresis value (Thys), multiplied by 10. (, Default value for f.w. ≥ 4.6 - 0 deg. C)
Example command: 0x4303 - sets the temperature hysteresis to 0.3 degrees Celsius.
0
42 – The command code.
42 – The command code.
1
XX - Temperature hysteresis value, multiplied by 10.
Example uplink: 0x42
Example response: 0x4210 - The temperature hysteresis is 1.6 degrees Celsius.
The is no minimum limit for Thys (it can have a 0 value).
The maximum allowed values is 100, which corresponds to 10 degrees.
Last updated
Was this helpful?