Professional Documents
Culture Documents
Modeling of The Musculoskeletal System - 1
Modeling of The Musculoskeletal System - 1
Modeling of The Musculoskeletal System - 1
Motivation
Course Objective
Movement Control
Movement control involves three sub-systems – neural, muscular and skeletal. The neural
sub-system provides information and coordinates the planning, control and regulation of
movement. The muscular sub-system provides the motive power and ensures appropriate
stiffness in the system; while the skeletal sub-system provides support and allows for
appropriate interaction with the environment. Injury to any one of the three sub-systems
could impair the control, coordination or execution of the movement. Our objective is to
learn how to predict the impact of any of these occurring and how to design intervention
strategies to mitigate it. It should be noted that the ability to move is central to the
2
existence of every animal. Anything that impairs this ability could bring a drastic reduction
in the quality of life of the affected individual. One function of biomechanical engineers is to
find ways that could enhance the mobility of individuals affected by injury and disease. A
thorough understanding of the workings of the intact system will help discerning the
optimal ways to do this.
In this section we will concentrate on modeling the muscular and skeletal sub-systems. We
will first start with the former after we have completed a broad overview of what we will
cover.
head) and insertion (on the bone furthest from the head).
Example,
agonist agonist
the
Joint
(relaxes) (contracts
flexion
to flex arm)
upper Bone 2
insertion
arm and
antagonist
(contracts the lower arm rotate with respect to
each other about the elbow joint.
to extend
arm)
Muscles can only produce pull forces
antagonist
(relaxes)
extension
on bones and not push forces, hence
3
for rotation of the bones in two directions, muscles must occur in pairs – called agonist
and antagonist. Which of the two contracts and which one relaxes is coordinated by the
CNS
Bone A
O u
Muscular
Joint Sub-System
LMT
rO FM
Vmt Lmt
u Fm
Fe
Z
Y vI/O
O'
rI Skeletal
I Sub-System
X Bone B
VI/O||OI = VMT
central nervous system (CNS). It has been observed that the amount of force a muscle
produces is affected by its length and its velocity (rate at which it contracts) in addition to
the amount of neural excitation controlled by the CNS. The length and velocity are both
affected by the location of the bones the muscle attaches to in space and the rate at which
they are rotating relative to each other. This implies that there is some kind of feedback
interaction between the skeletal and muscular sub-systems that is organized by the CNS.
In this equation F is the resultant (vector sum) of all the forces acting on the body, m is
the mass of the body and a is the vector
F2
of the acceleration of the center of mass
F1 α (CoM) G of the body. This law applies to
d2
d3 body about an axis passing through the
CoM:
d1
G
Mb2 F3
M G
IGα (2)
W
MG F1 d1 F2 d2 F3 d3 In this equation M G
is the resultant
ccw ve
(vector sum) of all the moments acting
Mb 1 Mb 2 W 0 IGα
about an axis through the CoM of the
body, IG is the mass moment of inertia of
the body about the same axis through the CoM and α is the vector of the angular
acceleration of the body about the same axis through the CoM. This law applies to the
rotational motion of bodies. We will examine methods for deriving these equations in cases
of one or two connected bodies. The forces generated by the muscles enter into the skeletal
equations via the left hand sides of equations (1) and (2); thereby affecting the motion of
the body.
dai
ai fi (ai , ui ) (3)
dt
dFmi
Fmi fmi (Lmti , Vmti , ai ) (4)
dt
In these equations, ai , ui , Fmi , LMTi and VMTi are the activation, neural input or excitation,
force output, length and velocity respectively of muscle i. We can also show (later in the
course) that the general term for the dynamic equation for the single moving segment in
the model (the lower arm) takes the form:
Iθ Mp θ , θ Mg θ Mf θ , θ , uf Me θ , θ , ue Mexternal (5)
Joint θ Bone 2
Mi (θ , θ , ui ) ri (θ )Fi (Lmti (θ ), Lmti (θ )) (6)
Muscle Moment Mi = ri (θ ) .Fi
af ff (af , uf )
ae fe (ae , ue )
Fmf fmf (Lmtf , Vmtf , af ) (7)
Fme fme (Lmte , Vmte , ae )
Jθ Mp θ , θ Mg θ Mf θ , θ , uf Me θ , θ , ue Mexternal
6
While the first four equations are suitable for integration using Runge-Kutta or other
similar integrators, the last equation is not; because it is a second order ode. To formalize
the equations so they are all first order odes, we introduce new variables, called state
variables xi (t) as follows:
x1 (t) af (t)
x 2 (t) ae (t)
x3 (t) Fmf (t)
x4 (t) Fme (t) (8)
x5 (t) θ (t)
x6 (t) θ (t)
x6 (t) θ (t) Mp x5 , x6 Mg x5 Mf x5 , x6 , uf Me x5 , x6 , ue Mexternal / I
Now we have a set of 6 first order odes in which the right hand side is purely a function of
the inputs ( ue and uf ) and the state variables x1 (t), . . ., x6 (t) . These equations are now
easily coded for solution using any numerical integration routines such as Runge-Kutta, etc.
To stimulate the integration you need the inputs ue and uf as well as the initial condition
vector x1 (0), . . ., x6 (0) .
There are two types of problems that we can solve using the dynamic equations above. In
the first case, the forces acting on the system (or the muscle inputs) are given and we are
required to determine the resulting motion. Such problems are called forward dynamic
simulation problems. If on the other hand the motion is given and we are required to
determine the forces (or the muscle inputs) that caused that motion, the problem is called
7
inverse dynamic simulation. There are also situations where the problem could arise as a
mixture of the two types of simulation.
If the neural inputs to the muscles (example ue and uf above) are all known, then we can
do a forward dynamics simulation to determine the motion. Often, it is not known what
the inputs should be for a given desired motion. There are two common ways for
estimating the muscle inputs required to generate a given motion of the skeletal system:
1. By manual trial-and-error
2. By computational trial-and-error
8
The first way is difficult because the inputs to the muscles could be varying with time. In
addition, the larger the number of muscles, the more complex the problem becomes. The
second method relegates the problem to a computer. The technique used by computers to
solve the problem is through what is called optimization. A typical optimization problem
seeks to find a set of inputs that can make a certain quantity of interest as small (or as
large) as possible. This later quantity is called the objective function and the inputs to the
system that are manipulated to change the objective function are often called the decision
variables. The mathematical function that is used to solve the optimization problem is
called the optimizer. Additional information could be provided to the optimizer so that it’s
guesses will concentrate on fruitful regions of the search space. This additional information
takes the form of mathematical relationships called constraints. Constraints could be
equality (the relationship must equal a given value) or inequality (the relationship must be
satisfied within a specified boundary). A typical optimization problem statement takes the
form:
Find the set of variables (x1, x2, …, xn) that causes the function J(x1, x2,…, xn) to assume
a minimum value subject to the constraints f(x1, x2,…, xn) = 0, g1 <= g(x1, x2,…, xn) <=
g2 and xil <= xi <= xih. This statement can be summarized as follows:
subject to:
(10)
f (x1 , x 2 , ..., xm ) 0
gl g(x1 , x 2 , ..., xm ) gu
xl x i x u
The functions f and g could be linear or nonlinear in the variables. The last constraint is
called a bound constraint as it requires that the variables must lie within specified lower
and upper bounds.
Example: Suppose we have a limb that rotates about a joint through an angle θ (t) and we
want to stimulate the muscles crossing that joint so as to make the limb follow a given
trajectory defined as θˆ (t) . The objective function for such a problem could take the form:
2
θˆ (t) θ (t) dt
t2
J (11)
t1
9
Limb Angle
current choice of muscle inputs. If the two do not agree,
then we adjust the muscle input and try again. The
function of the optimizer is to make intelligent choice of
Desired θˆ(t)
the adjustments so that the error between the desired t
The steps in solving the optimization problem for a typical musculoskeletal model problem
are summarized in the following flowchart:
MUSCULOSKELETAL dx S
xS Objective and
MODEL dt
dxS Constraints
f x S , u, p, t J(u), CE,I
dt
u0 u J(min)
Adjust No Yes Solution
Parameters C(sat)
Initialize ?
Parameter Optimization
Algorithm
There is a wide variety of optimizers in Matlab. Typical ones we will be using are fmincon
and patternsearch which are capable of handling nonlinear and bound constraints.
This completes our overview of what we will cover in the rest of the course. We are now
ready to examine these concepts in a little more detail.