Closed Loop or Open Loop

Dear All,
I'm currently using the DAQ card PIC-6221 to control a DC servomotor with an encoder displacement feedback. I'm using the labview program with a motor amplifier to start the motor and stop it at a specific rotational displacement, where it works by stopping the motor when the encoder feedback value reaches the input desired displacement value. The final displacement of the motor before it stops always exceeds the desired value marginally. May I know for my case,am I using an open or closed loop control? Is a PID controller a MUST for closed loop control? Is my DAQ card capable of desigining a PID controller? If so may I know how?
Also, my project requires me to toggle between the current and voltage mode control. May I know if that is possible to carry out digitally using the Labview Program as my current motor amplifier requires me to push a switch manually to toggle between Voltage and Current mode. Finally, I hope my last question is not out of this world but is it possible to use 2 amplifiers(drivers) for a single motor such that there's a chance to use both the current and voltage modes of control?
Really looking forward to the replys of you kind souls out there! Thanks!
Regards,
Oompa

Oompa,
to learn more about the general concepts of motion control, please visit this link.
In general I widely agree with JB's suggestions. I'll just add some more comments to your questions.
If you need closed loop control depends on what you try to accomplish. If you just want to generate a certain torque (current mode) that is proportional to the output voltage of your control device, you may not need to run a closed loop system. A similar statement is true for the voltage mode.
Closed loop control is especially important if you need to control the position, or if you need to run a special trajectory profile (position/velocity/torque over time)
Maybe it's possible to control the current/voltage mode of your drive with a digital signal. You will have to find out in the manual or check with the vendor.
Using two drives with a single motor doesn't seem to be recommendable. If you want to do something like that, you will need to switch the power signals with relays between the two drives, but as you are working with inductive loads this might become quite tricky and there is a risk to burn both, the motor and the drives...
Regards,
Jochen Klier
National Instruments

