Motor speed measuring algarithm

Hello,
I want to have an accurate speed measuring for an induction motor whose max speed is 3000rpm, is there any related paper on this area describing different speed measuring algarithm using NI labview?
thanks for your help!

Billstrong,
the most accurate way to measure a motor's velocity is using a data acquistion board that provides a high-performance counter, like an M-Series board or an NI 660x  counter/timer board in combination with a quadrature encoder.
There are several methods to determine your motor's speed:
Buffered Period Measurement
This method allows you to determine the period of each cycle of either phase A or B of your encoder signal with a resolution of 12.5 ns. Here is some more detailed information.The drawbackof this method is the fact, that you don't get information about direction changes of the motor. The benefit is the very high timing resolution.
Buffered Position Measurement
You can use a counter/timer to generate a clock signal, that latches position readings of a second counter/timer to the PCs memory. This method is less accurate than the first one, as it requires several position changes between each rising edge of the clock signal, but on the other hand you can detect direction changes and the amount of data generated is much lower than with the first method. Here is some more background information.
Please refer also to the shipping examples in LabVIEW that install with the NI-DAQmx driver.
I hope this helps,
Jochen Klier
National Instruments

Similar Messages

  • Speed measurement with PCI6601

    I am building an application for measuring two linear encoders ( micrometers ) and one quadrature encoder for measuring speed of one motor.
    At the moment I can read the two linear encoders with the "position measurement" option for the PCI6601.
    But I have trouble to calculate in an easy way the speed of the rotating motor in RPM.
    Could anyone have any easy solution for doing this?
    Thanks
    Massimo Visintin

    Massimo,
    A few notes in no particular order:
    1. Re: future use of last counter for another speed measurement. With the 6601, you only have 1 DMA channel available for buffered measurements. A second buffered measurement would have to be manually configured to use interrupts.
    A buffered measurement will give you much better precision, but you may be better off starting with a simpler unbuffered approach when getting started.
    2. How accurately do you need to measure speed? And how often do you need a new measurement? It sounds like you're reasonably happy with a simple speed estimate made about once per second.
    3. Have you considered making a separate loop for the speed measurement? You could simply read the count once per second (unbuffered) and put it into a shift register. Then estimate speed as delta counts divided by delta time. A small enhancement would be to also store the time from 'Tick Count (msec)' on each loop, and use a measured delta time rather than an assumed one in the calculation.
    Note that with this method, it's best to run unbuffered to avoid the lock-up problem you saw. It'll also be simpler to add your second speed-measurement counter task in the future.
    4. Again, there *are* solutions available involving precise buffered measurements. I recently posted a DAQmx-based example that includes an instant-response buffered read (toward the end of this thread.). But I'd recommend first getting a simpler approach to work, then coming back to the buffered measurements later when you're sure you need more precision.
    Good luck!
    -Kevin P.

  • Motor speed implementa​tion

    My objective is to create code that will change the motor speed based off of user input and conditions. I am confused on how to get the motor input in. I am still new to this labview. I attached a block diagram for this if someone could lead me in the right direction it would greatly appreciated. With a timer for how long for the program to run before updating( I get that part). But I dont understand how to get the comparison to work correctly. When I say comparison I mean comparing the speed the user enters versus the max an min temp. I was reading and I think I would have to loop around the area I looped in the block diagram picture. Any help would be great like I said.
    Solved!
    Go to Solution.
    Attachments:
    Motor.png ‏15 KB

    I'm not too familiar with myRio, but if you program it the same way you do a cRIO, you will have to check if a digital line changes, and you need some time interval to count the number of changes over. The way I have done it in the past is check if your DI changes (you can store your DI line value in a shift register and check if the current value is greater than the stored value to indicate a change from false to true). If this change happens, increment a count. Also, keep a timer, say, for 100 ms. When the timer expires, stick the count into a DMA FIFO to the RT, and then let the RT convert pulses/time to whatever units you need it in. Does that make sense?
    CLA, LabVIEW Versions 2010-2013

  • Multisim dc motor speed controller skematic

    Where would I find schematics for a brushless dc motor speed controller to put into a Multisim circuit schematic?

    Hi Mikki1295,
    If you go to place->component, select Electro_Mechanical in the drop-down box in Group, then in the Family select MACHIENES, find the one you want in the component menu on the right. Same way for choosing the controller. Hope that helps.
    Regards,
    Derek Z.
    National Instruments

  • DC Motor speed control

    Hi,
    I am trying to control the speed of a 36V 2.5Amp 3000 rpm max speed DC Motor using LabVIEW.
    I need someone to guide me what are the hardware required to do this.
    1) Which DAQ is most suited for controlling the DC motor ?
    2) Any other hardware required such as a controller, etc ?
    3) Any example programs for DC motor speed control ?
    4) Any circuit diagrams explaining the connections to be made.
    I wil be grateful if someone helps me with the above said things

    Hi Kabi, 
    A DAQ card will not be able to provide the power to the motor, you should be able to generate an analog control signal and pass it through an amplifier. If you are using a servo motor it should be possible, if the motor is a stepper motor you will need a drive that you can control with step and direction commands. 
    -N
    National Instruments
    Applications Engineer

  • BLDC Motor Speed from Controller

    In the tester I am building, I am having troubles acquiring a stable motor speed.  I need a stable speed so that I can control the motor speed to 1100 +/- 50 RPM.
    We have a compressor connected to a Dart 700BDC controller, and a cFP-CTR-502 counter input connected to one of the hall sensor inputs on the controller.  The counter is set up just to continually counting the number of pulses (counter overflow is handled within the test application).  The test application gets the counter value and timestamp from the Fieldpoint VI's approximately every 500 milliseconds. It compares these two items to the data from the previous iteration to generate an RPM.  I've attached a VI that has the routine that I am currently using.
    When I run the motor, I have RPM values that fluctuates beyond my 50 RPM window.  Do I need to tweak my routines to display a more stable reading?  Or is a different solution required?
    Attachments:
    Monitor Motor Speed.vi ‏13 KB

    Hi OlderJohn,
    The first you should try is lowering your sample time and perhaps even your proportional gain. Are you familiar with PID control. I recommend reading a great article on it here
    Joe Daily
    National Instruments
    Applications Engineer
    may the G be with you ....

  • How can I control a dc motor speed using an optical switch?

    I am trying to use LabVIEW to create a VI that controls the speed of a DC motor. The system needs to have an user set rpm and the DC motor needs to adjust the duty cycle to obtain the correct rpm dependant on the load. A disk with holes and an optical switch is being used to measure rpm.
    The current problem is that I cannot get the rpm based on the optical switch.
    Thanks for your help!
    Attachments:
    Speed reg.vi ‏183 KB

    The error for the samples to write does not appear after redoing the vi. Thanks. The controller seems to be working mostly.
    However, the issue with the Tone Measurement reading inaccurately at low frequencies still exist. Any ideas?
    I have attached the latest vi.
    Thanks again!
    Attachments:
    speed_reg_v2013-05-07.vi ‏183 KB

  • Motor speed in max

    I have a PCI-7356 motion card.
    I am running two identical servomotors at constant velocity in Measurement & Automation Explorer's 1D-D Interactive window to test them.  Axis 1 won't run any faster than 3400 RPM, but Axis 2 will.  I don't see any other parameters to adjust in MAX.
    What might be limiting the speed of Axis 1?

    I have done several ViX projects, and each time I say will never do another one.  The firmware is rather buggy.  Anyway, here are a few basic VI's.
    Attachments:
    ViX Write_Read.vi ‏19 KB
    ViX Read Com Port.vi ‏23 KB
    ViX Parse Message.vi ‏22 KB

  • Stepper Motor Speed Record

    Hi,
    I am controlling a Phidget stepper motor using the VI captured below which includes a loop. I simply wish to record the speed of the motor as it runs into a text file or similar.
    Currently i am trying to create an array and then output that as a file once the loop has stopped. This isn't giving me anything
    Unfortunately i have very little LabView knowledge... is there a simple and effective way i could do this?
    Any help would be much appreciated.

    Your description of your project was a little vague.  Also, no code/image was posted as was noted above.  And, you do not run stuff into a text file.  You store data in one.  What are you using to record this data?  Are you using a constant for the amount of iterations/samples you wish to take or is this going to be dependent on a User Control?
    Remember, code does exactly what you tell it.

  • Speed measure with DAQ and torque transducer

    Can anyone tell me how to convert the voltage i get from torque transducer, which can measure torque and velocity eather. I made a program with labview, but it gives me some voltage. I'd like program converts me that voltage to a velocity. 
    Thanks for answers.

    First of all, we need to deeply understand the signals we receive from the sensor.In my opinion, the information from the datasheet is not the most comprehensive
    Sensor requires  12V DC, 160mA excitation.
    Torque: 0V-10V, -10V-0V  depending on direction - should be connected to AI
    Speed 60 pulses/rev - should be connected to counter 0
    Angle 360 pulses/rev (two signals- angular encoder) - should be connected to counter 1
    What I would recommend is you started with LV examples for:
    Hardware Input and Output -> DAQmx 
    Torque - Analog measurements  and then scale the signal to result in strains   
    Speed - Counter Measurements -> Digital Frequency
    Angle  - Counter Measurements -> Position
    Please find the proper example, scale them properly, make each work individually and in the end, integrate the three examples into one single application,
    Mircea

  • Step motor speed vary from -40%~+40%

           a flexmotion-6c and a 7344 plugged in the same computer, now with the step output to drive the stepper motors, the 5th axis of flexmotion-6c and all the axises of 7344 have this problem!  In the max, i have appointed the speed, but the velocity shown in the max will change ceaselessly while the speed of the motor is really changing in such a big scope.
          All the motors are open-loop. the firmware is 5.0. In comparation, another two 7344 are pluged in the second pc, all the axises work very well with all the same parameter settings, except the 6.0 firmware.
         I have monitored the step output of the axes with a oscillograph.  The pulse of axis with problem have the variable frequency, while the right ones have the fixed frequency.
          So, maybe where the problem is?
          Thanks!

    Hi and welcome to the forum, Could you run a speedtest here: (ADSL/FTTC)http://www.speedtester.bt.com and posts results please, so i can take a look at your profiles.
    If you want to say thanks for a helpful answer, please click on the Ratings star on the left-hand side If the the reply answers your question then please mark as ’Mark as Accepted Solution

  • Simulating Electronic (Analog) Motor Speed Control

    Is there a way of simulating (Analog) Electronic Speed Control in Multisim 10?  The system involves a permanent magnet DC motor with quadrature encoder, a frequency-to-voltage converter, operational amplifier circuits, and a MOSFET driver.  The parts that I am wondering about are the motor and encoder.

    Multisim has a motor but I don't see a quadrature encoder. The only problem I see is with the quadrature encoder as it partially works in  the mechanical area on a rotating shaft. There are no moving parts in Multisim or any other spice software that I know of. That would have to be simulated by creating a circuit in the electrical area that would mimic the mechanical function of the quadrature encoder. This could be a huge task and I wouldn't even begin to know how to accomplish that.
    Multisim's motor has a pin on it that electrically represents the RPM as a voltage that is read on a multimeter. I have found that it doesn't always work as expected in all applications. You would just have to try it and see it it works for you by adjusting it to your motor specifications.
    This is all I can tell you and if someone has an idea I would hope they would post it for you
    Kittmaster's Component Database
    http://ni.kittmaster.com
    Have a Nice Day

  • URGENT!!! motor speed control

    Dear all,
    first let me tell you my system detail:
    1. Hacker A100-8 brushless DC motor
    2. Master spin 170 pro opto (speed controller)
    3. power supply
    4. NI DAQ USB-6353
    I have already run this motor by using transmitter and remot control, like RC planes fly. Now I would ilke to run this motor from computer. let me give you my setup:
    PC > DAQ > speed controller > motor
                                       ^
                            power supply 
    now I would like to use either matlab/simulink or labview, to control or run my motor in real time using generating PWM signal. can anybody help me out? Thanks in advance.

    Since you are wanting to use DAQmx and not any of the Motion software that is made for LabVIEW the examples will be very limited. I suggest playing around with the PWM and Digital Out functions to get an understanding of how they operate.
    http://www.ni.com/tutorial/2991/en/
    You can also take a look at this example below which uses DAQmx to control a stepper motor. This is a little different than what your DC motor control setup will look like but it should be good for reference if you understand how stepper motors work.
    https://decibel.ni.com/content/docs/DOC-6385
    I still suggest posting this in the general section of the forums as it will get many more views and thats really what your application is about. This forum will get more views for things like SoftMotion which is NIs motion control software. Since you are working with DAQmx however you would want people who work more frequently with DAQmx to view your post, which will be in the general section of the forum.

  • Speed measure with DAQ, how to override the noise

    Hello.
    I try to measure spped using the counter input. My VI didn't work, so I look at the singnal I get from the encoder and I saw, I get a lot of noise in my signal. That's why program shows wrong values. I connect my signal between PFI8 and DGND on my DAQ 6212. My encoder (torque transducer) gives me 60 pulz/revolution. Is it possible to nullifythe noise with program, or there is a problem with ground. I tried many different ground options, but didn't work
    Hope you have any idea.
    Thanks a lot.
    Simon

    Hello Mateusz. Thank you for responding me.
    You can see my signal taken from scope and check my vi file. Noise causes regulator of the motor I drive. If regulator is switched off there is no noise and if I turn my motor by hand, I get correct values of velocity, but when I turn on the controller, I get full of noise in my signal, so DAQ card reads all those noise as many signals, so it displys velocity much greater than it's real. I moved my daq card away from controller as much as possible and used coaxial cable, but noise still appear. I hope you have any idea.
    I hope you don't mind, because notes in my vi are written in my language. I just wrote them, that I can see what I was doing.
    Regards. Simon
    Attachments:
    DAQmx velocity.vi ‏45 KB
    scope_0.JPG ‏118 KB

  • Controlling dc motor speed

    Hi,
    I am using two dc motors which can operate upto 9V and can consume upto 5amps(stall current) I am using DAQ 6024E and labview 7.1 --- I want to controll the speed of these motors like starting from some zero velocity to maximum and then reducing back to zero-- how can I do that with the help of labview.
    Thanks in advance

    For real motion control you need a closed loop system and a deterministic control algorithm. The best solution is the use of NI motion control boards that integrate perfectly into LabVIEW. These boards run the control algorithm onboard in a real-time environment.
    It's not a good idea to run any time-critical control algorithm on a Windows system as this OS is non deterministic. If your requirements for the quality of the control are very very low you could try to simply output voltage ramps with your 6024E and run in open loop mode but as said this won't result in a good control behavior.
    Another option would be the use of LabVIEW Real-Time on a PXI system or on a desktop PC (works only under certain circumstances; refer to the last link) but a motion control board will be a much better and cheaper option.
    Best regards,
    Jochen Klier
    National Instruments Germany

Maybe you are looking for

  • How do I add a mac to my iTunes?

    How do I add a mac to my iTunes?

  • New user to Oracle 11i who needs help on creation of new fixed asset class

    Hi all, I am new to my Company who is using Oracle 11i. And the Company has a new class of fixed asset and a GL code has been created. But there is no link between the Fixed Asset Manager and the GL code, i.e. depreciation is not linked, additions ar

  • Check Printing - PDF displays fine, Printer prints PS Code

    We are using XML Publisher 5.6.2 to build the check printing program. The template is working fine and we are able to see the checks with MICR thru the request output ( as PDF ). Now, we need to print these checks directly to the printer and as per t

  • Help for inserting/updating new record

    hi, i am trying to insert new data in account record in CRM OD from java using (web service v2.0 ) following methods AccountInsertInput accountinsert=new AccountInsertInput(); accountinsert.setListOfAccount(accountDataList); Here accountDataList is o

  • Early 2008 Mac Pro & Blu Ray Drive Install?

    Hi, With help from a YT video I located the mb sata ports and installed an LG BD drive using one of them and the supplied power adapter in the lower optical bay, keeping the original super drive in it's top spot. No joy, the system doesn't see the dr