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
0.02 this must be a mistake on my part

 


I guess the error was here
Werner_E_3-1643650947182.png

as you used the displacement per motor revolution and not per screw rev.

 

So it seems that the task is clear to me, unfortunately not the way how to solve it. I just became doubts about the method I sketched above as I would have two independent parameters to chose - the initial value for the velocity AND the constant velocity of alpha. It looks to me thats one too much. Maybe I'll see clearer tomorrow or one of my fellows here in he forum has a good idea 😉

 

BTW, what about my criticism that in your drawing small values of s would yield larger angles while in your sheet its the other way round. I guess that s should rather be the distance of the nut from a certain point near the motor/gear.
I made a model according to that but could not find dimensions which would yield results similar to those given in your sheet. So I suppose the real kinematics are somewhat more complicated and the drawing was just a simplification.

 

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.