Similar Messages

  • Difference between open loop and closed loop mode when finding the index on a stepper motor axis.

    I have a test system which uses a PXI-7352 motion controller with a MID-7602 stepper motor drive to position a 200 step/revolution stepper motor with an attached 1000 line encoder.  The MID-7602 is configured for 64 microsteps per step, giving 12,800 microsteps and 4000 encoder counts per revolution.  The system is controlled using LabView 7.1 and NI-Motion 6.13.  To home the motor, I've defined a sequence in MAX which first finds the reverse limit switch and then moves forward to the encoder index pulse.
    When finding its reference in open loop mode, the system its reference at the same microstep each time.  When findings its reference in closed loop mode, the system finds its reference somewhere within about a 20 microstep wide range.
    I hope somebody out there with more experience with this controller can describe the difference between finding the encoder index in open loop mode and finding the encoder index in closed loop mode. 
    Thanks,
    Mark Moss

    Hello Mark,
    I suspect that the behavior you are experiencing has today
    with the resolution difference between your encoder and your
    microstepping.  Let me illustrate with an
    example:
    Example Setup
    Stepper
    Motor
    NI
    Motion Controller
    10
    steps per encoder pulse (Every 10 steps the controller gets an encoder
    pulse, therefore positions 0-9 all appear to be 0 to the controller)
    The
    system has a maximum of 3 pull in moves set
    Open Loop Scenario
    The
    system is commanded to go to position 9.
    The
    controller sends out 9 pulses.
    The
    motor moves to position 9.
    Closed Loop Scenario
    The
    system is commanded to go to position 9.
    The
    controller sends out 9 pulses.
    The
    motor moves to position 9.
    The
    controller checks its position and sees that it is still at position 0
    because it has not received an encoder pulse.
    Because
    the controller thinks it is still at position 0, it sends another 9 pulses
    as its first pull in move.
    The
    motor moves to position 18.
    The
    controller checks its position and sees that it is at position 10 because
    it has only received one encoder pulse.
    Because
    the controller thinks it is still at position 10, it sends1 reverse pulse
    as its second pull in move.
    The
    motor moves to position 17.
    The
    controller checks its position and sees that it is at position 10 because
    it has only received one encoder pulse.
    Because
    the controller thinks it is still at position 10, it sends and additional
    single reverse pulse as its third pull in move.
    The
    motor moves to its final position of 16.
    I believe something similar is happening with your
    application as it looks for the index pulse. 
    Because the controller does not compensate for what it perceives as
    position error in open loop mode, the motor always goes to the same commanded
    position.  In closed loop mode, the motor
    is bouncing around inside the single index encoder pulse trying to find a
    certain position.
    There are several recommendations I can make towards
    correcting this behavior.  These
    recommendations are in order of effectiveness:
    Setup
    your system so that there are more encoder counts per revolution than
    steps per revolution.
    Turn
    off pull-in moves by setting them to 0 in MAX.
    Use an
    open loop configuration.
    Play
    around with the pull in window in MAX.
    Regards,
    Luke H

  • Why are my steppers misbehaving in closed loop mode, but work fine in open loop

    I have a 7344 controlling a 4 axis prototype machine, which is configured with 50,000 steps/rev and linear encoders providing 50800 counts per inch. The physical properties of the machine are less than perfect (prototype!), so there is a considerable amount of backlash in the hardware (about 0.008" - 0.010").
    The observed behaviour is as follows: when repeatedly blending in the X,Y plane using vector space 1 in closed loop mode, an axis will be driven (uncommanded) to the zero encoder reading (home position) occasionally (about 1 move in 600). I have kept a log of the commanded positions being passed to the controller (via the flex_load_vs_position function) and a move to zero is not being com
    manded. The application is single-threaded, so there is no chance of race conditions. The ready state of the board is being confirmed by means of the flex_check_blend_complete function call before any blend is commanded. The programmed relationship between steps and counts/revolution have been independantly confirmed as being correct.
    An A-B-A test with the only change being to initialise the X & Y steppers in open loop instead of closed loop then 'works' - although the physical positioning of the hardware is unsatisfactory due to the physical characteristics of the prototype machine already mentioned, hence the necessity to run closed loop.
    I am inclined to interpret the evidence as suggesting that the 7344 is causing an 'occasional' uncommanded move to zero as a result of some interaction between pull-in moves and commanded position on a system where there is a considerable degree of 'elasticity' between the commanded position and the achieved position allied to a rapid-fire de
    livery of blend moves.
    This problem can be replicated under versions 5.0.1 and 5.2 of the FlexMotion software.
    I can clearly run without bumping into the problem by running open loop, but unfortunately that is not acceptable in this situation. Any ideas, anyone?

    Hi, and thanks for coming back so promptly. I think I need to give you some more information - sorry if it turns into a long post!
    The system behaviour when it 'misbehaves' is that it starts the anomolous behaviour well clear of any home or limit switch (>6"). When it 'goes wrong', it then slews one or both axes to the zero position. Having arrived at the zero position, it then carries on with the next blend without killing the motor.
    The initialisation functions include a seek to home switch, a search for the nearest index point, and a zeroing of the encoder count at the index pulse: hence the zero point is a little displaced from the home microswitch.
    I believe that once the system has 'gone wrong', it is stopping at the zero point *not* the h
    ome switch.
    I have carried out some further tests that may be of help:
    If I place a large (1 sec) inter-blend delay in the calling functions, the anomalous behaviour is not noticed. However, the start/stop nature of each move means that this test is knocking the bejezus out of a rather fragile prototype machine, so I can't do this too often!
    The encoder positions are being read back on each move cycle and monitored, and they are not showing any anomolous behaviour, so I don't think they are the culprit. I have placed a 'scope on the quadrature encoder inputs and the edges are good and sharp with no real indications of noise.
    I could test with a blend factor other than -1 if you think that might be illuminating?"

  • Is it possible to use software limits on 7354 board when switching control modes from open to closed or closed to open loop?

    Is it possible to use software limits on 7354 board when switching control modes from open to closed or closed to open loop?

    Hello Richard,
    When you say 'open loop' and 'closed loop', are you referring to running the application in position and torque mode? If not, how exactly are your controlling a servo motor in open loop? 
    In closed loop mode, the encoder values will be used as reference and the motion VIs can be used to configure the software limit as required. Are you currently losing the software limits? If so, how exactly are you losing these values? I am not sure I understood what exactly is happening with software limits in your program, so any more information on this would be useful. 
    Vivek Nath
    National Instruments
    Applications Engineer
    Machine Vision

  • Error -70006 when using stepper motor in Open Loop Mode

    We have a LabView program that runs a test in which a table is rotated. At the end of the test, the table is supposed to rewind. Instead, the following message appears:
    Error -7006 occurred at Read Trajectory status.flx
    Possible reasons: For FlexMotion, an invalid axis number or other resource ID (Vector Space, Encoder, I/O Port, and so on) was used.
    We have the PCI-7344 interfaced with a UMI-7764 and a Zeta4 that is controlling a ZETA83-93 stepper motor. There is no encoder in the system for this motor. The stepper loop mode was originally set to closed loop but the motor behaved erratically (moving multiple times when instructed by MAX to move once). The stepper loop mode was changed to open loop and the m
    otor started behaving properly, but that is when the error message starting appearing. Are there any other configuration settings, such as Primary Feedback (which is now set to Encoder) or ? that I may need to correct to resolve this error?

    First of all I would check a couple of things. The reason why your motor was not behaving properly in closed loop stepper configuration is most probably related to the fact that you don't have the encoder counts per revolution adn the stepper steps per revolution properly configured for your motor. Please follow the instructions found in the following knowledgebase:
    http://digital.ni.com/public.nsf/websearch/29edb56​146f274a386256a1c00624310?OpenDocument
    When you configure an axis in closed loop stepper mode, we use the information of the encoder to generate the adequate velocity profile. If the encoder counts and steps per revolution are not properly matched, then the motor will not execute the moves properly. What you need to do is the following:
    1.-Configure your axis as closed loop stepper in the Axis Conifguration Section in MAX.
    2.- In thbe 1-D Interactive Basic panel, kill the motor and click on reset position.
    3.- Manually rotate the motor one revolution.
    4.- In the advanced panel on 1-D interactive, read the Encoder Value. This is the value you should enter on the Axis Encoder Counts per Revolution under Axis Configuration. Press Apply.
    5.- Go back to the 1-D interactive Basic Panel. Change the bullet selector unbder Stepper Loop Mode from Closed to Open. Run a 10000 step move.
    6.- When the move is finished, read the encoder counts from the advanced panel. This will tell you how many counts you have in 10000 steps. You can now calculate the stepper steps per revolution by the following formula:
    (# of steps per count)*(# counts per revolution) = # steps per revolution.
    Your motor should work fine in closed loop stepper configuration now and the error should not appear. Please make sure you are using the latest version of our driver (Ni-Motion 6.0.1)to avoid older firmware errors and fixed bugs from affecting your system. You can get it from:
    http://digital.ni.com/softlib.nsf/webcategories/85​256410006C055586256BB9002C16DF?opendocument&node=1​32070_US

  • Open Loop Problem of PCI-7344

    Dear Partners
    I have a big trouble....
    Any suggestion would be appreciate!
    Here is the hardware and software that I am using
     S/W : MAX 3.1.1
               LabVIEW 7.1
               NI Motion 7.0
     H/W : PCI-7344
               UMI-7764 
                YASKAWA Servo Driver
    I've tested my motion B/D step by step
      1) Start Max3.1.1 / MySystem / Devices and Interfaces /NI Motion Devices /
           PCI7344(1)/Interactive/1-D Interactive
      2) Slect "OPEN LOOP"
      3) Input steps : Velocity, Acceleration, Deceleration
      4) Input steps : Target Position = 100000
      5) Click  "Apply"
      6) Click  "Start"
    But sometimes it stops generating steps.
    it occurs very very irregularly.
    I can't understand because I use "OPEN LOOP"
    and "Current Trajectory Position" must increase until "TargetPosion" whether the asis move or not.
    Also there is no limit signals..
    Please see the image file attached.
    It's very simple I control motion b/d with OPEN LOOP MODE.
    and, I think the servo Driver works well because command steps and encoder pulses are equal.
    Please Help me!!!
    Crane
    Attachments:
    7334error.GIF ‏117 KB

    Thank you Jasper S.
    I think you understand me well.
    I tell you more informations.  
    1) The computer is working in Windows XP Professional (Just Theme).
    2) It happens also at low velocity and acceleration.
    3) I think when the motor stops moving, it fails to translate into hardware steps.
      Because when the motor stops, "Current Trajectory Position" and "Encoder Counts" are equal.
    4) I checked status registers on the card when it works abnormally, but can't find any error message and flgs.
    5) To make matters worse it happens occasionally, so it's difficult to find out the reason.
    6) Strange as it may sound, when I touch the motion connector correctly,  the abnormal behavior frequency decrease.
      So I tried to exchange a new motion b/d and a motion cable but it was just same error situation.
      I can't understand because I just use "OPEN LOOP",  it is no matter whether servo driver works well or not.
    7) Do I have to change PC? I already tried to exchange PCI Slot position.
    I need more information about this.
    I'm in trouble because this system is operating at foreign country.
    It is fatal error  even if it happens once per day....
    Please help me once more. Thank you.

  • System identifica​tion for open loop unstable plant?

    Hello,
    I have been trying to use system identification on labview. My problem is that my plant is open loop unstable and none of the tutorials or examples I have found seem to cover this so I cannot get it to work. Does anyone have any suggestions as to how I should go about it? My plant has an RC servo so it needs a PWM signal to stimulate it.
    Thanks
    Adam

    adamkse wrote:
    I want to control my plant with lead/lag control but I do not know the plant model which makes this very difficult. I cannot theoretically calculate it because the information I need to obtain a numerical transfer function or state space model is unavailable.
    I have it controlled with PID at the moment but this is not ideal.
    I am trying to use the system identification toolkit to obtain a transfer function but I do not know what to do because the examples do not work for open loop unstable plants.
    Adam
    Ok Open loop unstable functions cannot be predictably controlled (hence the terms; open loop and unstable,)  Not being able to model the actions is a bit of a problem too.
    Somehow, someway you need to get some kind of model or some kind of feedback to either provide stability in the plant or close the loop.
    Adding hardware (sensors) is the most likely solution.
    tell me more about the plant, I do this kind of thing for a living, so I could offer some ideas. 
    Jeff

  • Why do I get a Track out of memory error while running open loop frequency response?

    MatrixX Build 61mx1411: I get a "Track out of memory" error when I run the Open Loop Frequency Response from the MatrixX pull down tools. What can I do to prevent this? We are running on an HP B1000 with 768 MB of RAM under HP-UX 10.2.

    In the old days of Mx say Version 5 and prior the user actually selected the amount of memory that would be allocated. Depending on the size of the model etc. you would have to allocate memory. In version 6.0 and going forward there is no need for the user to manually allocate the memory.
    Build {rstack=50000,istack=200000,sstack=50000,cstack=50​0 000}
    If this is a command in a script file that you are running and the error is resulting from that then I would try commenting out everything after the letter d in the word build and then starting it back up.
    i.e. only use Build
    I don't believe that there is a way to manually allocate the initial SystemBuild Stack size.
    I believe initially the stack size is set to 10010.
    However, one way
    you can manually set the initial SystemBuild stack size,is to create a large StateSpace as soon as you start up SystemBuild. This will prevent piece-meal reallocs while using SystemBuild.
    You can created a new SuperBlock in SystemBuild and then drop down a StateSpace Block with 199 inputs and 199 Outputs and 1 State and entered ones(200,200)as the StateSpace Matrix without any problems. This would resize this internal stack to at least 40000.
    You really should not have to do this but if that helps then you might think about doing this in your startup.ms file you could use SBA or load the file then you could delete the superblock and begin working.
    "Bob" gave me this little tid bit.
    Please let me know if any of this is of use.
    Garrett
    Garrett Thurston
    [email protected]
    Phone: 781.993.5540

  • Open loop with nestedLineStyle

    Hi,
    Could someone confirm, that InDesign will go into open loop if
    app.findTextPreferences.appliedCharacterStyle = charStyle;
    and in some story, some paragraph(s) has this charStyle set as a nestedLineStyle further then from 1st line
    (from 2nd and next)
    i.e setting looks like:
    [None]          for     1     line
    charStyle       for     2     lines
    My ID CS5 gone out of memory with that...
    Only way to run is place mouse insertion point somewhere inside "charStyle" range of text.
    Did you notice that also?
    rgds
    PS
    I mean when story.findText() is run from script not  from UI
    Message was edited by: Jump_Over

    Thank you Jasper S.
    I think you understand me well.
    I tell you more informations.  
    1) The computer is working in Windows XP Professional (Just Theme).
    2) It happens also at low velocity and acceleration.
    3) I think when the motor stops moving, it fails to translate into hardware steps.
      Because when the motor stops, "Current Trajectory Position" and "Encoder Counts" are equal.
    4) I checked status registers on the card when it works abnormally, but can't find any error message and flgs.
    5) To make matters worse it happens occasionally, so it's difficult to find out the reason.
    6) Strange as it may sound, when I touch the motion connector correctly,  the abnormal behavior frequency decrease.
      So I tried to exchange a new motion b/d and a motion cable but it was just same error situation.
      I can't understand because I just use "OPEN LOOP",  it is no matter whether servo driver works well or not.
    7) Do I have to change PC? I already tried to exchange PCI Slot position.
    I need more information about this.
    I'm in trouble because this system is operating at foreign country.
    It is fatal error  even if it happens once per day....
    Please help me once more. Thank you.

  • Is it possible to micro step using the Pci7314 (open loop) controller and umi7764 and Labview.

    Is it possible to micro step using the Pci7314 (open loop) controller, umi7764 and Labview. if so how would this be set up. i have searched the valuemotion vi libraries and found no microstepping functions. Please could you offer any advice. cheers JON ROGERS

    Hi Jon,
    Micro-stepping is a property of the motor amplifier (motor drive) rather than the controller. It sounds like you are using a 3rd party drive, since you have a UMI. You want to check with your motor amplifier documentation to see if it's supported. Usually, there will be dip-switches on the drive that sets the microstep factor.
    Hope this helps. Please let me know if you have any questions.
    Thanks,
    Ken Sun
    Applications Engineering
    National Instruments

  • How to read open loop status on cFP-AO-200

    How to read open loop status on cFP-AO-200, i need to know which channels are open loop.
    Brad Whaley
    LabVIEW Certified Engineer

    If you are reading a multiple channel tag and one or more channels is(are) in an Open Loop condition, then you will receive a warning from the FP Read or FP Write. However, this warning simply tells you that one or more channels has reported an Open Loop condition. If you need to figure out which channel is specifically reporting the Open Loop condition, you have to read/write each channel individually to get the channel status for a particular channel.
    Regards,
    Aaron

  • Soundtrack Pro preview loops and non-loops are cut-off

    I need help with this issue.
    When I am going through the loop library/libraries, I click in a loop and it used to preview without an error, I am not sure when this happen, but now if I click in any audio clip from the loops and mixes libraries (about 7500+) clips, .aif and .caf audio files, in the library, all I get is half a second if not any preview.
    When I open the clip, and press play, it seems to be choppy as well. it plays through but skips or pauses for a fraction of a second, but enough to know that it is not playing flawlessly.
    I am not sure if this happen after installing the last Pro update or the 10.5.4 update.
    I also have FCP and Motion, those applications seem to not have any issues.
    Is there a way to reset the whole STP?
    I am not sure all locations where the preferences are, I tried deleting all the libraries, and adding them later, that didn't work. I deleted the one preferences in my user preference folder, but that didn't do anything either.
    Any help would be appreciated.
    Thank you.

    You may need to rebuild the loops index.
    Open up Logic and display the Loops Browser
    Open up FInder and locate the folder containing the loops as you describe
    Drag the loops folders onto the Loops Browser
    That will rebuild the index and all should be well.
    Pete

  • Installed Jam Pack but see no new loops in Garageband loop browser. Why not?

    I successfully installed Jam Pack but don't see new loops in Garageband loop browser. Is there some extra step I'm supposed to do? Before, I had about 57 Rock/Blues loops, and I still have just that. I had 14 instruments under All Drums, and guess what? Still only 14.
    I know the install completed successfully - it said so, anyway.
    Clues?

    Have you filters set on the Loop Browser?  Make sure the GarageBand Preference "Loops > Keyword Browsing > Filter for more relevant content" is off.  Otherwise you will  see a fraction of the available loops.
    To see, if the JamPack has been installed, set the pop-up meu at the top of the Loop Browser to "Rhythm Section". Is that available?
    Did you reindex your Loops after installing the Jam Pack? And did you restart the Mac? In Mt. Lion only restarting a Mac will ensure, that an application is not resumed from a cache, when you launch it again.Restarting the Mac will terminate GarageBand for sure.
    If restarting the Mac does not make the JamPack Loops show, rebuild the Loop index.  See:  Rebuilding the Loop Index in GarageBand 6 or earlier - Apple Support

  • When I Drag Loops To The Loop Browser...

    All my loops are in the folder /Library/Application Support/GarageBand/Apple Loops. I dragged them over from the finder to the loop browser in GB, and it looks like it copied all of them to another folder user/Library/Audio/Apple Loops/User Loops/GarageBand/Apple Loops. ***?! What a mouthful. Is this the new default location for all of my loops? Can I change that? Can I erase the Application Support/Garageband folder now? I would like to reclaim the 12+ GB of space.

    As far as I can make out GB needs to store your loops in both Application Support and Audio. The Application Support/GB folder also contains other resources, such as software instruments and channel presets etc., so DON'T DELETE IT!!
    In the Audio folder the GB loops will normally be stored in Apple Loops/Apple/Apple Loops for GarageBand, not in the User Loops Folder. When you dragged them to the browser, GB thought they were a new set of loops and put them in User Loops; so as long as they are still in Apple Loops/Apple/Apple Loops for GarageBand, go ahead and delete them from the User Loops folder. Like I said above, GB seems to store the loops in two locations by default (no Idea why), and I think it's best not to screw around with stuff in the Library under OSX.
    BTW, why did you drag them to the browser in the first place? Had they not appeared there when you installed?

  • Adding loops to the loop browser.

    I'm using mac os 10.4.11. I have placed all my loops on an external hard drive.
    1) Are only apple loops allowed to be added or aiff loops in general as well?
    2) when adding loops to the loop browser should one add an entire folder if they are in a folder or just the files within a folder? I added a folder of flutes but can not find flutes anywhere in the loop browser file list.
    3) As I didn't want the loops within the jam pack voices, and rhythm section installer packages to be added to garageband I removed the loops folders from the packages, and dropped them onto the loop browser. When looking in the jam pack management it shows the rhythm section but not the voices. When I again attempted to drop the voices folder it said it was already there, although I still can't see it.
    4) Once I understand how to do this correctly should I trash the loop browser apple loops index file and re-drop all the loops on the browser again to get everything cataloged correctly?
    Thank you,
    Robert

    Select "Add to Loop Library" from the Edit menu!

