eccentric motor vibration

Asked by ytang

I have some questions below:

(1)Can we do the eccentric motor vibration movement?
(2) I found that it seems this engine: "HarmonicRotationEngine " can do some harmonic movement. If I want an object vibrates in the lateral direction and goes down in the vertical direction. Can I use the HarmonicRotationEngine+ Translationengine?
(3) I use this command line: HarmonicRotationEngine(A=10, f=2, fi =0, rotationAxis=[0,0.0,0.3],angularVelocity = 100, rotateAroundZero = True, zeroPoint = [0.1,0.1,0.1], ids = cylinderIDS), ########## By using this command I found that the body rotates back and forth from a top view, can we just make the body rotates in one direction?? I found that we can use the "Rotationengine" to rotate the object in one direction. but we can not set the amplitude and the frequency.

Here is a video about the eccentric movement I want to simulation in the lateral direction.
https://www.youtube.com/watch?v=emyonen04Tg

thanks!
Yong

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Anton Gladky (gladky-anton) said :
#1
Revision history for this message
ytang (ytang116) said :
#2

Hi Anton,

thank you very much for providing this information.
but I still have a question about how can we relate this Engine with the amplitude and frequency with the realistic eccentric motor. for instance, this paper[1] mentioned this motor has the amplitude and frequency.

reference:
[1]https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0175412

Revision history for this message
Launchpad Janitor (janitor) said :
#3

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
Jan Stránský (honzik) said :
#4

Hello,

you can do any motion composing translation and rotation.
In the MWE below, the point is to adjust translation(translationAxis and velocity) and rotation (zeroPoint, rotationAxis and angularVelocity) every iteration:
###
ids = O.bodies.append((
   sphere((0, 0, 0),1),
   sphere((0,-1, 0),1),
   sphere((0,+1, 0),1),
   sphere((0, 0,-1),1),
   sphere((0, 0,+1),1),
))
trans = TranslationEngine(ids=ids) # translation part
rot = RotationEngine(ids=ids,rotateAroundZero=True) # rotation part
O.engines = [
   ForceResetter(),
   trans + rot, # composed motion
   NewtonIntegrator(),
   PyRunner(iterPeriod=1,initRun=True,command="adjustKinematicEngines()"), # adjust the motion every iteration
]
O.dt = 1e-4
def adjustKinematicEngines():
   t = O.time
   trans.translationAxis = (0,0,1)
   trans.velocity = cos(2*t)
   #
   rot.rotationAxis = (1,0,0)
   z = .5*sin(2*t) # here integral of trans.velocity function
   rot.zeroPoint = (0,0,z)
   rot.angularVelocity = sin(1.6*t)+1
###

or you can use some existing (or implement a new one and then use it) kinematic engine dedicated for that motion.

cheers
Jan