Control three interdependent things with pid control?

I have 3 things (they are valves) that I need to control to set flows... but adjusting one of the three valves will affect how the others behave... basically they are all 4-20mA controls, but if one is moved the others will read something different.
My question, I'm having a hard time thinking about how to control these three things, I need to be able to tell any of the three to go to a certain flow regardless of where the others are... is PID the answer?  If so, I need to tune them one at a time, and I don't know what to set the other 2 vlaves while I tune 1... does it matter? cause, whatever PID constants I get from tuning will be dependent on what the other 2 valves are at... or is there another way?
much thanks!

Hi Fibo,
I've linked an article you can read through for a quick intro to MIMO control.
Can I simulate MIMO models in LabVIEW?
However, I wonder if this necessarily needs a MIMO model.  Regardless of how one valve affects the other, if you've got a sensor on each of your valves and implement PID separately on each one, then the relationship between the 3 valves is eliminated, is it not?  We've now got 3 single-input single-output systems.
Message Edited by Tejinder G. on 03-29-2010 01:05 PM
Tejinder Gill
National Instruments
Applications Engineer
Visit ni.com/gettingstarted for step-by-step help in setting up your system.

Similar Messages

  • I need to design fuzzy controller with pid control .

    hi ,
    I need to design fuzzy controller with pid control . to control   Dc servo motor i have NI DAQ PCI 6251 anyone help me??

    ssaara,
    Along with the shipping examples, here is a link to the PID Control Toolkit User Manual. Fuzzy Logic control is discussed in Part II of the manual, Chapters 5 and 8 are good starting points.
    --Michelle
    Instrument Control R&D
    National Instruments
    Instrument Control
    Machine Vision

  • Level Control with PID Control & Pulse-Width Modulation

    Hi all,
          I have attached my program which I'm having trouble wiring up in the block diagram.... I'm fairly new to labview, but basically I have a level control project with an analog input cistern arm turning a pot for my test tank (configured as DAQ assistant voltage analog i/p) and a pump working off a reservoir (configured as DAQ assistant voltage digital o/p). My electrical side of things is working correctly and I have tested both DAQ assistants I/O's successfully off a basic program, minus the PID & PWM... I found a simple PID control subvi which I think I have wired up correctly, apart from the output variable... I also found a bit of code for PWM using the square waveform vi (far right side of the program) which I have tried to include in the program, but I've been unsuccessful with that. The ideal operation i'm looking for with this project is to be able to enter different values for the setpoint, for the PID to kick in to find that setpoint each time using the PWM to drive the pump, which has a flow rate of 13L/min. I have a manual valve to release water from my test tank which I can set accordingly.
    My questions are;
    - How do I connect the 'output variable' of the PID subvi to my DAQ assistant digital output(both DAQ assistants are set at 1 sample on demand)?
    I have a 'number to boolean array' function, but this gives an error saying that the number of tasks generated are not the same...
    - How do I wire up the PWM bit of code? Do I need to include the 'error in & out' tabs?
    -Am I on the right track with this program or am I way off the mark?!
    Any feedback on this would be greatly appreciated. Thanks for your time,
    Richie
    Attachments:
    PID-RichLevelControl.vi ‏91 KB

    Rich-MechatronicsStudent wrote:My questions are;
    - How do I connect the 'output variable' of the PID subvi to my DAQ assistant digital output(both DAQ assistants are set at 1 sample on demand)?
    I have a 'number to boolean array' function, but this gives an error saying that the number of tasks generated are not the same...
    - How do I wire up the PWM bit of code? Do I need to include the 'error in & out' tabs?
    -Am I on the right track with this program or am I way off the mark?!
    You're a bit off track.  You need the output of the PID to go into the PWM generator, and the output of the PWM to be written to the digital output.  Right now you have the output of the PID connected directly to the Digital Output in a way that won't work, and the PWM generator hanging off the side not really connected to anything.  Also, the PWM generator isn't really going to work since you're generating it at the same frequency as your PID loop runs.  Try a simpler algorithm such as on/off control first and see if that works for your system.

  • IPhone control adapter for use with existing control adapter

    There are many adapters that work to give standard headphones control over the iPhone by adding a mic, 'centre click' button and volume controls.
    I have tried two of them today (iLuv and Phillips), and while they both worked nicely, using them with my standard 3GS earbuds disabled the stock microphone and controls.
    I basically need a way to separate the control button(s) and the microphone so I can operate the phone from my motorcycle helmet - putting the stock microphone in the helmet (which works well by the way), but still having a way to answer calls.

    I don't know if I saw this correctly or not, but is there an adapter I can get to hook up the newer cinema display to my power mac machine?
    No.
    I thought I saw a mini port to DVI or VGA adapter?
    That's to connect a DVI or VGA display to a Mini DisplayPort equipped computer.

  • PID Control motor DC 12v

    Hi everyone,
    I wanna control a 12v DC motor using PID control toolkit 8.2.
    - a close loop control system
    - using a DAQ model: NI USB-6008
    - how do make a DC motor speed control 12v with PID control
    Im stuck at getting pid.vi and i wanted to know what is the problem.
    pls help me on my problem, if can pls make an example VI for me
    Thanks !
    Solved!
    Go to Solution.

    Well there are a lot of things you need to do this, LabVIEW software being only a part. Firstly, most DAQ cards will not source sufficient current to actually power a motor, particularly a USB6008, so you will need some form of amplifier/power driver. For closed loop you will need some feedback to tell you what the motor rotation is, usually a slotted wheel with a LED and sensor (if this is a project for school or hobby one source you might look at is an old wheeled mouse). So with these two you have a way to drive the motor and then detect its motion. Then you can get to the idea of doing PID, which is taking the feedback (from whatever sensor you end up using) scaling it to match whatever you are using, and apply it to one of the PID equations to get it to match the target value.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Certain sites say application failed. This happens with the control panel too

    When I try to get to my Skype account the screen gets an error box that says application failed.How can I stop this? Plus I can't do certain things with the control box.It won't let me do any of the listed fixes.

    This has happened from time to time - but was not Verizon Blocking the website, but the other way around, the website usually will have an out of date bogon filter.    Verizon constantly is giving out new ip addresses to customers, sometimes with brand new IP Blocks as they get more and more customers.  So sometimes the filters in websites, are out of date and don't include the newest ip blocks.  
    Usually you can engage the website owner, ask them to update their bogon filter list with your subnet,  but if that is not easy, then you can turn off your router at night when you go to bed, the 4 hour lease on your ip address will break, 2 to four more hours pass, and your ip will go to a different customer, or cycled back into the cloud, and then when you wake up and turn it back on you will have a new ip, that is likely not blocked.   
    So give that a try.  OR if you are in a rush and need it asap, then release your DHCP ip leave your modem off for at least 10-30 minutes, so your IP can get cycled back into the cloud and you can get a new one.  if you do it too fast, then you will likely get the same ip and that defeats the purpose.  

  • Can anyone help with a PID control vi

    Hi
    I am doing a project at the moment and I need to build a temperature chamber. I am using LV 7.1 and I have 4 thermistors being fedback to a daq device. I also have two heaters as part of the chamber but i want to get the thermistors readings and pid control the output to the heaters. I have the program written to get the thermistors readings and average them but im having trouble trying to think how i can pid control the heaters so i am looking for a pid vi. If anyone can help it would be great. Thanks....

    NI sells a control toolkit for LV which includes PID control. You can look for it on this site.
    If you want to write this yourself, you should start with an uninitialized shift register. A USR allows you to keep data from the last time you ran the VI. There is an example of using a USR in the LV Example Finder and you can probably some more information about it in this site. You will also need to measure the time between runs and then probably calculate the derivative between each 2 runs to see how fast you're approaching your setpoint.
    I hope this helps, as a start.
    Try to take over the world!

  • Tank Level Control with PID regulator

    Hello! 
    I found a lot of examples regarding the simulation of a tank - level control with PID regulator. but I still have a dilemma.
    I can't find the transfer function for the process, if you can help me it would be great because I'm stuck here...

    Maybe you could ask some of you classmates?
    LabVIEW Champion . Do more with less code and in less time .

  • I am having troubles with 3 things: scrolling with my laptop mouse, controlling my laptops volume with F9 and F10 keys, and I can not copy and paste images.

    I am having troubles with 3 things: scrolling with my laptop mouse, controlling my laptops volume with F9 and F10 keys, and I can not copy and paste images.

    Hello,
    Try disabling graphics hardware acceleration. Since this feature was added to Firefox, it has gradually improved, but there still are a few glitches.
    You might need to restart Firefox in order for this to take effect, so save all work first (e.g., mail you are composing, online documents you're editing, etc.).
    Then perform these steps:
    *Click the orange Firefox button at the top left, then select the "Options" button, or, if there is no Firefox button at the top, go to Tools > Options.
    *In the Firefox options window click the ''Advanced'' tab, then select "General".
    *In the settings list, you should find the ''Use hardware acceleration when available'' checkbox. Uncheck this checkbox.
    *Now, restart Firefox and see if the problems persist.
    Additionally, please check for updates for your graphics driver by following the steps mentioned in the following Knowledge base articles:
    [[Troubleshoot extensions, themes and hardware acceleration issues to solve common Firefox problems]]
    [[Upgrade your graphics drivers to use hardware acceleration and WebGL]]
    volume controls issues are windows, not firefox.
    How your copy and paste your image? from where to where

  • Peltier control with PID

    Hello,
    I have a Keithley 2400 source-meter, and a Keithley 2010 multimeter. I measure temperature of a water loop with a RTD, and I measure its 4W resisitivity with the K2010.
    I can cool and also heat this water loop via a Peltier heat-pump. The applicable range is -1Amp < current < +1 Amp. So I use the Keithley source-meter to drive the Peltier in this range. Negative current cools the water, positive current heats.
    I have the PID tool-kit with LabView 2011.
    My only question is that, if I give  +-1 as range input to the PID.vi, is it a proper way to implement this task?
    Thanks!
    Solved!
    Go to Solution.

    Hi blokk,
    "ok. so this is not implemented in the Pid toolkit. So when the PID vi using negative output, I have to set the Kc to negative. ... Because it should change the sign of Kc as early as it switches range polarity continuously."
    You don't need to change anything, when the PID control is running. You have to set the Kc once to the correct value, that's it! Kc is describing the PID behaviour in terms of "higher output results in heating up and lower output means cooling mode"...
    "Should I alter the pid.vi inside?"
    Never ever change vi.lib VIs! If you really want to change them (that isn't needed here!), make a copy of the VI and change the copy!
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • PID control of Counters (PWM)

    Hello everybody!!
    I work on a closed loop PID controlled problem (Labview 8.5) and I have a couple of questions in order to make some progress!
    Firstly, I have to declare that my loop is composed of 2 AI channels (2 accelerometers), 1 AO channel (excitation channel-shaker), and 2 CO (for pulse creation PWM-controllers). The idea is very simple. When the AI (channel 1) value surpass or underpass a predetermined threshold value, then the appropriate CO should be activated in order to apply the necessary control forces and simultaneously to copy my data values of both AI channels in binary style for CPU velocity reasons! BUT, with the PID controller I want to optimize the Duty Cycle value of the pulses!
    My questions are :
    1) Why when I put Kp=Ti=Td=0 ( = run WITHOUT control) I can copy ALL the AI samples and when I start to activate the PID controller (let’s say for only Kp=0.5) I CAN’T copy ALL the AI samples? Where is my fault?
    2) About the PID vi which I use, is it correct or I should use the PID vi for ARRAYS?
    3) And finally, about the Boolean statement just before the Case Structures and the Shift Register, is it ok/necessary?
    I attach two vis, the ReadBinar .vi is used to read my binary files generated in the end of running of the Control.vi.
    Best regards
    Grigorio
    Attachments:
    Control.vi ‏277 KB
    ReadBinar.vi ‏162 KB

    Hello Zach!
    First of all, I want to thank you for your kind interest on my problem!!
    I must describe you the desired process with the Control.vi. There are two AI channels writing down the acceleration of a structure in two different points (for velocity reasons I use Binary Type storage for my data). One AO channel for structure sinusoid excitation (shaker) and two CO channels for controlling two solenoid valves with which I want to control my structure acceleration (minimize it as well and fast as possible)!!
    In order to help the description, let’s ‘cut’ the block diagram of Control.vi into three pieces (Before While Loop – Inside While Loop – After While Loop).
    In Before While Loop section, the main question is about simultaneousness. The DAQmx Start inside the Flat Sequence Structure, do you think that is necessary, ok? I want to run my experiment for 30s and to collect 6000 samples with 200 samples/s. In addition, in the CO DAQmx timing, I have set 200 samples/channel in order to be able to change the duty cycle value because of the conditions inside the While Loop. Do you think that everything in this section works well? 
    Inside the While Loop, firstly in the DAQmx Read, I have set 200 samples per Input Channel, which is also equal to the AI and AO Sampling rate! Before some days I have put there -1 and unfortunately the total written samples were less than 6000!! My main problem is how I can check all the read data without losing run velocity and simultaneous if one sample is >0 then it goes further to the first PID.vi (left solenoid valve) or if that sample is <0 then it goes further to the second PID.vi (right solenoid valve)!! When a sample has gone to a PID.vi, then I want to tune the duty cycle of the controller (PWM control) as well as possible in order to achieve the Setpoint value for the second AI channel. Are all these possible? If not, what do you suggest me?
    In addition I compare the present duty cycle value with the previous one in order to be inside a tolerance value (let’s say 0.1). Moreover, is it correct the Case Structures where I want to share the positive and negative AI samples before going to the respective PID ?
    Finally, After the While Loop, I believe that everything is OK. I just finish all the tasks.
    I have to mention that I work on a PCI-6289 and Labview 8.5.
    With best regards!
     Grigorio
    Attachments:
    Control.vi ‏288 KB
    equal within tolerance.vi ‏9 KB
    ReadBinar.vi ‏163 KB

  • Weird issue with sound control?

    I am not sure what is going on with my audio controls. I use MSI to control my audio (it's connected to the motherboard). The strange thing is, a crack appears on the "Reset EQ Setting" button.
    See link: http://www.facebook.com/photo.php?pid=30673857&l=2041bbbec3&id=1458901123
    That wasn't there when I first got the computer. Is there any way I could reinstall this? What could have caused the "crack" to appear? Has this happened to someone else?
    I have also noticed that sometimes when I am playing music, the sound wavers, as if I am adjusting the volume slowly up and down by 1 degree. Is this an issue with my motherboard or WMP? Please answer both questions.

    Quote
    I cannot find the MS-XXXX anywhere!
    Please read this thread:
    https://forum-en.msi.com/index.php?topic=113146.0
    If you can't find the model number, please look at the BIOS P.O.S.T. Status Screen and write down the full BIOS ID String as it appears in the following example picture:
    Example (taken from the second picture): A7375NMS V2.2
    The BIOS ID String will tell us a lot about the System.  In the above example, the following information can be decoded from the ID String:
    A...AMI BIOS Implementation
    7375 ... Model Number (=MS-7375)
    N... NVIDIA Chipset Board
    MS... MS Standard BIOS Release
    V2.2 ... BIOS Version 2.2

  • How can I make and wire reffercence signals(ramp,sine,square) to excite and evaluate the behaviour of the system wih PID control?

    Dear all,
    I am Tri, I am a beginer with LV program. Actually I used LV for my reasearch, I had tried wiht very simple thing but the problem arise because I am not familiar with LA. Why I know that problem is simple because I compare with MatLab that I had somtime used before.
    I make a loop of PID control, It worked properly but I don't know how to make a refference signal to wire to the loop for excitating to evaluate the behaviour of the system. Please give me your help.
    Thanks

    Hi Tri,
          I've employed the "simple PID.vi" without a problem, but your example is more complex.  I think you use a Function generator to modulate DAQ inputs?
    Perhaps someone else will be able to infer your intention and identify a flaw in the logic.
    In case someone else wants to run your VI, it may help to build/attach an .llb (some sub-VIs are needed by the VI you atached.)
    To build the .llb, save your VI with Development Distribution options (Alt-F,Alt-W) and attach the .LLB
    1) \File\Save with Options
    2) select Development Distribution
    3) Save
    4) choose "New VI Library"
    But first, It would be helpful to us if you clean-up the code - straighten wire-paths, minimize bends in wires, and try to avoid "tall" diagrams.  Scrolling diagrams up and down is "bad form".  If scrolling is necessary, left&right is preferrable!
    Cheers.
    (and, for the record: in my previous post, Exitation would be wired to "Process Variable", Not "Set Point" (ouch!))
    When they give imbeciles handicap-parking, I won't have so far to walk!

  • Why do I get this error when running the PID Control-Single Channel.vi: "Requested value is not a supported value for this property."

    Error -200077 occurred at Property Node DAQmx Timing (arg 3) in DAQmx Timing (Sample Clock).vi:1->PID Control-Single Channel.vi
    Requested value is not a supported value for this property.
    Property: SampQuant.SampMode
    You Have Requested: Hardware Timed Single Point
    You Can Select: Finite Samples, Continuous Samples
    Author: Pcorcs
    Attachments:
    PID Control-Single Channel.vi ‏53 KB

    Actually I have already tried a few things you suggested and got as far as the DAQmx Write vi. The error at the DAQmx was a buffer error indicating i needed to set it to 2 instead of the default of 1. Tried using the DAQmx Input and Output Buffer vi to change buffer, with no luck.
    Attachments:
    PID Control-Single Channel.vi ‏53 KB

  • PID control loop slows down during execution.

    Hi, I am a attaching a LV8.6 code that i am currently using to control my engine experiment. I use PID control where the input signal is an rpm value that i measure using a counter. The ttl signal from the sensor is not clean and so i use an analog trigger to generate pulses on the counter from where i measure the frequency and hence the rpm. The output is generated as an analog voltage on an output channel. The problem i am facing is that the loop runs really good when i start off but gradually the loop keeps slowing down and this greatly affects my ability to control engine speed. I am not sure why this is happening. I tried increasing the sample size and rate (so as to increase the buffer size) but this didnt have any effect on the speed. I am guessing its a problem with the way i have my loops setup.. any suggestions would be greatly appreciated.
    Thanks, Shyam.
    Attachments:
    PID control loop.vi ‏33 KB

    Hi all..I realised my mistake soon after posting as usually is the case..the create channel vi for doing the analog output to the output channel was within the loop and slowing things down..when i moved it out..it fixed the problem!!
    Shyam.

