DC motor - constant speed

I 'm a light user of Labview and need some assistance.
My objective is to make the dc motor retain constant speed even when a load is applied.
The tools I have to acquire data with are:
NI USB-6211
Labview 8.2
Optical Encoder - 1000 pulses per revolution
My main concern is writing the PWM VI to do this.
My first guess is to set use a DAQ assistance to acquire a signal as a counter input from the encoder.
Not really sure what to do with that because I am kinda lost from there.
How would I use that info to adjust the PWM of the output signal?
All help is appreciated. 

Hi jgarcia,
this doesn't work at all. Your application requires closed loop control. This means you need deterministic behavior (= stable timing of the control loop) for single point I/O operations. With your setup this is not possible due to the fact, that both the USB and Windows introduce a lot of jitter (using a PCI DAQ device would make things a bit better, but you still couldn't get reliable control behavior on a Windows operating system). For a control system reliable timing is at least as important as proper tuning of the control parameters.
For motion control tasks it's much better to use a device like the PCI-7342, that runs all control operations in a realtime environment onboard. Other options include using a realtime operating system and PCI or PXI DAQ hardware or a cRIO-System with drive interface modules. For a single-axis system, the PCI-7342 is probably the most cost-efficient solution.
Sorry for the negative answer, but with your current hard- and software setup you will could easily waste a lot of time on a poor solution.
Kind regards,
Jochen Klier
National Instruments

