What sort of regulator/controller is this?

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


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 ?



Reply to
Johannes Eble
Loading thread data ...

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.)

Reply to
Robert Scott

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.


Reply to
Walter Driedger

Hello Robert and Walter,

thanks very much for your answers.


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) ?



Reply to
Johannes Eble

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.