From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

closed loop control in Labview

Hi, I am working on a calibration rig that reproduces high transient temperatures using an arc welder as the power source. I have programmed a VI that controls the current input to the power source to reproduce the desired temperature profile by modulating the power of the arc.I first convert the desired temperature profile to a corresponding current profile using some analytical calculations,which I then feed to the VI.

 

I am now trying to implement a closed loop system so that I can read the temperature profile reproduced by the power source and match it to my desired temperature profile by controlling the amount of current supplied to the power source. I am not sure how to go about doing this since my current input is in a file that is read by the VI when it starts. I have attached my VI here as well. I would really appreciate if anyone has any ideas regarding this issue. 

0 Kudos
Message 1 of 4
(2,954 Views)

Do you have the LabVIEW PID and Fuzzy Logic Toolkit? Have you ever done closed loop control before?

 

Your current profile file should only need to be read once and then passed into the control loop.

 

  1. What is the reason for the sequence structure? The way it's currently coded, it's unnecessary.
  2. You (and any one else looking at your code) would benefit by substituting subVIs for portions of your code. There are several opportunities in your code to do so, e.g.,contents of the case statement when "arc stop" is true could all be in one subVI. Much of the code in the sequence structure could also be put in a subVI. You need to get the size of your block diagram under control.

Including the current file would help in understanding what your profile looks like.

0 Kudos
Message 2 of 4
(2,940 Views)

Yes,I do have the Labview PID and Fuzzy logic toolkit. Unfortunately, I am a beginner at closed loop control. I agree that the squence structure is unnecessary at the moment, but I might put a time delay at some point before the current control is executed by the VI. Thanks for your suggestion on using the sub-Vi's, I will give that a go.

 

My current profile changes on the basis of the temperature history I neeed to reproduce. Nonetheless, I have attached a profile that I have been working with lately.

 

Cheers

 

current_profile.JPG

0 Kudos
Message 3 of 4
(2,910 Views)

Your closed loop, starting at time 0, would at each time interval, read temperature, convert that to a current and compare to your profile for time t. The difference will be your error. Your error is then amplified/attenuated (through PID) and sent to the power source as a new current (set point). The process repeats itself until you reach the end time of your profile. The fun part is tuning the PI or PID gains to make the system stable and remain so.

 

If the temperature profile is repeatable for the given current profile, then I don't see a need for a closed loop.

0 Kudos
Message 4 of 4
(2,907 Views)