Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Velocity-dependent motion control loop

I'm controlling a brushless DC servomotor with a position encoder using the 7344 board and UMI 7764. My intent is to create a "velocity-dependent force field". Basically, as the shaft of the motor is physically rotated by a user I want to command a current to the motor. The commanded current should increase in proportion to the angular velocity of the shaft rotation (inversly). Thus, the faster a person rotates the shaft, the greater the resistance (torque) generated against them by the motor. I realize this is an unusual application - however, it's often used to study human motor control. Is the Load DAC command appropriate in my case? (it has a warning for some reason not to be used with a mapped axis???).
Any help is appreciated.
0 Kudos
Message 1 of 5
(3,864 Views)
Thank you for contacting National Instruments. From the description of your application, then the Load DAQ is going to be the best way for you to use a motion controller board and have absolute control of the voltage level that you output. If you are using that analog output line to drive a servo motor with a PID loop, then you could see some glitches in the output as both the PID loop and Load DAC attempt to use this line. If this is an area of concern, then you can use one of the other 3 Analog Output lines on your 7344.
0 Kudos
Message 2 of 5
(3,864 Views)
Thank you for your response.
Point 1: I don't think that I'll need a PID loop since I'll be in true current mode (is that a correct assumption?).

Point 2: I tried the Load DAC vi using an unmapped axis (i.e. axis 1 receives encoder and the analog out goes to axis 3). when I pass the output voltage, the motor does not generate a torque but simply rings (literally a ringing sound) (the higher the voltage, the louder the ringing). This is in contrast to its behavior if I use copley's inhouse software (CME2) to pass a voltage - which leads to a normal torque command. It seems to me therefore, that Labview is doing something different. Any advise??
Thanks in advance.
0 Kudos
Message 3 of 5
(3,864 Views)
If you are using the Load DAC.vi from LabVIEW to send a voltage out one of the DAC Channel then there are a few things to check to make sure you are outputting the correct voltage. The first thing to make sure is that you are passing the correct number to the DAC Value input. Remember that this input requires a 16-bit number, which means the parameter range is -32,768 to +32,767, corresponding to the full ±10 V output range. Be sure you are not simply inputting a number between -10 and 10.

If this is correct, then the second thing to check in your case is how you have Axis 3, which is where the Analog Output 3 falls, configured. In order for the Analog Output to work correctly, you must configure that axis as a Stepper motor, NOT servo. This can
be changed in Measurement & Automation Explorer (MAX) under Axis Configuration. Simply change the axis to stepper, the remaining fields do not matter, and be sure to apply and initialize those changes before running your application again.

If you have a multimeter or oscilloscope, then you can check the outputs to verify that they are correct.

Regards,
Michael
Applications Engineer
National Instruments
0 Kudos
Message 4 of 5
(3,864 Views)
The stepper config did it!!!
Many, many thanks Michael.
0 Kudos
Message 5 of 5
(3,864 Views)