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

Non linear speed control

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

English isn't my native language, too (I'm German speaking) but as my French is even worse (not to say non-existent) English seems to be the best choice anyway (a big "thanks!" to Google translate from me at this point). Furthermore the reason for me not understanding exactly what you are looking for may also be because I am not a mechanic guy and so my lack of expertise sure adds to the uncertainty.

The times you calculate for the travel from 0 t0 10 degree or from 10 to 60 degree are calculate for maximal motor speed.

When you demand "linear travel time" I guess you mean that you want to control the motor  in a way so that the angle should change at constant speed, correct? (A constant motor speed would mean that the displacement s changes at constant speed which is not what you want).

The i.gear=29 means that the transmission (reduction) ratio is 1:29, so we never deal with the 500 rpm, right?

But why are you asking for the maximal motor speed of that travel - its determined by the motor characteristics and is 0.287 rev/s in any case as I understand it.

 

I am not absolutely sure, but I guess it could be beneficial to create a true function alpha(s)=.. or maybe the inverse  s(alpha)=...
Doing so could either be done by interpolation (linear or spline) or by a fitting function. In case of the latter it would help if you know some characteristics about the relationship between s and alpha to chose the appropriate type of function for the regression.

ttokoro
21-Topaz I
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.