Linear Actuator Force Control

How do I control the force and rate of travel of a linear actuator using Labview?

You need to separate this into two different parts: hardware and software. You first need to determine what kind of hardware you need. You said you "believe that this can be controlled by the voltage". Are you sure? What does the documentation say? If it's controlled by a voltage level, what are the specs? This will help to determine what kind of hardware you need to buy and/or make. 
The software part is the other half. This really isn't all that difficult, but the exact implementation depends on a lot of factors. One of these is whether you get a DAQ device from NI, or you get one from another vendor, or you build your own. I think you should spec out your hardware first. If you need help with this part of it you can provide more information and we can suggest a couple of items, or you can look over the products that NI sells, or you can call your local NI sales rep.

Similar Messages

  • How to finetune the force control of an AC Motor Linear Actuator?

    Hello,
    I
    am hoping to find some help here with the following problem, which I am trying
    to solve for several days now....
    I
    am using the UMI-7774 and an AC servo-motor-driven linear actuator to do
    force control. Basically, I need the actuator to apply a constant force and
    react quickly to force changes. My system setup is as follows: I am using
    a PCI-7344 Motion Control Card to provide the analogue command signal
    (0-10V). This signal is supplied to the actuator controller (through a
    UMI-7774), which transforms the command signal to an amperage command signal
    (0-2.17Arms). This is the signal controlling the actuator’s torque. The actuator controller is working in torque mode. I use
    a Kistler PZT force sensor (ring type) and a Kistler amplifier as my feedback
    source. The signal from the sensor amplifier is directly connected to the ADC of the
    UMI. I am using MAX to tune my system and define a PID controller that gives
    me a good step response.
    (1)
    The results so far show that it works in principle, but I believe my system is
    not yet tuned optimally. However, the best step response results I have
    obtained and the PID parameters I used are shown in the attached files. As I am
    relatively new to this area, could you please advise me on how I could further
    improve the step response of the system? The current rise time and
    overshoot values are very good (a 3% overshoot would also be acceptable),
    but the observed undershoot is causing delayed settling. Also, the oscillation
    observed during undershoot is something I would like to remove.
    (2)
    I have tried increasing Kp and Kd values. Increased Kd does not seem to correct
    the oscillation problem. On the contrary, it destabilises the system. Increasing
    Kp causes an unwanted overshoot.  I have also tried to reduce the
    Derivative Sampling Period but that gave even worse results (System Inertia: J
    = 1.8629*10^-5 Kgm^2).
    At
    Td=2 the actuator was retracting on its own to its home position when I set Ki>=8.
    I got the most stable behaviour using Td=4. Is there any other way I could
    improve the actuator’s response?
    (3)
    I have seen that in some cases people have used a “double PID loop” one
    for the encoder feedback and one for the force feedback. Do you believe that
    this would improve system behaviour? If so, how could
    I implement two PID loops? I mean, MAX only allows me to enter
    one set of PIDs....or is there a possibility to set up a second PID-loop
    somewhere?....I have seen that the "Force Control Using Monitoring
    Force" example essentially works with two Closed-loops, but one of them is
    implemented in the application software and this would result in a
    non-deterministic and comparatively slow response of the system, right??
    Sorry for the long post and thanks
    a lot in advance for help and advice.
    Attachments:
    Force Conrtol Loop Settings Actuator-BEST.JPG ‏41 KB
    Step Responce Actuator-Force Feedback-BEST.JPG ‏58 KB

    Hello Jochen and thank you for your very nice reply.
    The past few days I have been trying to implement your advice, but unfortunately I did not have much success. Let me start by saying that explanations to my problem, the 2nd one looked more probable, as I always make sure that there is contact between my actuator and the workpiece I am pushing against. So, I unmapped my DAC by setting up the axis as a stepper axis with no feedback and I used the Load DAC to apply voltage and see when my actuator starts moving. That gave me the upper and lower limits for the Static Friction Compensation filter (please refer to attached image). I then implemented this filter and tried to retune the PID parameters, but the results I got were poor.
    I can now adjust the parameters so that there is no initial spike and undershoot, but now the force ramps up fast to a specific value and then keeps rising slowly. Vibration is observed at the point of transition from fast to slow ramp-up (ref. Step Responce Actuator-Force Feedback-WITH FILTER_v2).
    I could not eliminate the steady state error. When I tried to eliminate the steady state error by increasing Ki, or tried to create an initial overshoot by increasing Kp, I always ended up with an unstable system or a system with a response similar to the one shown in attached figure “Step Responce Actuator-Force Feedback-WITH FILTER_v1”.
      Do you perhaps have an explanation or comments for this behaviour? As for your other questions:
    Sensor Bandwidth: N/A, Charge Amplifier Bandwidth: 200 kHz, Low pass filter: No (Amplifier has the capability though)
    PID Update Period: 250 microseconds (fastest available)
    NI Motion Version 2.3
    Labview Version 8.5.1
      Thank you,
    Thomas
    Attachments:
    Step Responce Actuator-Force Feedback-Filter Settings.JPG ‏28 KB
    Step Responce Actuator-Force Feedback-WITH FILTER_v2.JPG ‏69 KB
    Step Responce Actuator-Force Feedback-Filter Settings.JPG ‏28 KB

  • Dynamic force control using linear servo actuator + load cell

    Hello,
    I am designing a test fixture which will allow us to test the performance of actuators we install in our products. I need to apply a constant load to the actuator while it is extending/retracting. I would like to be able to use a linear servo actuator and a load cell on the same axis as the UUT to provide and monitor the load. The actuator under test does not travel at high speeds, its max speed is approximately 1in./sec.
    I need to be able to maintain a constant load while the actuator is moving. Therefore  I'll need some kind of closed loop system to maintain a velocity such that the load being reported from the load cell is equal to the expected load as the actuator is moving.
    I am trying to figure out how to best implement this in a cost effective and time-saving way. I have not purchased any hardware at the moment so am open to suggestions. We do have LabView 2009 with all the toolkits. Would it be best to implement this using a motion controller card or would I be able to get good results using a standard DAQ?
    Message Edited by fnaeem on 02-05-2010 05:58 PM

    As you have stated correctly, you will need a deterministic closed loop system to accomplish this task. The most cost efficient while reliable solution for this purpose is a motion control board like the PCI-7352. This board provides quadrature encoder inputs for positioning tasks and analog inputs for any other type of control. Torque/force control is a very typical task for this board and it provides a simple API and useful configuration tools.
    If cost savings are a primary goal, you could also use a PCI-7342, but for your application I would recommend the PCI-7352, as the PCI-7342 provides only 12-bit ADCs, while the PCI-7352 provides 16-bit ADCs, resulting in a much better resolution of your force feedback signal.
    I hope that helps,
    Jochen Klier
    National Instruments

  • Controlling Linear Actuator via Load Cell

    Hello,
    I need to control the position of a linear actuator based on the force feedback from a load cell (rated up to 100 ft/lbs) connected to the tip of the linear actuator.  What I want to be able to do is to set a force and have the linear actuator (driven by a stepper motor) move until it is within 0.1 ft/lb of the force setpoint.  Once within 0.1 ft/lb of the setpoint, I would like to hold and control to the setpoint based on a user configured hold time.
    I have the following hardware:
    PXI-1033 chassis
    PXI-7340 Motion controller card
    UMI-7764 Terminal Block
    P7000 Drive
    Omega Engineering Load Cell model number LC201-100
    Omega CCT-80 Load Cell Signal Conditioner
    Omega FAR-1 Power Supply
    I have the + output of the CCT-80 connected to the Analog Input (AIN1) and the - output connected to the Analog Input Ground (AIGND).  This output signal is -10V to +10V (verified by DMM)
    I have the ADC range set to -10 to +10
    I'm reading the ADC as fast as possible (get about 700 samples/second) and this just isn't fast enough to control to the precision that I need.  Also, it seems like there is a substantial amount of noise on this line.
    Does anyone have any recommendations on improving the speed of the ADC read, or how to reduce the noise on the line?
    If my requirement of holding to 0.1ft/lb is too strict for this hardware (7340 motion card) is there something else that I should try?
    If I'm missing any other info that is needed to help me out, let me know and I'll update this post.
    Thanks!

    Hello AMac,
    I have a setup similar to yours with a load cell attached to a linear stage. I want to use position control of the stage to apply a set load on the load cell (position-based explicit force control). Do you have a example VI I could look at if yours was successful?
    Thanks,
    Kyle

  • Pulsatile Linear Actuator Control - Help Needed

    Hi,
    I have a VI that controls the speed of a linear actuator, which is placed within a case structure. A limit switch input switches
    the case structure between forward and reverse. This allows the actuator to move in a continuous motion either forward and
    reverse. What I would like to achieve is a pulsatile movement. The linear actuator operates for a set time and completely off
    for a set time.
    I have tried various approaches with the elapsed time function, alternating wait times but just can't seem to get this, any help
    would be greatly appreciated, I have attached the VI.
    Thanks
    Ger
    Solved!
    Go to Solution.
    Attachments:
    Pulsatile Linear Actuator.vi ‏95 KB

    A few things:
    Are you using the Run Continuously button?
    If so, stop and put this into a proper loop or state machine.
    I don't think the Elapsed Time function is what you're looking for.
    I think you want to use Time Delays between changing the output on your digitals.
    Take some time with the LabVIEW tutorials. They'll help you a bunch here.

  • Linear actuator controlled with external encoder and smart motor - randomly stops

    Hi,
    This is my first experience with Labview or any sort of programming for that matter.  I am using an Animatic Smart Motor Model: SM1720M version 4.15b with an Ultra Motion Bug linear actuator: 4-2B.125-SM17-3.2-1NO-B/EC4 and a 600 series optical encoder.  I am trying to write a VI that allows me to manually control the linear actuator using the encoder.  I attached the one I have been using, but for some reason it randomly stops working, generally  when the actuator is extended about an inch and 2 1/2 inches.  It stops in the same general area, but not the exact same spot.  Any ideas?  Any help would be much appreciated!
    Attachments:
    Manual Command.vi ‏29 KB

    1. The VISA Clear and VISA Close should be outside the loop. You do not want to be re-initializing the VISA session each time through the loop.
    2. You have the port initialized to use line feed as a termination character. When using termination character, you should not use Bytes at Port. Just set the byte count input of VISA Read to a constant larger than the longest message you expect to receive.
    3. With the termination character you do not need the waits between or before the reads.
    4. The 10 ms Wait in the outer loop is rather meaningless when the start button is True. The VISA Write takes much longer than 10 ms for the string you are writing. It does make sense to have a Wait in the False case.
    5. The start button is set to Latch When Released mechanical action. With that setting it retuns to False every time it is read. The result is that the code in the True case only executes one time for each press of the button. Is that what you want?
    A state machine architecture is more flexible and more robust.
    As to why it stops in a particular place, you have not given us nearly enough information to even guess. What is the relationship between motor speed and displacement? Where do you do anything with the encoder? What is the format of the encoder output? How far does the motor move at various speed settings during one iteration of the outer loop? Where is the command to stop the motor when it gets to where you want it? 
    What error messages, if any, do you get when it stops?
    Lynn

  • Control a linear actuator

    I need to be able to control a linear actuator from labview.  Can someone show me an example of how I might do this?  Also, I have no idea how I should wire the actuall motor up so that it can go forwards and reverse.
    thanks

    Hi Eileen,
    I'm not sure how exactly the Firgelli actuator would be wired, but according to their datasheet it can be controlled by "simply applying a DC voltage to extend the actuator, and reversing the polarity to retract it."
    I would recommend starting with using the DAQ Assistant Express VI to output a DC voltage from the PCI-6024E. There is a tutorial on Getting Started with the DAQ Assistant that should be very helpful. You will want to check out the "Configuring DAQmx Express VI using the DAQ Assistant (Analog Output)" section to set up a DC voltage output. Then whatever Analog Output channel you have configured your DAQ task for can be wired to the voltage input of the actuator.
    I hope that information is helpful!
    Matt
    Product Owner - NI Community
    National Instruments

  • Simple control of a linear actuator through LabVIEW advice

    Hello all,
    Was in need of some quick guidance. I purchased a Firgelli PQ12 linear actuator along with their LAC control board. They provide a sample LabVIEW program which I was able to run properly. What I would like to do is create my own LavVIEW program for the motor, basically with two inputs; stroke length, time. I would like for the actuator's stroke to simply extend and retract for a desired time period. What is the best way to go about creating a LabVIEW program for a DC motor? Any tutorials available for this application? Advice? Any help is appreciated. 
    Thank you!
    Edit - Details on what is being used
    http://www.firgelli.com/Uploads/PQ12_datasheet.pdf
    http://www.firgelli.com/Uploads/LAC_Datasheet.pdf

    Are you looking to use just basic LabVIEW? Or do you have any toolkits or modules? Here are a few links to an example and tutorial regarding DC motor control in LabVIEW:
    -Open and Closed Loop DC Motor Control VI
    http://zone.ni.com/devzone/cda/epd/p/id/4953
    -Using the LabVIEW PID Control Toolkit with the LabVIEW Control Desgin and Simulation Module
    http://www.ni.com/white-paper/6931/en#toc1
    Daniel K | NI Applications Engineer | Certified LabVIEW Developer

  • Controlling the displacement of 2 linear actuator

    im using arduino to work the linear actuator 
    1) im not able to sync the 2 linear actuators togethers 
    2) stop at same distance with each other
    3) im using dual channel 10A driver for DC motor board 
    4) using labview to simulate this movment 
    pls check the file below and offer any suggestion in doing so.
    Attachments:
    woirking linear actuator.vi ‏26 KB

    Equal Height CSS Columns ~
    http://alt-web.com/Articles/Equal-Height-CSS-Columns.shtml
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb

  • VI for a stepper motor (linear actuator)

    Hi everybody,
    I have to controll a linear actuator (DRL28PB1G-03D, Compact Linear Actuator) so that it moves forward and backward. I have a NI PCI-7342.
    Please, Can you suggest me any examples or similar VIs?
    Thanks

    I was originally interested in your post because I am using stepper motors as well.  But anyways, I looked up your motor serial  number on google.  You should really read the pdfs stating how to install it and use it so you don't break anything.  The pdfs help a lot.  http://www.orientalmotor.com/products/pdfs/opmanuals/HP-1420-5E.pdf is the link to the operation manual I found, it SHOULD be the correct one.  But, I will also include the original link where I found the PDF:  http://catalog.orientalmotor.com/item/all-categories/gories-drl-series-compact-linear-actuators-lega... 
    Lester  

  • Tuning an optical encoder with a linear actuator

    Hello everyone!
    I am trying to get an optical encoder (5 lead single ended, incorperated into an Ultramotion D2 series linear actuator) to read the position of the linear actuator's position to 4 decimal figures precision (0.0001), and the DAQ I am using is NI cDAQ 9121 with 2 channels. I decided to use the 65 mV configuration. The encoder has ground, channels A and B, index and 5V leads, of which I have omitted using the index and channel B. Channel A is connected to the AI+. The linear actuator has a scaling of 20,000 steps per revolution and a movement of 4mm per revolution (point to point configuration of the stepper motor drive ST5-S, by Applied Motion). 
    I am not sure if the above configuration is suitable, but I am limited to the current equipment. I have coded the program using LabVIEW 2014 and, while it seems to give a good estimation of the displacement to the nearest 1 mm,  it is not recording the fractions and counts anything that is 1mm or less as simply 1.
    My question is actually threefolds:
    1) How can I tune the encoder to read the exact measurement to the nearest 0.0001 accuracy?
    2) Am I using an appropriate configuration for the leads?
    3) If the problem is not one of the above, could it be something concerning the DAQ software settings and/or the code itself?
    Thanks for your advice in advance!

    Hey kmhijazi,
    Here I share the most general documentation about using encoders with DAQ devices:
    Using Quadrature Encoders with E Series DAQ Boards
    http://www.ni.com/tutorial/4623/en/
    Then, here’s a second resource where you can find more details that you can adjust to improve the measurement (i.e the Decoding type, which will however depend on your encoder specifically):
    Encoder Measurements: How-To Guide
    http://www.ni.com/tutorial/7109/en/
    And, here you will find how to create a test task in NI MAX to try changing these parameters and test if these improve your accuracy.
    Connecting Quadrature Encoders to a DAQ Device
    http://www.ni.com/getting-started/set-up-hardware/data-acquisition/quadrature-encoders
    I hope this can help.
    Regards,
    >>Daniel C.

  • I am looking for a lab view schematic for hooking up a high-power motor driver to a linear actuator with feedback

    I need some help coding in labview 2012. I am hooking up a Pololu High-Power Motor Driver 18v25 CS to a Concentric LACT12P-12V-5 Linear Actuator with Feedback: 12" Stroke, 12V, 1.7"/s.  Thanks!

    Hi James,
    How are you planning to hook up your motor driver with PC? Do you have some DAQ device or hardware target to send TTL/PWM signals to driver?
    Regards.

  • Linear actuator, motor controller and labview. Establishing connection.

    Overiew:
    I have a 12VDC linear actuator (potentiometer built in) connected to power and Jrk 21v3 USB Motor Controller with Feedback (http://www.pololu.com/catalog/product/1392). The USB motor controller connects to the computer through USB, actuator's feedback wires connect to the motor controller.
    Problem:
    Establishing connection between the motor controller and labview.
    What I have done so far:
    I installed drivers to the motor controller and windows detects it. NI MAX detects my motor controller (pic attached), but for some reason, when i try to access it through daq assistant in labview it doesnt see it. I also tried accessing it through VISA with no results..
    Help will be appreciated.
    Thanks
    Peter
    Solved!
    Go to Solution.
    Attachments:
    problem.jpg ‏124 KB

    You have a few things you need to look into:
    When you installed the software, did it install a USB > Virtual Com Port dll such as FTDIchip or similar? If so, when you hook up your device, it'll reveal itself as a normal (new) Com Port in Device Manager. You then need to try to talk to that com port.
    If you are trying to use the native USB on the board (as MAX has detected for you), then you'll need to use the .NET framework code provided by the manufacturer (probably written in C#), and make your own Constructors in LabVIEW. If you've never done this, it isn't trivial.
    I would call the manufacturer and just tell them what you are trying to do. They've probably dealt with LabVIEW before, and may have an example to get you started.
    edit: For fun, I followed the link you provided (which doesn't really work). I searched their site for "LabVIEW", and indeed got several hits. This one thing I downloaded (can't resist looking at code) was a gigantic turd ball. However, it did appear to use a normal Com port.
    Richard

  • Stepper Motor with Linear Stage (Position Control and Data Acquisition)

    Hey All,
    So.. I've attached a stepper motor to a linear stage and so far it's working pretty well.  Using a stepper motor driver from Pololu, I've simplified the control of the motor by just using output pulses from the counter output of a PXI-6143.  I've tested the motor using the Pulse Train examples in LabVIEW and all is working well.  
    My goal now is to allow the user to collect data from a pressure sensor, attached to the linear stage, every X number of steps.  From what I can tell so far, and please correct me if I'm wrong, the motor step movement is synchronised with the pulse train input.  That is to say, if I give the motor a 200 step pulse train, the pulse train ouput is completed at the exact time the motor has moved 200 steps.  From this, I've created a VI that moves the motor X steps, aquires the data point, and then repeats this process for the required amount of data points.  The problem with this is that the motor movement is not continuous; it stops for a split second to take the data point.
    How can I have labview ouput a pulse train of say 1000 steps and record a data point every 50 steps?
    Two ideas that came to mind were:
    1. Use the counter input port on the card to count the pulses being sent to the motor.  
    2. Use an encoder connected to the motor shaft.
    I wanted to stay away from theses ideas though since they require resources from the DAQ card.  
    Thanks,
    Ryan

    Hi Ryan,
    Just to cover all the bases, what version of LabVIEW are you using and can you attach your VI? Initially your ideas sound like they should work, do you expect to be nearly maxing out the DAQ?
    Thank you,
    Deborah Y.
    LabVIEW Real-Time Product Marketing Manager
    Certified LabVIEW Architect
    National Instruments

  • I am looking for a programmable linear actuator which can travel 18in in vertical direction.If some one can suggest me with apprapriate model it wil be a very helpful for me.Thank you

    We want to put the actuator in a vessel with diameter of 9''and fix it to the flat bottom vertically.
    Also the actuator should be in the center axis of the vessel. The active end of the actuator will be
    connected to our sample holder which we can design according to the actuator.
    Now we want to control it to realize reciprocating motion.
    For example:
    1) go up to15'' and hold 30 min;
    2) go down to 5'' and hold 15min;
    3) repeat 1) and 2) 50 times.
    Vessel Pressure: 150psi; Temperature: 50-70℃(estimate)
    Attachments:
    Actuator application.pdf ‏64 KB

    Hey Li,
    Check this site Stage Advisor, for a list of motors that will travel at least 15'' and that are compatible with our Motion Controllers.
    You can always just go to the Advisors for Motion to change the specs you want to look for. 
    Hope this helps!
    National Instruments
    Applications Engineer

