|
a |
|
b/Application/Examples/AirlinePassenger/AirlinePassenger.main.any |
|
|
1 |
#include "../libdef.any" |
|
|
2 |
|
|
|
3 |
/** -------------------------------------------------------- |
|
|
4 |
This is a model of a coach class airline passenger seat |
|
|
5 |
characterized by the following: |
|
|
6 |
- No arm rests (you always lose the battle for the armrest |
|
|
7 |
to the person next to you) |
|
|
8 |
- Horizontal seat pan |
|
|
9 |
- Limited ability to incline the backrest due to the lack |
|
|
10 |
of clearance to the person behind |
|
|
11 |
|
|
|
12 |
The model assesses the comfort of the passenger in terms of |
|
|
13 |
the following: |
|
|
14 |
- Muscle effort computed as the percentage of maximum |
|
|
15 |
voluntary contraction to maintain the given posture. |
|
|
16 |
- The total shear force between the seat pan and the |
|
|
17 |
buttocks of the passenger. Shear forces are known to |
|
|
18 |
cause particular discomfort in static loading situations, |
|
|
19 |
typically as when the passenger tries to sleep. |
|
|
20 |
|
|
|
21 |
The posture of the passenger is controlled by the backrest |
|
|
22 |
angle. The backrest offers pressure support for the back |
|
|
23 |
of the human model but no tension support. This means that |
|
|
24 |
forward leaning postures are realized by inclining the |
|
|
25 |
seat forward and the body is not getting any support from |
|
|
26 |
the backrest in this situation. |
|
|
27 |
|
|
|
28 |
The inverse dynamic analysis of the model inclines the |
|
|
29 |
backrest backwards from an initial 10 degree forward |
|
|
30 |
inclination to a 30 degree backward inclination, which |
|
|
31 |
is on the very upper limit of coach class passenger seats. |
|
|
32 |
-------------------------------------------------------- */ |
|
|
33 |
Main = { |
|
|
34 |
|
|
|
35 |
// ---------------------------------------------------------- |
|
|
36 |
// Model input parameters |
|
|
37 |
// ---------------------------------------------------------- |
|
|
38 |
#include "Model/InputParameters.any" |
|
|
39 |
|
|
|
40 |
// ---------------------------------------------------------- |
|
|
41 |
// Path to draw settings |
|
|
42 |
// ---------------------------------------------------------- |
|
|
43 |
#include "Model/DrawSettings.any" |
|
|
44 |
|
|
|
45 |
// ---------------------------------------------------------- |
|
|
46 |
// Body Model Configuration |
|
|
47 |
// ---------------------------------------------------------- |
|
|
48 |
#include "Model/BodyModelConfiguration.any" |
|
|
49 |
|
|
|
50 |
// The Mannequin file specifies load-time positions for all the segments |
|
|
51 |
// in the HumanModel. This is important for the model's ablity to resolve |
|
|
52 |
// all the kinematic constraints when the model is analyzed. |
|
|
53 |
// The mannequin file also drives those degrees of freedom of the human |
|
|
54 |
// model that are not governed by problem-specific drivers at run time. |
|
|
55 |
#include "Model/Mannequin.any" |
|
|
56 |
|
|
|
57 |
// Model of the human body to be used for the analysis |
|
|
58 |
#include "<ANYBODY_PATH_BODY>/HumanModel.any" |
|
|
59 |
|
|
|
60 |
// ---------------------------------------------------------- |
|
|
61 |
// Model |
|
|
62 |
// ---------------------------------------------------------- |
|
|
63 |
AnyFolder Model = { |
|
|
64 |
/// Body model without default drivers |
|
|
65 |
AnyFolder &BodyModel=.HumanModel.BodyModel; |
|
|
66 |
/// Reference to the mannequin folder (used by drivers) |
|
|
67 |
AnyFolder &Mannequin =.HumanModel.Mannequin; |
|
|
68 |
|
|
|
69 |
/// This folder contains the seat and other support conditions |
|
|
70 |
AnyFolder EnvironmentModel = { |
|
|
71 |
#include "Model/Environment.any" |
|
|
72 |
}; |
|
|
73 |
|
|
|
74 |
/// Connections between the Body model and the seat. |
|
|
75 |
AnyFolder ModelEnvironmentConnection = { |
|
|
76 |
|
|
|
77 |
#include "Model/ConnectionSegments.any" |
|
|
78 |
#include "Model/JointsAndDrivers.any" |
|
|
79 |
|
|
|
80 |
AnyFolder &RefPM=Main.Model.EnvironmentModel; |
|
|
81 |
#include "Model/InitialPositionsEnvironment.any" |
|
|
82 |
// #include "Measures.any" |
|
|
83 |
#include "Model/Support.any" |
|
|
84 |
}; // ModelEnvironmentConnection |
|
|
85 |
}; // Model |
|
|
86 |
|
|
|
87 |
|
|
|
88 |
// -------------------------------------------------------------- |
|
|
89 |
// Studies |
|
|
90 |
// -------------------------------------------------------------- |
|
|
91 |
AnyBodyStudy Study = { |
|
|
92 |
AnyFolder &Model = .Model; |
|
|
93 |
|
|
|
94 |
tEnd = 100; |
|
|
95 |
Gravity = {0.0, -9.81, 0.0}; |
|
|
96 |
nStep = 13; |
|
|
97 |
|
|
|
98 |
/** One of the interesting variables is the activity in the vasti muscles. |
|
|
99 |
This is because seats with slippery surfaces reduce the shear force on the |
|
|
100 |
buttocks but in return require vasti muscle acitivity to prevent the body |
|
|
101 |
from sliding forward on the seat pan.*/ |
|
|
102 |
AnySearchFun Vastus_Act={ Search = "Main.HumanModel.BodyModel.Right.Leg.Mus.Vastus*.Activity"; }; |
|
|
103 |
AnyFloat Activity = max(Vastus_Act()); |
|
|
104 |
|
|
|
105 |
/** This variable collects the shear force between the buttocks and the seat |
|
|
106 |
by means of the shear reaction between the seat in the environment. Shear |
|
|
107 |
force on the buttocks is known to cause discomfort. */ |
|
|
108 |
AnyVar ShearForce = -Main.Study.Model.EnvironmentModel.Jnt.SeatSupport.Fout[1]; |
|
|
109 |
|
|
|
110 |
/** The maximum muscle activity is the percentage of maximum voluntary |
|
|
111 |
contraction necessary to maintain the posture. You cannot sleep unless |
|
|
112 |
this is very low. */ |
|
|
113 |
AnyOutputFun MaxAct = { Val = .MaxMuscleActivity; }; |
|
|
114 |
|
|
|
115 |
}; |
|
|
116 |
|
|
|
117 |
// Include an operation sequence to run all required steps of your application (see Operations tab) |
|
|
118 |
#include "<ANYBODY_PATH_MODELUTILS>\Operations\RunAppSequence.any" |
|
|
119 |
|
|
|
120 |
};// Main |