10.08.2013 Views

thesis - Computer Graphics Group - Charles University - Univerzita ...

thesis - Computer Graphics Group - Charles University - Univerzita ...

thesis - Computer Graphics Group - Charles University - Univerzita ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!