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.

Proportionate Integral (PI) Control Algorithm

This algorithm is an implementation of a typical PI algorithm.

ValveOpening[%]=Kpe+KieValveOpening [\%] = Kp * e + Ki*\sum_{}^{}e

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

Integral=eIntegral = \sum_{}^{}e

There's a software hysteresis in place, which prevents the movement of the motor unless the error is > Thys.

The implementation does not have integral reset time - it integrates all previous errors. There's an integral anti wind-up and anti wind-down in place, which limits the integral to 0-50 degrees by default. You can change the maximum value via the command below, increasing the error limit.

Maximum allowed Integral value

Byte Index
Byte value - meaning

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

Proportional gain - Kp

Byte Index
Byte value - meaning

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

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

Get the value of the integral

Byte index
Sent request
Response - Meaning

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.

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.

Last updated

Was this helpful?