Switch to unified view

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