Maybe you are looking for

  • Need help to create SharePoint 2013 Designer workflow

    Hi TechNet Community Team, I've one list "Purchase Order" where I'm storing the data for purchase order details below are the fields. List Name = Purchase Order Order No, Order Date, Part No, Part Qty, Delivery Date, Delivery Qty, Balance Qty. Now in

  • How can I copy test plan WITH ITS RESULTS (PASS/FAIL) to other project in MTM??

    How can I copy test plan WITH ITS RESULTS (PASS/FAIL) to other project in MTM??

  • Photo album from the iPhone to iPhoto in the Mac

    When i create a photo album in the Iphone and put pictures in it still from the iPhone, how can i transfer it to the mac: album with the pictures already in it so that it is not necessary to create the album again in the Mac? iPhone iOS 6 and latest

  • Help! CORE DUMP file in our platform, WLS 6.1 SP7

    Hi, I am having a problem and it causes the weblogic server to terminate suddenly. My configuration is: - Weblogic 6.1 SP7 - Windows 2000 - Weblogic Oracle Driver (weblogic.jdbc.oci.Driver) - Database Oracle 9i Pls help me to resolve this problem....

  • How to update JComboBox automaticly

    Hi I need help I have a JComboBox which has month from Jan to Dec. How do I make the JComboBox to show the month from the databases Example I retreive data that has the January in it but the JComboBox is showing March how do I make JComboBox to show