Mori MVJR Build Log
it by maybe .01 increments, then .001 increments to null out the following error
Notice that the phase of the following error reverses if you have too little (0.8 is too little)rather than too much (1.0 is too much) FF1
That is the green trace goes up first if you have too little, but down first if you have too much
Please Log in or Create an account to join the conversation.
- schmidtmotorworks
- Offline
- Elite Member
- Posts: 281
- Thank you received: 6
Looks like FF1 still needs dialing in. 0.8 is better but now increase
it by maybe .01 increments, then .001 increments to null out the following error
Notice that the phase of the following error reverses if you have too little (0.8 is too little)rather than too much (1.0 is too much) FF1
That is the green trace goes up first if you have too little, but down first if you have too much
Thanks, that's a great tuning tip!
One thing I noticed is that as following error is reduced by adjusting FF1 the PID error increases.
So if I understand correctly, the tuning process goes in a cycle where you rough in PID, then get FF1 close then go back and do PID again and repeat.
Are there any similar tips for knowing what to look for about P, I, D, FF0 and FF2?
Please Log in or Create an account to join the conversation.
Most people tune for minimum FERROR and this is what EMC looks at to flag following errors so lacking any better information, I would not look at PID.error and tune for minimum FERROR
(perhaps PID-error is not what the manual says)
Maybe you can contact a EMC PID guru on the mailing list and ask why these are different
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
- schmidtmotorworks
- Offline
- Elite Member
- Posts: 281
- Thank you received: 6
I have the PID close enough to test I think. The only thing that is concerning me now is the drive motors make a low humming, almost a growl, nothing I change in PID seems to make it go away completely but very high P makes it worse.
The spindle is almost working. It turns, but slowly (about 5 RPM) and doesn't change when I set the speed higher or lower.
I have the drive connected to the 7i48 on pins 23 (GND5) and 24(AOUT5)
HAL looks like this:
net spindle-drive-enable => hm2_5i23.0.pwmgen.05.enable
setp hm2_5i23.0.pwmgen.05.output-type 1 # Tried 2,3,4 no difference
net spindle-speed-cmd motion.spindle-speed-out => hm2_5i23.0.pwmgen.05.value
setp hm2_5i23.0.pwmgen.05.scale 6000
net spindle-at-speed motion.spindle-at-speed <= hm2_5i23.0.7i64.0.1.digin.03.in
# Spindle Alarm provides power to the spindle wires through IO02 p2
net machine-on => hm2_5i23.0.7i64.0.1.digout.12.out
#EStop Connects CP07-E8 to CP07-E1
net machine-on => hm2_5i23.0.7i64.0.1.digout.18.out
#Spindle Ready CP07-E2 to CP07-E1
net machine-on => hm2_5i23.0.7i64.0.1.digout.19.out
#spindle forward
net spindle_forward motion.spindle-forward => hm2_5i23.0.7i64.0.1.digout.22.out
#spindle revese
net spindle_reverse motion.spindle-reverse => hm2_5i23.0.7i64.0.1.digout.23.out
HALMETER tells me the following:
motion.spindle-on (responding as expected)
motion.spindle-speed-out (responding as expected)
motion.spindle-forward (responding as expected)
motion.spindle-speed-cms-rps (responding as expected)
motion.spindle-at-speed always FALSE (even when moving)
hm2_5i23.0.pwmgen.05.enable (FALSE, No change)
hm2_5i23.0.pwmgen.pwm.frequency 24000 (0x00005DC0) doesn't change with speed adjustment
hm2_5i23.0.pwmgen.pdm.frequency 20000 (0x00004E20) doesn't change with speed adjustment
Does anyone know of something else to check or try?
Please Log in or Create an account to join the conversation.
hm2_5i23.0.pwmgen.05.enable (FALSE, No change)
Does anyone know of something else to check or try?
I don't see any source for the spindle-drive-enable signal. I think that you need to change the line that says:
net spindle-drive-enable => hm2_5i23.0.pwmgen.05.enable
net spindle-drive-enable motion.spindle-on=> hm2_5i23.0.pwmgen.05.enable
Please Log in or Create an account to join the conversation.
and with standard firmware, all enables are driven by pwmgen enable 0
If you want an independent spindle enable, I would use a 7I64 output.
As far as the growling is concerned, do you have a reasonable deadzone setup? say the equivalent of 1 to 2 encoder counts
Also do you have any integral term? You can often trade off some P for I to make a quieter system
(but with somewhat poorer dynamics)
Another thing that may help is using the better velocity estimate from the encoder counters for the PID loop (instead of the default DP/DT)
Please Log in or Create an account to join the conversation.
Thanks
Cory
Please Log in or Create an account to join the conversation.
- schmidtmotorworks
- Offline
- Elite Member
- Posts: 281
- Thank you received: 6
net spindle-drive-enable motion.spindle-on => hm2_5i23.0.pwmgen.05.enable
Now in the manual mode the spindle turns forward about 100 RPM but doesn't respond to changes to the speed.
In reverse, it still goes slowly.
This is progress.
I don't know if I an using the proper output type.
setp hm2_5i23.0.pwmgen.05.output-type 1
Maybe I am missing some output that tells what RPM to run?
Please Log in or Create an account to join the conversation.
I would then verify that you can get 0-10V on the spindle output (unconnected to drive)
Do this by setting the output value by hand by setting hm2_5i23.0.pwmgen.05.value to 0 and then to 6000 and checking the 7I48s analog output voltage for 0 and +10V. I'm not absolutely sure about the 7I48 you may get 0 to -10V in which case you would need to invert the PWM scale number (-6000)
Please Log in or Create an account to join the conversation.