LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PID control oscillation

Solved!
Go to solution

It seems surprising that when you set the output constant the temperature would rise so suddenly. When you set the output manually, were you still using both current sources in parallel? Did you remember to disable one of them, or set the sum appropriately?

0 Kudos
Message 31 of 39
(1,263 Views)

nathand asked some of the same questions I would have asked. I agree that even a step change of the output to a value within the range covered by the oscillation should not create such a very large output ramp.  This suggests that the model you have for the system performance may be farther from reality than you think.

 

If stopping the PID control at the average value still results in a large change of temperature, try adjusting the output in a few small steps to see if you can get a very slow temperature change, then hold it constant at that level for a while.

 

You need to get some measure of the system performance without feedback so that the model and control system design can be immproved.

 

Lynn

0 Kudos
Message 32 of 39
(1,259 Views)

Hello,

 

For these tests, I only used the Keithley sourcemeter with +-1 A range, the "fine" sourcemeter was always set for zero current.

 

I agree that even a step change of the output to a value within the range covered by the oscillation should not create such a very large output ramp. 
Yes, this behaviour is not really nice, it is like a "metastable system". I think I have to check also if the water circulating pump performs ok, since it is like 10 years old, and it is running since then! I guess if the water flow speed is not enough, it can really cause higher time constants and this crazy behaviour? I will check it.

 

This suggests that the model you have for the system performance may be farther from reality than you think.

Well, I have used the closed-loop Ziegler-Nichols tuning, I guess in this case an open-loop Cohen-Coon would be better?

 

 

try adjusting the output in a few small steps to see if you can get a very slow temperature change, then hold it constant at that level for a while.

I will try this too, I also need to reach this kind of stable level output manually to start an open-loop Cohen-Coon tuning. I hope it will work...

 

 

Thank you very much for help,

Best Regards,

 

 

 

 

 

0 Kudos
Message 33 of 39
(1,252 Views)

This suggests that the model you have for the system performance may be farther from reality than you think.

Well, I have used the closed-loop Ziegler-Nichols tuning, I guess in this case an open-loop Cohen-Coon would be better?

 


 

 

It is not so much a matter of choosing a tuning method as trying to determine whether PID can even work.  By "model" I mean a mathematical equation or algorithmic description of how the water tank/circulating system/heater/temperature sensor respond to all the inputs. Those inputs are the controller output of course but also environmental influences, variations in the circulatiing pump, power supply variations and others, some possibly unkown.

 

Lynn

0 Kudos
Message 34 of 39
(1,247 Views)

Thank you guys for the help,

actually I reconsidered a few things and I managed to almost totally remove the oscillation. First, since the actual setpoint of this zone was not relevant, only the stability, I have increased the temperature setpoint, to a value where I can use the 100 mA range with using only 1 Keithley sourcemeter.

 

Secondly, I have taken the PID parameters from the Z-N tuning chart what I have got, and I increased the P value from 83 to 120.

 

Finally, the oscillation is got depleted a lot. I think I should use a gain-scheduling for the P gain parameter, it looks like the system requires "stronger" gain when it is closer to the setpoint...

 

Thanks again,

Best Regards,

 

almostnooscillation.jpg

0 Kudos
Message 35 of 39
(1,231 Views)

I am glad you are making progress.  You mentioned increasing the temperature setpoint but you have never indicated what the operating temperature is (or was before the change). I am curious.  What temperature is the operating point?

 

Lynn

0 Kudos
Message 36 of 39
(1,217 Views)

Hello,

 

Well, the setpoint was before ~24.3 Celsius degree. I modified it to 25 Celsius, since I wanted to lower (to be less negative) the electrical current requirement of the water-to-air Peltier heat pump. So in this way I can use only one Keithley, more simple configuration. Before the current requirement was around minus 200-300 mA, now it is around minus 10-20 mA, so I can use the Keithley in lower range (my labview code automatically sets the Keithley to the possible lowest range for the best resolution). The closed air-cabinet, where all the Keithley devices are located, and also the turbo pump, etc., is actively temperature controlled with a air-to-air Peltier-pump (but of course with much higher power capability, it can remove up to 600W heat) to a temperature of around 24 Celsius degree. Increasing the water temp. setpoint increased the temperature gradient, so air-to-water pump can be run in lower level.

 

Since I have changed the setpoint of the water loop, I will need to increase the setpoint of the inner core of the calorimeter (we call it base, this is the reference point to measure heat power from samples), so the base-to-water heat pump's current requirement will not increase too much...

 

So in this isothermal heat flow calorimeter the temperatures are roughly these:

 

outer shield - air cabinet : ~24 Celsius degree (of course this varies much in space, but this is measured close to the radiator of the water-to-air heat exchanger)

circulated water loop :       ~25 Celsius

base (the reference point): ~ 25.1 Celsius

 

This distribution creates a constant heat flow in time from inside to outside.

 

 

0 Kudos
Message 37 of 39
(1,214 Views)

oh, and i did not clarify that, I use only these thermistor bridges for the temperature control, and I do not even convert it to temperature, since the absolute temperature value is not that interesting...so we just use the voltage output of the bridge circuits directly. Of course, thermistors are highly non-linear transducers, but here we do not use them on a large temperature interval: we just use them to keep an object to a certain temperature very precisely. Naturally, even this very non-linear function is close to linear in a very tiny range.

 

Actually I wonder, if I could measure this non-linearity? Could this non-linearity dependence be a problem during a closed-loop PID tuning, where we have to "swing" the system a lot? If so, maybe it would be beneficial to convert the voltage outputs to temperature scale, with the Steinhart-Heart equation (if i remember well, i have seen in LabView ready made converter VIs for this...).

 

 

0 Kudos
Message 38 of 39
(1,210 Views)

Thanks for the additional background.

 

While non-linear elements in a control system can be a problem, I doubt that you can see the effect at the small dT or dV you are using.  Even if you can measure the non-linearity, it is probably smaller than other fluctuations in the system. After all, the purpose of negative feedback is to compensate for imperfections in the system.

 

The behavior of thermistors varies smoothly with temperature.  That kind of variation is much less problematic for control systems than discontinuous changes.

 

I also think that it makes sense to regulate the bridge voltage rather than to try to calculate a temperature.  Why introduce several extra variables and calculations when the voltage is a good representation of the temperature? Just calibrating the coefficients at your temperatures could be a significant challenge.  Over a wide range the output of a thermistor bridge has an "S" shaped error curve, but again, with your small range, this is not an issue.

 

Lynn

0 Kudos
Message 39 of 39
(1,206 Views)