Laser frequency stabilization using pid controller

Does anyone know of an example where the PID controller in LabVIEW has been used to stabilize the output frequency (wavelength) of a diode laser? A PID module for our laser can be purchased, but I'm hoping to try a LabVIEW-based system. Ideally, we'd like the long-term (minutes) variation of frequency to be a few MHz.

The input to the PID is the process variable which is the output of the lock-in. The lock-in is processing a signal which is related to the frequency of the laser. Is the set point in frequency units or something else?
The output of the PID goes to the current input of the laser controller.  The only scaling in the PID is based on the values for Kp, Kd, and Ki. 
So it seems likely that some conversion will be appropriate. Do you know enough about your optical process to have a value for the frequency change per volt of output of the lock-in? Do you know the frequency change per amp of laser controller input? You should be able to combine those values to determine an appropriate scaling factor.
You used "accuracy" and "precision" in successive sentences and I wonder if you have them confused. Accuracy refers to how close to the actual value a measured or commanded value is. Precision essentially refers to the number of significant digits in a value.
You have set the precision of the value written to the laser controller to 2 digits after the decimal point. If you want more precision (an if the instrument supports it), you need to change the format string.
Increasing the sensitivity of the lock-in is the same as increasing Kp in the PID. At high enough values most systems oscillate.
My first concern with oscillation would be the time delay. What are the time constant settings on the lock-in? How long does the laser controller take to respond to a command over the GPIB?  Time delays in a feedback system make the system very difficult to stabilize.
The system I worked on never worked completely to my satisfaction. It always required a significant amount of manual tuning.
Lynn

