I
Trabajo de Fin de Máster Máster en Ingeniería Industrial
June 2019
Simulación de una ley de contracción para modelos musculoesqueléticos
Supervisor:
Jonas Stålhand Examiner:
Joakim Holmberg
Division of Solid Mechanics Linköping University
LIU-IEI-TEK-A--19/03334—SE
Tutor:
José Luis Muñoz
Departamento de Ingeniería Mecánica y Fabricación.
ETSII - UPM
Pablo Rodríguez Roca
(Simulation of an Evolution Law for Musculoskeletal Modelling)
III
Abstract.
Currently there are several musculoskeletal models that calculate forces and reactions in muscles and bones from specific movements. All of them are based on the three-element model developed by (Zajac, 1989) based on the experiments carried out by Hill (Hill A., 1938).
For the dynamics it is needed to know the contracting speeds of both the muscle and the tendon. However, the models do not have enough equations to calculate these two terms independently. This is why all the models based on the Hill model assume that the tendon is much more rigid than the muscle and, therefore:
�𝐿𝐿𝑀𝑀̇ � ≫ �𝐿𝐿𝑇𝑇̇ � ⟹ 𝐿𝐿𝑇𝑇̇ = 0
This assumption introduces an unknown error in the calculations. Therefore, a new model was proposed by (Sharifimajd & Stålhand, 2013) that was later developed by (Roser, 2019).
This model does not need to make use of the assumption and it needs to be tested. In this master thesis, this new model has been developed and tested in MATLAB. Furthermore, with the help of AnyBody commercial software, which uses Hill model, it has been deter- mined whether the proposed model is realistic, and the error introduced when supposing that the speed of contraction of the tendon is zero.
Results show that this new model is coherent with the reality, having the same steady state values in both models. However, it has been found that the response in MATLAB is delayed between 11 and 233 milliseconds depending on the case. This is enough to consider this model an alternative and it is worth developing further.
V
Index
ABSTRACT. ... III NOTATION ... IX
1. INTRODUCTION. ... 1
1.1. State of the art. ... 1
1.2. Aim of the project. ... 3
2. PROPOSED MODEL. ... 5
2.1. Muscle contraction mechanism. ... 5
2.2. Modified Hill model. ... 6
2.2.1. Equilibrium. ... 6
2.2.2. Dissipation inequality. ... 7
2.2.3. Muscle speed. ... 7
3. MODEL DEVELOPMENT ... 9
3.1. Equations. ... 9
3.1.1. Parameter k. ... 9
3.1.2. Strain-energy Ψ. ... 9
3.1.3. Tendon force function 𝐹𝐹𝑇𝑇. ... 10
3.2. MATLAB implementation. ... 12
3.2.1. Tendon force. ... 12
3.2.2. Active force 𝜏𝜏. ... 13
3.2.3. Normalized force-length dependence 𝑓𝑓𝐿𝐿(𝐿𝐿𝑀𝑀). ... 13
3.2.4. Steady-state force 𝜏𝜏0. ... 14
3.2.5. Integration of the muscle speed 𝐿𝐿𝑀𝑀. ... 14
3.2.6. Activation level 𝜙𝜙. ... 14
3.3. Data. ... 15
4. ISOMETRIC CONTRACTION. ... 17
4.1. MATLAB implementation. ... 17
4.2. Simulations. ... 17
4.2.1. Resting length. ... 18
4.2.2. Stretched system. ... 21
4.2.3. Shortened system. ... 25
5. ISOTONIC CONTRACTION. ... 31
5.1. MATLAB implementation. ... 31
5.2. Simulations. ... 32
5.2.1. Before point A. ... 32
5.2.2. After point A. ... 33
5.2.3. Before point B. ... 33
5.2.4. After point B. ... 34
6. GENERIC CONTRACTION ... 35
6.1. MATLAB implementation ... 35
6.2. Simulations. ... 36
6.2.1. Case 1: left part of the curve. ... 36
6.2.2. Case 2: right part of the curve. ... 38
7. ANYBODY COMPARISON. ... 41
7.1. AnyBody code. ... 41
7.2. How to use the same functions... 42
7.3. Virtual activation. ... 44
7.4. Isotonic contraction. ... 44
7.4.1. AnyBody configuration. ... 45
7.4.2. MATLAB configuration. ... 46
7.4.3. Results. ... 46
7.5. Isometric contraction. ... 51
7.5.1. AnyBody configuration. ... 51
7.5.2. MATLAB configuration. ... 52
7.5.3. Results. ... 52
7.6. General contraction. ... 57
7.6.1. From 0.413 m. to 0.407 m. ... 58
7.6.2. From 0.423 m. to 0.417 m. ... 59
7.6.3. From 0.4349 m. to 0.413 m. ... 61
VII
I. Introducción. ... 69
II. Modelo propuesto. ... 70
III. Desarrollo del modelo. ... 72
IV. Simulaciones en MATLAB. ... 73
Contracción isométrica. ... 74
Contracción isotónica. ... 75
Contracción general... 75
V. Comparación con AnyBody. ... 77
Contracción Isotónica. ... 78
Contracción Isométrica. ... 78
Contracción genérica. ... 79
VI. Conclusiones. ... 79
VII. Planificación temporal. ... 80
VIII. Presupuesto. ... 84
APPENDIX ... 87
A. ISOMETRIC CONTRACTION ... 87
B. Isotonic contraction. ... 89
C. Generic contraction. ... 91
D. AnyBody Generic Contraction ... 94
IX
Notation
Symbol Meaning a Hill Parameter b Hill Parameter
𝐜𝐜𝟏𝟏 Shape Factor for PE Strain Energy 𝐜𝐜𝟐𝟐 Shape Factor for PE Strain Energy CE Contractile Element
D Damper
𝑭𝑭 Force
𝑭𝑭𝑪𝑪𝑪𝑪 CE Force 𝑭𝑭𝑫𝑫 Damping Force
𝑭𝑭𝟎𝟎𝑴𝑴 Maximum Isometric Force 𝑭𝑭𝒎𝒎𝒎𝒎𝒎𝒎𝑴𝑴 Maximum Muscle Force
𝑭𝑭𝑷𝑷𝑪𝑪 Parallel Element Force 𝑭𝑭𝑻𝑻 Tendon Force
𝒇𝒇𝑳𝑳 Normalized Force-Length Dependency Function J Shape Factor in Tendon Force
k Proportional factor 𝐤𝐤̂ Proportional Factor for 𝒇𝒇𝑳𝑳 𝑳𝑳𝑴𝑴 Muscle Length
𝑳𝑳𝒎𝒎𝒎𝒎𝒎𝒎𝑴𝑴 Maximum Muscle Length 𝑳𝑳𝒎𝒎𝒎𝒎𝒎𝒎𝑴𝑴 Minimum Muscle Length
𝑳𝑳𝒐𝒐𝒐𝒐𝒐𝒐𝑴𝑴 Optimal Muscle Length
𝑳𝑳𝑻𝑻𝑻𝑻𝑴𝑴 Muscle Length for Tendon Slack Length 𝑳𝑳̇𝑴𝑴 Muscle Speed
𝑳𝑳𝑻𝑻 Tendon Length
𝑳𝑳𝟎𝟎𝑻𝑻 Tendon Length for Isometric Maximum Force 𝑳𝑳𝑻𝑻𝑻𝑻 Tendon Slack Length
Symbol Meaning 𝑳𝑳̇𝑻𝑻 Tendon Speed 𝑳𝑳𝒐𝒐𝒐𝒐𝒐𝒐 Total Length
𝑷𝑷𝒎𝒎𝒎𝒎𝒐𝒐 Internal Mechanical Power PE Parallel Element
𝒓𝒓 Fictional Radius for the Clutch SE Serial Element
𝑻𝑻 Torque in the Clutch
𝒐𝒐 Time
𝒗𝒗𝑴𝑴 Contraction Speed
𝒗𝒗𝒎𝒎𝒎𝒎𝒎𝒎𝑴𝑴 Maximum Contraction Speed
𝜺𝜺𝟎𝟎 Tendon Strain for Isometric Maximum Force 𝜸𝜸 Proportional Factor
𝝓𝝓 Muscle Activation 𝚿𝚿 Strain Energy 𝚿𝚿̇ Strain Power
𝚿𝚿𝐏𝐏𝐏𝐏 Parallel Element Strain Energy 𝚿𝚿𝐓𝐓 Tendon Strain Energy
𝝎𝝎 Angular Speed of the Clutch
1
1. Introduction.
The human body is one the most fascinating mechanism that exist and that is why it is not only studied by doctors but also by engineers. In particular, mechanical engineers have fo- cused on investigating about muscle and bone properties in order to be able to define the forces and movements humans do.
As a result of all the research done in this field, the so-called musculoskeletal models have been developed. They are models that simulate kinetics of the human body the same way that robots’ movements can be modelled. However, the knowledge about the inner mecha- nisms of the muscles is not wide enough to make these simulations completely accurate.
Furthermore, another example on how difficult to correctly model the human body is the fact that we have more muscles than needed to perform one single movement (Holmberg, 2012). This way, many combinations of active muscles lead to the same movement, and mathematically this becomes a very complex problem to solve.
In general, the simplest articulation these models can simulate is the one composed of two bones connected by a revolute joint. At the same time, these two bones are connected by a muscle which is attached to each bone by a tendon. All of this can be seen in Figure 1.
Figure 1: Simplest articulation in musculoskeletal models.
It is important to note here that the term “body” in biomechanics is referred to the physics definition and not to the human body. Likewise, the term “muscle” is referred to the con- tractile part of the articulation and does not include the tendons.
1.1. State of the art.
Current applications of the musculoskeletal modelling are based on the 3 element Hill-type model that (Zajac, 1989) developed using Hill experiments (Hill A., 1938). This model
Muscle
Tendon
Attachment point
Attachment point Tendon
1. Introduction.
(Figure 2) is composed of one contractile element (CE) with one spring in parallel called parallel element (PE) and one series element (SE). The contractile element is the muscle part, where the force is produced. Its parallel element is a passive resistance in the muscle.
The series element is the tendon that attach the muscle to the bone. Each muscle has two tendons; however, they can be coupled in only one spring herein.
Figure 2: Hill model.
The total length of the system is the sum of the muscle length and the tendon length.
𝐿𝐿𝑡𝑡𝑡𝑡𝑡𝑡= 𝐿𝐿𝑀𝑀+ 𝐿𝐿𝑇𝑇 (1.1)
Taking the time derivative of the equation (1.1) leads to:
𝐿𝐿𝑡𝑡𝑡𝑡𝑡𝑡̇ = 𝐿𝐿𝑀𝑀̇ + 𝐿𝐿𝑇𝑇̇ (1.2) The dynamics of the model require the calculation of the speed of the system and its com- ponents. While the parallel element and the tendon can be model as simple elastic elements, the muscle’s force shows a dependency on speed and length of the muscle (Figure 3). This famous relationship used in most of the simulations was based on Hill’s experiments (Hill A., 1938).
PE
𝐿𝐿𝑀𝑀 𝐿𝐿𝑇𝑇 CE
𝐹𝐹 SE 𝐹𝐹
𝐹𝐹0𝑀𝑀
𝐿𝐿𝑀𝑀𝑚𝑚𝑚𝑚𝑚𝑚 𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡 𝐿𝐿𝑀𝑀𝑚𝑚𝑚𝑚𝑚𝑚 𝐿𝐿𝑀𝑀 𝑣𝑣𝑀𝑀
𝐹𝐹𝑀𝑀 𝐹𝐹𝑀𝑀
𝐹𝐹0𝑀𝑀 𝐹𝐹𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀
−𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀
1. Introduction.
3
(zero speed) force that a muscle can achieve. It is produced at the optimal muscle length 𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡.
1.2. Aim of the project.
Since it is the muscle force which is dependent on the speed and length of the muscle, the right-hand side elements of the equation (1.2) must be computed separately. However, this problem does not have a unique solution. The solution adopted up to now has been consider that the stiffness of the tendon is much higher than the muscle’s and therefore assume that:
�𝐿𝐿𝑀𝑀̇ � ≫ �𝐿𝐿𝑇𝑇̇ � ⟹ 𝐿𝐿𝑇𝑇̇ = 0 (1.3) This approximation leads to an imprecise model with an unknown error. A new model pro- posed in (Roser, 2019) will include an evolution law for the contractile element. This avoids making the equation (1.3) assumption and therefore could improve the precision of the cur- rent models.
In this thesis, this model is simulated in MATLAB and compared with the results obtained with a commercial program (AnyBody Modelling system) in order to determine the influ- ence of neglecting the elasticity of the tendon.
1. Introduction.
5
2. Proposed model.
The proposed model for the simulations has been engineered by Jonas Stålhand, from the Solid Mechanics division of Linköping University. Alexandra Roser, student in this univer- sity has developed the model further for her master thesis. Her works serves as starting point for this thesis and, in this section, their theoretical concepts are briefly explained.
2.1. Muscle contraction mechanism.
The muscle cell or myocyte is composed of myofibrils, which contains sarcomeres with two types of filaments: actin filaments and myosin filaments (Scott, Stevens, & Binder–Macleod, 2001). These filaments are disposed in parallel and attached one with each other as can be seen in Figure 4.
Figure 4: Actin and Myosin filaments. (Image courtesy of (Roser, 2019))
The contraction in the muscle is due to the cross-bridging sequence. In the sarcomeres, the myosin heads have two binding points: one for ATP (adenosine triphosphate) and other for actin. When the ATP binding is active, the actin one is deactivated. By a chemical process that goes beyond the scope of this work, the myosin heads move along the actin filament attaching and detaching from it. This process is not perfect, and some bindings are not suc- cessful, causing some slippage. This behavior can resemble a friction clutch (Sharifimajd &
Stålhand, 2013).
Actin Myosin
Myosin head
2. Proposed model.
2.2. Modified Hill model.
Figure 5: Proposed modified Hill’s model.
In Figure 5, the proposed model is represented. It still preserves the serial (SE) and parallel (PE) elements present in Hill’s model representing the same components. However, there are two new elements. First of them is a damper (D), which is included in order to describe the viscoelasticity of the muscle. The second of them is a friction clutch with a torque T and an angular speed 𝜔𝜔. This is the clutch described in section 2.1 and now contains an evolution law which will help with the contraction speed calculations.
In this case, the equations (1.1) and (1.2) are still valid and they will be used in the simula- tions. However, a new equilibrium of forces is needed.
2.2.1. Equilibrium.
Figure 6: Free body diagram.
In the free body diagram in Figure 6 it can be seen that the tendon force 𝐹𝐹𝑇𝑇 is equal to the external force 𝐹𝐹. Furthermore, the friction clutch generates a contractile force 𝐹𝐹𝐶𝐶𝐶𝐶 propor- tional to the torque T. Thus, the equilibrium equations are:
𝐹𝐹 = 𝐹𝐹𝑇𝑇 (2.1)
𝐿𝐿𝑀𝑀 𝐿𝐿𝑇𝑇 𝜔𝜔 𝑇𝑇
D
PE
𝐹𝐹 SE 𝐹𝐹
𝐹𝐹𝑇𝑇 𝐹𝐹 𝐹𝐹𝑇𝑇 𝐹𝐹𝐷𝐷
𝐹𝐹𝑃𝑃𝐶𝐶 𝑇𝑇 𝐹𝐹𝐶𝐶𝐶𝐶
2. Proposed model.
7
2.2.2. Dissipation inequality.
In order to link the forces and the deformation of the muscle and the tendon, it is necessary to study the energies involved.
Even though it is not real, it is assumed that this model is an athermal mechanical process for simplicity. The second law of thermodynamics gives the dissipation inequality:
𝑃𝑃𝑚𝑚𝑚𝑚𝑡𝑡− Ψ̇ ≥ 0 (2.4)
Where 𝑃𝑃𝑚𝑚𝑚𝑚𝑡𝑡 is the internal mechanical power and Ψ is the strain-energy stored in the muscle and tendon (Stålhand, 2018). The internal power can be defined as:
𝑃𝑃𝑚𝑚𝑚𝑚𝑡𝑡= 𝐹𝐹𝑃𝑃𝐶𝐶· 𝐿𝐿𝑀𝑀̇ + 𝐹𝐹𝑇𝑇 · 𝐿𝐿𝑇𝑇̇ + 𝐹𝐹𝐶𝐶𝐶𝐶�𝐿𝐿𝑀𝑀̇ + 𝑟𝑟𝜔𝜔� + 𝐹𝐹𝐷𝐷· 𝐿𝐿𝑀𝑀̇ (2.5) Where 𝑟𝑟𝜔𝜔 represent the linear speed of the clutch and this can be interpreted as the maxi- mum contraction speed 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 . The skeletal muscles can be divided in three types of muscle fibers: slow-oxidative, fast-oxidative-glycolytic and fast-glycolytic (Widmaier, Raff, &
Strang, 2016). The first one is characterized by a slow contraction speed that can be approx- imated by 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 ≈ 6 𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡/𝑠𝑠 and the other two are considered fast contracting fibers with a value of the speed 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 ≈ 16 𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡/𝑠𝑠, (Nigg & Herzog, 2007). Each muscle presents different percentages of each fiber making the 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 acquire a value between both mentioned previ- ously.
The strain-energy is a linear combination of the strain-energy in the muscle and the strain energy in the tendon and they are dependent on the muscle length 𝐿𝐿𝑀𝑀 and tendon length 𝐿𝐿𝑇𝑇 respectively and independently. Therefore, the time derivative of the strain-energy can be expressed using the chain rule as:
Ψ̇ = 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀
𝜕𝜕𝐿𝐿𝑀𝑀
𝜕𝜕𝜕𝜕 +
𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑇𝑇
𝜕𝜕𝐿𝐿𝑇𝑇
𝜕𝜕𝜕𝜕 =
𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀𝐿𝐿𝑀𝑀̇ + 𝜕𝜕Ψ𝜕𝜕𝐿𝐿𝑇𝑇𝐿𝐿𝑇𝑇̇ (2.6) Introducing equations (2.5) and (2.6) into (2.4), the dissipation equation is defined:
�𝐹𝐹𝑃𝑃𝐶𝐶+ 𝐹𝐹𝐷𝐷− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀� 𝐿𝐿𝑀𝑀̇ + �𝐹𝐹𝑇𝑇− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑇𝑇� 𝐿𝐿𝑇𝑇̇ + 𝐹𝐹𝐶𝐶𝐶𝐶�𝐿𝐿𝑀𝑀̇ + 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 � ≥ 0 (2.7) If the tendon is considered an elastic serial spring it is satisfied that 𝐹𝐹𝑇𝑇 = 𝜕𝜕Ψ/(𝜕𝜕𝐿𝐿𝑇𝑇 ). This, with equation (2.2) leads equation (2.7) to:
�𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑇𝑇− 𝐹𝐹𝐶𝐶𝐶𝐶− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀� 𝐿𝐿𝑀𝑀̇ + 𝐹𝐹𝐶𝐶𝐶𝐶�𝐿𝐿𝑀𝑀̇ + 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 � ≥ 0 (2.8)
2.2.3. Muscle speed.
To satisfy the condition in equation (2.8), both addends must be positive.
2. Proposed model.
Starting with the second parenthesis, the contractile force 𝐹𝐹𝐶𝐶𝐶𝐶 produced in the filaments can be approximated to a linear function that satisfy the main points of the function repre- sented in Figure 3 at the right:
𝐹𝐹𝐶𝐶𝐶𝐶= �𝑘𝑘�𝐿𝐿𝑀𝑀̇ + 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 �, 𝐿𝐿𝑀𝑀̇ ≥ −𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀
0, otherwise (2.9)
Where 𝑘𝑘 ≥ 0. Introducing equation (2.9) in equation (2.8), it satisfies at the same time that the second parenthesis is positive.
For the first parenthesis, a similar method is used. It must be proportional to the muscle speed and always positive.
𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑇𝑇− 𝐹𝐹𝐶𝐶𝐶𝐶− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀= 𝛾𝛾𝐿𝐿𝑀𝑀̇ (2.10)
Where 𝛾𝛾 ≥ 0. Taking equation (2.9), substituting it in equation (2.10) and rearranging terms:
𝐿𝐿𝑀𝑀̇ (𝛾𝛾 + 𝑘𝑘) + 𝑘𝑘𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 = 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑇𝑇− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀 (2.11)
The right-hand side of the equation it is called active force 𝜏𝜏 and applying the condition 𝐹𝐹𝑇𝑇 =
𝜕𝜕Ψ/(𝜕𝜕𝐿𝐿𝑇𝑇 ), it can be written as:
𝜏𝜏 = 𝐹𝐹𝑇𝑇− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀 (2.12)
When 𝐿𝐿𝑀𝑀̇ = 0, the active force becomes:
𝜏𝜏0= 𝑘𝑘𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 (2.13)
In order to get an equation for 𝐿𝐿𝑀𝑀̇ with the same appearance as Hill’s equation (Hill A., 1938), the factor 𝛾𝛾 is defined as:
𝛾𝛾 =1 𝑏𝑏 �
𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑇𝑇− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀� =1
𝑏𝑏 𝜏𝜏 (2.14)
Where 𝑏𝑏 = 0.25 · 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 , (Hill A., 1938). Operating equation (2.11) with equations from
9
3. Model development
3.1. Equations.
The equation (2.15) is an ordinary differential equation with the form: 𝐿𝐿𝑀𝑀̇ = f(𝐿𝐿𝑀𝑀). To be able to calculate this ODE, there are three unknown variables in the equations stated previ- ously: the parameter k, the strain-energy Ψ, and the tendon force 𝐹𝐹𝑇𝑇.
3.1.1. Parameter k.
The parameter k has been introduced in equation (2.9). It is necessary to account the length dependence and the activation of the muscle (Roser, 2019).
𝑘𝑘 = 𝑘𝑘� · 𝑓𝑓𝐿𝐿(𝐿𝐿𝑀𝑀) · 𝜙𝜙 (3.1) Where 𝑓𝑓𝐿𝐿(𝐿𝐿𝑀𝑀) is the normalized force function represented in Figure 3. It is the result of dividing the contractile force 𝐹𝐹𝐶𝐶𝐶𝐶 by the optimum muscle length 𝐹𝐹0𝑀𝑀. This function can be approximated in first instance with a Gaussian function.
The activation of the muscle is controlled by 𝜙𝜙, whose values vary from 0 (muscle deac- tivated) to 1 (muscle completely activated). Further explanation on the activity can be found in section 3.2.6.
The parameter 𝑘𝑘� is chosen to be 𝐹𝐹0𝑀𝑀/𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 so the Equation (2.9) for 𝐿𝐿𝑀𝑀̇ = 0 satisfies the right-hand side of Figure 3.
3.1.2. Strain-energy 𝚿𝚿.
The strain-energy of the muscle-tendon system can be assumed to be a linear combination of the strain-energy of the parallel element and the tendon.
Ψ = Ψ𝑃𝑃𝐶𝐶(𝐿𝐿𝑀𝑀) + Ψ𝑇𝑇(𝐿𝐿𝑇𝑇) (3.2) The muscle length dependent part can be modelled (Sharifimajd & Stålhand, 2013) while the tendon will be modelled later. Therefore, the strain-energy function becomes:
Ψ = 𝑐𝑐1
2𝑐𝑐2�exp �𝑐𝑐2�𝜆𝜆𝑀𝑀2− 1�2− 1�� + Ψ𝑇𝑇(𝐿𝐿𝑇𝑇) (3.3) Where 𝜆𝜆𝑀𝑀= 𝐿𝐿𝑀𝑀/𝐿𝐿𝑀𝑀0 being 𝐿𝐿𝑀𝑀0 the resting length of the muscle and 𝐿𝐿𝑇𝑇𝑠𝑠 is the tendon slack length, i.e. the length at which the tendon starts producing force.
3. Model development
This Equation (3.3) fits the assumption 𝐹𝐹𝑇𝑇 = 𝜕𝜕Ψ/(𝜕𝜕𝐿𝐿𝑇𝑇 ) for the equation (2.12). The Equa- tion (3.3) is used as well in the calculation of the length derivative of the strain-energy for equation (2.12):
∂Ψ
∂LM= 𝐹𝐹𝑃𝑃𝐶𝐶 = 2𝑐𝑐1 𝜆𝜆𝑀𝑀
𝐿𝐿𝑀𝑀0 �𝜆𝜆𝑀𝑀2− 1� �exp �𝑐𝑐2�𝜆𝜆𝑀𝑀2− 1�2− 1�� (3.4) The Equation (3.4) is the force in the parallel element. Therefore, for a fully activated mus- cle, the total force in the muscle 𝐹𝐹𝑀𝑀 would be the generated by the filaments (Equation (2.9) plus the parallel element force in Equation (3.4). A general representation of these forces can be seen in Figure 7.
Figure 7: Forces in the muscle segment.
Figure 7 does not take into account the elastic limit of the parallel element because the max- imum muscle length happens before the elastic limit, and therefore is never reached.
3.1.3. Tendon force function 𝑭𝑭
𝑻𝑻.
The tendon force must be determined for the calculation of the active force 𝜏𝜏. There are different alternatives to represent it, however, it must be satisfied that 𝐹𝐹𝑇𝑇 = 0 at 𝐿𝐿𝑇𝑇 = 𝐿𝐿𝑇𝑇𝑠𝑠 and 𝐹𝐹𝑇𝑇 = 𝐹𝐹0𝑀𝑀 at 𝐿𝐿𝑇𝑇= 𝐿𝐿𝑇𝑇0 (Christensen, Damsgaard, Rasmussen, & de Zee, 2002). The length 𝐿𝐿𝑇𝑇0 is calculated as 𝐿𝐿𝑇𝑇0= 𝐿𝐿𝑇𝑇𝑠𝑠(1 + 𝜀𝜀0) where 𝜀𝜀0 is the tendon strain due to maximum isometric force (Roser, 2019).
The expression chosen is the one proposed by (Christensen, Damsgaard, Rasmussen, & de Zee, 2002):
0, 𝐿𝐿T≤ 𝐿𝐿𝑇𝑇s
𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡 𝐿𝐿𝑀𝑀0 𝐹𝐹0𝑀𝑀
𝐹𝐹
𝐿𝐿𝑀𝑀 𝐹𝐹𝑀𝑀= 𝐹𝐹𝑃𝑃𝐶𝐶+ 𝐹𝐹𝐶𝐶𝐶𝐶
𝐹𝐹𝑃𝑃𝐶𝐶
3. Model development
11
This force function can be plotted with respect to the muscle length 𝐿𝐿𝑀𝑀 instead of the tendon length 𝐿𝐿𝑇𝑇 doing the change: 𝐿𝐿𝑀𝑀= 𝐿𝐿 − 𝐿𝐿𝑇𝑇. Then, the tendon slack length 𝐿𝐿𝑇𝑇𝑠𝑠 would become the muscle length for the slack tendon 𝐿𝐿𝑀𝑀𝑇𝑇𝑠𝑠= 𝐿𝐿 − 𝐿𝐿𝑇𝑇𝑠𝑠. Note that, while 𝐿𝐿𝑇𝑇𝑠𝑠 is a fixed value for each tendon, 𝐿𝐿𝑀𝑀𝑇𝑇𝑠𝑠 is changing depending on the total length.
Figure 8: Tendon force with respect to the muscle length.
Therefore, the curve 𝐹𝐹𝑇𝑇/𝐿𝐿𝑀𝑀 plotted in Figure 8 will shift right when the total length in- creases, and it will shift left for a decrease in the total length.
The equilibrium of forces must be satisfied and will happen when the forces in Figure 7 and Figure 8 intersect.
It is important to clarify that this process is considered to be quasi-static and therefore will not compute any effects of the inertia of the muscle.
𝐹𝐹𝑇𝑇
𝐿𝐿𝑀𝑀 𝐿𝐿𝑀𝑀𝑇𝑇𝑠𝑠
3. Model development
3.2. MATLAB implementation.
In Figure 9 all equations presented previously are structured in the order they are con- nected in the code in MATLAB. From bottom to top, the implementation of each formula is shown hereafter. All the parameters used has been removed in order to present the code in a general form.
3.2.1. Tendon force.
function FT = tforce(LM)
% (Parameters needed here) LT=L-LM
% Tendon length at which the tendon force equals the muscle-specific
% maximum isometric force LT_0=LT_s*(1+Eps)
𝐿𝐿𝑡𝑡𝑡𝑡𝑡𝑡= 𝐿𝐿𝑀𝑀+ 𝐿𝐿𝑇𝑇
𝐿𝐿𝑀𝑀̇ = 𝑏𝑏 𝜏𝜏 − 𝜏𝜏𝜏𝜏 + 𝑎𝑎 0
𝑎𝑎 = 0.25 𝐹𝐹0𝑀𝑀 𝑏𝑏 = 0.25 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀
𝑘𝑘 = 𝑘𝑘� · 𝑓𝑓𝐿𝐿(𝐿𝐿𝑀𝑀) · 𝜙𝜙 𝜏𝜏0 = 𝑘𝑘 · 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀
𝜏𝜏 = 𝐹𝐹𝑇𝑇− 𝜕𝜕Ψ
𝜕𝜕𝐿𝐿𝑀𝑀
∂Ψ
∂𝐿𝐿𝑀𝑀= 2𝑐𝑐1·𝜆𝜆𝑀𝑀
𝐿𝐿𝑀𝑀0 �𝜆𝜆𝑀𝑀2− 1� exp �𝑐𝑐2�𝜆𝜆𝑀𝑀2− 1�2�
𝐹𝐹𝑇𝑇 = 𝐹𝐹0𝑀𝑀
𝑒𝑒𝐽𝐽− 1 �exp �𝐽𝐽
𝐿𝐿𝑇𝑇− 𝐿𝐿𝑇𝑇𝑠𝑠
𝐿𝐿𝑇𝑇0− 𝐿𝐿𝑇𝑇𝑠𝑠� − 1�
𝑘𝑘� = 𝐹𝐹0𝑀𝑀 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀
Figure 9: Flow chart for the MATLAB code.
3. Model development
13
Every function that is length dependent is modelled by the muscle length, so the integration of the Hill equation is possible. Since the tendon force is dependent on the tendon length, first step in the code is to write the tendon length as a function of the muscle length. Then, the Equation (3.5) is described with an if statement.
3.2.2. Active force 𝝉𝝉.
function t = tau(LM)
% (Parameters needed here) LT_0=LT_s*(1+Eps);
landa=LM/LM_0;
PE=2.*C1.*landa./LM_0.*(landa.^2-1).*exp(C2.*(landa.^2-1).^2);
if PE<=0 PE=0;
else
PE=2.*C1.*landa./LM_0.*(landa.^2-1).*exp(C2.*(landa.^2-1).^2);
End
t=tforce(LM)-PE;
end
Inside the active force is also defined the length derivative of the strain-energy, modelled to be 0 when the function is negative, since the non-active muscle only generates force when is stretched over its resting length 𝐿𝐿𝑀𝑀0.
The active force is then defined as the tendon force minus the parallel element force.
3.2.3. Normalized force-length dependence 𝒇𝒇
𝑳𝑳(𝑳𝑳
𝑴𝑴).
function F = fl(LM)
xdata=[LM_min LM_opt LM_max];
ydata=[0.01 1 0.01];
gaussian=@(p,xdata) exp(-(xdata-p(1)).^2/(2*p(2)^2));
options = optimoptions('lsqcurvefit','OptimalityTolerance', 1e-16, 'FunctionTolerance', 1e-16);
p=lsqcurvefit(gaussian, [LM_opt 0.01], xdata, ydata,[],[],options);
F=gaussian(p,LM);
end
This function returns values between 0 and 1. It approximates the left-hand side graphic in Figure 3 as a Gaussian function. The implementation is a modified version of Roser (2019).
The ydata has been modified to widen the shape of the function and the tolerance has been tweaked to ensure the convergence of the function lsqcurvefit. This function fits the xdata and the ydata to the shape of the gaussian function.
3. Model development
3.2.4. Steady-state force 𝝉𝝉
𝟎𝟎.
function t0 = tau0(LM) vM_max=FibreTwitch*LM_opt;
kappa=FM_0./vM_max;
act=1;
t0=act*kappa*fl(LM)*FibreTwitch*LM_opt;
end
This function makes use of the previous 𝑓𝑓𝐿𝐿(𝐿𝐿𝑀𝑀) function. The FibreTwitch parameter is the one that accounts the contraction speed for each type of muscle fiber.
3.2.5. Integration of the muscle speed 𝑳𝑳̇
𝑴𝑴.
tspan=0:0.001:1;
LM_dot=@(t,LM) b.*((tau(LM)-tau0(LM))./(tau(LM)+a));
[time,LMsol]=ode15s(LM_dot,tspan,Lini);
The Hill equation is written as a function of time and muscle length. Those are the variables needed for the ODE solver.
The chosen solver is the ode15s which better handles stiff problems i.e. problems where values change rapidly in the first steps. The arguments of the solver are the function to in- tegrate, the time evaluated as tspan, and the initial muscle length named Lini.
The result of this integration is the muscle length for each time step. This length and time are stored in the variables LMsol and time respectively.
3.2.6. Activation level 𝝓𝝓.
In already existing models, the activation level is an output of the inverse dynamic compu- tations that ensures the equilibrium for every time step. However, the activation level 𝜙𝜙 is an input in this model. This means that the user must provide a certain activity level for the muscle to run the simulation.
The inverse dynamic computation is a complex process out of the scope of this project, but the code does support the activity level as a time-dependent vector. This vector can be a made-up one or an exported one from another program.
function a=activation(time)
3. Model development
15
This function returns an interpolation for the points specified in time of the vector Act us- ing a spline. The variable time can be one single element or a vector. The return will have the same size as the variable time.
3.3. Data.
All the simulations have been done using the parameters of a generic soleus muscle. This muscle is located in the back part of the calf and it has been chosen due to its high power and its big ratio between tendon and muscle. The higher this ratio is, the assumption in Equation (1.3) will probably influence the outcome more.
Symbol MATLAB Value Meaning
𝑭𝑭𝟎𝟎𝑴𝑴 FM_0 2830 [N] Maximum force output at optimum fiber length 𝑳𝑳𝒎𝒎𝒎𝒎𝒎𝒎𝑴𝑴 LM_min 0.02 [m] Minimum muscle length
𝑳𝑳𝒎𝒎𝒎𝒎𝒎𝒎𝑴𝑴 LM_max 0.06 [m] Maximum muscle length 𝑳𝑳𝒐𝒐𝒐𝒐𝒐𝒐𝑴𝑴 LM_opt 0.04 [m] Optimum muscle length
𝑳𝑳𝟎𝟎𝑴𝑴 LM_0 0.048 [m] Muscle’s resting length 𝑳𝑳𝑻𝑻𝑻𝑻 LT_s 0.375 [m] Tendon slack length 𝜺𝜺𝟎𝟎 Eps 0.053 Tendon strain for 𝐹𝐹0𝑀𝑀
𝑱𝑱 Jt 3 Shape parameter for the tendon force
𝒄𝒄𝟏𝟏 C1 15[N·m] Shape parameter for parallel element strain-energy 𝒄𝒄𝟐𝟐 C2 1.5 Shape parameter for parallel element strain-energy
- FibreTwitch 10 [1/s] Contraction speed parameter
Some of these values are unknown for this muscle since there are not studies about those properties focused on the human soleus muscle. These values are 𝐿𝐿𝑀𝑀0, 𝑐𝑐1, 𝑐𝑐2 and
FiberTwitch. The rest of them come from experimental data (Delp, 1990).
These values are joined in one vector P of parameters in MATLAB. This vector is one of the arguments in the functions so there is no need to copy again these values. This method re- duces time to the user and simplifies code.
3. Model development
17
4. Isometric contraction.
Isometric contraction is the one produced in an articulation where the total length L re- mains constant. The muscle is contracting and therefore reducing its length 𝐿𝐿𝑀𝑀 while the tendon is being stretched, so 𝐿𝐿𝑇𝑇 is increasing. (Widmaier, Raff, & Strang, 2016)
4.1. MATLAB implementation.
There are mainly three inputs in this simulation:
• Total length.
• Initial muscle length.
• Activation level.
The total length in this MATLAB code is called “L” and has to be defined as a constant value before calling the ODE15s solver and it is included in the vector of parameters “P”. This value will be used in the tendon force function “tforce”. Since the definition of the tendon force depends on the tendon length, the only way to have that value is doing the variable change:
LT=L-LM;
The tendon length will be a single variable or a vector depending on the size of the muscle length, which is one of the arguments in tforce.
The ODE15s solver needs an initial condition to be able to begin the integration. In the code attached in the Appendix this value is called “Lini” and represents the initial position of the muscle.
The activation level in the code is called “act”. Even though it can be expressed as a series of activation levels for a specific time step, in this simulation it is going to be a constant value of 0 or 1. This extremely simple cases makes the simulations simple enough to understand their behavior and determine if they are correct.
4.2. Simulations.
The analyzed cases are divided according the total length used for the isometric contraction.
Likewise, each total length has three different scenarios, depending on the initial muscle length. Finally, each condition is simulated for an activated muscle and for a deactivated one.
4. Isometric contraction.
The aim of these simulations is to check if the code represents coherent behaviors and to find exceptional cases where it does not work properly.
4.2.1. Resting length.
In this case, both the muscle and the tendon will be in their resting lengths. Therefore, the total length for the simulation is:
𝐿𝐿 = 𝐿𝐿𝑀𝑀0 + 𝐿𝐿𝑇𝑇𝑠𝑠 = 0.423 m (4.1) The forces curves are plotted in Figure 10. It can be seen that for no activation in the muscle, the parallel force and the tendon force are in equilibrium for 𝐿𝐿𝑀𝑀0 with no force in that instant.
Figure 10: Forces for Equation (4.1)
The steady-state equilibrium for this total length will be:
• Non-activated muscle: 𝐹𝐹 = 0 N 𝐿𝐿 = 0.048 m
• Activated muscle: 𝐹𝐹 = 1434 N 𝐿𝐿 = 0.0323 m I. Initial length: resting muscle length.
In this case, with no activation in the muscle, the equilibrium point will be where the tendon force and the parallel element force match. And that is satisfied as can be seen in Figure 11.
4. Isometric contraction.
19
Figure 11: Length and Force evolution. Resting length. Initial length: resting muscle length.
No activation.
The initial condition is already in equilibrium and because there is not any force that changes that equilibrium, the length and the force remain constant.
Now if the muscle is activated, the tendon force should match the muscle force 𝐹𝐹𝑀𝑀 instead of the parallel element. This new state is represented in Figure 12.
Figure 12: Length and Force evolution. Resting length. Initial length: resting muscle length.
Muscle activated.
II. Initial length: muscle shortened.
The muscle being shorter than its resting length means that the tendon is stretched. This configuration (and some of the followings) is not realistic since something external should stretch the tendon to that position. However, they are simulated in order to check if the code works for every case.
The chosen length for the muscle is 0.035 m. With the muscle not contracting, the tendon force will try to reach the same equilibrium as in Figure 11.
4. Isometric contraction.
Figure 13: Length and Force evolution. Resting length. Initial length: shortened muscle length. Muscle not activated.
If the muscle is activated, the steady-state of the system in Figure 14 must be the same as in Figure 12.
Figure 14: Length and Force evolution. Resting length. Initial length: shortened muscle length. Muscle activated.
III. Initial length: muscle stretched.
Now the muscle starts stretched with a length of 0.054 m. Then, the parallel element will contribute with positive force while the tendon will not apply force since it will be smaller than its slack length.
For the simulation with the muscle deactivated, the steady state is for both, muscle and ten- don, their resting lengths (Figure 15).
4. Isometric contraction.
21
Figure 15: Length and Force evolution. Resting length. Initial length: stretched muscle length. Muscle not activated.
And if the muscle is contracting, its length will reduce until it reaches 𝐿𝐿𝑀𝑀0 = 0.0323 m (Fig- ure 16).
Figure 16: Length and Force evolution. Resting length. Initial length: stretched muscle length. Muscle activated.
4.2.2. Stretched system.
Herein, the total length is higher than the sum of the slack length of the muscle and the ten- don. Therefore, in the resting position i.e. where no force is generated, both the muscle and the tendon are stretched. In that point, the parallel element force must match the tendon force. The selected total length is:
𝐿𝐿 = 𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡+ 𝐿𝐿𝑇𝑇𝑠𝑠 = 0.4349 m (4.2) Which is selected because it is the one that makes the tendon force reach the maximum muscle force 𝐹𝐹0𝑀𝑀 as can be seen in Figure 17.
4. Isometric contraction.
Figure 17: Forces for a total length L=0.4349 m.
The steady-state equilibrium for this total length will be:
• Non-activated muscle: 𝐹𝐹 = 210 N 𝐿𝐿𝑀𝑀= 0.0540393 m
• Activated muscle: 𝐹𝐹 = 2830 N 𝐿𝐿𝑀𝑀= 0.04 m I. Initial length: resting muscle length.
For an initial length of 0.054 m and no activation in the muscle the position should not change. With the muscle activated, the equilibrium should be at a length of 0.04 m. This can be verified in Figure 18 and Figure 19.
4. Isometric contraction.
23
Figure 19: Length and Force evolution. Stretched system. Initial length: resting muscle length. Muscle activated.
II. Initial length: muscle shortened.
The initial muscle length chosen for this simulation is 𝐿𝐿𝑚𝑚𝑚𝑚𝑚𝑚= 0.03 m. If the muscle is not active, the force of the tendon (which is stretched) will make the muscle longer. Once the muscle is longer than its slack length, the parallel element force will work as a brake until the equilibrium is reached (Figure 20).
Figure 20: Length and Force evolution. Stretched system. Initial length: shortened muscle length. Muscle not activated.
If the muscle is active, it will try to provide 900 N when its length is 0.03 m, but the tendon is going to provide a force higher than that. Thus, the muscle length will be extended, being able to produce more and more force at the same time the tendon will reduce its force until both forces match (Figure 21).
4. Isometric contraction.
Figure 21: Length and Force evolution. Stretched system. Initial length: shortened muscle length. Muscle activated.
III. Initial length: muscle stretched.
In this case, the parallel element contributes to the muscle force and the tendon will act as a brake. The length chosen now is 0.06 m., which is the most extreme stretch in this muscle.
Figure 22: Length and Force evolution. Stretched system. Initial length: stretched muscle length. Muscle not activated.
4. Isometric contraction.
25
4.2.3. Shortened system.
Now, the total length is chosen to make both the tendon and the muscle to be in a position where no one produce any resistive force. Taking the total length as:
𝐿𝐿 = 𝐿𝐿𝑀𝑀𝑡𝑡𝑜𝑜𝑡𝑡+ 𝐿𝐿𝑇𝑇𝑠𝑠− 0.008 = 0.407 m (4.3) The forces will look like in Figure 24: Forces for a total length of 0.415 m.
Figure 24: Forces for a total length of 0.415 m.
The steady-state equilibrium for this total length will be:
• Non-activated muscle: 𝐹𝐹 = 0 N 𝐿𝐿𝑀𝑀 ∈ [0.032, 0.048] m
• Activated muscle: 𝐹𝐹 = 247 N 𝐿𝐿𝑀𝑀 = 0.0255 m
As it can be seen, the equilibrium for a non-activated muscle it is no longer a point but an interval, since both the muscle and tendon are not long enough to produce a resistive force.
I. Initial length: resting muscle length.
For this configuration, the muscle length could be any value between 0.032 m and 0.048 m.
Taking the middle value (0.04 m) for example, the result is the following:
4. Isometric contraction.
Figure 25: Length and Force evolution. Shortened system. Initial length: resting muscle length. No activation.
Figure 26: Length and Force evolution. Shortened system. Initial length: resting muscle length. Muscle activated.
It can be seen that with no activation, the system remains in the equilibrium point and with the muscle activated it contracts until the new equilibrium point. It can be observed that at that length the muscle can create force, but the tendon needs to be stretched a bit to create a resistive force.
II. Initial length: muscle shortened.
To have the muscle shortened and therefore, a stretched tendon, the muscle length has to be below 0.032 m. If 0.028 m is taken, the result is:
4. Isometric contraction.
27
Figure 27: Length and Force evolution. Shortened system. Initial length: muscle shortened.
No activation.
Figure 28: Length and Force evolution. Shortened system. Initial length: muscle shortened.
Muscle activated.
Now the tendon can provide force to stretch the muscle to the resting position when the muscle is not active. With the active muscle the tendon provides force since the beginning.
III. Initial length: muscle stretched.
If the muscle has to be stretched, the initial length must be above 0.048 m which is the last point of equilibrium with no parallel element force involved. Taking 0.052 m as initial length the Figure 29 and Figure 30 are the result.
4. Isometric contraction.
Figure 29: Length and Force evolution. Shortened system. Initial length: muscle stretched.
No activation.
Figure 30: Length and Force evolution. Shortened system. Initial length: muscle stretched.
Muscle activated.
With the muscle deactivated the equilibrium point is reached thanks to the parallel element force but a more interesting phenomenon occurs when the muscle is activated. Until time equals 0.081 s the tendon cannot provide any force, therefore the muscle, which is fully ac- tivated will not find any resistance to the contraction and the contraction speed will in- crease. However, if Figure 3 is remembered, the contraction speed it is constrained by the
−𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 .
4. Isometric contraction.
29
Figure 31: Contraction speed when tendon does not create a resistive force.
If the contraction speed is plotted with respect to time (Figure 31), it can be found that for the time 0.053 s the speed is 𝑣𝑣𝑚𝑚𝑚𝑚𝑚𝑚𝑀𝑀 = −0.4 m/s, at the same time that the 𝐹𝐹𝑀𝑀= 0.
4. Isometric contraction.
31
5. Isotonic contraction.
Isotonic contraction is a contraction in which the muscle changes length while the load on the muscle remains constant (Widmaier, Raff, & Strang, 2016). Since the load is constant, the tendon will not change its length. This case is not the most interesting one from the point of view of the aim of the project, but it is an important type of contraction that can confirm whether the code works or not.
5.1. MATLAB implementation.
In the isotonic contraction there are again three inputs:
• Initial muscle length.
• Tendon force.
• Activation level.
Initial muscle length and the activation level works exactly the same way as in the isometric contraction. In this case the activation level will be fixed at 1 since the cases with the muscle deactivated are extremely simple and are not useful.
The important change is the tendon force implementation. This force does not depend nei- ther on time nor on any length. Therefore, the function tforce will look like this:
function FT = tforce(t,LM,P) FT=zeros(size(LM));
for h=1:size(LM) FT(h)=1300;
end end
Where 1300 can be substituted for any other value in newtons. The for loop is to ensure that the return has the same size of the LM variable. When the ODE15s solver call this function,
LM is a single value and therefore tforce must return just one value. However, when the solver has finished, to calculate the rest of the variables of the model, the tendon force has to be a vector in order to be coherent in dimensions.
5. Isotonic contraction.
5.2. Simulations.
Now, the analyzed cases will depend on the initial muscle length with respect to the equi- librium points that the constant force create.
Figure 32: Forces in an isotonic contraction (𝐹𝐹𝑇𝑇= 1300 N).
For a tendon force of 1300 N, the forces involved in the process are shown in Figure 32.
Thus, there are three equilibrium points when the muscle is fully activated:
• Point A: 𝐹𝐹 = 1300 N 𝐿𝐿𝑀𝑀= 0.0318 m
• Point B: 𝐹𝐹 = 1300 N 𝐿𝐿𝑀𝑀= 0.0482 m
• Point C: 𝐹𝐹 = 1300 N 𝐿𝐿𝑀𝑀= 0.063 m
While points A and B are possible equilibrium points, the point C cannot exist since its po- sition implies a muscle length higher than the maximum muscle length. In other cases, with a lower tendon force that would give an existing equilibrium point, the tendon force will be compensated only by the parallel element force 𝐹𝐹𝑃𝑃𝐶𝐶, since the contractile element will not be able to produce enough force. Therefore, the analyzed cases will be before and after points A and B. The non-active muscle simulations are not considered herein, since they always will match the point C.
5.2.1. Before point A.
The chosen point for this simulation is 𝐿𝐿𝑀𝑀= 0.025 m.
A B C
5. Isotonic contraction.
33
Figure 33: Length and Force evolution. 𝐿𝐿𝑀𝑀< 0.0318 m.
Here, the muscle is too short to provide enough force to hold the 1300 N load. However, thanks to this load, the muscle will increase its length and therefore its capability to provide more force until it reaches the tendon force.
5.2.2. After point A.
In this case, the muscle length is 𝐿𝐿𝑀𝑀= 0.035 m. With this length, the muscle has more than enough force to hold the tendon force and therefore the muscle will be able to contract until 0.0318 m.
Figure 34: Length and Force evolution. 𝐿𝐿𝑀𝑀> 0.0318 m.
5.2.3. Before point B.
Technically, being before point B means being after point A, but it is important to verify what happens after the maximum isometric force. The initial muscle length in this case is 𝐿𝐿𝑀𝑀= 0.046 m and the response is similar to what happened in the previous point, but with the bump due to have crossed the maximum isometric force.
5. Isotonic contraction.
Figure 35: Length and Force evolution. 𝐿𝐿𝑀𝑀< 0.0482 m.
5.2.4. After point B.
After point B, the muscle will be too long to provide enough force and the tendon force will make the muscle even bigger, so the only force that can be hold the tendon force is the par- allel element one. This can be seen in Figure 36, with a muscle length of 0.05 m.
Figure 36: Length and Force evolution. 𝐿𝐿𝑀𝑀> 0.0482 m.
This is equilibrium point is the same as if the muscle is not activated anytime because the muscle length is above its maximum. With a higher load the muscle could even break but this case is not considered in this project.
35
6. Generic contraction
In isometric and isotonic contractions, the total length was something fixed in the first case or an output of the code in the other one. In a generic contraction, the total length is a value dependent on time and therefore the output is the force needed to follow the specified movement.
6.1. MATLAB implementation
For this contraction there are two input variables:
• Activation level.
• Total length evolution.
The activation level is again fixed at 1 because it makes no sense to calculate the force for a movement if the muscle is not active. However, it is still considered an input since it can be set to different values rather than 0 or 1, or even be a time dependent value. This will be used in next sections, when this code is compared with the AnyBody program.
The total length evolution is an upgrade on how the isometric L value worked there. In iso- metric and generic contraction, this total length is used to calculate the tendon length based on the muscle length calculated by the ODE15s solver. Here, this variable is time dependent and to implement so, there are two main options. The first of them would be specifying points of the length through time and then make an interpolation between them. The second one is to define a mathematical expression that depends on the time, so there is no need to interpolate.
The second option has been chosen for its simplicity and flexibility. The expression chosen is an inverse exponential, similar to the expression that model the discharge of a capacitor:
𝐿𝐿(𝜕𝜕) = (𝐿𝐿0− 𝐿𝐿∞) ∙ 𝑒𝑒−𝐶𝐶·𝑡𝑡+ 𝐿𝐿∞ (6.1) Where 𝐿𝐿0 is the initial length, 𝐿𝐿∞ is the final length and 𝐶𝐶 is a shape parameter to modify the speed of the contraction.
In this case the initial muscle length is not considered as an input parameter. When an ar- ticulation is in a certain position, there is only one possible position for the muscle and the tendon. That position comes from the equilibrium of the forces in the tendon and in the parallel element of the muscle, when the muscle is not activated. This equilibrium point will be the initial value in order to make a more realistic set of simulations.
6. Generic contraction
This equilibrium point is calculated with an external force, so the main code is not too clut- tered. The complete code is not attached in this document, but mainly what it does is to calculate the distance between the tendon force and the parallel element force for each mus- cle length and return the muscle length where that distance is minimized:
dist=(FT-PE);
[value,eq_i]=min(abs(dist));
LM_eq=LM(eq_i);
The function min returns the value of the least difference between forces in newtons and
eq_i, which is the index where the minimum value is found. The muscle length correspond- ing to that index is the equilibrium length used as initial value.
6.2. Simulations.
There are several combinations of initial and final positions, each one with its own equilib- rium system. However, if it is analyzed only at an initial point where no parallel force exists, and another initial point where it does exist, most of the other combinations will look simi- lar to these. These two combinations could be for example:
𝐿𝐿0 (m) 𝐿𝐿𝑀𝑀0 (m) 𝐿𝐿∞ (m) 𝐿𝐿𝑀𝑀∞ (m)
Case 1 0.415 0.04 0.405 0.0247
Case 2 0.43 0.0515 0.423 0.0323
6.2.1. Case 1: left part of the curve.
In case 1, setting the initial total length at 0.415 m the corresponding muscle length for that is 0.04 m. In the steady state, for a total length of 0.405 m, the muscle length is 0.0247 m:
6. Generic contraction
37
𝐿𝐿(𝜕𝜕) = (0.415 − 0.405) ∙ 𝑒𝑒−8·𝑡𝑡+ 0.405 (6.2) The shape parameter 𝐶𝐶 is chosen to be 8 because, for simulations of 1 second, makes the system fast enough to get the steady state, but slow enough to see correctly the transitory phase. All of these can be seen in Figure 38: Total length evolution in case 1.
Figure 38: Total length evolution in case 1.
Figure 39: Length and Force evolution. General contraction case 1.
In Figure 39, a coherent evolution is obtained. F^M which is the maximum available force in the muscle (contractile element plus parallel element) starts from 0 N, even though in Figure 38 (left) it can be seen that the available force is 2830 N. This is due to the contraction speed, which starts at 0.4 m/s, which is the maximum speed, and therefore the muscle can- not provide any force. The evolution of the contraction speed can be seen in Figure 40.
6. Generic contraction
Figure 40: Contraction speed in case 1.
6.2.2. Case 2: right part of the curve.
Now, in case 2, the initial total length is 0.43 m, which corresponds to a muscle length of 0.0515 m. In the steady state, for a total length of 0.423 m the muscle length is 0.0323 m.
Figure 41: Initial point (left) and final point (right) for Case 2.
With these points, the total length evolution described in Equation (6.1) becomes:
𝐿𝐿(𝜕𝜕) = (0.43 − 0.423) ∙ 𝑒𝑒−8·𝑡𝑡+ 0.423 (6.3) With this input, the result is plotted in Figure 42. Now the initial force in the muscle is closer to the maximum it can provide at 0.0515 m. That is because the contraction speed is now
6. Generic contraction
39
Figure 42: Length and Force evolution. General contraction case 2.
Figure 43: Contraction speed in case 2.
6. Generic contraction