Lagunmatic 3516-SX Retrofit
16 Sep 2018 03:00 #117591
by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit
The main issue I am facing with the spindle position PID right now is that the spindle gets relatively close, usually overshooting, and the the output velocity becomes to small to register movement at the spindle.
With the PID values below, which seem odd, I can reliably orient the spindle but it will sometimes take 10+ seconds because as the commanded velocity creeps up to ~70RPM which is about the minimum for my spindle to move.
So the PID works in theory, but the responsiveness is abysmal.
With the PID values below, which seem odd, I can reliably orient the spindle but it will sometimes take 10+ seconds because as the commanded velocity creeps up to ~70RPM which is about the minimum for my spindle to move.
So the PID works in theory, but the responsiveness is abysmal.
P_P = 7.5
I_P = 1.5
D_P = 0
FF0_P = 0
FF1_P = 0.9
DEADBAND_P = 0.0005
MAX_OUTPUT_P = 200
BIAS_P = 30
MAXI_P = 20.0
MAXD_P = 20.0
MAXERROR_P = 250.0
Please Log in or Create an account to join the conversation.
16 Sep 2018 10:35 - 16 Sep 2018 10:35 #117602
by andypugh
You could look at using the inverse-deadband component, but lincurve might be more adaptable.
A transfer curve where 0 = 0, 1rpm = 70 rpm and 100rpm = 100 rpm, for example, would help a lot with responsiveness without I-gain windup getting out of hand before the spindle starts to move.
So, X = -100, 1, 0, 1 100 and Y = -100, -70, 0, 70, 100 as a first attempt:
linuxcnc.org/docs/devel/html/man/man9/lincurve.9.html
(I wrote lincurve after seeing exactly this sort of problem solved many times with a lookup table in my day job)
Replied by andypugh on topic Lagunmatic 3516-SX Retrofit
commanded velocity creeps up to ~70RPM which is about the minimum for my spindle to move.
So the PID works in theory, but the responsiveness is abysmal.
You could look at using the inverse-deadband component, but lincurve might be more adaptable.
A transfer curve where 0 = 0, 1rpm = 70 rpm and 100rpm = 100 rpm, for example, would help a lot with responsiveness without I-gain windup getting out of hand before the spindle starts to move.
So, X = -100, 1, 0, 1 100 and Y = -100, -70, 0, 70, 100 as a first attempt:
linuxcnc.org/docs/devel/html/man/man9/lincurve.9.html
(I wrote lincurve after seeing exactly this sort of problem solved many times with a lookup table in my day job)
Last edit: 16 Sep 2018 10:35 by andypugh.
Please Log in or Create an account to join the conversation.
25 Sep 2018 03:27 - 25 Sep 2018 03:27 #117946
by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit
Thanks Andy - this does seem to help but man, tuning this spindle seems near impossible.
I have a pretty good handle on halscope now and I have been using it to plot spindle command, feedback, and error (and adjusting PID values based on my observations). It's been extremely difficult to get a PID response that does not oscillate forever. I've found some numbers that seem to work but take quite awhile to converge:
P= 0.125
I= 0.3
D= 0.003
I know these are arbitrary but you can see I have lowered them drastically since implemented lincurve.
I'm at the point now where I'm starting to wonder if braking with the VFD or a mechanical brake is the only way I'll be able to get fast response out of this. Seems bizarre this hasn't been handled already in the past????
I have a pretty good handle on halscope now and I have been using it to plot spindle command, feedback, and error (and adjusting PID values based on my observations). It's been extremely difficult to get a PID response that does not oscillate forever. I've found some numbers that seem to work but take quite awhile to converge:
P= 0.125
I= 0.3
D= 0.003
I know these are arbitrary but you can see I have lowered them drastically since implemented lincurve.
I'm at the point now where I'm starting to wonder if braking with the VFD or a mechanical brake is the only way I'll be able to get fast response out of this. Seems bizarre this hasn't been handled already in the past????
Last edit: 25 Sep 2018 03:27 by giz.
Please Log in or Create an account to join the conversation.
27 Sep 2018 12:26 #118043
by andypugh
Replied by andypugh on topic Lagunmatic 3516-SX Retrofit
I think you might be seeing I-term windup if it oscillates. Does it still oscillate with an I-term of zero?
Please Log in or Create an account to join the conversation.
01 Oct 2018 18:27 #118304
by giz
My methodology was to start with all zeros and first determine an appropriate P value. P=0.125 (everything else zero) will oscillate and the error curve is essentially a stable sine wave. It will never converge in this condition.
If I remember correctly, lowering the P from there would mean sometimes the spindle wouldn't move at all.
I didn't see any convergence until I started adding an I value.
Replied by giz on topic Lagunmatic 3516-SX Retrofit
I think you might be seeing I-term windup if it oscillates. Does it still oscillate with an I-term of zero?
My methodology was to start with all zeros and first determine an appropriate P value. P=0.125 (everything else zero) will oscillate and the error curve is essentially a stable sine wave. It will never converge in this condition.
If I remember correctly, lowering the P from there would mean sometimes the spindle wouldn't move at all.
I didn't see any convergence until I started adding an I value.
Please Log in or Create an account to join the conversation.
01 Oct 2018 18:40 #118305
by PCW
Replied by PCW on topic Lagunmatic 3516-SX Retrofit
I think for spindles you should always start with FF0=1 only
For a velocity command input, velocity PID output loop FF0 =1 means you start with the PID output just following the command. If all other PID parameters are 0, this is open loop but it should be close. Next the P and I term values can be added to correct any deviations in the open loop control
For a velocity command input, velocity PID output loop FF0 =1 means you start with the PID output just following the command. If all other PID parameters are 0, this is open loop but it should be close. Next the P and I term values can be added to correct any deviations in the open loop control
Please Log in or Create an account to join the conversation.
01 Oct 2018 18:45 #118308
by giz
Does this still apply if I am trying to control the position of the spindle instead of the velocity?
I experimented with the FF0 values in the .90 to 1.0 range and didn't see much of a benefit
Replied by giz on topic Lagunmatic 3516-SX Retrofit
I think for spindles you should always start with FF0=1 only
For a velocity command input, velocity PID output loop FF0 =1 means you start with the PID output just following the command. If all other PID parameters are 0, this is open loop but it should be close. Next the P and I term values can be added to correct any deviations in the open loop control
Does this still apply if I am trying to control the position of the spindle instead of the velocity?
I experimented with the FF0 values in the .90 to 1.0 range and didn't see much of a benefit
Please Log in or Create an account to join the conversation.
01 Oct 2018 18:52 #118309
by PCW
Replied by PCW on topic Lagunmatic 3516-SX Retrofit
No, for position control but velocity PID output (to VFD in this case), you want FF1 = 1.0 and typically FF0 =0
Please Log in or Create an account to join the conversation.
01 Oct 2018 19:01 #118312
by giz
I'll add these tonight and see how it affects the performance. Thanks!
Replied by giz on topic Lagunmatic 3516-SX Retrofit
No, for position control but velocity PID output (to VFD in this case), you want FF1 = 1.0 and typically FF0 =0
I'll add these tonight and see how it affects the performance. Thanks!
Please Log in or Create an account to join the conversation.
30 Oct 2018 19:04 #119654
by giz
Replied by giz on topic Lagunmatic 3516-SX Retrofit
Haven't had a chance to implement the suggestion above yet. Between the building of my new place, trying to move my parents, and other life stuff just haven't had time to get on the mill at all.
Have to admit - the struggles with the orient have really discouraged me as well. This has been a long journey and I naively thought I was close to finishing
Right now I'm mostly thinking about how I am going to move this damn thing. I don't have a budget for a real rigger so right now I'm thinking about hiring a tow truck to winch the machine up while rolling on pipes. And at my new place, using my truck to winch it into the garage the same way.
Have to admit - the struggles with the orient have really discouraged me as well. This has been a long journey and I naively thought I was close to finishing
Right now I'm mostly thinking about how I am going to move this damn thing. I don't have a budget for a real rigger so right now I'm thinking about hiring a tow truck to winch the machine up while rolling on pipes. And at my new place, using my truck to winch it into the garage the same way.
Please Log in or Create an account to join the conversation.
Moderators: cncbasher
Time to create page: 0.093 seconds