Similar Messages

  • My motor runs at a constant speed

    i have a
    PCI 7342 controller.
    MID 7654/7652 servo motor drive
    motion control software
    motion assistant 1.1.
    I have setup the hardware connection.
    When I try to run the motor using the motion assistant the motor runs at a constant speed irrespective of the velocity that I specify in the motion assistant.My motor velocity is 7 voltage per 1000RPM.The motor keeps running at a constant voltage of 25volts.I donot have a encoder but I have a tachometer.
    pls help.

    Hello Sumitha,
    In order to use servo motors with National Instruments motion controllers, you must have some form of position feedback. This is required due to the PID control loop implemented on the controller. Without some kind of control loop, there is no way to guarantee that the motor will get to the commanded position following the specified trajectory. Servo Tune is a tool used to adjust the PID parameters, which in turn control the stability of your system.
    If you do not have any way of adding position feedback (such as a quadrature encoder), you will not be able to make full use of your motion controller. It is possible to simply read a voltage in and output a specified voltage from the motion controller. However, you lose all hardware timed control and all the benefits of a motion controller. If you are interested in that option, a DAQ board might work better for you. Otherwise, I highly recommend looking into adding a quadrature encoder to your system.
    Best Regards,
    Jesse D.
    Applications Engineering
    National Instruments

  • Constant speed for an unbalanced load

    I have a machine that uses a Dart 253g to drive a dc motor. The arm if an offset arm that rotates.. We have tried to balance the arm the best we could but the load is still off. What happens is as the heavier part of the arm is on the upswing of the motion, the drive cranks up the torque and pushes it up and over the peak of the rotation. The problem is, on the way back down, the load takes off and "freewheels' around until the upswing starts again. Would a constant speed drive help eliminate this? This machine has no feedback on the arm 
    Thanks in advance 
    Ken 

    You will need a regen or 4-quadrant drive to provide dynamic braking.  A tachometer will always help with speed regulation(only on the upswing with your current drive, though).

  • Constant Speed + Timing not working

    Hi,
    I have two clips that are in the same group. I've created a motion path whereas the clips are pulled from left to right across the canvas. The 2 clips are a panormic still image that has been stiched in PS.
    I've set the timing speed to "Constant Speed" but when I replay the clip the speed is not constant and it seems like the motion "fades" in at the start and "fades" out at the end.
    Thanks in advance.

    hi,
    it sounds like there is an amount of easing in and out of the motion path. two things you can do, navigate to the keyframes window, select the keyframes and set the interpolation to linear. Or dont use a motion path and simply apply a Throw behaviour, or set your own keyframes.
    hth
    adam

  • Ken Burns Effect - Variable vs. Constant Speed

    On a test slideshow I worked on in iPhoto, I noticed that the Ken Burns effect uses a "variable" motion. Meaning if I'm utilizing the zoom effect, it'll start out slow, then speed up, then slow down again for each photo. However, I just want a constant speed zoom for each photo.
    Is there away to have the Ken Burns effect zoom (and/or pan) with a constant speed?

    100 brownie points to Terrabay! LOL
    For those that don't know how Terrabay arrived at his solution: iMovie DOES let you dictate how long your transition (for ANY transition) is when you put it into your show. When you press editing and go into transitions drag the transition you want into your time line - you can adjust how long you want it to be and which direction you want it to go before you put it in your show, and if youve already put it in but want to lengthen/shorten it, just click on your transition in the time line, make the change and press UPDATE. Simple.

  • Slow motion (constant speed) rendering problem. ATTENTION PROs!

    I have tried almost everything to try and fix my problem and now I am going insane!
    I am editing a short promo featuring constant speed adjustments and video filters. When I render the video seems to drop frames and jutter. Why is this when i have only reduced the speed of the clips by 50% or 75% ? ?
    I have put it through compressor several times and printed the video onto DVD to see if the problem lies within any other program, but i believe my problem is with final Cut HD.
    The footage is HDV interlaced. I have made sure the frame blending options are checked although this makes no difference and have rendered it I dont know how many time.
    Do I need to bring the original rushes out of the bin and adjust the speed again from scratch...essentially start again?
    HELP! I am going mad!
    Mac Book Pro (2ghz intel / 2gb memory)   Mac OS X (10.4.9)   Final Cut Studio HD

    I have done it!
    I firstly made a quicktime movie, using current settings, to create a single HDV clip. I then created a new sequence, titled HDV, and opened up the sequence settings. Going into the video processing tab I changed field dominance to 'upper odd' and motion to 'best'. I then dropped the new HDV clip into the timeline. At this point I sent this new clip to Compressor and chose the 'best quality 90min 16/9', MPEG 2 two pass + Dolby. EXPORT....HAPPY DAYS! The results are great. Perhaps I could make it better by stopping the footage down to SD first?

  • Constant speed wed site

    Hi
    Is there a web site that will send info at speeds that you can pick and be sent at a constant speed so you can check what speed your connection is running at and if it is going fast and slow?
    George

    Hi Golden Shoes
    when I use speedtest dose it show me the speed of my connection from my Mac, or dose it shoe the speed of the internet connection. In other words my ISP gives me 500KB/s but what if the speedtest returns a 1.2G/s?
    George

  • Motor Constant

    Can some help me how to measure motor constant?
    KowdTek
    LabVIEW 2009
    One Step At A Time, Maybe Two...

    The method for measuring the torque depends on the type of the motor. E. g. for a DC motor torque is proportional to the current that drives the motor so measuring the current is virtually the same as measuring the torque. For stepper motors it's not that easy as the current is driven through multpile coils and the general behavior is different. So for this type of motor a torque measurement device is recommended.
    There are various types of torque sensors available (inductive torque sensors, eddy current torque sensors,...).
    Jochen

  • Keeping constant speed with variable voltage using Phidgets

    I have 4 motors, 3 of which are being monitored using encoders.  What I want to be done is have the user input certain variables and then have those variables control the process.  My main program is the first attachment.  My control is the second attachment.  I call the phidget that I'm using to power my motors, Motor Controller, and it has a 0-10VDC range.  I'm using signal isolators that act as the pots for DC drive boxes that then control 90VDC motors.
    The problem I'm having is I'm not sure how to control the voltage properly.  After the user inputs the variables, I then want the signal isolators to ramp up the voltage to get the motors to drive at the user input run speed.  All the speeds won't be exactly the same, which is why I use the "Equal-Greater-Less" VI 4 different times. (ie. The desired run speed might be 15 ft/min, but the chopper speed might need to be faster or slower depending on application.)  Once the voltage is ramped up enough to keep the motors at the desired levels, I want it to slighly adjust, if needed, to make sure that the encoders are showing the same measured speed as the desired speeds.  Currently the way I have it now, I have either 0 V or 10 V outputs.  I don't want the voltages to be extremes.  If the puller encoder is showing that the the measured speed is 14.5 and I want it to be at 15, I don't want 10V to be output to that signal isolator.  Basically, my question is, how can I have a variable voltage control for the code to try to keep the measured speed at the desired speed.
    *I have three attachments for reference, but my main question is in the Equal-Great-Less Vi.  Also, I know there are other little things that still need to be done.  I know that my program won't run at this time.  The Event structure will also be removed at the end.  I have it in there now so I can manually control each motor by itself for testing.
    Attachments:
    Pre-preg Machine Program.vi ‏95 KB
    Equal-Greater-Less.vi ‏31 KB
    EncoderEvents.vi ‏20 KB

    Hi ggpoly,
    on your "Equal Great Less"-VI:
    - It's RubeGoldberg to convert boolean conditions to enums just to select one of two cases…
    - By moving index and output outside the inner case structure you don't need local variables…
    - Comparing floats for equality is very dangerous as has been explained a lot of times before…
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Motion 5: Setting constant speed on position change

    Hi there,
    Can anyone shed some light on how to get rid of the smooth movement setting when moving an object from A to B. Motion appears to accelerate and decelerate the object to make it look smoother. However, I want to set an object to move at the set speed straight away, not accelerate up to it.
    Thanks in advance

    This is for Mo4, not Mo5, but I assume the same thing holds. The default keyfame setting is Bezier. If you right click on the position keyframe and select linear, it should do what you want.
    Russ

  • WRT54G v1.0 Constant Speed Fluctuation

    well, we've had the router for about 3 years now with an occasional problem here and there. up until a few weeks ago my computer would always have a speed of 54mbps and excellent signal strength. we currently have 3 computers running off the router, 2 wireless and one wired. the wired comp runs fine, the other wireless comp runs at a consistent 54mbps. my comp on the other hand fluctuates anywhere from 18 - 54mbps. the speed is extremely unstable and is always changing. my signal strength is always excellent, ive updated my firmware, reset my router and modem, tried channels 1,6 and 11, and nothing seems to work. im also using the WMP54G Wireless-G PCI Network Adapter and the driver is up to date. its a major pain when im gaming, every few seconds i get a "connection interrupted" message, and i experience extreme lag. if anyone can help me out id really appreciate it.

    Hi… logon to router’s setup page, wireless >> advanced wireless settings >> reduce beacon interval to 50, fragmentation and RTS Threshold to 2304 and save the settings…go to “Application & Gaming’s” >> QoS >> enable WMM support, check whether it makes any difference…

  • How to setup auto paddle & constant speed for ball

    I wanted to setup an automatic paddle so that this game will works as a one-player game. I have 3 files here. Ball.java, Play.java and pong.java.
    My code below doesn't seem to get the paddle moving at all. How can I do so? What's my mistake or how should I do it correctly?
    Pls help....:(
    Also the ball runs faster and faster after each volley and the ball deflects at a smaller x-axis angle after hitting the rightWall & leftWall. How can I get a constant velocity as well as a more balance deflection??
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Toolkit;
    import java.awt.event.ItemEvent;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import java.awt.geom.Rectangle2D;
    import javax.swing.JButton;
    import javax.swing.Timer;
    import javax.swing.JPanel;
    import java.awt.*;
    import java.awt.event.*;
    class Play extends JPanel implements ActionListener, MouseMotionListener, ItemListener {
         private double maxX,maxY,y; // dimensions of the surface of play
         private double heightP,widthP,semiWidthP; // dimensions of the paddle
         double thickness = 10; // thickness of the walls, ceiling and floor
         private Toolkit tk;
         private Ball ball; // graphic objects
         private Rectangle2D user_paddle,computer_paddle, leftWall, rightWall, exitA, exitB;
         private Timer timer; // objects of interaction
         private JButton button, reset;
         private int countA, countB;
         int computer ;
         int user;
         TextField userscore = new TextField(4);
         TextField compscore = new TextField(4);
         Thread t = null;
         Play(Ball ball,Timer timer,JButton button, JButton reset) {
              this.ball=ball;
              this.timer=timer;
              this.button=button;
              this.reset=reset;
              userscore.setEditable(false);
              compscore.setEditable(false);
              // dimensions of the applet
              this.maxX = getSize().width;
              this.maxY = getSize().height;
              tk = getToolkit();
              // paddle
              semiWidthP = ball.getDiametre()/2;
              widthP=semiWidthP*2;
              heightP = 50;
              user_paddle = new Rectangle2D.Double((maxX-thickness-heightP)*0.05,(maxY)/4,
              semiWidthP,heightP);
              computer_paddle = new Rectangle2D.Double((maxX-thickness-heightP)*1.03,(maxY)/4,
              semiWidthP,heightP);
              // borders
              exitA = new Rectangle2D.Double(0,0,thickness,maxY);
              exitB = new Rectangle2D.Double(maxX-thickness,0,thickness,maxY);
              rightWall = new Rectangle2D.Double(0,0,maxX,thickness);
              leftWall = new Rectangle2D.Double(0,maxY-thickness,maxX,thickness);
              // to indicate that the movements of the mouse will be listened to
              addMouseMotionListener(this);
         }//end of Play
         // to adjust the graphic objects if the play changed dimension
         public void updateWall() {
              double maxX=getSize().width, maxY=getSize().height;
              if(this.maxX!=maxX ||this.maxY!=maxY){
                   this.maxX=maxX;
                   this.maxY=maxY;
                   user_paddle.setFrame((maxX-thickness-heightP)*0.05,(maxY)/4,semiWidthP,heightP);
                   //computer_paddle.setFrame((maxX-thickness-heightP)*1.03,(maxY)/4,semiWidthP,heightP);
                   exitA.setFrame(0,0,thickness,maxY);
                   exitB.setFrame(maxX-thickness,0,thickness,maxY);
                   rightWall.setFrame(0,0,maxX,thickness);
                   leftWall.setFrame(0,maxY-thickness,maxX,thickness);
         }//end of UpdateWall
         // posting of the contents of the screen
         public void paintComponent (Graphics g) {
              super.paintComponent(g);
              Graphics2D g2D = (Graphics2D)g;
              updateWall();
              paintPad(y);
              //g2D.drawString(ball.getX()+","+ball.getY(),10,15);
              g2D.drawString("Player A: "+ countA,10,20);// drawString update scores
              g2D.drawString("Player B: "+countB,500,20);
              g2D.fill(exitA); g2D.fill(exitB);
              g2D.fill(rightWall);
              g2D.fill(leftWall);
              g2D.setColor(Color.blue);
              ball.toPost(g2D);
              g2D.setColor(Color.red);
              g2D.fill(user_paddle);
              //g2D.fill(computer_paddle);
              g2D.setColor(Color.gray);
              g2D.drawLine(300,0,300,400);
              while( t!=null) {
                   try     {
                        t.sleep(10);
                   catch(InterruptedException e) {}
         }//end of paintComponent
         private void bip(){
              tk.beep();
         public void itemStateChanged(ItemEvent ev) {
                   Object sc = ev.getSource();
                   boolean on =ev.getStateChange()== ItemEvent.SELECTED;
         //treatment of the Action Vents of Timer
         public void actionPerformed(ActionEvent e) {
              double dx = ball.getDx();
              double dy = ball.getDy();
              // to move the ball//
              ball.toGoA(ball.getX()+ball.getDx(),ball.getY()+ball.getDy());
              // checking of a change of direction (with acceleration...)
              if(ball.intersects(leftWall) || ball.intersects(rightWall)){ // striking with dimensions
                   ball.setDy(dy>0 ? -(++dy) : -(--dy));
                   bip();
              else if((ball.intersects(user_paddle)) || (ball.intersects(computer_paddle))){
                   ball.setDx(dx>0 ? -(++dx) : -(--dx));
                   bip();
              else if((ball.intersects(leftWall)||ball.intersects(user_paddle)) || (ball.intersects(leftWall)||ball.intersects(computer_paddle))){
                   ball.setDx(dx>0 ? -(++dx) : -(--dx));
                   bip();
              else if((ball.intersects(rightWall)||ball.intersects(user_paddle))||(ball.intersects(rightWall)||ball.intersects(computer_paddle))){
                   ball.setDx(dx>0 ? -(++dx) : -(--dx));
                   bip();
              else if(ball.intersects(exitA)){
                   ball.toHide();
                   button.setText("Start");
                   timer.stop();
                   ++user;
                   paintC(computer, user);
                   //++countB;
              else if(ball.intersects(exitB)){
                   ball.toHide();
                   button.setText("Start");
                   timer.stop();
                   ++computer;
                   paintC(computer, user);
                   //++countA;
              paintPad(dy);
              repaint();
         }//end of actionPerformed
         public void setTextFields(TextField c1, TextField c2) {
              compscore=c1;
              userscore=c2;
         public void paintC(int computer, int user) {
              compscore.setText( " " + computer );
              userscore.setText( " " + user );
              compscore.repaint();
              userscore.repaint();
         public void paintPad(double y){
              computer_paddle.setFrame((maxX-thickness-heightP)*1.03,y-semiWidthP,semiWidthP,heightP);
              while( t!=null) {
                   try     {
                   t.sleep(10);
                   catch(InterruptedException e) {}
              //computer_paddle.setFrame(computer_paddle.getX(),dy-semiWidthP,semiWidthP,heightP);
              repaint();
         // draft displacements of mouse
         public void mouseDragged(MouseEvent ev){// ignore
         public void mouseMoved(MouseEvent ev){
         // replace X by making sure that one remains in the terminals of the applet
              double dy = ball.getDy();
              double px = Math.min(maxY-thickness,
              Math.max(ev.getY(),semiWidthP+thickness));
              user_paddle.setFrame(user_paddle.getX(),px-semiWidthP,semiWidthP,heightP);
              repaint();
    }

    Hi,
    For creating the deliveries automatically you can use the T.code VL04 in the b/g or run the program RV50SBT1 in the b/g every 2 hours. This can be done using T.code SM36, this is where you set up the job. Here you can specify the details and the timing.
    For creating the TO's for the delivery, either you do it through the config setting or run a similar job in the b/g and TO's should be created automatically.
    For some reason if you find deliveries are not created you may use V.22 and give the Log number(which you will get from the job log) and see the reasons for delivery not being created.
    hope this helps.

  • No constant speed when backing up to TC via Ethernet or wireless

    Hi,
    I finally gave in and made an ethernet connection between tc and mbp. I disabled the airport on my mbp and I started time machine for the initial 110 GB backup (parallels vm is excluded). Whar I have expected from this connection is a nice steady flow of data. Instead my activity monitor shows different transfer speeds as low as 500 KB/s up to 12.3 MB/s. But the graph is not a line with some small bumps. It looks more like a printout of a heart beat monitor. Is there anything I can do?
    I have had the same problem when I tried to do that job wireless, it was just another scale from somewhere around 10 KB/S up to 6.1 MB/s. How comes?

    Sounds like you are connecting the Mac and the Time Capsule to an existing network. Have you tried connecting the Mac via Ethernet to one of the LAN ports (not the WAN port) of the Time Capsule? If that works, then chances are that your existing switch is problematic. Perhaps your existing switch doesn't support gigabit?

  • Constant speed dropping

    Okay so British telacom are saying my broadband is fine and running fine dispate BB speed dropping i was getting 6-7 meg now im getting 3meg which is a totle joke 
    heres the BB stats below
    ADSL Line Status
    Connection Information
    Line state:
    Connected
    Connection time:
    0 days, 01:43:44
    Downstream:
    3.336 Mbps
    Upstream:
    1016 Kbps
    ADSL Settings
    VPI/VCI:
    0/38
    Type:
    PPPoA
    Modulation:
    G.992.3 Annex A
    Latency type:
    Fast
    Noise margin (Down/Up):
    9.0 dB / 6.4 dB
    Line attenuation (Down/Up):
    44.4 dB / 27.2 dB
    Output power (Down/Up):
    18.7 dBm / 12.4 dBm
    FEC Events (Down/Up):
    0 / 0
    CRC Events (Down/Up):
    481 / 66
    Loss of Framing (Local/Remote):
    0 / 0
    Loss of Signal (Local/Remote):
    0 / 0
    Loss of Power (Local/Remote):
    0 / 0
    HEC Events (Down/Up):
    849 / 88
    Error Seconds (Local/Remote):
    4493 / 21

    FAQ
    Test1 comprises of two tests
    1. Best Effort Test:  -provides background information.
    Download  Speed
    4642 Kbps
    0 Kbps
    7150 Kbps
    Max Achievable Speed
     Download speedachieved during the test was - 4642 Kbps
     For your connection, the acceptable range of speeds is 2000-7150 Kbps.
     Additional Information:
     Your DSL Connection Rate :5735 Kbps(DOWN-STREAM), 999 Kbps(UP-STREAM)
     IP Profile for your line is - 5059 Kbps
    2. Upstream Test:  -provides background information.
    Upload Speed
    828 Kbps
    0 Kbps
    999 Kbps
    Max Achievable Speed
    >Upload speed achieved during the test was - 828 Kbps
     Additional Information:
     Upstream Rate IP profile on your line is - 999 Kbps

  • Constant speed motion effect

    I am trying to put a 200% motion effect on a clip and I get a message that says A CONFLICT OCCURED DURING A TRIM OPERATION Anyone know why I might be getting this message?
    Thanks
    black book 13   Mac OS X (10.4.9)   2GHz 1GB

    The usual explanation is your expanded clip interferes with other media in your timeline.
    usual solutions: work in an isolated sequence and nest it back into your main sequence or work on your time alteration at the end of your sequence and then copy and paste.
    You can search for the error message here on the forum and you will plenty of threads.
    bogiesan

Maybe you are looking for

  • Ipod not working on ITunes :S

    My Ipod Touch is fairly new.. but it has been connected to Itunes many times. Today, i connected my Ipod and it came up with the message: "Iphone detected, but has not been identified. Please disconect, reconnect and try again" 1) Its a Ipod Touch no

  • When I attempt to import a CD the CD does not show up in itunes

    I put a CD into my drive and the CD does not show up in itunes. As a matter of fact there are no import cd buttons in my itunes or in my file tabs. At first it was saying it was locating it but now nothing happens. I did get a new computer a month ag

  • I can't find the line tool.  Where is it?

    I am new to Photoshop CS6.  I was using CS2. I can't seem to find the line tool.  Can someone please tell me how to get the line tool? Thanks, Gary

  • Suite 3.4.49 and music library

    Hi, moved to v. 3.4.49. After that Suite doesn't find any music added in my 5230 before this update; if I add something after update no probs.

  • Why has my CS2 Creative Suite suddenly not working?

    I have been using my Adobe Creative Suite CS2 on this computer for a couple of years now, but I recently got a message stating a serious error had occurred and I would need to reinstall. I have tried to reinstall twice, but still get the same message