Hello control community,

I have adopted some code (it is in LabView, but this shouldn't matter) that is regulating a voltage. I would like to know what kind of controller this could be. It seems to be sort of PID controller, but I can't rewrite the equations for the algorithm to get a PID equation.

This is the algorithm:

Voltage Control (Chip heating):

K = (V_d - V_d_aim) / V_d_old

V = V_old+K***V_d-K***{1-[ T(A) / T(n) ]} * V_d_old

Interpretation:

The voltage of a chip heating (V) is controlled such that the diffusion voltage of a temperature diode (V_d) reaches the prescribed value (V_d_aim). (Actually the chip temperature should be controlled, but I can calculate V_d_aim from the chip temperature, so, that shouldn't matter).

I don't know, what K, T(A), and T(n) are supposed to mean, but T(A) and T(n) seem to be constants (i.e. they are hardcoded and probably found by trial and error). Obviously, K is ***not*** constant.

I know two forms of discretized PID algoritm:

form 1:

u[n] = K_c *** e[n] + K_c *** T_s / T_i *** sum(i=0..n; e[i]) + K_c *** T_d * ( e[n] - e[n-1] ) / T_s * u[0]

and form 2:

u[n] = u[n-1] + K_c *** (e[n] - e[n-1]) + K_c *** T_s / T_i *** e[n] + K_c *** T_d / T_s * ( e[n]-2e[n-1]+e[n-2])

I can get from one form to the other so they are equivalent.

However, I can't get any PID form from my algorithm. e[n] is the error signal, this should be V_d - V_d_aim in my case. T_s, T_i, T_d, and K_c are the sampling rate and the PID constants, respectively.

When I try to come to form 2 with my algorithm, I just get:

V = V_old + e[n] * V_d / V_d_old - e[n] + T(A)/T(n) *e[n]

But probably this is an algorithm for another controller, no PID controller. I would like to use it (since it works in an old project) and to extend it to control the chip voltage according to a prescribed chip power.

Any ideas ?

Regards

Johannes