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

Non linear speed control

  • January 31, 2022
  • 2 replies
  • 6690 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

 

25-Diamond I
January 31, 2022

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.

 

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?

 

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".

 

What still confuses me is this:

Your example (with the 10 degree angle) using constant motor speed of 0,287 rev/s moves the nut for a distance of 2.682 mm in 135.436 seconds. Thats a speed of 0.02 mm/s.

As I understand it thats the constant (maximal) speed of the nut if the motor runs at full speed

Werner_E_0-1643643448487.png


But what is the meaning of the v.vis_vss33 = 0.575 mm/s shown in your sheet??

Werner_E_2-1643643506118.png

 

 

 

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.