servo dac offset

More
10 years 11 months ago #64768 by PCW
Replied by PCW on topic servo dac offset
Its called PWM in pncconf but that's just a leftover from previous hardware setups
Its not important

What is important:

Drives are set to velocity mode

Drives have any input filtering turned off

FF1 is tuned first (with low P term so the effect of FF1 changes are obvious)
( as mentioned before, if the analog output scaling is set right, FF1 will be 1.0)

P is tuned next

Finally FF2 is tuned to reduce errors during acceleration

The hal/ini files are good to look at in case there's some obvious parameter setting issue

Please Log in to join the conversation.

More
10 years 11 months ago #64772 by bkt
Replied by bkt on topic servo dac offset
mmmm .... my start tuning is modify P ..... tomorrow try to a little P an modify FF1 first .... and control all filter input on drive ... but I think is set to 0.

Regards
giorgio

Please Log in to join the conversation.

More
10 years 11 months ago #64815 by bkt
Replied by bkt on topic servo dac offset
some filter in drive are active ... and I disable it ...ok.

I put P at 5 first and increase FF1 ..... At the end of operation P in Lcnc and in drive are equal ... FF1 in drive is at 1/4 of scale value but in Lcnc are much highter .. see below

Warning: Spoiler!


in hal file all seems ok ...
Code:
#******************* # AXIS A #******************* setp pid.a.Pgain [AXIS_3]P setp pid.a.Igain [AXIS_3]I setp pid.a.Dgain [AXIS_3]D setp pid.a.bias [AXIS_3]BIAS setp pid.a.FF0 [AXIS_3]FF0 setp pid.a.FF1 [AXIS_3]FF1 setp pid.a.FF2 [AXIS_3]FF2 setp pid.a.deadband [AXIS_3]DEADBAND setp pid.a.maxoutput [AXIS_3]MAX_OUTPUT setp pid.a.error-previous-target true setp pid.a.maxerror .0005 net a-index-enable <=> pid.a.index-enable net a-enable => pid.a.enable net a-pos-cmd => pid.a.command net a-vel-cmd => pid.a.command-deriv net a-pos-fb => pid.a.feedback net a-output => pid.a.output # ---PWM Generator signals/setup--- setp hm2_5i25.0.7i77.0.1.analogout2-scalemax [AXIS_3]OUTPUT_SCALE setp hm2_5i25.0.7i77.0.1.analogout2-minlim [AXIS_3]OUTPUT_MIN_LIMIT setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [AXIS_3]OUTPUT_MAX_LIMIT net a-output => hm2_5i25.0.7i77.0.1.analogout2 net a-pos-cmd axis.3.motor-pos-cmd net a-enable axis.3.amp-enable-out # ---Encoder feedback signals/setup--- setp hm2_5i25.0.encoder.02.counter-mode 0 setp hm2_5i25.0.encoder.02.filter 1 setp hm2_5i25.0.encoder.02.index-invert 0 setp hm2_5i25.0.encoder.02.index-mask 0 setp hm2_5i25.0.encoder.02.index-mask-invert 0 setp hm2_5i25.0.encoder.02.scale [AXIS_3]ENCODER_SCALE net a-pos-fb <= hm2_5i25.0.encoder.02.position net a-vel-fb <= hm2_5i25.0.encoder.02.velocity net a-pos-fb => axis.3.motor-pos-fb net a-index-enable axis.3.index-enable <=> hm2_5i25.0.encoder.02.index-enable net a-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts # ---setup home / limit switch signals--- net a-home-sw => axis.3.home-sw-in net a-neg-limit => axis.3.neg-lim-sw-in net a-pos-limit => axis.3.pos-lim-sw-in

But the result are not very good .... my gcode test put the axis to 90° make a pause of 0.1sec and put axis to -90° ... for 10 time ... after go to 50° and stop (all with G61).... the motor and reducer (at the motor I applied a reducer ratio 1/10) correctly turn on and turn of from 180° (I apply a hand to control the crowds results ... I can see 180° but not see the exact start and end point ... ) but in axis never see an exat stop to 90° or -90° bu for example 20 to -160 ... or 30 to -150 with random value .... the acceleration is hight .... but at the and When go to 50° the acceleration is 50% and in axis I see an stop at 70° and in 3 sec the end of program the value turn on 50°. During this positioning the program stop.

