Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Linear movement with 2 motors attached to one axis

Hello,

I have a PCI NI 7356 board to control the movement of two motors attached to one axis. This configuration is intended to have more power.  Each motor has its own encoder. I need the axis to turn to a specified position and return back to the initial position, it is a straight line move. There is no problem to do this with each of the motors separated, but if I try to make the two motors work together, the result is a clattering noise. It looks like the two motors are trying to do a slightly different movement.

I tried two ways to program this: Master/slave (gearing one axis to the other axis) and sending the same position command to both the axis and starting them sychronised. In both cases the result is similar. I get this clattering noise for slow speeds and it dissapears once the axis gets to high speeds. 

What can I try to get rid of this clattering noise?

I plan to test how does it work if I put the same encoder signal for both the motors, intead of having one encoder at each motor? Should this improve behaviour?

I think that the best solution would be to control one motor in position and send to the other its DAC output.  It this possible ? I am using the flexmotion library programing in C.

Thank you





 
0 Kudos
Message 1 of 8
(4,803 Views)
This is kind of an unusual application.  I think you are on the right track.  You don't say what type of motors and drives you are using, but it would probably be best to connect only one encoder signal to the motion controller, and connect the command output to both drives.
0 Kudos
Message 2 of 8
(4,788 Views)
The best option was to command the two motors separately. We could get rid of the clattering with the help of some mechanical adjustments.

We are doing some tests with the device. Some straight line movements moving different loads.  It works OK until 20KN at 300rpm and acceleration of 1rpss but when we try a stright line movement with 22KN the device stops giving a following error. We wanted to test if it could move the the load, so we took the following error check off. We found the behaviour to be similar, but this time the following error bit is not set to 1.  I copy the axis state data of one test:

t            Pos1    V        DAC1    DAC2    STATUS1            STATUS2
(seg)    (mm)   (rpm)    (volt)    (volt)

0.17    -0.03    0.00      1.92    1.14      :0100010000000000    :0100000000000000
0.34    -0.02    13.46      3.77    2.84    :0100010000000000    :0100000000000000
0.47    0.17    40.39      3.20    2.77      :0100010000000000    :0100000000000000
0.61    0.37    53.85      3.27    2.84      :0100010000000000    :0100000000000000
0.80    0.67    81.43      2.92    2.42      :0100010000000000    :0100000000000000
0.94    1.20    114.43      3.34    2.70    :0100010000000000    :0100000000000000
1.11    1.66    122.23      1.99    2.70    :0100010000000000    :0100000000000000
1.25    2.34    158.97      2.42    2.92    :0100010000000000    :0100000000000000
1.38    2.96    164.08      1.99    2.21    :0100010000000000    :0100000000000000
1.55    3.62    184.93      2.63    2.70    :0100010000000000    :0100000000000000
1.69    4.53    212.79      2.92    2.56    :0100010000000000    :0100000000000000
1.83    5.42    226.74      2.28    2.56    :0100010000000000    :0100000000000000
2.00    6.57    255.35      2.70    3.55    :0100010000000000    :0100000000000001
2.13    -1.21    -2512.54  7.00    7.00    :0100010000000001    :0100000000000001
2.25    -9.83    -2558.19  7.00    7.00    :1100010000100011    :0100000000000001
2.45    -22.64    -1691.88  7.00    7.00  :1100010000010010    :1100000000010010
2.58    -22.18    -33.69      7.00    7.00  :1100010000010010    :1100000000010010
2.75    -22.19    13.46      7.00    7.00   :1100010000010010    :1100000000010010


The tests start OK, but after getting to 5.42 mm on the position (when the command was 200mm) the motor 2 goes to Off (pin 0) and then the motor 1. We don't understand why could this happen. The following error check has been dissabled and we see that the pin for it stays in 0, but why is the pin 0 set suddenly to 1?

Thank you,
0 Kudos
Message 3 of 8
(4,640 Views)
Are your drives set for velocity or torque mode?
0 Kudos
Message 4 of 8
(4,636 Views)
Torque mode
0 Kudos
Message 5 of 8
(4,632 Views)
What happened when you connected the same command signal to both drives?
0 Kudos
Message 6 of 8
(4,628 Views)
I didn't connect the same command signal to both drives because we could solve the clattering problem doing some mechanical adjustments. I did test putting the same encoder signal to both drives and the result was the same as using one encoder for each drive.
0 Kudos
Message 7 of 8
(4,608 Views)
Each drive needs its own encoder signal for commutation, assuming you are using brushless motors.  I can only recommend that you treat the 2 motors as one at the controller.  Connect one encoder signal back to the controller and take the command signal for that axis to both drives.  You will have to re-tune, but it is worth a try.
0 Kudos
Message 8 of 8
(4,605 Views)