Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Scaling Motor Units
#1
Using a PowerBrickLV 5/15A

Hi, we realized that we do not reach the same accuracy when tuning a motor and scaling motor units to user units. It becomes worse as the the scaling increases. In the worst case we have ~26222 motor units per user unit. We assume that there are rounding errors causing the problem. Therefore we wondered if there is a function which allows us to work in raw motor units and get the position output in user units. Ideally we would also like to be able to input the acceleration and speed parameters in user units.
If it is not possible my workaround would be to have a plc running in the background which does the conversion, or is there maybe a best practice?

Best regards,
hannsx
Reply
#2
Are you adjusting your gains to compensate for changing your position scale factor? If you halve Motor[x].PosSf and Motor[x].Pos2Sf, then you should double all the servo loop gains besides Ki and Kfff.

It is generally a good idea to scale position units before tuning.


Attached Files Image(s)
   
Reply
#3
I tried to tune the motors In scaled units. From earlier experiments I learned that the scaling of the servo-parameters is not always inverse to the scaling. But maybe it was because of my bad tuning. So do the equations give an exact inverse relationship between PosSf, Pos2Sf and the servo - parameters? I did not expect that because the equations usually turns into one with the servo-parameters showing up in the nominator and denominator and maybe not in a linear way.
Reply
#4
Both the scale factors PosSf and Pos2Sf, and the gain terms are simple multiplications. For example, if you have Pos2Sf=1.0 and Kvfb=400, if you change Pos2Sf to 0.001 and Kvfb to 400,000, you will get the same result.

The double-precision (64-bit) floating-point math used here has so much resolution and range that there are no numerical issues in doing this type of change.
Reply
#5
(07-02-2019, 02:07 PM)curtwilson Wrote: Both the scale factors PosSf and Pos2Sf, and the gain terms are simple multiplications. For example, if you have Pos2Sf=1.0 and Kvfb=400, if you change Pos2Sf to 0.001 and Kvfb to 400,000, you will get the same result.

The double-precision (64-bit) floating-point math used here has so much resolution and range that there are no numerical issues in doing this type of change.

Ok, thanks - that should make it a lot easier.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)