Sebastian Kuzminsky wrote:
> Sounds good.  Your encoder has 512 lines, so it produces 2048 pulses per 
> revolution.  Your machine is metric, so INPUT_SCALE is counts/mm, which 
> is 2048 counts/rev / 2.5 mm/rev = 819.2 counts/mm.
Yes, luckily I was able to verify this with my logic analyzer - the 
company selling the units specified 500 lines ...
>> Somehow I can not get my motors working from this point on. Anything I 
>> do results in a "joint following" error. As soon as I power my motor the 
>> slightest push on the motor results in the error.
>>     
>
> It's expected that with the machine *out* of E-stop, manually turning 
> the leadscrew should cause a following error.  After all, emc2 now 
> thinks it's controlling the machine, and it made an un-commanded move. 
> So that's good too.
>   
Anything includes doing a jog move.
With INPUT_SCALE = 81920 everything worked. The motors moved as 
commanded even with jog speeds of 18 mm/min (which is 720 rpm with the 
incorrect 0.025 mm/rev). But as soon as I set the INPUT_SCALE to 819.2 
(2.5 mm/rev) I can't get it to work. I thought that setting the 
OUTPUT_SCALE to 100 should do the trick since raw = output / 
OUTPUT_SCALE - at least that is how I read it from section 7.2.9.2 in 
the integrators manual.

How I got this:

    with an input_scale of 81920 one rev = 0.025 mm and a certain output
    results in 720 rpm being 18mm/min.
    The new input_scale setting of 819.2 results in 2.5 mm/rev so the
    same voltage to the motors now results in 1800mm/min.
    Since voltage = (output - offset)/scale, the scale should be 100
    times larger in order to create the same voltage for an output that
    is 100 times more.

But it looks like the output_scale and input_scale are part of the whole 
feedback loop since increasing the output_scale reduces the force that 
is needed to push the motor out of the commanded position.
Just in case I was wrong: I tried both output_scale = 100 and 0.01 
(original was 1.0), both result in a non-working system.
>
> Now you're in the tricky world of servo tuning...  This is something i 
> dont know much about, but i would start here:
>
>      <http://linuxcnc.org/docs/devel/EMC2_Integrator_Manual.pdf>
>
> Specifically, section 2.2 talks about servos and servo tuning.
>   
2.2 explains the basic concept. Section 29 goes a bit deeper into tuning 
of the PID constants but OUTPUT_SCALE and MAX_OUTPUT are not mentioned 
over there.
If the PID tuning is done for a given system I should be able to change 
the unit dimensions without touching the PID parameters: PID parameters 
are dependent on the electronic and the mechanical properties, not the 
unit size.

Rob


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to