Go Down

Topic: Motor with sinusoidal motion (Read 243 times) previous topic - next topic

kevin0007

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 :)

meltDown

( harmonic motion mean that the angular position of the motor is a sine function of the time).
. want the speed to be a sine function of the time.
Which?

Why don't you actually explain what you're trying to do?

(And see my #12 here)




MarkT

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 :)
This crude method can be used - it has issues when the result from millis() gets very large and/or wraps though:
Code: [Select]

float position = A * sin(K * millis()) ;
setPosition (position) ;

Details of how to drive the motor at a particular speed are omitted - presumably some sort of servo-loop is
needed in the motor control in the first place - which suggests start with a hobby servo as this already does
position control for you.

Doing position control with any other type of motor than a hobby servo or servomotor requires creating
your own servo loop using some sort of position and/or velocity sensing.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

kevin0007

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.

Image: https://ibb.co/zQ7dXx5

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 image2  below 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.

image2: https://ibb.co/Ld4XQmF

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!!

Slumpert

I would approach this with a stepper motor driving a belt that was wrapped around the "platten?".

Similar to a belt drive turntable.

The modern stepper controllers will give you lots of microstepping options and the belt will help smooth out the power delivery even further.


kevin0007

Hi, Slumpert thank for the input! any thoughts about motor controllers that allow that kind of motion? because I can't find any controllers(or maybe I'm blind) which allow me to controll stepper motor(or any motor) run with sinusoidal oscillation?
cheers

Slumpert


"Sinusoidal oscillation" is the result of -
Move to a fixed radian with an acceleration curve based on sine and speed.
Decelerate back to O angular movement using inverse of same formula.
Reverse direction.
Repeat.

Your code should control "off the shelf" motors and drivers to achieve that result.

Now sizing correctly might get tricky fast if this test chamber is bigger than a tuna fish can. 












 

Go Up