#emc-devel | Logs for 2008-01-20

[02:48:43] <jepler> maybe I'll just drag ingrid and petra to witchita and make them suffer
[03:39:43] <jmkasunich> combining scales plus encoders should be interesting
[03:39:53] <jmkasunich> I bet the scales have lower resolution
[03:40:03] <jmkasunich> so there might be some interpolation
[03:40:23] <jmkasunich> either that or deadband has to be set based on the scale resolution
[03:40:59] <cradek> hmm, deadband
[03:41:25] <cradek> they can't be separate can they
[03:41:45] <jmkasunich> deadbands? you could have two, one for each source of feedback
[03:41:47] <cradek> you would just use the lower resolution
[03:42:02] <jmkasunich> right
[03:42:30] <cradek> but what to do with it - say you're at the right count on the scale. you don't want to (for instance) disable I and leave the rest
[03:42:50] <jmkasunich> if you assume (for nice round numbers) that the scale is 0.001 per count, and the encoder is 0.0001 per count
[03:43:01] <cradek> I is wound up holding the axis there
[03:43:15] <cradek> ok
[03:44:22] <jmkasunich> in theory you could say "the scale changed from 1.234 to 1.235 at encoder position 1.3456, so if emc asks for 1.2354, I can add 1.2345-1.235 = 0.0004 to the encoder reading of 1.3456 to get 1.3460, and go there
[03:44:59] <jmkasunich> but that assumes that the edges of the 0.001 scale are located to 0.0001 precision, which they probably aren't
[03:45:16] <jmkasunich> so if the scale is your master position reference, you simply can't control to anything finer than the scale can read
[03:45:21] <cradek> I don't think you want this complexity
[03:45:27] <cradek> right, what you just said
[03:45:40] <cradek> the point of the scale is to compensate for slop everywhere else
[03:45:49] <jmkasunich> that means the encoder isn't being used for postion at all - its a velocity feedback device
[03:45:55] <cradek> yes
[03:46:22] <cradek> you probably really want tachs and a-d
[03:46:32] <jmkasunich> hard to say
[03:46:48] <cradek> I can't decide where P's feedback should come from
[03:46:50] <jmkasunich> encoder will suffer from quantization noise, tachs will have really small signals at low speed
[03:47:24] <jmkasunich> might have two P gains, Pscale and Pencoder
[03:47:33] <jmkasunich> then you can see what works best
[03:48:24] <jmkasunich> from a theoretical point of view, if things are scaled right, the overall P gain is the sum of the two
[03:48:40] <jmkasunich> so its trivlal to switch from all scale to all encoder to any split, without changing anything else
[03:49:30] <cradek> seems like ff* should be on the encoder
[03:49:37] <jmkasunich> yes
[03:50:06] <jmkasunich> actually, FF by definition doesn't use feedback
[03:50:07] <cradek> you can use them to get good tracking so the I term comes only from the 'slop'
[03:50:25] <cradek> oh, right, duh
[03:51:42] <jmkasunich> hmm
[03:51:42] <cradek> hm, if P doesn't come from the same feedback as I, I think it can't settle
[03:51:57] <jmkasunich> yeah it can
[03:52:14] <cradek> I will build up and overcome P to push the scale into position - then I will drop
[03:52:15] <jmkasunich> the integrator will wind up with P * (scale-encoder) in it
[03:52:23] <jmkasunich> I doesn't drop
[03:52:35] <jmkasunich> it simply stops climbing
[03:52:42] <cradek> oh right
[03:52:42] <jmkasunich> when error is zero
[03:53:07] <jmkasunich> I was just thinking about screw error comp - in a way, screw comp is feedforward for the slop correction term
[03:53:19] <cradek> uh I'm obviously not a pid expert
[03:53:27] <jmkasunich> you couldn't use it _and_ the scale together though
[03:54:04] <jmkasunich> its like you want to use uncompensated command and scale feedback for one error calculation (integrator, maybe P)
[03:54:20] <cradek> unless motion gives the current screw comp value so it can be subtracted back out from the scale error (ugh)
[03:54:21] <jmkasunich> use compensated command and encoder feedback for the other error calculation
[03:54:37] <jmkasunich> yeah, I don't think I want to go there (more hal pins on motion)
[03:55:04] <jmkasunich> if you have so much error that you need a scales AND comp, you need new screws
[03:55:08] <cradek> I don't see why you would need comp + scales
[03:55:44] <jmkasunich> yeah, forget I said anything
[03:56:21] <jmkasunich> comp and scales do the same thing, but comp does it offline based on a single calibration run, and scales do it online
[03:58:13] <jmkasunich> I wonder how fine the resolution of scales is?
[03:58:20] <jmkasunich> they have the odds stacked against them
[03:59:19] <jmkasunich> if you have a 5 tpi screw and a 1.5" diameter encoder disk, the lines in the scale have to be 23.5 times finer than the lines on the encoder disk to have the same resolution
[04:00:19] <cradek> I see scales in stuart's config are 10000 which is surely the motor encoder
[04:00:41] <jmkasunich> you have his config files?
[04:00:49] <cradek> http://www.mpm1.com:8080/machines/GandL/config/
[04:01:04] <jmkasunich> handy
[04:01:07] <cradek> they're a work in progress I think
[04:01:24] <jmkasunich> that brings up something I was wondering about
[04:01:34] <jmkasunich> is he gonna want to wait till mid feb?
[13:45:48] <christel> [Global Notice] Hi all! Just to let you know that there is scheduled maintenance taking place tomorrow; Monday 21st between 1200 and 1400UTC -- affected servers will be zelazny and niven and we encourage you to server hop prior to the downtime! Thank you for using freenode and have a great day!