# What sort of regulator/controller is this?

• posted

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

• posted

This would be a PID if the calculation of K were

K = (V_d - V_d_aim) * B where B is some constant.

That is, K is some multiple of the loop error. But the calculation for K being as it is makes K a kind of non-linear error term. That is, it is the loop error where the gain is higher for lower values of V_d_old. For any steady-state condition we can think of V_d_old as kind of a constant. I don't know why someone would want the loop gain to be a function of the process variable value. But that's what this equation does. Perhaps there are factors in the way that the chip is heated that creates a non-linear relationship between applied voltage and chip temperature, and this non-linear scaling of the error term might be cancelling out that variation.

-Robert Scott Ypsilanti, Michigan (Reply through newsgroups, not by direct e-mail, as automatic reply address is fake.)

• posted

For a constant resistor, power is proportional to voltage squared. We definitely have a non-linear process here. If the quantity we want to control is heat transfer, we have a process gain proportional to voltage. To keep a constant loop gain we would need a controller gain inversely proportional to voltage. I.e. higher gain for lower values.

Walter.

• posted

Hello Robert and Walter,

Walter,

So, the algorithm makes sense to you. Is it a 'well-known' type of controller?

Also, I have to extend the system (well that's almost all software developing is about ;)) to control the chip heating voltage according to a prescribed chip power. It would be nice to use the same algorithm with other parameters. Then it would be:

Voltage Control (Chip heating):

K = (P - P_aim) / P_old

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

Any ideas about how to determine/tune T(A) and T(n) ?

Regards

Johannes

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.