Spindle orient PID tuning [re-solved, yay]
12 Jun 2022 04:19 #244970
by spumco
Replied by spumco on topic Spindle orient PID tuning? [So close but no dice]
PCW - thanks for giving this some thought.
I'm happy to trial a different config, but I'm at a loss regarding "add orient velocity and acceleration constraints"
I posted a non-lincurve setup earlier in this thread that was kind-of working(ish). Do you have an example of a 'standard' orient config with some suggested values?
Pretty much need my hand held through this one.
I'm happy to trial a different config, but I'm at a loss regarding "add orient velocity and acceleration constraints"
I posted a non-lincurve setup earlier in this thread that was kind-of working(ish). Do you have an example of a 'standard' orient config with some suggested values?
Pretty much need my hand held through this one.
Please Log in or Create an account to join the conversation.
12 Jun 2022 04:33 - 12 Jun 2022 04:35 #244971
by PCW
Replied by PCW on topic Spindle orient PID tuning? [So close but no dice]
I think the main issue using a PID to control a VFD for position control
is that the VFD is quite slow to react so feedback control is difficult,
Control should be improved with feed-forward (specifically FF1 =1 since the VFD
should have a linear and predictable speed vs command relation)
but effective feed-forward requires a actual motion profile not just a step in position
A limit2 component after the orient component would constrain the velocity and acceleration. but would likely need to be bypassed when not doing the final orient move (The limit 2 component would do the move from the random
start position to the orient position)
is that the VFD is quite slow to react so feedback control is difficult,
Control should be improved with feed-forward (specifically FF1 =1 since the VFD
should have a linear and predictable speed vs command relation)
but effective feed-forward requires a actual motion profile not just a step in position
A limit2 component after the orient component would constrain the velocity and acceleration. but would likely need to be bypassed when not doing the final orient move (The limit 2 component would do the move from the random
start position to the orient position)
Last edit: 12 Jun 2022 04:35 by PCW.
Please Log in or Create an account to join the conversation.
12 Jun 2022 05:19 #244972
by spumco
I understand the first part.
Don't understand your second part. I have yet to wrap my brain around feed forward, despite reading multiple explanations.
And limit2 goes between orient.0.command and pid.o.command, or between pid.o.output and mux2.0.in? (mux is used for spindle or orient)
I'm reading the MAN page on limit2, but I don't really get the limit2.N.load pin. Is that a 'bypass' switch of sorts?
How do I bypass the limit2 after the move from random start?
Suggestions on limit2.N.min, .max, and .maxv?
Replied by spumco on topic Spindle orient PID tuning? [So close but no dice]
I think the main issue using a PID to control a VFD for position control
is that the VFD is quite slow to react so feedback control is difficult,
Control should be improved with feed-forward (specifically FF1 =1 since the VFD
should have a linear and predictable speed vs command relation)
but effective feed-forward requires a actual motion profile not just a step in position
A limit2 component after the orient component would constrain the velocity and acceleration. but would likely need to be bypassed when not doing the final orient move (The limit 2 component would do the move from the random
start position to the orient position)
I understand the first part.
Don't understand your second part. I have yet to wrap my brain around feed forward, despite reading multiple explanations.
And limit2 goes between orient.0.command and pid.o.command, or between pid.o.output and mux2.0.in? (mux is used for spindle or orient)
I'm reading the MAN page on limit2, but I don't really get the limit2.N.load pin. Is that a 'bypass' switch of sorts?
How do I bypass the limit2 after the move from random start?
Suggestions on limit2.N.min, .max, and .maxv?
Please Log in or Create an account to join the conversation.
- robertspark
- Offline
- Platinum Member
Less
More
- Posts: 915
- Thank you received: 216
12 Jun 2022 07:33 #244977
by robertspark
Replied by robertspark on topic Spindle orient PID tuning? [So close but no dice]
yes,
limit2.N.load
is a bypass / function ignore "pass through" pin
I am not sure when (what criteria) would toggle this
maybe a near component (it will stop the wiggle)
linuxcnc.org/docs/devel/html/man/man9/near.9.html
(following this with some interest but no knowledge .... so take the above regarding the "near" as maybe wrong!)
limit2.N.load
is a bypass / function ignore "pass through" pin
I am not sure when (what criteria) would toggle this
maybe a near component (it will stop the wiggle)
linuxcnc.org/docs/devel/html/man/man9/near.9.html
(following this with some interest but no knowledge .... so take the above regarding the "near" as maybe wrong!)
Please Log in or Create an account to join the conversation.
12 Jun 2022 15:31 #245003
by spumco
Replied by spumco on topic Spindle orient PID tuning? [So close but no dice]
Thanks Robert. While I'm waiting for PCW to get back I'll have a go with it - without the lincurve & limit2 - and see how it behaves with FF1 = ?
What's the worst that could happen?
What's the worst that could happen?
Please Log in or Create an account to join the conversation.
12 Jun 2022 15:37 #245004
by PCW
Replied by PCW on topic Spindle orient PID tuning? [So close but no dice]
FF1 will not work with step inputs to the PID (as the orient component outputs currently)
Please Log in or Create an account to join the conversation.
12 Jun 2022 16:02 - 12 Jun 2022 16:14 #245007
by spumco
And the limit2 needs some max, min, and maxv values.
And something to turn on/off the limit2 at some condition.
If I get a mostly working config I can eventually digest how the parts are working together, but since I don't know where to start I'm kind of stuck without an actual example. I'm still at the monkey-see, monkey-do stage with this sort of thing.
EDIT how does this look?
net orient-command <= orient.0.command
net orient-command => limit2.0.in
net orient-command-limit <= limit2.0.out
net orient-command-limit => pid.0.command
net orient-limit-switch <= pin.0.mystery
net orient-limit-switch => limit2.0.load
setp limit2.0.min = ???
setp limit2.0.max = ???
setp limit2.0.maxv = ???
Replied by spumco on topic Spindle orient PID tuning? [So close but no dice]
Ok, I need a limit2 in between pin.N.something and pin.N.something-else.FF1 will not work with step inputs to the PID (as the orient component outputs currently)
And the limit2 needs some max, min, and maxv values.
And something to turn on/off the limit2 at some condition.
If I get a mostly working config I can eventually digest how the parts are working together, but since I don't know where to start I'm kind of stuck without an actual example. I'm still at the monkey-see, monkey-do stage with this sort of thing.
EDIT how does this look?
net orient-command <= orient.0.command
net orient-command => limit2.0.in
net orient-command-limit <= limit2.0.out
net orient-command-limit => pid.0.command
net orient-limit-switch <= pin.0.mystery
net orient-limit-switch => limit2.0.load
setp limit2.0.min = ???
setp limit2.0.max = ???
setp limit2.0.maxv = ???
Last edit: 12 Jun 2022 16:14 by spumco. Reason: wild guess
Please Log in or Create an account to join the conversation.
12 Jun 2022 16:18 - 12 Jun 2022 16:18 #245009
by PCW
Replied by PCW on topic Spindle orient PID tuning? [So close but no dice]
Basically what you want is for the orient motion to be a simple trapezoidal motion profile
so that even without any feedback, (and mainly just feed-forward) you end up at
approximately the right endpoint. This means, much less is asked of the feedback
so you don't need as high gains and the integral term will not get a massive windup
as you get with a step motion command.
so that even without any feedback, (and mainly just feed-forward) you end up at
approximately the right endpoint. This means, much less is asked of the feedback
so you don't need as high gains and the integral term will not get a massive windup
as you get with a step motion command.
Last edit: 12 Jun 2022 16:18 by PCW.
Please Log in or Create an account to join the conversation.
12 Jun 2022 16:24 #245010
by spumco
Replied by spumco on topic Spindle orient PID tuning? [So close but no dice]
Thanks for the explanation, that was rather helpful understanding the goal and process.
Unfortunately, without details or starting values I'm not able to accomplish this.
Unfortunately, without details or starting values I'm not able to accomplish this.
Please Log in or Create an account to join the conversation.
13 Jun 2022 00:40 #245041
by PCW
Replied by PCW on topic Spindle orient PID tuning? [So close but no dice]
Actually limit3 is needed
Starting values for the bounds should be pretty easy to set
maxv is in RPS and maxa is in RPS/S
Starting values for the bounds should be pretty easy to set
maxv is in RPS and maxa is in RPS/S
Please Log in or Create an account to join the conversation.
Time to create page: 0.083 seconds