Hello Guest it is March 29, 2024, 09:52:15 AM

Author Topic: AxisWorks tuning  (Read 22726 times)

0 Members and 1 Guest are viewing this topic.

AxisWorks tuning
« on: March 31, 2010, 01:43:59 PM »
Hello, can someone please tell me how can I tune in axisworks If I'm using two motors on X axis driven by rack and pinion?

Peter
Re: AxisWorks tuning
« Reply #1 on: April 01, 2010, 04:04:05 AM »
Hello Peter81:

Could you clarify the motor setup? Are you using two motors with 2 separate drives?

As far as I have experience with Axisworks, it will drive a single axis motor, and allow you to set the best timing parameters based upon your visual feedback from the graphical screen. The dspmc manual gives the basic starting settings for the inputs, and then you can play with different numbers, and find the maximum accleration, and smoothest response. The motor will also sound quite different at different settings. The sound itself is a good indicator that you are getting bettor or worse with the numbers. At some settings the motor will sound bad, and other settings it will default, and stop suddenly. You can set the motor to drive the table for a given distance and stop, or reverse each time you give the go command. You can check the exact distance traveled vs. your input command distance. It is a great program to arrive at that mysterious mix of timing numbers, and acceleration rates. You will find what is the absolute limit in acceleration and speed, because when you set too high, the motor will start to accelerate, and just quit.  Once the best numbers are deduced by trial and error, you can save them to the controller memory. Those parameters will remain the outputs that will be used for that particular axis servo amplifier.

If your two motors are driving a common load through a solid connection, yet using separate amplifiers, you could just save the same settings to the second amplifier. However, Axisworks must have an axis designation, i.e., X,Y, Z, A, B,C, to save the tuning parameters to.

If so, you can disconnect the power leads to one motor, and tune one axis at a time. Then, disconnect that axis motor power, and connect the other one, setting the same parameters, try it out, and  save to  A, B, or C, whatever axis name is slaved to the X axis.

I do not believe Axisworks can read two motors powered from one amp. The dspmc controller is not at all like stepping motors, using pulses from the PC.  The dspmc receives direction, distance to go, and feedrate from the PC, and drives the motor based on the internal PID settings stored in the dspmc memory, and the feedback from the motor encoder.
Each axis has it's own PID settings in memory, saved from Axisworks.

The maximum speed possible with the dspmc is only limited (within common sense reason) by the power, and quality of the motors and servo amplifiers used. Unlike the pulse train output for stepper type drives, which are tied to the pulse output from Mach3. There are some very superb motors now available, that will give fantastic machine speed using the dspmc, but at a cost.

Regards,

John

   
Re: AxisWorks tuning
« Reply #2 on: April 01, 2010, 09:54:46 AM »
Hello Chestermarine,

thank you for your reply. Yes I'm using two servos with separate drives and slave function. I was tuning with one servo removed from the gantry. I thought there was another way to tune with both motors connected to the gantry.
When I tune with just one motor connected the speed and acceleration is lower because of the weight of the gantry (350lbs). So when I connect the other motor to the gantry, what settings I need to put in? Two times higher or less? Thanks.

Peter
Re: AxisWorks tuning
« Reply #3 on: April 01, 2010, 12:03:13 PM »
Hello Peter81:

If the two motors are identical, and driving the same load at the same time, they should have the identical settings.

The numbers (parameter settings) are the PID coefficients you find by trial and error to produce "best motion". These numbers are part of a very complex mathematical algorithm, and are not by any means "linear" with respect to the motor behavior. It would be educational to read some of the explanations in Wiki, regarding PID calculations. There are several excellent tutorials on that subject, with great graphs, to help understand what PID is. "P" means Proportional; "I" means Integral; and "D" means Derivative. These are mathematical terms.   

When the two motors are driving the gantry, the load is less for each motor, than when one motor had to drive the entire load by itself. However, that does not mean the motor cannot operate under a smaller load.

When a single motor axis is tuned for its best capability with Axisworks, it often will be used at a low speed, and be producing less horsepower.

The "best fit" PID settings will allow the motor to perform in its most efficient format, in real time. The servo motor is capable of working at low through high speed ranges, and the current draw will vary depending upon the demands at the moment. The greater the "load", the higher the current. This factor is the Kilowatt rating of the motor.

Any servo motor has a Kilowatt rating by design. This means it is capable of doing a measurable amount of "work."

Work or the term "Horsepower" is mathematically a function of.....force per unit of time. The mathematical equivalent of 1 horsepower, it "raising 550 pounds 1 foot in 1 second."  In Kilowatts, 746 watts equals 1 horsepower, or about 3/4 of a Kilowatt.

