LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Control Heating Rate of the Heaters with PID in Labview

Hello everybody,

I'm a student preparing my thesis using Labview. In particular, I am trying to solve a problem related to the possibility to control an ad-hoc made device which is intended to work as an experimental thermal conductometer through Labview and some NI hardware. As you can see from the attached picture the conductometer will be basically relies on two cylindrical heaters made of a material having well know thermo-physical properties (stainless steel) and a disk of a certain material to be studied which is placed between the heaters. The temperature and heating rate of the heaters should be controlled by a Labview based VI aimed at control both the temperature of the heaters (and thus of the material to be studied) as well as the heating rate. A series of thermocouples reads the temperature in the heaters and in the material to be studied. The temperature profile to be produced by the VI would control the heaters via PID. From the VI and some NI hardware such as a NI-9474 module (to control the SSR and the resistors) and a NI-9212 module (for the reading of the temperature) we should be able to produce the desired apparatus.

 

Said that I have having some problems related to the creation of the VI itself. To make it very short, I would like to create a VI (that later would be integrated with the NI hardware) able to control the temperature profile of the heaters also considering the necessity to impose a certain heating rate. Could you please guide me to identify the basic elements of the VI to be done?

 

Thanks

0 Kudos
Message 1 of 12
(3,232 Views)

Hi Alessio,

 


@AlessioVirili wrote:

Said that I have having some problems related to the creation of the VI itself. To make it very short, I would like to create a VI (that later would be integrated with the NI hardware) able to control the temperature profile of the heaters also considering the necessity to impose a certain heating rate. Could you please guide me to identify the basic elements of the VI to be done?


Start with learning LabVIEW itself: there are Trainign resources listed at the top of the LabVIEW board!

 

Learn about the Ramp function to create your temperature profile with a limited heating rate.

Determine the max heating rate your device allows to limit the software settings to reasonable values…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 12
(3,188 Views)

First of all thanks a lot for your answer. You said: "there are Training resources listed at the top of the LabVIEW board". Could you please help me to find these resources. I tried to do it on my own but I did not succeed. Are there some examples, training videos on the use of the PID via Labview?

0 Kudos
Message 3 of 12
(3,181 Views)

Hi Alessio,

 


@AlessioVirili wrote:

You said: "there are Training resources listed at the top of the LabVIEW board". Could you please help me to find these resources. I tried to do it on my own but I did not succeed. Are there some examples, training videos on the use of the PID via Labview?


You find those resources as shown in this image:

Right above the threads in the LabVIEW board!

 

They will teach you LabVIEW basics. Once you learned them it's quite easy to use the PID functions coming with LabVIEW!

There also is the example finder in LabVIEW's help menu: there you will find examples on usage of PID functions.

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 4 of 12
(3,177 Views)

Hello everybody,

after a series of trials, as reported in the attached pic, I tried to assemble a preliminary VI aimed at control the temperature of a certain device through a resistor. First of all, I would like to know if this approach is correct. Moreover, I would like to simulate the behavior of the whole device but I need to modify the VI introducing a kind source of temperature in order to provide a feedback to the PID and then simulating the real experiment. How can I properly do it?

 

Thanks

0 Kudos
Message 5 of 12
(3,141 Views)

Hi Alessio,

 


@AlessioVirili wrote:

as reported in the attached pic, I tried to assemble a preliminary VI aimed at control the temperature of a certain device through a resistor. First of all, I would like to know if this approach is correct.


Surely not!

Do you know how PID controllers work? They need to compare a setpoint (sp) with a measurement value (aka current value, cv)!

You only provided the sp…

 


@AlessioVirili wrote:

Moreover, I would like to simulate the behavior of the whole device but I need to modify the VI introducing a kind source of temperature in order to provide a feedback to the PID and then simulating the real experiment. How can I properly do it?


LabVIEW comes with a huge library of example VIs/project. There are also examples explaining the PID functions using a simulated "plant".

Did you examine those examples?

 

Btw. the chart in your image is missing its label. I consider hidden/missing labels in the blockdiagram as "very bad" programming style…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 6 of 12
(3,128 Views)

Hello everybody

I'm a student of the Industrial Engeneering University, I done an exam of Labwiew basics, and now I'm doing the thesis, which concerns the develop of a machine whitch is control by Labview. I must control the heating process of an heater, in particular the heating rate of this one. When I started I didn't know how a PID block functioned, now I'm studing the caratteristics of this one. In labview, there is a specific block for the temperature PID control, but I don't understand with this one how control the heating rate of the heaters. This rate can't be major of 20 °C to minute.

Thank you in advance for the response.

Best regards.

 

0 Kudos
Message 7 of 12
(3,055 Views)

Hi Alessio,

 


@AlessioVirili wrote:

When I started I didn't know how a PID block functioned, now I'm studing the caratteristics of this one. In labview, there is a specific block for the temperature PID control, but I don't understand with this one how control the heating rate of the heaters. This rate can't be major of 20 °C to minute.


It's fine you started to read about control algorithms now…

 

While there is a specific "PID Autotuning (Temperature)" function you still can use the "PID"/"PID Advanced" functions too to control a temperature! And all of them will not control (or even consider) the heating rate…

 

I would consider using a two-level control algorithm:

  • the higher level control loop will create the setpoint for the lower level control loop: this way you can limit the heating rate
  • the lower level control loop will control the actual temperature of your setup with respect to the changing setpoint given by the higher level control…

(As an example you should read books/manuals on motor controllers. They offen use a 3-level control algorithm to control the motor speed: speed control, current control, torque control…)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 8 of 12
(3,043 Views)

Hello everybody

I have attached a photo of the solution that I have developed. I followed an example that simulate a simple control of temperature without check of the heating rate. After I added a block that control the ramp of the setpoint. The output of this block rappresent the input of the block of the PID temperature control in the PIN "Desidered Temperature". In this mode I think the second PID block compare the setpoint ramp temperature with the temperature mesured by the thermocouple, this for each iteration of the loop cycle, and at the same time correct the level of heating for the resistor.

I would like to understand if this reasoning is correct, and if not why.

Thank you in advance for the response.

Greetings.

Virili Alessio.

N.B. In the block diagram that I have attached there isn't the the real reading of the thermocouple, but the "Mesured Temperature" is simulate by a block.

0 Kudos
Message 9 of 12
(2,876 Views)

Hi Alessio,

 


@AlessioVirili wrote:

I have attached a photo of the solution that I have developed. I followed an example that simulate a simple control of temperature without check of the heating rate. After I added a block that control the ramp of the setpoint. The output of this block rappresent the input of the block of the PID temperature control in the PIN "Desidered Temperature". In this mode I think the second PID block compare the setpoint ramp temperature with the temperature mesured by the thermocouple, this for each iteration of the loop cycle, and at the same time correct the level of heating for the resistor.


It would be so much easier when you would attach real code instead of just an image of code. We cannot rund/edit/debug images with LabVIEW…

 

The PIDSetpointProfile function usually is intended to create a sp profile from the cluster input (defining certain setpoints) and an interpolation value, usually defined by elapsed time. In your image it seems you only wired the cluster of setpoints…

(When you "think" how a VI/function might work then you should read the LabVIEW help for that function to learn how it works. :D)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 10 of 12
(2,863 Views)