Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

12 Hz Sine Wave (Step/Dir)

Hello all,

 

Have a interesting problem which may or may not have an easy solution. I am using a 7342 motion controller with UMI 7764 interface to connect to a Compax3 drive which is driving a Parker linear motor. Feedback goes to the drive only and not the 7342. I have a protocol converter to add complementary output (which the drive expects) to step/direction signal. It all works perfectly.

 

So, the problem is we need to generate a sine wave at 12 Hz (back and forth on the linear motor a very small distance). Using the buffered contoured move examples we are limited by 10 ms update. This works out to be 8.3 points or so per full cycle - not very good. I understand the countoured move is smoothed, but just not sure if this will really do the job.

 

Is there a better way to output sine wave profile to stepper from LabVIEW?

 

Many thanks in advance.

 

Kevin

0 Kudos
Message 1 of 15
(6,037 Views)

Hi Kevin,

 

the 7342 runs a cubic spline interpolation between the setpoints generated by the trajectory generator at the at the rate of the PID control loop. With a loop rate of 250 µs this effectively means more than 300 setpoints updates per period.

While this doesn't sound too bad, tit probably doesn't leave much performance headroom and depending on your accurracy requirements, it might be already quite hard to reach your specs.

 

If you are looking for a solution with much more headroom, you should consider an FPGA based R-Series board in combination with the NI-SoftMotion module. There are several threads discussing similar topics:

 

how to increase the frequency when i use master analog input -slave axis gearing?


can I implement a different controller apart from PID?

 

Stop motion function in open-loop

 

Please refer to these threads. I hope this helps,

Jochen

 

Message Edited by Jochen on 10-12-2009 09:43 AM
0 Kudos
Message 2 of 15
(6,028 Views)

Jochen,

 

Thank you for your reply. I (we) are new to motion control so forgive us. 300 points per period (1/12 or 83 ms)? This would be more than sufficient. We are not using the card for feedback, so not sure how PID (and the 10 ms minimum interval) all fits into the picture.

 

Are we just going about this the wrong way with contoured move, or do we really need some better hardware.

 

Basically just looking to have the card put out pulse train, parameters (velocity, etc) can come from an array as far as I'm concerned.

 

Many thanks again!

 

Kevin

Message 3 of 15
(6,021 Views)

Hi Kevin,

 

for servo systems the PID loop rate is obviously the rate of the control loop, but in general the PID loop rate is the board's heart beat, that times multiple processes, so it's also relevant for stepper systems. Still contouring (and all other trajectory generation methods) uses the 10 ms interval and the onboard spline algorithm helps to get a smoother result. The drawback here is, that splining doesn't guarantee that the axes move exactly through the contouring points. It depends on your application if the inaccurracy introduced by splining is acceptable or not.

 

To prevent the question: No, I can't tell you how big the position error will be, as this depends on many factors like velocity, travel distance and so on and it is very hard to predict.

So my only advice is to give it a try. Your specs definitely are close to the board's performance limits, so it might or might not work.

 

But there is another issue that makes me feel a bit sceptical. 12 Hz are quite high dynamics for a stepper system, so I feel a bit uncertain, if the motor and the mechanics allow such rates. But there are again many relevant factors like the motor/load inertia ratio, motor torque, friction, stiffness of the mechanical system, velocity, travel distance - just to name the most important ones. All of these factors need to be considered carefully when designing such a dynamical system and the motion controller is only one of them.

 

So again, my pragmatic advice is to give it a try. If it works fine for you with a 7342 controller you are done very quickly. If it doesn't work, you will have to investigate thoroughly, if it's a mechanical problem or a performance issue of the 7342, but this should be feasible and I can try to help you with that. If it turns out, that you need a more powerful motion controller there are alternative options available and we can discuss them in more detail if required.

 

Kind regards,

Jochen

0 Kudos
Message 4 of 15
(6,011 Views)

Jochen,

 

Mechanically I believe we are ok, or have been led to believe we are by the vendor. Won't find out till we can give it the right step/direction output from NI card I guess.

 

Ultimately the question I have is why do we need to use a contoured move at all? It is a simple move, repeated over and over. Can we use a straight line move and either command many small moves to approximate a sine wave (is there a lag from move to move), or perhaps change parameters while the move is occuring (s curve followed by negative s curve - looped). Perhaps an arc move. Does the PID 10ms rate still come to play.

 

Just not sure why we cant output simple step/direction sine wave (open loop) without getting into PID rate and complicated smooting/spline tecniques.

 

Thank you for your help, it is greatly appreciated 🙂

 

Kevin

0 Kudos
Message 5 of 15
(6,008 Views)

Hi Kevin,

 

your moves are not straight moves with trapezoidal velocity profiles. Additionally you need a continuous move profile, but if you need to wait until a move is complete and start the next move then, a non-deterministic delay will occurr between the moves, as the communication between the host and the board takes some time. To get a round that issue you could use blending, but 12 Hz is too fast for blending, too. So as you need sinusoidal velocity profiles, there are two options:

  1. If you don't need the second axis of the 7342, you can configure both axes to be part of a xy vector space. The unused axis needs to be configured as open loop stepper and you don't need any external connections for it.
    Then you can command the vector space to do circular moves (arc moves). The result is a sinusoidal move.
    The potential issue with this solution is again the speed. The maximum angular velocity of arc moves is limited and depends on other parameters, like vector velocity and amplitude (radius), so again, you can give it a try, but you might reach this limit with your application.
  2. The second approach is contouring.

In general generating smooth step/direction signals is not as trivial as you might think. One of the main issues is the discrete quantization of the timebase for the pulse train. Simply using a timebase with integer dividers for generating the step pulse train results in quite rough velocity profiles, that don't reflect accurately your intended velocity profile.

 

The NI motion control boards use a patented method for step generation (time-borrowing method). I must admit, that I haven't understood completely how this works (I'm not in R&D), but I have seen the difference of boards using this advanced method, compared to boards using simple timebase dividers - and the difference is huge.

 

Jochen

0 Kudos
Message 6 of 15
(5,997 Views)
What is the full model number of the Compax3?  You should be able to test this move using the Optimization tool that is part of the C3ServoManager.  You can set up an oscillating move an watch it with the scope function.  12Hz is kind of fast.  What actuator and motor are you using?
0 Kudos
Message 7 of 15
(5,992 Views)

Jochen,

 

Thanks for the info, I gotcha.

 

 

The drive is a S025V2F12I10T10M00

Motor is a B3DB0286NSLMC3  (I-force positioner)

 

Kevin

0 Kudos
Message 8 of 15
(5,989 Views)

Your move could be done without the controller.  If you set the distance, speed,accel, decel, and jerk for an absolute move, you would get your sine wave.  If you give me your distance, I can figure out the other settings for 12Hz.

0 Kudos
Message 9 of 15
(5,978 Views)

+/- 2.5 mm (from center point) @ 12 Hz

 

I would be interested to run it from ServoManager to see if it works. I have some other profiles I need to run. This one is the kicker, everthing else is easy.

0 Kudos
Message 10 of 15
(5,976 Views)