When Axisworks produces a graph, it is measuring a complex series of factors; amps, velocity, time, all at once, and showing you in graphical format, in REAL time, this action. Not a trivial problem, to say the least.

At initial start-up, the the motor cannot achieve the programmed speed instantly, thus the acceleration/deceleration "curves generated by the PID algorithm, and finally stored into the memory of the dspmc controller. It is this complex series of outputs, that make the PID servo motor motion so superior to other kinds of motion systems.

Hope this helps.

Regards,

John

   

   
Re: AxisWorks tuning
« Reply #4 on: April 01, 2010, 04:08:21 PM »
Hello Peter81:

I have not heard of any video for Axisworks, although that would be a great addition for getting through the learning curve. You might drop Rufi at Vital Systems a note, and ask him if he would have time to produce one. I know he is always busy writing better software, but it's worth a try.

Some further thoughts on tuning, after my last message:

The "S" curve you see on the screen is the acceleration of the motor, in graphical format. From the beginning of the S curve, to the end of the curve, just as it becomes a straight horizontal line is, "Time," in the horizontal axis of the graph.

The vertical height of the "S" curve is the motor acceleration from standstill, to full programmed velocity.

It is that acceleration within the "S" curve, that requires the most motor amps. So, the motor can only move so much mass (weight of gantry or table), to a given velocity, in a given amount of time. Remember, horsepower (or Watts) is "work per unit of time."

That "S" curve time period is in fractions of a second, or a few hundred milliseconds. This is far to little time to visually see what is going on. However, with Axisworks, you can now "see" what is taking place. When the velocity is set too high, for a given time, the motor servo "faults out" and never goes to it's programmed distance.

By playing around with the numbers, you can learn the motor maximum acceleration and velocity for a given mass.

Since you are using two motors to move the gantry, the velocity that can be achieved with one motor observed in Axisworks, will be less than what is achievable in real use, when the two motors are working in unison, moving the same mass.

So, if your single motor faults out at 100 i.p.m. (inches per minute), you can probably achieve 130, or 140 i.p.m. when using the machine with the two motors in unison. This limit can only be known by trial and error.  The maximum velocity will not be double, since all these relationships are NOT linear, but it will be somewhere above the single motor velocity for sure.

You cannot put the higher velocity factor into the Axisworks test cycle, since the motor will immediately fault out. You could try putting a slightly the higher velocity setting in the Axisworks program, and not giving it the run command. Save the parameters into the dspmc controller, for each motor individually, and then try it out in a simple test program, i.e., go 10.0" at feedrate X, stop, go to 0.000 at feedrate X, stop.

Alternately, you could just program higher and higher velocity feed rates in a program, and see where the motors fault out. The problem with this, is you might damage the gantry if one motor came to a full stop, with the other one going full power. Whatever you do, proceed in incremental steps, making one change at a time, going from the "known" to the "unknown."


Regards,

John
 
 
Re: AxisWorks tuning
« Reply #5 on: April 04, 2010, 10:35:28 AM »
I did get machine moving but always overshoots zero position. I can't get it stop exactly at zero or final position it always overshoots. When I add Integral gain it stops at zero but first overshoots and then zero out. I must set follow error at 2000 or higher so that machine don't fault out and I'm not using speed and acceleration anywhere near the capability of servos. Hope you understand me.

Peter
Re: AxisWorks tuning
« Reply #6 on: April 06, 2010, 11:50:24 PM »
hi Peter,

if you add integral term, you must also add max error I to eleiminate the oscillations.  can you post the dspmc.xml file?

thanks
Rufi

« Last Edit: April 22, 2010, 11:18:29 PM by vitalsystem »
Re: AxisWorks tuning
« Reply #7 on: April 08, 2010, 04:26:16 PM »
Hi Rufi,

Attached is the dspmc file. Thank you.

Peter
« Last Edit: April 22, 2010, 11:18:55 PM by vitalsystem »
Re: AxisWorks tuning
« Reply #8 on: April 09, 2010, 01:40:12 AM »
hi Peter,

I think the best way is to have axisWorks allow tuning of master/slave axis setup.  I will try to add this feature in the next few days, hopefuly. 

are you using axis3 (a) as slave off x axis?

thanks
Rufi
 

Re: AxisWorks tuning
« Reply #9 on: April 09, 2010, 08:41:18 AM »
Hi,

yes. I'm using axis0 as master and axis3 as slave. It would be great if you add this feature.

Peter