#garfield Logs
Feb 26 2024
#garfield Calendar
08:02 AM rue_mohr: obfuscated_d,
08:14 AM rue_mohr: http://ruemohr.org/~ircjunk/tempimage/output.png
08:14 AM rue_mohr: did you see that one?
09:39 AM obfuscated_d: 0o0o that's kinda confusing to look at
09:49 AM obfuscated_d: what did you learn?
11:49 AM polprog: https://www.youtube.com/watch?v=df9YCg59l3Y
11:49 AM polprog: whats on the axes rue?
11:50 AM aandrew: so how do you interpret those colourful graphs
11:51 AM aandrew: and IIRC EGMK is a way to turn a regular old brushed motor with an encoder on the shaft into a stepper motor so you can give "direction + step" signals to it?
11:51 AM polprog: ohhhh now i get EGMK
06:15 PM rue_mohr: hahah, oh dear, it took this long?
07:08 PM aandrew: so are you modelling/guessing at the motor acceleration so you slam it into reverse some time 'x' before the setpoint where 'x' is some number of steps based on how long it's been going in the current direction?
07:08 PM rue_mohr: velocity
07:09 PM rue_mohr: so the profiling records the stopping distance as a function of velocity
07:09 PM rue_mohr: it turns the motor on, and uses that table to work out the expected stop position
07:09 PM rue_mohr: when it matches with the target, it puts the motor into full reverse until it stops
07:10 PM rue_mohr: and thats working
07:10 PM rue_mohr: BUT, now there needs to be 'holding'
07:10 PM rue_mohr: which would work by using a known timed pulse that moves the shaft a particular amount
07:11 PM rue_mohr: its trickey BECAUSE you cant wait for encoder feedback
07:11 PM rue_mohr: there is too much mechanical delay
07:11 PM rue_mohr: you have to know you pulse before hand, execute it and wait for the result
07:11 PM rue_mohr: which takes about 1.5ms
07:11 PM aandrew: you need a finer encoder or a way to oversample it in order to get fractions of a pulse
07:11 PM rue_mohr: no
07:12 PM aandrew: that's how both perceptron and NDI achieved subpixel accuracy on their imaging platforms
07:12 PM aandrew: but for them it also required gaussian light
07:12 PM rue_mohr: you can pre-record the behaviour
07:12 PM rue_mohr: thats what that chart is
07:12 PM aandrew: so there was a significant development effort involving getting the emitters to be perfect
07:12 PM rue_mohr: but what I didn't expect, was that it shows all kinda crazy resonances
07:12 PM aandrew: or in the case of NDI, getting the retroreflective spheres uniform
07:13 PM rue_mohr: this can be done
07:14 PM rue_mohr: its just not feedback, its feedforward
07:14 PM aandrew: you can't even really filter because that adds delay unless you do it digitally, but perhaps a brickwall filter at some fraction of the first resonance could help
07:14 PM rue_mohr: there ARE timed pulses that will move the shaft by downwards of 1 line
07:14 PM rue_mohr: just put out the known pulse for the current error and wait for its effect
07:15 PM rue_mohr: the colours in that chart are the amount of forward movement
07:15 PM rue_mohr: 1-16 counts
07:15 PM rue_mohr: white is the "more than 16"
07:16 PM rue_mohr: the X range is about 0.7ms and the Y is about 1.4ms
07:16 PM rue_mohr: those are REALLY small pulses
07:16 PM rue_mohr: feed forward
07:17 PM rue_mohr: "no" latency
07:17 PM rue_mohr: no Z^-1
07:17 PM aandrew: when I was doing feed forward current ramping, it was still in the PI loop, but the I was the feed forward
07:17 PM rue_mohr: *I know I'm a bit off from this, but who ever actually gets to ideal right?
07:18 PM rue_mohr: I want to know more
07:18 PM aandrew: i.e. you set a linear current ramp from 100% current to 600% current, and your actual SCR phase angle was the output of the PI loop
07:19 PM aandrew: with AC induction motors they would start to oscillate like crazy right as the motor came up to its slip speed and if your PI loop was trying too hard you could get some really weird hunting and surging as the phase angle would wobble back and forth to try to maintain the target current (where ever it was on the ramp, but usually near the end of it)
07:19 PM rue_mohr: what I like is the idea that in 1 control pulse, its repositioned the motor (this is for stepping keep in mind)
07:20 PM aandrew: and in that case that's where you had the I term clipped; you wanted it to be able to force the phasing on more but you didn't want it to be able to yank it back to the same amount
07:20 PM rue_mohr: yea ok
07:20 PM aandrew: so you "fed it forward"
07:20 PM rue_mohr: startup limit at 600%...
07:21 PM aandrew: it wasn't a "pure" PI loop and any academic would cringe and tell you it wasn't tuned right, but because these things would go on ANY motor and ANY application you didn't want a theoretically perfect PI loop, it was impossible
07:21 PM aandrew: well yes
07:21 PM rue_mohr: well, I'v learned there is no such thing as "just PID" so
07:21 PM aandrew: a typical NEMA B motor curve has a locked rotor current of about 600% of its rating
07:21 PM * rue_mohr nods
07:22 PM aandrew: and you had the electronic overload in there to protect the motor (drawing 600% isn't bad at all, as long as it isn't for long)
07:22 PM rue_mohr: I'm yet to properly grasp energy limits over time
07:22 PM aandrew: that is where I learned that ratings are almost always about heat and nothing more
07:22 PM rue_mohr: yea
07:22 PM aandrew: if you can manage the heat you can make semiconductors do absolutely crazy things
07:22 PM rue_mohr: when I did the overloads for my hexapod, i made them REALLY fast
07:22 PM rue_mohr: so 1 PWM pulse trips it
07:22 PM rue_mohr: :(
07:22 PM aandrew: tha's also how you make a regular old T9 LED draw 10A for a dozen microseconds without ever harming it :-)
07:23 PM rue_mohr: :)
07:23 PM rue_mohr: my cat is doing laps thru the house
07:23 PM Tom_L: it'll run out of gas soon
07:23 PM rue_mohr: out the kitchen door, in the bedroom window, back out the kitchen door...
07:23 PM rue_mohr: I have to open all these for it...
07:25 PM rue_mohr: I'v not reworked the overloads cause I dont know how to set the current-time curve
07:25 PM rue_mohr: so for like 12 years the hexapod has been sitting on the bench
07:25 PM rue_mohr: the motors will strip the gearboxes at much more than 1A
07:26 PM rue_mohr: obfuscate_d was good enough to offer to help me with EGMK, but I think he might be getting frustrated with how its going
07:28 PM rue_mohr: who wants to brainstorm things I need to do to succeed, given I transfer myself to a bot
07:28 PM rue_mohr: like before
07:28 PM rue_mohr: prep list
07:30 PM rue_mohr: rifraf, ?
07:31 PM rue_mohr: this weeks goal at work is to finish the fan VFD replacement
07:31 PM rue_mohr: got the old one removed today and prepped up the cables for the new one (and hung it)
07:32 PM rue_mohr: tommorow I should have all the signal wires hooked up
07:32 PM rue_mohr: maybe power cables on wed
07:32 PM rue_mohr: thurs for programming
07:32 PM rue_mohr: +-
07:33 PM aandrew: yeah there's electrical overload and then there's also mechanical overload
07:33 PM rue_mohr: so, on my overload
07:34 PM rue_mohr: I used a sense resistor and amp to 0-5V output, 2.5V centered, range +-2A
07:34 PM rue_mohr: two comparators set to +-1A
07:34 PM aandrew: I bought my son a really awesome/expensive RC car ($400) -- amazing how much punishment they are designed to take, they're a tribute to amazing mechanical engineering
07:34 PM rue_mohr: trip a 555, which operates a disconnect relay
07:34 PM aandrew: right, so you have less of an overload and more of a shear pin function
07:34 PM rue_mohr: the 555 allows for "tripped" output and a "reset" input
07:35 PM rue_mohr: but tripps with 1 pwm pulse
07:35 PM aandrew: I should still have my old PIC I2T overload code somewhere
07:35 PM rue_mohr: I^2*t!!
07:35 PM aandrew: you could simply stick an RC on the input of the comparators to slow it down
07:35 PM aandrew: yes I2T overload
07:35 PM rue_mohr: yea, but what kinda time?
07:36 PM rue_mohr: I mean, too long and I strip the gearbox
07:36 PM aandrew: "it depends" -- if you're modelling mechanical overload then that's not I2T
07:36 PM rue_mohr: yea
07:36 PM aandrew: it'd be interesting to put a force sensor on the servo horn and use that as the overload
07:37 PM rue_mohr: (vending machine coil turner motor)
07:37 PM rue_mohr: buddy III
07:37 PM aandrew: I mean motor current is directly proportional to shaft torque so you should be able to do it just from current
07:38 PM aandrew: buddy 3?
07:38 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/buddy_III/p1050598.jpg
07:38 PM Tom_L: iirc he named some of his bots that
07:38 PM aandrew: dammit now you're gonna make me search for my old CVS repositories
07:38 PM Tom_L: he creates his friends :)
07:38 PM rue_mohr: hahah CVS
07:38 PM aandrew: wow it's really hard to figure out what's all in that pic
07:39 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/buddy_III/p1020056.jpg
07:39 PM Tom_L: taking up alot of table space
07:39 PM rue_mohr: its legs are folded over in that other image for space
07:40 PM rue_mohr: http://ruemohr.org/~ircjunk/robots/buddy_III/p1020058.jpg
07:40 PM rue_mohr: that must have been a stress test, the middle legs are up
07:41 PM rue_mohr: buddy IV was going to be an 8 legged battle bot
07:41 PM rue_mohr: but then they stopped doing battle bots on tv
07:41 PM aandrew: found it
07:42 PM aandrew: wow, 1996
07:42 PM rue_mohr: flies by eh?
07:42 PM rue_mohr: https://www.youtube.com/watch?v=Gg7K5X-_r2o <-- 14 years ago!!!
07:53 PM rue_mohr: well, I'm super tired after the sleep schedule reset
07:53 PM rue_mohr: need supper, but dont want to eat
07:53 PM rue_mohr: never ends well
07:54 PM rue_mohr: oh and I need to go to bed early cause I'm going to wake up early tommoorw
07:54 PM rue_mohr: so Rue, whats for supper eh?
07:55 PM rue_mohr: rice it is then
08:56 PM rue_mohr: aandrew, what surprises me are how slow things move
08:56 PM rue_mohr: in processor-time
08:59 PM aandrew: yeah it's a blessing
09:06 PM rue_mohr: but it allows you to observe the motor theu a time machine
09:06 PM rue_mohr: and you can control it
09:06 PM rue_mohr: you can watch it and know just whats its going to do
09:07 PM rue_mohr: and even the uncertianty becomes narrow, cause there are limits to the acceleration
09:07 PM rue_mohr: motor and load
09:08 PM rue_mohr: skunkworks, say "something" I have a lurker hangup
09:13 PM aandrew: yep I love it, one of the things I like best about embedded work
09:13 PM aandrew: the timescales are generally so fast that it looks like magic