Similar Messages

  • Thruster control using PID controller

    Dear All,
    Actually my project is related to heading control of an underwater system using PID controller - A Labview Application.
    Till now, As per this forum discussion, I have completed the rotation count measurement of a compass C-100 device using Event structure and cFP controller.
    Now I need to integrate the PID controller for thruster control according to the count value measured.
    Could you please anyone guide me to start implementing the same. Please do the needful.
    Thanks and Regards,
    Dinsulpri.

    Dear nathand,
    Actually I need do a heading control application of a underwater system by using PID controller by the help of thrusters.
    According to this,Firstly,I have completed the rotation count measurement of the system by interfacing the compass C-100 (for checking) with the cFP controller.It is working fine.
    Now I need to do the PID controller part based on this count value measures, that is , I need to give the control signal to the thruster in order to release the twist of the system.
    I just gone through the PID part in the labview and understood the concept and simulated the basic examples given in that.
    My Understand as follows, Please validate the same and give me your suggesion on this,
    1) Need to give Setpoint should be a thruster voltage .
    2) I dontknow what to give in the process variable field.
    3)Apart from this, how can I show this concept schematically with out connecting the thruster manually? Is it possible to show the demo in chart analysis format? 
    Please validate the above points and guide me to start working on this task.
    The rotation count measurement application, Till now I did was attached with this. Please go through the same.
    Thanks and Regards,
    Dinsulpri.
    Attachments:
    Compass_Event Structure.vi ‏18 KB

  • Temperatur​e control using pid controller

    sir i ve a doubt that how should i control temperature at a particular value using this PID controller here i attach screen shot of my block diagram.please show me the path how should i controll
    Attachments:
    Capture.PNG ‏20 KB

    Hi,
    I am also looking for some what same situation. Did you get any answer?

  • Usage of PID controller instead of ON OFF controller

    respected sir,
           I pursuing  btech final year in the stream of instrumentation.sir i have a doubt  while go through my project,can i use PID controller  instead of using ON OFF CONTROLLER. would you please suggest me the possible ways which are going to implement in my final project intelligent wheel chair.i am eagerly waiting for your valuable acknowledgement.
    thank you,
    with warm regards,
    BOMMAREDDY

    Hi!
    I am not sure if I completely understand the question but if you are wanting to do autotuning for PID there is actually a VI that will do it for you.  It is called PID Autotuning.vi and can be found under the PID Control pallete in LabVIEW.  The LabVIEW Help file also contains more detailed information on the inputs and outputs to the VI.
    Carlton
    CLD

  • Circuit for auto tuning of pid controller in lab view

    Hi sir
    for my  project in auto tuning of pid controller using labview,for that
       i require a simple  circuit diagram(lab view figure) and have no problem in running for that
    i will be very thankful  to you

    Hi!
    I am not sure if I completely understand the question but if you are wanting to do autotuning for PID there is actually a VI that will do it for you.  It is called PID Autotuning.vi and can be found under the PID Control pallete in LabVIEW.  The LabVIEW Help file also contains more detailed information on the inputs and outputs to the VI.
    Carlton
    CLD

  • PID controller

    Hi All,
    I Have to design a PID controller based on standard Labview 8.2 and I've tried to do so but still facing problems with it. I think there might be a mistake in one of the connections in the PID controller. Even when I tried to simulate it with a simple transfer function, I could not get any response.
    please have a look on the attach files and tell me what wrong with it .
    Regards,
    saed
    Attachments:
    final pid2.vi ‏30 KB
    PID2.vi ‏27 KB

    Hi saed,
    there still is Rube-Goldberg in it See comments in attachment...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    final_pid2e.vi ‏26 KB

  • PID controller on NXT

    Hello,
    I'd like to include a PID controller in my NXT-Program. But I can't use the LabVIEW Toolkit, because these VIs can't be compiled.
    Howcan I realize such a control without PID-Toolkit?
    Can show me anybody an example for implementation, please?
    Regards, Maddien

    Full PID control might be difficult since you would need to implement it from scratch, but simple proportional control is fairly easy.  There is a good example of this in the book LabVIEW for LEGO MINDSTORMS NXT.  
    Message Edited by BLAQmx on 09-17-2009 09:59 AM
    Mark
    LabVIEW R&D

  • Factors to be considered while designing a PID controller

    Hi ,
    I am designing a PID controller for a temperature control system.
    What are the factors should i consider to decide the PID controller range?
    I have to adjust the heater voltage to keep the process temperature under control.
    How to simulate the program without actually getting the process temperature??
    Will the PID Controller work with any relation (for simulation purposes)between heater voltage and process temperature??
    Am not an expert in PID controller.............
    could someone guide me ...........
    Thanks,
    radhika

    Hi Radhika,
    For guidelines on setting parameters of your PID controller, you can search and find good information in books and all over the web (e.g. root locus and Bode plots).
    As far as LabVIEW is concerned, you might want to take a look at the Control Design Toolkit, and its manual, available here.:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/13854
    And you could use something like a simulate signal express VI to simulate an input to your system.
    Hope that helps! Take care,
    -Sam F, DAQ Marketing Manager
    Learn about measuring temperature
    Learn how to take voltage measurements
    Learn how to measure current

  • PID controller loop

    Hi,
    I have a problem to control the torque's setpoint.
    I'm using the example in Labview 6.1 PID controller loop.
    The process variable measures the torque and it's the same value indicated in the torquetronic, but the system isn't regulate as I want.
    I always have the upper limit(10V) to the servovalve,so I have 7Nm even if I put 2Nm in the setpoint box.
    I'm sure that the parameters in MAX are good (to the range).
    How can I regulate the torque??
    My PID values are: P=0,2 ; I=5 ; D=0 Are they right??
    Salutations

    Hi,
    I am assuming that if the voltage to the servo valve is increased, the torque increases, and if it is decreased, the torque deceases.
    First, test the setup in open loop, that is, set the voltage directly to the servo (0--10V)(without using the loop), does the torque value changes accordingly, if not you have a mechnaical/electrical problem.
    If it reponds, then
    Start with D=0, and small values of P and I, and monitor the voltage output of the PID,
    then incease P and I in small increments
    In general, as P and/or I are increased, the voltage output and torque also increase. Large values will make the system torque/voltage osciilate.

  • NXT PID Controller from PC

    Hello,
    I've implemented a PID controller on PC to control NXT Robot in this steps:
    1. NXT sends the sensor value (Light sensor) to PC.
    2. PC performs all calculations (PID controller and motor power for each wheel)
    3. NXT receives the powers of motors and applies to corresponding motor.
    With USB connection, robot follows the line very well and execution time is only 15 ms. But with Bluetooth, execution time up to 60 ms (!!) and the robot cannot follow the line properly.
    Is it normal that Bluetooth has this latency? The only solution is to implement the PID controller directly on the NXT?
    I've attached the robot's program.
    Thanks!
    Attachments:
    Robot 9 (enviat).vi ‏20 KB

    Bluetooth is always going to be slower than USB, and best performance would be doing the PID control on the NXT.
    Can you attach your host side program as well so we can see how you are sending/receiving messages on that pc? 
    Are you using a mac with built in bluetooth radio? Sometimes people get better performance on mac with an external dongle.
    Another option would be disabling the status check when a message is written to the NXT. 
    See the following vi: 
    C:\Program Files (x86)\National Instruments\LabVIEW 2012\vi.lib\NXT\DirectCommands\NXTToolkit.DC.MessageWrite.vi
    There is a true constant on the diagram that specifies "requireResponse". This enables getting a response back that the messageWrite succeeded. I'm not sure how important it is, but setting that to false would reduce the number of bluetooth transactions in the loop by one.

  • How to run multiple CodedUI Ordered Tests over multiple Test Agents for parallel execution using Test Controller

    we are using VS 2013, I need to run multiple Coded UI Ordered Tests in parallel on different agents.
    My requirement :
    Example:   I have 40 Coded UI Test scripts in single solution/project. i want to run in different OS environments(example 5 OS ).  I have created 5 Ordered tests with the same 40 test cases. 
    I have one Controller machine and 5 test agent machines. Now I want my tests to be distributed in a way that every agent gets 1 Ordered test to execute. 
    Machine_C = Controller (Controls Machine_1,2,3,4,5)
    Machine_1 = Test Agent 1 (Should execute Ordered Test 1 (ex: OS - WIN 7) )
    Machine_2 = Test Agent 2 (Should execute Ordered Test 2 (ex:
    OS - WIN 8) )
    Machine_3 = Test Agent 3 (Should execute Ordered Test 3
    (ex: OS - WIN 2008 server)  )
    Machine_4 = Test Agent 4 (Should execute Ordered Test 4 (ex:
    OS - WIN 2012 server) )
    Machine_5 = Test Agent 5 (Should execute Ordered Test 5 (ex:
    OS - WIN 2003 server) )
    I have changed the  “MinimumTestsPerAgent” app setting value
    as '1' in controller’s configuration file (QTController.exe.config).
    When I run the Ordered tests from the test explorer all Test agent running with each Ordered test and showing the status as running. but with in the 5 Test Agents only 2 Agents executing the test cases remaining all 3 agents not executing the test cases but
    status showing as 'running' still for long time (exp: More then 3 hr) after that all so  its not responding. 
    I need to know how I can configure my controller or how I can tell it to execute these tests in parallel on different test agents. This will help me reducing the script execution time. 
     I am not sure what steps I am missing. 
    It will be of great help if someone can guide me how this can be achieved.
    -- > One more thing Can I Run one Coded UI Ordered Test on One Specific Test Agent?
    ex: Need to run ordered Test 1 in Win 7 OS (Test Agent 1) only.
    Thanks in Advance.

    Hi Divakar,
    Thank you for posting in MSDN forum.
    As far as I know, we cannot specify coded UI ordered test run on specific test agent. And it is mainly that test controller determine which coded UI ordered test assign to which test agent.
    Generally, I know that if we want to run multiple CodedUI Ordered Tests over multiple Test Agents for parallel execution using Test Controller.
    We will need to change the MinimumTestsPerAgent property to 1 in the test controller configuration file (QTControllerConfig.exe.config) as you said.
    And then we will need to change the bucketSize number of tests/number of machines in the test settings.
    For more information about how to set this bucketSize value, please refer the following blog.
    http://blogs.msdn.com/b/aseemb/archive/2010/08/11/how-to-run-automated-tests-on-different-machines-in-parallel.aspx
    You can refer this Jack's suggestion to run your coded UI ordered test in lab Environment or load test.
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/661e73da-5a08-4c9b-8e5a-fc08c5962783/run-different-codedui-tests-simultaneously-on-different-test-agents-from-a-single-test-controller?forum=vstest
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Using one controller as primary DHCP server for 2 or more controllers

    Here's my setup
    2 - 5508 controllers (40 APs per controller) running 6.0.196.0 (100 user license per controller)
    about 80 mixed - 1142 and 1252 APs, trying to put 40 APs on each controller
    One subnet connects two controllers together on the management interface on port 1 on both controllers. 10.x.x.x addresses.
    Port 2 on each controller (LAG not used) connects to a DMZ via dynamic interfaces for user traffic, 172.x.x.x addresses.
    I want to use one controller for all clients to get their DHCP addresses from (no matter what controller their AP is on)
    as a primary DHCP server (controller A as primary), then i'd like to point the clients to the other controller (controller B) to be used as a backup DHCP server in case Controller A fails. Also, the APs are setup to have the correct primary and secondary controllers under their high availability setting as well as the mobility group information.
    I want to avoid splitting my DHCP scopes between controllers, and I don't have a DHCP server dedicated to this project, so the 5508s should be able to do the job. Or at least I thought.
    When configuring the controllers with the proper DHCP scopes, this only seems to work for clients connecting to controller A. Clients on controller B don't get an address from controller A when pointing to that controller, in fact, the wierd thing is that debugging shows DHCP requests going out of port 2 (DMZ traffic) instead of port 1 (management) on controller B. Shouldn't they be going out of the interface that is specified with the DHCP configuration in the dynamic interface? And I don't have "override" turned on in the WLAN configuration so the DHCP server should be taken from the dynamic interface that the user resides on.
    Mobility groups are configured correctly between the two controllers and both the control and data paths are up between the two controllers. Another wierd thing, both controllers management interfaces are on the same subnet, no acls or filters, when the mobility groups are configured, controller A can ping controller B, but controller B cannot ping A. The status still shows as UP/UP in the mobility members windows, but they use mPing which seems to work fine. Remove the mobility group configuration and ping works just fine between the boxes. I don't know if this is related to my DHCP issues, but it would seem that if I put the controller A's management address in the dynamic interface configuration for DHCP on controller B, my clients on B should get an address from A's DHCP pool. Controller A's dynamic interfaces all point to controller A's management interface and they work just fine.
    I'm trying to load ballance my AP distribution between two boxes, and I'm also trying to have some controller redundancy.
    Controller A works just fine, it's in production. Trying to add another controller B to talk A for DHCP is the issue.
    Anyone have any clues?
    -Blair

    I guess i was under the impression that when mobility groups were cofigured, the lease time, along with other client information (mac address, IP address and such), would replicated from one controller to the other controller over the EoIP tunnel.  If that's not the case, then obviously I'll have to look elsewhere.
    Also, does this mean that it will not work, or just that it's not recommended.  If it does work and I have to fix something, at least I can move on with my testing, all while pursuing a DHCP server.  It doesn't sound like using an AP as a DHCP server is any better than using the controllers for that same purpose.
    Thank you for the quick response.

  • Req any examples of high to use midi controller/keyboards with Labview TIA

    Req any examples of high to use midi controller/keyboards with Labview TIA

    [email protected];
    Check the following:
    Communicating with a Windows MIDI Device in LabVIEW
    Regards;
    Enrique
    www.vartortech.com

  • How to use PID function to control a DC motor? ?

    Hi everyone,
    I wanna control a 6v DC motor using PID control toolkit 8.2.
    - a close loop control system with an encoder sensor
    - using a DAQ card model: NI USB-6008
    - the DAQ card will be able to output pwm signal to the transistor then to my motor
    Im stuck at getting pwm signal from the pid.vi and i wanted to know what is the process variable (PV)
    pls help me on my problem, if can pls make an example VI for me
    Thanks !

    Duplicate Post

  • Frequency measurement using Labview 8 and Fieldpoint FP-CTR-502 - wind speed measure

    All the information regarding this kind of application seems to be outdated, I did not find no solution or example to construct frequency measurement VIs using Labview 8
    The examples at "NI Discussion Forums :
    Most Active Hardware Boards :
    FieldPoint Family :
    Low-Frequency measurements using counter/timer" is very strange and so far the steps given seems to be usefull only do old Fieldpoint Explorer.
    I was trying to find a way to learn how to make an anemometer send its signal to a FP-CTR-502 but I have no sucess.
    I am realy very new on this Labview stuff, any help would be welcome.

    (similar thread here)
    Message Edité par Mathieu R. le 12-23-2005 02:28 PM
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  

Maybe you are looking for