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

Non linear speed control

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

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

One revolution of the screw, after the gear box, not one revolution of the driving motor, right?

 

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

Still unclear to me. Is this a fictive velocity of the the nut if there would be no gear box and the real nut velocity is 0,02 mm/s as shown??

 

Anyway, here are my thoughts so far and I in no way claim that I am on the correct way with them. At least its an explanation why I thought it might be helpful to have a function alpha(s), either by interpolation or by regression. Of course as you probably know all dimensions of your mechanics, you may also derive the exact function alpha(s) using basic geometry.

Werner_E_0-1643645874755.png

 

BTW, your drawing doesn't seem to match the values given in you sheet.

Werner_E_0-1643649309675.png

According to your drawing small values of s would yield larger angles. in your sheet the opposite is the case!

 

 

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.