Maybe you are looking for

  • Family sharing edit child age

    Is there any way to correct a child's birthdate with regard to an Apple ID and Family Sharing? It should be an understandable request, since an input mistake was made with setting her birthdate. I did not know that setting the birthdate would be an i

  • Something went wrong. To try again, reload the page and then start the workflow, error on starting a workflow

    i have already create a custom workflow with sharepoint designer and checked for error and it seem fine. i published it on my document library so apprear the first issue : the column that contain the name of my workflow apprear and the link to start

  • Replicated DVD Title Playback Issues (~ 1 out of 20 disks)

    Replicated Disc Playback Issues I recently authored 4x DVD titles using DVD SP 4 in conjunction w/ Compressor 3.0.5. Media was compressed using Compressor "DVD: Best Quality 120 minutes" setting, imported and then built/formatted in DVD SP. The proje

  • Sharepoint browse portal from AD users issue

    Dear All, for my sharepoint 2013, i am able to browse the portal from system admin user with no issue but not for AD users !! it keep showing windows security credentials required despite i put the correct credentials, what should i do? please help

  • Javax.servlet.ServletException: Servlet execution threw an exception

    Hi guys... I got an error message after I click a button on my page. Before my action class called, servlet throw an exception. this is the error message from my eclipse console. 15:31:31,062 INFO  [STDOUT] javax.servlet.ServletException: Servlet exe