On Tue, 27 Nov 2007, Marc van Doornik wrote:

> Date: Tue, 27 Nov 2007 09:22:51 +0100
> From: Marc van Doornik <[EMAIL PROTECTED]>
> Reply-To: "Enhanced Machine Controller (EMC)"
>     <emc-users@lists.sourceforge.net>
> To: emc-users@lists.sourceforge.net
> Subject: Re: [Emc-users] Paging doctor P.I.D. Guru
> 
> Thanks for your replies, everyone. I've been away from work for the
> weekend, hence the somewhat late reply. In response to some of the
> comments, though:
>
> To begin with, the stage is basically a turn-key stage, which is why the
> output resolution is so high. IIRC, it's the lowest resolution they had
> available. That is, the encoders themselves have a 20 micron resolution,
> but stock 200x multipliers/interpolators are connected between the
> encoder output and Motenc-Lite input, thus giving 0.1 micron resolution
> to deal with. The motor amplifiers etc. all come with the stage, so they
> are a proper match.
>
> Now, I am well aware that running such a monster while not being able to
> cope with the encoder counts the table COULD generate at max grunt is
> very dangerous, which is exactly why I turned to you. I don't intend to
> have it run at the maximum velocity of 2m/s, nor am I trying to overcome
> the static friction of the bearings (which closely matches the dynamic
> friction) with a large amount of velocity, that just doesn't make sense.
> I was just wondering how to get rid of the hysteresis in the system. Let
> me explain this here.
>
> In a spindle stage, there's a fairly rigid relationship between the
> motor position and the position of the load. With good quality spindles,
> there may be a couple of microns to 0.01 mm backlash, but that's pretty
> much it. In the case of a linear motor, this doesn't quite hold true
> anymore. The motor position is actually the phase position of the
> magnetic field (which is obviously also the case with a standard rotary
> motor, but the pole period is a lot smaller), with the only coupling
> between 'motor' (field) and load being a magnetic 'spring'. So imagine
> your load rolling on a set of bearings with a certain amount of
> friction. Your motor is trying to move this load, but it's connected by
> a spring instead of a rigid connection. In the case of our stage, the
> field position can move approximately 1.2 mm (!) before the load
> actually moves. With a max. velocity of 200mm/s, this is quite a long
> time in case of a change of direction.


I dont see that there would be much difference between a linear and a rotary 
motor in this respect. Commonly PMSM's have 4 poles, I wouldn't think a linear 
motor would have fewer.



>
> What it boils down to is this question: what is the quickest way to
> remove this 1~1.2mm hysteresis/backlash without being limited to 200mm/s
> **for the purpose of backlash removal ONLY**.
>
> Fortunately, I think I've found the answer. Given the fact the motors
> are directly commutated (and the field can move 'infinitely' fast) and
> the friction and hysteresis are nearly constant (which I've verified by
> measurement), it's possible to add backlash compensation to the
> three-phase motor driver component. Right now, I am thinking about
> applying an offset (0.5 * backlash) to the field phase according to the
> commanded velocity/acceleration. This way, it basically gets a preload
> in the proper direction, even before the PID loop actually has to worry
> about it. Another way of seeing this is the 'motor' (field, actually)
> jumping to the correct position for compensating the backlash in an
> infinitely short time, after which it will immediately switch to the
> commanded velocity, which can be safely limited to, say, 175mm/s.

Are the linear motors really driven with a variable pahse relative to the 
reference phase?
I would think its more likely that the drive phase changes abruptly (+-90 
degrees from the reference phase) To generate the maximum force per applied 
current (Maximize IQ and minimize ID). 'Abruptly' of course limited to VBUS/L.

Feedforward can help with the friction, but if the acceleration capability of 
the system is really high (short mechanical time constant) I would think its 
more important to set your servo period short enough that the PID loop can 
really control the position.

Also I think feedforward makes runaway (if you exceed your encoder counters 
maximum count rate) more likely.




>
> Does this make sense or do I really need to get me some coffee now? ;-)
>
> Marc.
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>

Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
(")_(") signature to help him gain world domination.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to