I need to run a motor to have a harmonic motion with specified amplitude and frequency ( harmonic motion mean that the angular position of the motor is a sine function of the time). I’m Looking to do a specified number of sinusoidal oscillations. I don't know how to tell the motor that I want the speed to be a sine function of the time. Any ideas? Also, I’m still beginning of the project? Hence I’m pretty flexible to choose any motors (DC/servo/stepper/ brushless motor) or any controller but the system has to be precise. If you guys know what controllers that allow that kind of motion, please let me know! Thank you :)

EDIT: so what I'm trying to do is making rheometer which measures the rheological properties of a material. Basically, there are two measuring methods available: Rotational tests and oscillatory tests. With rotational measurements, the measuring bob turns in one direction. In an oscillatory test, the measuring bob "oscillates" around the axis. enter image description here

what my focus is to with oscillatory tests with set sinusoidal oscillation. The basic principle of an oscillatory rheometer is to induce a sinusoidal shear deformation in the sample and measure the resultant stress response; the time scale probed is determined by the frequency of oscillation, ω, of the shear deformation. In a typical experiment, the sample is placed between two plates, as shown in the below image While the top plate remains stationary, a motor rotates the bottom plate, thereby imposing a time-dependent strain γ(t)=γ ·sin(ωt) on the sample. Simultaneously, the time-dependent stress σ (t) is quantified by measuring the torque that the sample imposes on the top plate.

enter image description here

So to able to do above testing I need to run the motor with sinusoidal oscillation with exact angle.Hope you get it what im trying to say? does anyone know any motor controllers that allow that kind of motion ? or any hints how do i wet my feet? cheers!!

  • 1
    what does precise mean? – jsotola Aug 14 '19 at 5:15
  • it is unclear how you want the motor to behave .... please draw a diagram that explains what you are asking ... if possible, describe the project – jsotola Aug 14 '19 at 5:20
  • Sounds like a stepper with lots of microsteps (TMC with interpolation) to me. – towe Aug 14 '19 at 7:38
  • 2
    A motor with constant speed produces a precise sinusoidal movement if you look at it form the side :) – DataFiddler Aug 14 '19 at 11:03
  • 1
    See en.m.wikipedia.org/wiki/Scotch_yoke – Razvan Socol Aug 14 '19 at 15:59

Your best option would be:

  • To have a DC motor with a reduction box so that it spins at lower speeds (Lets say 300 rpm) and have an encoder to count the steps. Either put the encoder before the reduction box (here it can be used a low resolution encoder, like 16 positions) or after the reduction (here you would like a more precise one, such as those 1024 positions).

  • To have a Stepper motor, which will give a good angular control as long as it doesn't misses steps (if there is too much torque it will halt its movement, and you will lose count of the angle you have already displaced).

Now, to get the motor to move in a way that its angular position is of the form theta(t) = A*sin(ωt) you would have to write some code that moves the motor to each position you want. And the difficulty of it will depend a lot on the amplitude (A) and angular speed (ω) you require.

Obs: feel free to alter/add info here

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.