I do not know how to use AnyKinEqFourierDriver this functiuon.Can you give me an example of how to use it?
Have a look in the reference manual, the function is described there.
Search for Demo.Drivers, where you will find an example file.
In SeatedHuman.demo,I want to make the BackRest move as y=20sin(2pit),but the script I write always wrong.
AnyKinEqFourierDriver BackLoad=
{
AnyJoint &ref = Main.Model.EnvironmentModel.Jnt.Right.BackArmRestJoint.BackNode;
Type = 1;
Freq = 0;
A = {{0},{0.02},{0}};
B = {{0},{0},{0}};
};
I don’t know why.
Hi,
first of all you are trying to drive a reference node with the Fourier driver. This will not work since you can only drive kinematic measures which are e.g. used in joints.
My suggestion would be to exchange the GlobalBackRestDrv in the SeatedHuman model for your purpose which is possible easiest. Therefor, you can just exchange the type of the driver to AnyKinEqFourierDriver and put in the required definitions for this type of drivers which is the Type, Frequence, A and B as you already did in your code. Since the original driver uses a measure organizer which specifies the coordinates used from the measure in the driver, you only need to drive one coordinate with the driver. Thus, you will get a driver like this
AnyKinEqFourierDriver GlobalBackRestDrv = {
AnyKinRotational rot = {
AnyRefFrame &Back = Main.Model.EnvironmentModel.Seg.BackRest;
Type = RotAxesAngles;
};
MeasureOrganizer = {0};
// DriverPos = {.DrvPos.GlobalBackRestRotZPos*pi/180};
// DriverVel = {.DrvVel.GlobalBackRestRotZVel*pi/180};
Reaction.Type = {On};
Type = 1;
Freq = 1;
A = {{0, -0.2}};
B = {{0, 0}};
};
Best regards
Daniel
Why when I run this,it told me that Model is kinematically over-constrained : Position analysis failed : 1 unsolvable constraint(s) found
?
Hello,
that is interesting. I just made this changes in the Seated Human model of AMMR 1.6 and it works fine for me. Which version of AnyBody and AMMR are you using? Have you added other things to the model which could cause this problem?
To debug this problem, you could also have a look into the tutorial “Getting Started: Modelling - Lesson 3: Making Ends Meet”. There it is explained how to debug the constraints of a model.
Best regards
Daniel
I use the version 1.6,maybe I change something. Thank you very much.
After running this program,I thought the backrest will move as y=20sin(2pit),but in the chart,the omega of backrest is 0.Is there need any other change?
Hello,
I cannot reproduce your problem. Which Fourier coefficients are you using? Can you see the backrest moving in the ModelView? What other changes did you apply?
Best regards
Daniel
I only add " #include “Model/VibrationAndDrivers.any”.I change nothing in the SeatedHuman.demo in AMMR1.6.
I can not see the backrest move.I upload the program and can you tell me I wrong where?
I cannot see the model load without any other changes than including the file you uploaded. You must have at least excluded the other drivers, otherwise the model is kinematically indeterminate.
What is the purpose of this model? If you just want to change the movement of the seat, I recommend to only change the drivers in the Environment.any file which should be easiest to start with.
Hello,
i want to create a whole body vibration in airline passenger model (or seated human model) exist in AMMR, so i decide to use AnyKinEqFourierDriver for moving of seat, however model load successfully, but appear error in kinematic analysis.
my added code:
"
AnyKinLinear seatPos =
{
AnyRefFrame &Ground = …GlobalRef;
AnyRefFrame &Seat = …Seg.Seat;
};
AnyKinEqFourierDriver SeatGlobalDrvX =
{
MeasureOrganizer = {0};
Type = Cos;
Freq = 1;
A = { {.5,.003} };
B = { {0,0} };
AnyKinMeasure &Seat = .seatPos;
Reaction.Type = {Off};
// Reaction.Type = {On};
};
"
Q1- for modeling of whole body vibration , what is the best choice?
Q2- how can i eliminate that error ? what is my code problem
Q3- in these models,between contact points that define between seat or backrest and body, and body exist relative motion with friction or these points are adhere to body?
Q4- can i define new point like femour point instead pelvis point?
Thanks
Mehrdad
Hi Mehrdad ,
Q1) I guess that AnyKinEqFourierDriver for ‘slow’ vibration may be OK.
But please keep in mind that AnyBody may not be prepared for ‘fast’ vibration situation.
Q2) If you want to control the vertical displacement of the seat segment,
then you need to free at least 1 DOF in the model.
Q3, Q4) It’s up to you regarding how you would like to distribute(define) the contact points between human and seat. There is no absolute answer.
I hope that this may be helpful to you.
Best regards,
Moonki