Help to find problem in servo
12 Nov 2012 21:33 - 12 Nov 2012 21:47 #26479
by aike
Help to find problem in servo was created by aike
Hi!
I attach several snapshots, please help me to "decode" it.
I have problem with slow moving on my servo (2-3 mm/min)
Hear is the pictire without any mooving, only digital noise.
I attach several snapshots, please help me to "decode" it.
I have problem with slow moving on my servo (2-3 mm/min)
Hear is the pictire without any mooving, only digital noise.
Last edit: 12 Nov 2012 21:47 by aike.
Please Log in or Create an account to join the conversation.
12 Nov 2012 21:34 #26480
by aike
Replied by aike on topic Help to find problem in servo
This is the same noise but in other time scale
Please Log in or Create an account to join the conversation.
12 Nov 2012 21:37 #26481
by aike
Replied by aike on topic Help to find problem in servo
Then I make little shot (external HAL button via jog) on 0,25 sec with the JOG scale 10mm/min
The picture show X and Z out and ferror signals
The picture show X and Z out and ferror signals
Please Log in or Create an account to join the conversation.
12 Nov 2012 21:38 #26482
by aike
Replied by aike on topic Help to find problem in servo
This is the same but in othe time scale
Please Log in or Create an account to join the conversation.
12 Nov 2012 21:40 #26483
by aike
Replied by aike on topic Help to find problem in servo
And the I did one shot both axis with the speed 1mm/min.
Help me to understand my problem.
Help me to understand my problem.
Please Log in or Create an account to join the conversation.
12 Nov 2012 21:42 #26484
by andypugh
Replied by andypugh on topic Help to find problem in servo
Overshoots hint at too much Pgain.
Please Log in or Create an account to join the conversation.
12 Nov 2012 21:45 #26485
by aike
Replied by aike on topic Help to find problem in servo
the HAL connected such way
net X.pos-fb <= hm2_[HOSTMOT2](BOARD).0.encoder.00.position
net X.pos-fb => pid.0.feedback
net X.pos-fb => axis.0.motor-pos-fb
net X.pos-cmd <= axis.0.motor-pos-cmd
net X.pos-cmd => pid.0.command
net X.pos-out <= pid.0.output
net X.pos-out => hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
### PID SETTINGS START ###
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.001
OUTPUT_SCALE = 250.0
OUTPUT_OFFSET = 0.0
MAX_OUTPUT = 140.0
#the sign may be "-" or "+", it depends of encoder wires connect
#if the servo drive has fatal error [ferror] then change the sign to opposit
INPUT_SCALE = -1000.0
### PID SETTINGS END ###
net X.pos-fb <= hm2_[HOSTMOT2](BOARD).0.encoder.00.position
net X.pos-fb => pid.0.feedback
net X.pos-fb => axis.0.motor-pos-fb
net X.pos-cmd <= axis.0.motor-pos-cmd
net X.pos-cmd => pid.0.command
net X.pos-out <= pid.0.output
net X.pos-out => hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
### PID SETTINGS START ###
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.001
OUTPUT_SCALE = 250.0
OUTPUT_OFFSET = 0.0
MAX_OUTPUT = 140.0
#the sign may be "-" or "+", it depends of encoder wires connect
#if the servo drive has fatal error [ferror] then change the sign to opposit
INPUT_SCALE = -1000.0
### PID SETTINGS END ###
Please Log in or Create an account to join the conversation.
12 Nov 2012 23:22 #26488
by PCW
Replied by PCW on topic Help to find problem in servo
I agree with Andy I think 'P' is way too high.
If P is too high, it will magnify thread timing jitter and cause large completely
bogus velocity modulation in the stepgen rate (what you are seeing)
Other things:
For final tuning during motion, you should use pid.N.error rather than ferror
because ferror is calculated incorrectly for PID controlled loops when in motion
and will have an error= velocity*servothread period.
To see pid.N.error you need to set the PID comps debug flag
FF1 can be fine tuned when P is small (too much FF1 makes position lead profile, too little FF1 makes position lag profile) changes in FF1 should be very small (it will still be very close to one)
To eliminate the 1 or 2 encoder count dither when stopped, you can add some more deadband
If P is too high, it will magnify thread timing jitter and cause large completely
bogus velocity modulation in the stepgen rate (what you are seeing)
Other things:
For final tuning during motion, you should use pid.N.error rather than ferror
because ferror is calculated incorrectly for PID controlled loops when in motion
and will have an error= velocity*servothread period.
To see pid.N.error you need to set the PID comps debug flag
FF1 can be fine tuned when P is small (too much FF1 makes position lead profile, too little FF1 makes position lag profile) changes in FF1 should be very small (it will still be very close to one)
To eliminate the 1 or 2 encoder count dither when stopped, you can add some more deadband
The following user(s) said Thank You: aike
Please Log in or Create an account to join the conversation.
13 Nov 2012 00:45 #26490
by aike
Replied by aike on topic Help to find problem in servo
Thank you all, I will test it tomorrow.
I will create pyvcp bar to adjust P. I think the start will be from 10 till 50 (as now) with the step = 1.
I will create pyvcp bar to adjust P. I think the start will be from 10 till 50 (as now) with the step = 1.
Please Log in or Create an account to join the conversation.
13 Nov 2012 00:54 #26491
by aike
Replied by aike on topic Help to find problem in servo
And the last question.
In horizontal is time scale in mSec.
But what about vertical scale?
In Volts? In Meters or in what measure units?
In horizontal is time scale in mSec.
But what about vertical scale?
In Volts? In Meters or in what measure units?
Please Log in or Create an account to join the conversation.
Time to create page: 0.423 seconds