If the output of the PID controller is force ad the measured feedback is
the position, a P only controller will always oscillate.  Friction will
damp it eventually.   A negative "D" will reduce the velocity and help with
overshoot and "I" is required if the final result has an offset.

The root cause is the force is a couple of steps removed from
the position.

If you want the system to go full speed then slam on the brakes at the last
minute and hit the marks then you need a controller that has a physical
model of the system and use that to predict the future and plan ahead.  PID
is always reactive.  It can't look ahead.

But PIS can come close.   After you get P tuned "close" try "D" and
depending on how it is wired may be negative

On Tue, Dec 8, 2020 at 4:42 PM Gene Heskett <ghesk...@shentel.net> wrote:

> On Tuesday 08 December 2020 19:05:52 Chris Albertson wrote:
>
> > What next?  You have set P-gain but what about I and D gains?
> >
> That has been tried, gently, but doesn't seem to have the desired effect.
>
> > On Tue, Dec 8, 2020 at 12:49 PM Gene Heskett <ghesk...@shentel.net>
> wrote:
> > > Lo all;
> > >
> > > I'm back to playing with the servo again, following John Thorntons
> > > instructs from the wiki article.  And I note a couple things.
> > >
> > > 1. The pid_a.FF1 value has little or no effect on the amplitude of
> > > the error. So that probably needs addressed by educating me on how
> > > its calculated.
> > >
> > > 2.pid_a.FF2 isn't working as that article says it should, a little
> > > effect on the shape but zero effect that would lead to a zero error
> > > when cruising
> > >
> > > 3. pid_a.Pgain effects the amplitude of the error signal, with about
> > > 350000 being the onset of a low level oscillation, about 10% when
> > > cruising.  But its also the lowest error at 15 to 20 millivolts.
> > >
> > > 4. I am getting some improvement. but nothing like the pix on that
> > > wiki article.
> > >
> > > It explains that pid_a.FF1 should be 10/velocity@10V (velocity is in
> > > machine units per second).  Since I do not yet have the motor
> > > actually moving the BS-1 clone, nor have I managed to get a home
> > > switch set up so I can actually measure the scale, the scale
> > > temporarily set is likely wrong. Since I've 2 worms in series, for
> > > playing I've a high value set for scale, 5000. With the encoder on
> > > the back of the motor it could well be higher than that.
> > >
> > > But no combination of numbers results in a cruising error of zero,
> > > its alway plus at cruise speed.
> > >
> > > And if I go at more than about 30% high pwm, motor inertia causes
> > > the servo to use reverse to stop if I ask for more than 60 degrees a
> > > second. This use of reverse causes the supply, a 350 watt 24 volt
> > > switcher, to do a shutdown because it thinks is been crowbarred, and
> > > the powerdown to recover is around 3 minutes.
> > >
> > > I think I might have a way that will fix that as this driver can do
> > > crowbar the motor braking if the signals are re-arranged and fast
> > > enough. If I setup a hardware timer in the form of a a retriggerable
> > > ooneshot drive  from the pwm signal, which is running at 4
> > > kilohertz, or 250u-secs pulse is a 100% signal, but the timer
> > > timesout in 200 microseconds, it will time out and apply the brakes
> > > for whats left of the 250 microsecond pwm cycle if the pwn drops
> > > below 20%. This should slow the motor fast enough it will never
> > > actually use reverse to stop.  And that mode will never effect the
> > > psu.
> > >
> > > But first, what can I do about the ineffectiveness of setting FF1
> > > anyplace between .5 and 25. I think its effecting the motors
> > > cruising speed but has zero effect on the amplitude or shape of the
> > > error if enough Pgain is used to make it follow well.
> > >
> > > With Pgain at 250000 it cruises stably, with a reasonably flat top
> > > to the error, about 20 millivolts of error, but FF2 seems to have
> > > little effect on the initial overshoot, or the overshoot when
> > > stopping, and its the overshoot when stopping that is shutting down
> > > the supply unless I set max jog to below 60 so friction stops it.
> > > That 60 is about 1/3rd of what the motor can do in terms of output
> > > shaft rpms if fed its normal 24 volts.
> > >
> > > Anybody know what I should look at next?
> > >
> > > Thank you.
> > >
> > > Cheers, Gene Heskett
> > >
> > >
> > > --
> > > "There are four boxes to be used in defense of liberty:
> > >  soap, ballot, jury, and ammo. Please use in that order."
> > > -Ed Howdershelt (Author)
> > > If we desire respect for the law, we must first make the law
> > > respectable. - Louis D. Brandeis
> > > Genes Web page <http://geneslinuxbox.net:6309/gene>
> > >
> > > _______________________________________________
> > > Emc-users mailing list
> > > Emc-users@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/emc-users
>
>
> Cheers, Gene Heskett
> --
> "There are four boxes to be used in defense of liberty:
>  soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author)
> If we desire respect for the law, we must first make the law respectable.
>  - Louis D. Brandeis
> Genes Web page <http://geneslinuxbox.net:6309/gene>
>
>
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>


-- 

Chris Albertson
Redondo Beach, California

_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to