How to implement autotuning pid in labview in flow control process????

I tried the same way as Example available in LabVIEW..... that is general auto PID simulator... But that didn't worked out for me.....

The 'General Auto PID Simulator.vi' example uses the technique "PID Relay" feedback where it tries to calculate the PID values based on the relay feedback, but using the PID also in the loop:
(http://zone.ni.com/reference/en-XX/help/370401H-01/lvpidmain/pidrelay_alg/)
This technique works, but it requires initial PID parameters that will make the relay setpoint stable and it is able to obtain the results you are expecting.
Now, for flow control, you can try the most classic techniques. Please use other shipping examples that start with "autotuning" and in special this:
C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\control\PID\Autotuning PID Online.vi
In this VI, you can choose other techniques like open-loop step response, closed-loop step response and the original 'relay feedback' where it doesn't have a PID inside the estimation loop.
Anyway, here you have more information about those techniques http://zone.ni.com/reference/en-XX/help/370401H-01/TOC4.htm.
One more thing: keep in mind that depending on the plant parameters, a PID could not be suited for your application and a more complex controller need to be developed.
Hope this can help you...
Barp - Control and Simulation Group - LabVIEW R&D - National Instruments

Similar Messages

  • How to implement this code in labview?

    How do implement this pseudo code in labview? Please keep in mind "a" and "c" in the code below ARE VARIABLES
    for i =0 to i=maxvalue
           if i <= a 
               output = output2
           else if i > a AND i<=c
               output = output2
           else if i < c 
               output = output3
           else i = d
               output = output4
    I understance i can use a case structures and modify the label, but i do not know how to make the label dependent on a variable value. 
    Thanks 

    Try an array of boudaries and use threshold array. See this old example:
    Now just iterate over an array of values using a FOR loop.
    LabVIEW Champion . Do more with less code and in less time .

  • How to implement wafer mapping using LabVIEW?

    Hello LabVIEW Masters!
    I am having an incoming project which includes controlling and gathering information from a PROBER. One of the difficulties I am having now is how to implement a WAFER MAP using LabVIEW. According to my customer requirements, the wafer element ranges from 6k to 23k. I guess doing all the element (one die = one led ctl/indicator) will be a hell of a task, especially on how to effectively manipulate each elements. Does anyone have better idea on how to this?
    Please, I badly need your help.. 
    Thanks and Regards,
    Dennis DG
    Solved!
    Go to Solution.

    Hi Dennis,
    Is it okay if you send to me the working VI also?
    No, it's not ok. I made that program for my customer...
    As I am not too familiar in using intensity graph.
    That's no reason to hand over programs for free...
    My customer also request me that if the cursor hover on the wafer map, he wants the x,y corrdinates to be displayed.
    I also have such a feature. Did you notice the little yellow cursor near the center of the wafer? One could easily change that to use a MouseMove event instead...
    He also wants to select some elements in the wafer map and come up with the coordinate values to do some testing.
    That's related to the cursor thing...
    Some points:
    - You have a customer that pays you. Why should I offer work for free?
    - You can send me contact dates of your customer, I will make him an offer...
    - When you take an job to provide software you should be able to code the software...
    - The VI(s) are now some years old. I didn't code so well back those days and don't want to hand out those VIs as they are right now.
    - I included some "license management" deep inside that program, I would have to remove this and spend time on testing afterwards...
    - The VIs are based on the PROBER output format used by the customer. All the file handling has to be changed for/by you...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How to implement a client side map with ObjectImage control?

    We need to implement a client side map with an ADF Faces ObjectImage control. In the code below, the JSF Faces GraphicImage contol does support a client side image map using the usemap property. However, it appears that the ADF Faces ObjectImage control does not support a client side map. Is there someway of implementing this functionality in an ObjectImage control?
    <h:graphicImage url="/images/map-usa.gif"
    usemap="#m_mapusa"
    binding="#{backing_map.graphicImage2}"
    id="graphicImage2"
    style="border-style:none;"/>
    <af:objectImage source="/images/map-usa.gif"
    binding="#{backing_map.objectImage2}"
    id="objectImage2" />
    We could use the Graphic Image control except we have a problem by mixing a JSF GraphicImage control in the same table with a variety of ADF Faces controls in that when a user clicks on the GraphicImage, then the browser windows scrolls down to center the GraphicImage control. A user then needs to scroll back up to see the rest of the page. If an ObjectImage control is used with an onClick action, then the page does not scroll, which is what we want. So if we can figure out how to add a client side map to an ObjectImage control we would get the desired results.
    An alternative might be to use a server side map with the ObjectImage control. But our question here is how to implement the existing client side image map in a backing bean. As the following map code shows, not all image map areas are rectangles - some are polygons.
    <area id="_state_05" href="#"
    shape="rect"
    coords="681,38,702,50"
    target="_self" value="VT" alt="Vermont"
    onclick="javascript:getDtl(this);"/>
    <area id="_state_06" href="#"
    shape="poly"
    coords="221,442,209,436,209,418,191,403,155,382,116,367,101,370,98,364,
    122,355,158,367,203,388,212,394,242,427"
    target="_self" value="HI" alt="Hawaii"
    onclick="javascript:getDtl(this);"/>

    Hi,
    Any news about that issue, we are also interested in any solution.
    Thanks
    Math

  • How to implement logical equation as LabView?

    Hi,
    I have this bit test logic I need to implement as a Labview code.
    Should I use formula node or either something similar to this already in Labview?
    "((var & (1<<bit)) != 0)"  where 'var' may be 8, 16, or 32bit, 'bit' is a number 0 - 31 representing
    a bit number. 0 is the least significant bit.
    Thank you,
    Do
    Solved!
    Go to Solution.

    Rotate, And, Not equal to zero
    Message Edited by Ravens Fan on 08-10-2009 09:36 PM
    Attachments:
    Example_VI_BD.png ‏2 KB

  • How to implement Non linear Curve fitting (lsqcurvefit of matlab) in Labview

    Hi Labview Team,
    I am looking a way to implement "lsqcurvefit" command of matlab in Labview to do some curve fitting ; basically to  Solve nonlinear curve-fitting (data-fitting) problems in least-squares sense, at present I couldn't find a better way to implement it. Can you please give me some suggestion on this to how to implement this " curve-fitting: on labview.
    Thanks,
    Ankit Gupta

    You did not say you have the mathscript module. Do you? In any case, labview has a rich set of native nonlinear fitting tools. This seems like a better option.
    LabVIEW Champion . Do more with less code and in less time .

  • How to implement the sequence view controls in the customized LabVIEW UI

    Hi,
    I'd like to use LabVIEW to run the TestStand Sequence, and show the execution windows in the UI.(something llike the attached image)
    I followed my senior's method : connected the sequence view controls into the TestStand UI Execution View Manager as objects.
    Then use the register event callback to build a callback VI.
    The callback VI is checking which the RunState of the Execution Manager is stopped and assigning the execution to that Execution Manager.
    Though it works, but really confuses me, needless to say to you all.
    Could someone give me some suggestion how to show the execution windows in the LabVIEW UI? I'll appreciate your help.
    Solved!
    Go to Solution.
    Attachments:
    Multi_UUT_SequenceView.PNG ‏65 KB

    It's too complicated to answer your question in simple words.
    Please take a detail look at the following links. It comes with some basic concepts and tutorials regarding how to use TestStand UI in LabVIEW.
    http://www.ni.com/white-paper/7560/en/
    http://www.ni.com/white-paper/14376/en/

  • How to implement redundancy with RT cFP?

    Hi all!
    I have a setup with a cFP-2020 controling a pump and multiple switch valves. The controller runs a PID that regulates the flow.
    It also communicates with a pc through TCP/IP. A user can drive all the setup manualy ( opening/closing valves, change flow
    setpoint, reading pressure sensors values,etc) and also launch an automatic mode that folows a recipe created by the user.
    I would like to implement a redundancy at various levels:
    1) Power : It is solved by the cFP itself since you can feed 2 power supplies.
    2) Controller : I would like to add a second controller that would monitor the primary controller and takes over the control if
                           primary controller crashes. I know there is a hardware watchdog that would help a lot in the task.
                           I would know when the primary controller crashes through that watchdog. But how to know the final state where
                           the controller crashed so that the secondary controller would start from there? If it is in manual mode, it would be
                           easy, I could initiate the secondary controller with the last state on the host (pc). But what about automatic mode?
                           I could store the variables at any time but isn't it a bit too much? Is there a way to retrieve those data, other than
                           sending it to the host computer?
                           Does anybody has a good idea / structure in mind for this application?
    3) Fieldpoint I/O: I would like the same as for the controller: have a second set of DI, DO, AI and AO that would secure the system.
                               There is also a watchdog there that could be used.
    The main goal is, in fact: Let's say you remove physicaly the controller or any Fieldpoint I/O and the system would seemlessly go
                                             on his task.
    Anybody already did that before?
    Thanks for any help!
    Dai
    LV 7.1 - WIN XP - RT - FP

    Hi and thanks for the reply!
    In fact, for the moment, when the connection to the pc is lost, the controller goes into "safe mode". It is a state where I am sure
    there is no security issue for the person running the process ( avoid over-pressure in different tanks, etc).
    I did not described the current process using the cFP because this one is less critical in terms of redundancy. If the process
    is stopped because the connection is lost for example, it is not so important. The process can still be restarted from the very start.
    It is because the process (chemical) allows it. It is like filtering. If half the filtering is done, you can still filter again to get the proper
    result.
    I am thinking about another process much more critical. If the process is stopped, it is lost. And it means a lot of money tens of 1000 euros at once.
    For the moment, those processes are regulated and operated from a DeltaV DCS system (Emmerson). It is reliable but expensive and the programming environment is poor. I really like Labview. It is really powerfull !!!
    In the future, if possible, I would like to replace the old systems of our plant with NI ones. I think it is much better when you have
    a homogenuous system. Having a network with pc's, mac's and linux's is much more difficult to set up and maintain. The same
    for the field, it is much more complicated when you use at the same time: labview, deltaV, profibus, foundation fieldbus, CAN, etc.
    Of course sometimes, you cannot avoid it. The systems are different and have their pro's and con's... Of course, it is just my opinion!
    If it would be possible, I'd buy only NI stuff... Now, I just replace if possible.
    About the the Outputs being redundant, I was thinking about a polling system: use 3 outs and poll. The majority wins. It think it is used on space applications. 
    So, I should have asked at the first time : Do you think it is possible to replace a DeltaV system with a NI one?
    I think it is possible. But is the effort worth it? If I have to code all that? If there was something built in, it would be a dream
    Okay, thanks anyway. Maybe I need to think about it a bit more.
    Dai
    LV 7.1 - WIN XP - RT - FP

  • How to implement reading data from a mat file on a cRIO?

    Hi all!
    I am not even sure, this is plausible, but I'd rather ask before i start complicating. So far, I have not found any helpful info about reading in data to a RT device from a file (kind of a simulation test - the data is simulated). 
    I have the MatLab plugin that allows the data storage read a MAT file, which has a number of colums representing different signals and lines representing the samples at a given time (based on the sample time - each sample time has it's own line of signal data). 
    I have no idea of how to implement this to cRIO.
    The idea is:
    I have some algorithms that run on the RIO controller in a timed loop. As the inputs to these algorithms, i would need to acces each of the columns values in the line, that corresponds to the sample time (kind of a time series - without the actual times written).
    I am fairly new to RT and LV development, so any help would be much appreciated.
    Thanks, 
    Luka
    Solved!
    Go to Solution.

    Hi Luka!
    MAT file support in LabVIEW is handled by DataPlugins. Here you can find the MATLAb plugin:
    http://zone.ni.com/devzone/cda/epd/p/id/4178
    And here you can find information on how to use DataPlugins to read or write files of a certain format:
    http://www.ni.com/white-paper/11951/en
    There is also an open-source project that addresses the problem, you can find it at
    http://matio-labview.sourceforge.net/
    Unfortunately, RT systems are not supported by DataPlugins, so fist you'll have to write a VI on the Host computer to convert your files to a usable format (I suggest TMDS for compactness and ease of use), and the work on the converted files in the cRIO VI. If you have other questions about DataPlugins or anything else, please get back to me.
    Best regards:
    Andrew Valko
    National Instruments
    Andrew Valko
    National Instruments Hungary

  • How to load .wav files in LabView and vi for TDM,FDM,QP​SK,ASK

    Hello
    I am doing my project in LabVIEW that is VIRTUAL TELEPHONE COMMUNICATION SYSTEM
    AND APPLICATION OF LABVIEW IN ADVANCE COMMUNICATION TECHNIQUES.I have implemented every block till date but for the rest part of my project that is advance communication techniques i need vi for QPSK,TDM,FDM,ASK and I just wanted to know how to load .wav file in LabVIEW
    Please assist me for this
    Attachments:
    Telephone communication process.docx ‏25 KB

    Hi Dilpreet,
    reading wav files is easy using the functions from the sounds palette...
    For your other tasks you could use a seperate toolkit or do some programming on your own!
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How to use a PID in a CRIO-9102 FPGA

    Hello
    My name is Francisco, and I'm a student of mechanical engineering in Portugal (FEUP).
     I'm working on a project that involves the use of a CRIO-9102 to control a servo hydraulic cylinder. For this purpose I have to implement a PID controller in my FPGA code. Since is not possible to use floating point math how can I do this operation?
    Can you pont me to an example that can help me.
    Thanks in advanced for any help.
    Best regards
    Francisco Freitas

    Can you tell us a bit more about your requirements for floating point maths?
    I write control software for jet engines in custom build microcontrollers with no floating point support. Very often we find something we THINK we might have to use floating point for and discover that we dont!
    The most frequently used solution is to establish your maximum and minimum values and instead of scaling your calculations to +/- 1, they are scaled from -32768 to 32767 instead.
    Failing that, another option is to use the FPGA as an I/O device and do any floating point work in a Windows host.

  • How to streaming data/image from labview to a third party software

    Hi, i am working on a research project and stuck on the following problem: I have two cameras and one IMU Sensor unit, all conected to my PC. I save the camera images as avi format and the IMU sensor as TDMS format. I have also another software running on the same PC which i developed using VisualStudio2013.  On this software i alredy implemented a very complex filter to fuse images and IMU.  Now my quesion: would be it possibel to stream the .avi and .tdms from LabView to my software so I can test in real time how my filter is performing? If yes please let me know what LabView function do i have to use. thanks

    Thanks, the hardware are my PC, 2 usb cameras and one usb-IMU sensor. The PC runs w7 with LabView2014. I can read the camera and IMU to my Laview without any problem and save the data on my hard desk. I am also developing another software on VS-C++ for image processing and data fusion. I would like to know what is the best (and fastest) possibility to stream this data (Images and IMU) in real time from LabView to my own software?
    I read a lot in NI-website on how to communicate LabView with a third party software. They are summarized in this link:
    https://decibel.ni.com/content/docs/DOC-9131
    It looks for me that the ‘shard memory’ principle (or File Mapping) is the most convenient method. In VC++ under windows I can easily handle shared memory by calling FileMapping windows functions. Now the question is how can I do that in LabView? I am relatively new in LabView and do not know if it is possible to use shared memory in LabView. For example: is it possible in LabView to buffer both video streams and IMU-data (live) in a shared memory in computer RAM using the windows FileMaping functions (may be using .dll). Then I can access the RAM form my own software and read the stream. Please see the attachment for more description.
    Attachments:
    Unbenannt.PNG ‏139 KB

  • How to call VXIplugNplay driver from Labview

    I downloaded a VXIplugNplay driver from Tektronics but I can't find any documentation on how to implement and use from Labview

    JCM,
    If it is a LabVIEW driver, the VIs should be available from the Functions palette in Instrument I/O >> Instrument Drivers. If it is not a LabVIEW driver, this KnowledgeBase describes the process of converting the driver:
    http://ae.natinst.com/operations/ae/public.nsf/fca7838c4500dc10862567a100753500/a2ee1e1fff7fadda86256843005212d2?OpenDocument
    Good Luck
    Spencer S.

  • Autotune PID VI - getting an accurate reading

    Hello, 
    I am controlling a voltage controlled relief valve (which in turns controls the load applied by  a press) with a LabVIEW code using the Autotune PID VI. Our setpoint is a load as our process variable is a load measured from a pressure transducer. We are able to use the Autoune VI to tune for low loads, however, the process is quite slow to get to the desired setpoint. Then when the speed is increased (the proportional gain increases here)  the VI is unable to tune properly. Furthermore, when the SP load is changed rapidly, the VI is unable to tune. 
    Can anyone help with providing a method to get the Autotuning VI working consistently with a reasonable speed? I have attached an image of the code I am using to give you a better idea of what I'm trying to do. 
    Thanks for you help. 

    Hi Jazz,
    The slowness of the VI is caused by the VI repeating over and over. Unfortunately there is not too much that you can do about the speed. When you increase the proportional gain what is the problem that you are getting? If it just tunes to a different value that could be caused by a different min/max. If you could give me a little more information that would be helpful.

  • Autotune PID Online and Inline vi%2C is there any bug in software%3F

    Hi,
    i am using labview 2014, I am using Autotune PID Online and Inline vi for level control,
    from examples, control and simulation, PID.
    while calculating PID values from waveform. calculation goes wrong.
    attached image for your reference.
    Please suggest.

    hi,
    Please any body tell me that the constant which has value 2 is by mistake,
    or is there any logic behind that.

Maybe you are looking for

  • Windows 8.1 not showing up in WSUS 3.0 SP2 Windows 2003

    As the title says really, all Windows 7 etc work a treat, but any Windows 8.1 are not showing... Any ideas peeps? many thanks Kev

  • How do I change screen name for AppStore??

    I'm really confused. I have disabled ping on my iPod, and when I try editing my account under iTunes/AppStore it won't let me change my nickname, only my email. This is my 2nd account, and when I try posting a review It just says "This nickname is ta

  • Workflow history report best practice

    Hi. How do you recommend to make custom workflow history report(s)? For example, let's think of the most simple document approval process: initiator uploaded document, manager reviews the document, if approved - document is marked as approved, if not

  • Running Grep from ScriptUi

    Wow, I've really walked into a sticky mess this time. I'm working on a reformatting tool that uses various GREPs to apply new character, paragraph, table, and cell styles to poorly styled input (Scrivener output, to be exact). My problem is that I ha

  • Learn workflow

    Experts: I am an SAP  basis admin but without  any ABAP experience. My manager wants me to write or create  workflow for  basis activities. Could anybody direct me to some blogs to start with?  Do I need to learn ABAP? By the way, is this a change of