Skip to main content
14-Alexandrite
January 31, 2022
Question

Non linear speed control

  • January 31, 2022
  • 2 replies
  • 6691 views

Hi community , Once again I call on you .

my problem:

I have a mechanism with a non-linear movement

in input, I have a linear displacement, and in output I have an angular displacement

this displacement follows a behavior curve

curve.jpg

 

I want to drive the input with a motor, so here is my problem.

I want to find a max speed value of motor to reach a given angular position. But also that time is linear

 

that is to say, if I want to go from 0 degrees to 60 degrees (for example) what will be my lowest linear displacement time (constant speed value at output), and what will be my motor control curve

 

the solution I found is cut the curve with linear parts,but I don't really like it because it's DIY

I don't see the way to get there, maybe with the derivative

 

If someone has an idea

 

 

 

2 replies

25-Diamond I
January 31, 2022

I don't see your attempt in the file you sent.

As far as I understand you are looking for a function

alpha -> speed in rev/s

Can you show the calculations necessary and the result for one or two example angles?

XDN14-AlexandriteAuthor
14-Alexandrite
January 31, 2022

I'm having trouble explaining myself because I don't speak the language well.

example

if i want to move Alpha =60deg ( row 61 in alpha matrix)

the imput stroke is  32.355mm (row 61 in s matrix)

 

For 1 motor rev  the imput stroke is :0.069mm

Capture d’écran 2022-01-31 130442.jpgFinally, i need to make 32.355mm

and so my motor must do 32.355/0.069 = 468.913 rev

 

max motor rev speed :0.287 rev/s but is non linear

if i cut the curve, and if that I admit a linear part from 0deg to 10deg

for 10 deg  , imput is 2.682mm

2.682/0.069=38.87rev

time is :135.436s    for travel 0 to 10deg

and now i assume my curve is linear from 10deg to 60deg

imput stroke 60deg =32.355mm

imput stroke 10deg = 2.682mm

32.355-2.682 = 29.673mm

29.673/0.069= 430.043rev

430.043/0.287=1498s

I don't know if I'm clear, but I want to come to this:

find max speed motor for each target value (row of alpha matrix) for a linear travel time

i want to move 0deg to 60deg with lineartravel, for this I can see that my motor must turn slowly at the beginning, then as quickly as possible at the end

the max speed end is 0.287rev/s so it is this value which is measured to evaluate the speeds at small angles

 

sorry for these confusing explanations, I think there may be a way with the derivative, but I can't find anything

 

XDN14-AlexandriteAuthor
14-Alexandrite
January 31, 2022

yes, you have undestand !

 

"Seeing the kinematics seems to make it clearer for me.

The goal is to move the orange part to a specific angle position as fast as possible but with constant speed (of the orange part) which means variable speed of the nut"

yes

 

"The relationship between the motor speed and the speed of the nut is linear and the max speed of the motor is about 0,287 rev/s.

Is this correct so far?"

yes

 

 

"Is the desired movement always from the zero degree position to a certain angle or can the starting point be different to zero? Lets say something like "move the orange part from 70° position to 25° position"

yes

 

For the rest I may have made typing errors.

 

in my sheet:

the screw is : Ø6x2

for one rev, the nut travel 2mm thanks to the helical connection

the max speed motor is 500rpm

the max speed output gearbox is  0.287rev/s (with mechanical ratio i=29)

v.vis_vss33 = 0.575 mm/s  mean the nut velocity translation

ttokoro
21-Topaz I
February 12, 2022

As Fred Kohlhepp already mentioned, using polyfitc function, you can use to do next step mathematically.

Tokoro.

t.t.