Maybe you are looking for

  • SAP_COLLECTOR_FOR_PERFMONITOR getting cancelled

    Dear All, The job SAP_COLLECTOR_FOR_PERFMONITOR is getting cancelled daily at 7.00 AM. It is scheduled to run hourly. All other times it finishes succesfully. But only 1 time at 7 it gets cancelled. The job log is :- Date       Time     Message text 

  • Error while exporting BIBean report

    I am getting following error while exporting bibean report. Can anyone tell me what is the issue? Mon Jun 20 18:18:09 IST 2005 PROBLEM: In oracle.dss.persistence.administration.Export::StorageManager InitializeStorageManager(String classname, Hashtab

  • Error 1905.module c:\program\files\quicktime\QTOcontrol.dll

    I'm trying to install itunes version 7. I keep getting this message. error 1905.module c:\program\files\quicktime\QTOcontrol.dll failed to unregister HRESULT -2147220472. Contact your support personnel. Anyone know how to fix this?   Windows XP   del

  • Can't install updates, wrong Apple ID

    I have an iMac that was set up by an IT person who is no longer available, but I just discovered that this person's email address / Apple ID is tied to this computer. I have looked around and have found some topics on similar issues that lead me to w

  • POP UP ACTION

    Hi, I created one popup with  buttons SUBMIT and NO. In my code I am calliing popup on some condition, its going to the popup code, but without opening immediatly popup, other code is executing and after that popup is openiing. I need to call action