servo dac offset

More
05 Nov 2015 03:58 - 05 Nov 2015 04:00 #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
Last edit: 05 Nov 2015 04:00 by PCW.

Please Log in or Create an account to join the conversation.

More
05 Nov 2015 04:11 #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 or Create an account to join the conversation.

More
05 Nov 2015 19:40 - 05 Nov 2015 22:10 #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 ...
#*******************
#  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 ...


Attachments:
Last edit: 05 Nov 2015 22:10 by bkt.

Please Log in or Create an account to join the conversation.

More
05 Nov 2015 20:00 #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 or Create an account to join the conversation.

More
06 Nov 2015 00:03 #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
The following user(s) said Thank You: bkt

Please Log in or Create an account to join the conversation.

More
06 Nov 2015 00:24 #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 or Create an account to join the conversation.

More
06 Nov 2015 00:34 #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
The following user(s) said Thank You: bkt

Please Log in or Create an account to join the conversation.

More
06 Nov 2015 00:51 - 06 Nov 2015 01:02 #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 :
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) ....
Attachments:
Last edit: 06 Nov 2015 01:02 by bkt.

Please Log in or Create an account to join the conversation.

More
06 Nov 2015 01:03 #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)
The following user(s) said Thank You: bkt

Please Log in or Create an account to join the conversation.

More
06 Nov 2015 01:27 - 06 Nov 2015 01:31 #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
Last edit: 06 Nov 2015 01:31 by bkt.

Please Log in or Create an account to join the conversation.

Time to create page: 0.327 seconds
Powered by Kunena Forum