Hi all,

I have been managing with a work-around, but am now getting back to this. I
am working from the below response from Dewey from a few months back.

It looks to me from the below response that encoder_scale maps to
INPUT_SCALE and amplifier_scale to OUTPUT_SCALE under the axis parameters in
the ini file.

My encoder gives me 428 counts per degree or 157680 counts per revolution,
so I changed INPUT_SCALE to 157680 and OUTPUT_SCALE to 1/360 or 0.002777. In
the event I had OUTPUT_SCALE inverted, I also tried setting it to 360.

Both result in actual movement much larger than that commanded. My question
is, am I adjusting the correct parameters, or is it something else that I
should be adjusting.

Thanks,
Eric

 


To expand on Peter's remarks:

The open loop gain of a system is the product (GH) of the forward
(G) and feedback (H) transfer functions.

You can alter static scaling terms without changing the P,I,D values as long
as the loop gain (GH) _product_ is the same.

The encoder_scale (units/encoder_counts) is a reciprocal term in the feedack
transfer function, e.g., H is proportional to (1/encoder_scale).

Similarly, there is usually an amplifier scale factor that is a reciprocal
term in the forward gain, e.g., G is proportional to 1/amplifier_scale.

For a position loop with an interior velocity loop (or something as common
as a voltage-controlled permanent magnet dc motor where no-load speed is
approximately proportional to the input voltage), it is convenient to make
the amplifier_scale equal to the maximum system output velocity in
units/second.  This scaling makes the derivative feed forward term (FF1)
nominally equal to one.

For example, if you have the following position servo system with an 800
count encoder mounted on the motor, a 6000rpm=36000 degs/sec maximum motor
speed, and choose to scale in units of motor degrees:

          units: degree
  encoder_scale: 800/360 = 2.222 (counts/degree)
amplifier_scale: 36000           (degrees/sec)
        product: (1/2.222) * (1/36000)  = 1/80000

The same P,I,D gain terms would apply for the system re-scaled with
engineering units==revolutions with new encoder and amplifier scalings:

          units: revolutions
  encoder_scale: 800/1 = 800  (counts/revolution)
amplifier_scale: 100          (revolutions/sec)
        product: (1/800) * (1/100) = 1/80000

Similarly, if there were a belt drive of 1:4 and a screw with
0.2 lead and you wanted the output scaled in inches traveled by a nut on the
screw:

          units: inches
  encoder_scale: 800 counts/motorturn * 4 motorturns/screwturn * 1
screwturn/0.2 in
                 =  800 * 4 / 0.2 = 16000 counts/inch
amplifier_scale: 5 (in/sec)
        product: (1/16000) * (1/5) = 1/80000

When rescaling, deadband (in the engineering units) would typically also be
re-adjusted as a few counts * (1/encoder_scale).

Note also that the equivalence of P,I,D terms for different scalings assumes
that the system dynamic characteristics (inertia and damping) are _not_
modified.
--
Dewey Garrett


----------------------------------------------------------------------------
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to