thesis - Computer Graphics Group - Charles University - Univerzita ...
thesis - Computer Graphics Group - Charles University - Univerzita ...
thesis - Computer Graphics Group - Charles University - Univerzita ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.1. LAGRANGE MULTIPLIER METHOD 27<br />
Figure 4.1: Illustration of the hypersurface and the constraint force due to the i-th DOF of<br />
a constraint. Having a point r = (r1, . . . , rn) in the position space describing the positions<br />
of particles, point v = ˙ r in the velocity space describing the particle velocities and already<br />
lying on the hypersurface due to Ci = 0 then a = ˙ v due to the total external force Ftotal =<br />
( F total<br />
1<br />
, . . . , F total<br />
n<br />
) must be corrected so that the new a ∗ = (a ∗ 1 , . . . ,a∗ n) would not drive v from<br />
the hypersurface. This is done by introducing a constraint force J T i · λi that acts along the<br />
hypersurface normal.<br />
✁ ✁✁✁✁✁✁<br />
(a1, . . . ,an)<br />
Ci = 0<br />
✂ ✂✍<br />
J<br />
<br />
T i<br />
<br />
(v1, . . . , vn)<br />
✒<br />
(a ∗ 1 , . . . ,a∗ ✂<br />
n)<br />
✂✂✂✂<br />
✁ ✁✁✁✁✁✁<br />
– by starting from a state that is consistent with the position-level 5 and velocity-level<br />
formulation of the constraint and<br />
– obeying the corresponding acceleration-level constraint instead of the original positionlevel<br />
or velocity-level constraint.<br />
• Acceleration-level constraints are maintained by introducing a block vector constraint force<br />
Fc = ( F c 1 , . . . , F c n) = J T · λ, where λ is a vector of Lagrange multipliers of length m and<br />
F c<br />
i is the constraint force to be exerted on particle i. Multiplier λi defines a block vector<br />
constraint force that is exerted due to the i-th constraint row (due to the i-th DOF removed<br />
from the system) at the constrained particles and the exerted force equals J T i · λi. In order<br />
to compute Fc, multipliers λ must be computed.<br />
Now let us assume that Ftotal is a block vector whose blocks consist of vectors of the net<br />
forces exerted on the individual particles, that is Ftotal = ( F total<br />
1 , . . . , F total<br />
n ), where F total<br />
i is the<br />
net force exerted on particle i. We will compute Fc = J T · λ so that the acceleration-level equation<br />
J · a = c would hold when constraint force Fc is exerted.<br />
Dynamics of particles 1, . . . , n, with mass matrices M1, . . . , Mn can be described in a block<br />
fashion by the following equation of motion (see (3.5))<br />
M · ¨ r(t) = Ftotal(t),<br />
where M is the block diagonal matrix<br />
⎛<br />
M1<br />
⎜ 0<br />
M = ⎜<br />
⎝ .<br />
0<br />
M2<br />
.<br />
. . .<br />
. . .<br />
. ..<br />
0<br />
0<br />
.<br />
⎞<br />
⎟<br />
⎠<br />
0 0 . . . Mn<br />
.<br />
When Fc is exerted on the particles then the total force acting on the particles would be equal<br />
to Ftotal + Fc, therefore<br />
M · ¨ r = Ftotal + Fc<br />
5 If the original constraint is a position-level constraint.