Hal scope Image of program run and during program stop ...

Attachment not found



Attachment not found

Please Log in to join the conversation.

More
10 years 11 months ago #64816 by bkt
Replied by bkt on topic servo dac offset
Now I try to reduce the velocity in G code to 0.1% .... in first test I set F8000 now I set F8 ...... the drive go to the maximum velocity at 10V refer and turn for 30000° +/- instead of 90° ...... ?????

Please Log in to join the conversation.

More
10 years 11 months ago #64835 by PCW
Replied by PCW on topic servo dac offset
Looks like at the minimum the FF1 is still completely wrong

I would set a P of say 1 and then adjust FF1 for as straight a line as you can get in the jogs
(dont worry about the offset error just try for a )

Also hard to see at that slow rate but it looks like the accel is very high I would lower this until
you get the tuning dialed in

Please Log in to join the conversation.

More
10 years 11 months ago #64837 by bkt
Replied by bkt on topic servo dac offset
yes I see, I try a new conf with pnconfig and I see that FF1 at maximum I can set to 10000.0 ....

These confis is more soft .... only 360° max vel ans 1.2 max acc ..... Than I try tu run all with halmeter window open on hm2......01.analogue.out (my analog out ... I try to change out connector number... in case it is broken .... nothing change) ...

I see that analogue out go to 99.9 if go at minimum jog vel on axis (0.6 deg) .... and 9999.9 at max jog speed .... all ok. But in drive I see tha save velocity both???? is not possible I'm aspect to see 6rpm at 0.1volt and 600rpm at 10V ... why these ??? I try to control the i/o connector on drive but I suspect that the problem are in other land....

Some suggest??

Please Log in to join the conversation.

More
10 years 11 months ago #64838 by PCW
Replied by PCW on topic servo dac offset
Can you post you current hal and ini files here?
maybe I can see if anything is obviously wrong

Please Log in to join the conversation.

More
10 years 11 months ago #64839 by bkt
Replied by bkt on topic servo dac offset
for sure ....

Now I see that F in gcode (and with these conf) is equal to velocity on drive ... so if I set F60 drive go to 60rpm ... if set F600 drive go to 600rpm ....and so .... The vel that I set was too hight .... but there are other wrong setting ...

Warning: Spoiler!



Warning: Spoiler!



sorry for spoiler .... but BBCcode editor not work now on my pc.... but as you see the attachment upload hanyhow

My intention is make 60rpm at the and of servomotor .... after the motor I have a reducer 1/10 ... so for 60rpm at the end the motor make 600rpm .... I have divide the encoder feedback to 1/10 The motor have 2500 ppr encoder with 0 signal so the drive output a feedback of 250ppr .... I try these with halmeter .... 1RPM at the end of servomotor = 10000 pulse encoder (250*10*4) ... it seems ok ... but when run my g code :
Code:
G21 G90 #30 = 0 G0 F300 A0 o100 while [#30 LT 10] G61 F300 A90 G4 P0.1 G61 F600 A-90 G4 P0.1 o100 endwhile G61 F100 A50 M30

the A axis go to 31000 and -31000 in while cicle (plus or less not see exactly) ....

Please Log in to join the conversation.

More
10 years 11 months ago #64842 by PCW
Replied by PCW on topic servo dac offset
OK for axis A a FF1 of 1 is probably about 30x too high

(FF1=1 _ONLY_ if the axis is scaled actual velocity = machine units per second at 10V to drive)

Please Log in to join the conversation.

More
10 years 11 months ago #64845 by bkt
Replied by bkt on topic servo dac offset
Sorry not understand very well ... actual velocity is velocity of motor (1) or final velocity after reducer(2)?

case 1 .... at 10V 600rpm ... 60°sec => 10

case 2 ... at 10V 60rpm ... 60°sec => 1

Anyhow ... with FF1 = 0.03 if move in gcode A = 90° obtain about 260/300° velocity decrease to 10%.... at 0.003 obtain about 150/200° but the velocity decrease to 1% .....

Regards
Giorgio

Please Log in to join the conversation.

Time to create page: 0.064 seconds
Powered by Kunena Forum