lecture 12: the constraint null space the matrix c has m rows and n columns, m < n if we have set...
TRANSCRIPT
1
Lecture 12: The Constraint Null Space
The matrix C has M rows and N columns, M < N
If we have set this up correctly, the rows of C are independent€
C ˙ q = 0 ⇔ C ji ˙ q j = 0
Nonholonomic (including the pseudo ones) constraints
(If not, do a row reduction and rewrite the constraints)
2
Each row is an N row vector
The rate of change of q must be perpendicular to all the row vectors
There can be K = N – M independent vectors perpendicular to the row vectors of C
These vectors form the null space of C
Let’s try to say this another way
3
The rows of C live in the same space
lives in an N dimensional vector space
€
˙ q
The M rows of C form a partial basis in that space
€
˙ q must be perpendicular to those basis vectors
The vectors that are perpendicular to the rows of C make up the null spacethere will be K of them, call them s1, s2, etc.
€
˙ q = u1s1 + u2s2 +L ⇔ ˙ q j = Skjuk
4
u is a new vector; it is not the u vector we used in the Euler-Lagrange method
S is an N x K matrix. Its columns are the basis of the null space.
Let’s do a simple example of this before seeing how to use it.
5
Let’s look at the erect wheel
€
z = rW , θ = −π
2Simple holonomic constraints
Rolling constraints
€
˙ x = rW˙ ψ cosφ, ˙ y = rW
˙ ψ sinφ
Generalized coordinates
€
q =
x
y
φ
ψ
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
€
˙ q 1 − rW ˙ q 4 cosq3 = 0 = ˙ q 2 − rW ˙ q 4 sinq3
6
The constraint matrix
€
C =1 0 0 −rW cosφ
0 1 0 −rW sinφ
⎧ ⎨ ⎩
⎫ ⎬ ⎭
It’s obviously of full rank (rank = 2)
There are two vectors in the null spacewe can work them out on the blackboard
and combine them in the S matrix
€
S =
rW cosφ 0
rW sinφ 0
0 1
1 0
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
7
The rate of change of q becomes
€
˙ q = Su =
rW cosφ 0
rW sinφ 0
0 1
1 0
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
u1
u2
⎧ ⎨ ⎩
⎫ ⎬ ⎭
If you expand this you will see that u1 and u2 denote the two rotation rates
The dimension of u is the true number of degrees of freedom taking the nonholonomic constraints into account.
8
Let’s move on and see where this can take us.
€
M ijSkj is a function only of the qs
€
˙ p i = M ijSkj ˙ u k +
d M ijSkj
( )
dtuk = M ijSk
j ˙ u k +∂ M ijSk
j( )
∂qm˙ q muk
€
˙ p i = M ijSkj ˙ u k +
∂ M ijSkj
( )
∂qmSn
munuk
€
˙ p i =∂L
∂qi+ λ jCi
j + Qithe momentum equations
€
pi = M ij ˙ q j = M ijSkjukthe momentum
combine in two steps
9
€
˙ p i =∂L
∂qi+ λ jCi
j + Qi
€
M ijSkj ˙ u kSp
i = −∂ M ijSk
j( )
∂qmSn
munukSpi +
∂L
∂qiSp
i + λ jCijSp
i + QiSpi
And finally we can get rid of the Lagrange multipliers
0!
combine the momentum equation
€
˙ p i = M ijSkj ˙ u k +
∂ M ijSkj
( )
∂qmSn
munuk
with what we just did
€
M ijSkj ˙ u k = −
∂ M ijSkj
( )
∂qmSn
munuk +∂L
∂qi+ λ jCi
j + Qi
momentum equationin terms of u
10
Before multiplying by S the free index was i, which runs from 1 to N
After multiplying by S, the free index becomes p which runs from 1 to K
We have reduced the number of momentum equations to the number of degrees of freedom and gotten rid of the Lagrange multipliers.
As usual, it is not as ghastly in practice as it looks in its full generality€
M ijSkj ˙ u kSp
i = −∂ M ijSk
j( )
∂qmSn
munukSpi +
∂L
∂qiSp
i + QiSpi
11
We can go back to the erect coin to see how some of this plays out
€
L =1
2m ˙ x 2 + ˙ y 2( ) +
1
2A ˙ φ 2 +
1
2C ˙ ψ 2 =
1
2m ˙ q 1
2+ ˙ q 2
2
( ) +1
2A ˙ q 3
2+
1
2C ˙ q 4
2
€
˙ p 1 = m ˙ q 1, p2 = m ˙ q 2, p3 = A ˙ q 3, p4 = C ˙ q 4
€
˙ q =
rW cosφ 0
rW sinφ 0
0 1
1 0
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
u1
u2
⎧ ⎨ ⎩
⎫ ⎬ ⎭⇒ ˙ q 1 = rW cosφu1, ˙ q 2 = rW sinφu1, ˙ q 3 = u2, ˙ q 4 = u1
The momentum
The velocity equations
12
€
p1 = mrW cosφu1, p2 = mrW sinφu1, p3 = Au2, p4 = Cu1
differentiate
€
˙ p 1 = mrW cosq3 ˙ u 1 − mrW sinq3u1u2
˙ p 2 = mrW sinq3 ˙ u 1 + mrW cosq3u1u2
˙ p 3 = A˙ u 2, ˙ p 4 = C ˙ u 1
None of the coordinates appears in the Lagrangian, so the dL/dq term is zeroand there are no generalized forces
and multiplication by S removes the Lagrange multipliers
My equations are simply
€
˙ p iS ji = 0
The momentum becomes
13
€
˙ p iS ji = 0
€
S =
rW cosq3 0
rW sinq3 0
0 1
1 0
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
€
˙ p iS ji = ˙ p 1 ˙ p 2 ˙ p 3 ˙ p 4{ }
rW cosq3 0
rW sinq3 0
0 1
1 0
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
€
rW cosq3 ˙ p 1 + rW sinq3 ˙ p 2 + ˙ p 4 = 0
˙ p 3 = 0
Let’s build it
expand
(continued on the next page)
14
€
rW cosq3 ˙ p 1 + rW sinq3 ˙ p 2 + ˙ p 4 = 0
˙ p 3 = 0
€
C + mrW2
( ) ˙ u 1 = 0
A ˙ u 2 = 0
A lot of trigonometric cancellation leads to the final equations
€
˙ p 1 = mrW cosq3 ˙ u 1 − mrW sinq3u1u2
˙ p 2 = mrW sinq3 ˙ u 1 + mrW cosq3u1u2
˙ p 3 = A˙ u 2, ˙ p 4 = C ˙ u 1
substitute
16
So, what is the drill?
Lagrangian
Holonomic constraints
Generalized coordinates
Nonholonomic constraints
Constraint matrix — null space matrix
€
˙ q j = Skjuk
The velocity equations
17
Hamilton’s momentum equations
Eliminate p in favor of u
Multiply by S to reduce the number of momentum equations
Convert to explicit time dependence for the simulation
18
What’s new and what’s hard?
The idea of the null space is new and finding it can be hard
Mathematica can give you a null space, but it may not be what you wantI generally work out my own
The goal is to devise a null space such that the components of u have a useful interpretation
19
Multiply C and an arbitrary vector of length N
This will give you K conditions from which you can choose K basis vectors
Had I done this with the case just reviewed
€
Cs =1 0 0 −rW cosφ
0 1 0 −rW sinφ
⎧ ⎨ ⎩
⎫ ⎬ ⎭
s1
s2
s3
s4
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
=s1 − rW cosφs4
s2 − rW sinφs4
⎧ ⎨ ⎩
⎫ ⎬ ⎭= 0
s1 is associated with x, s2 with y, s3 with f and s4 with y
I’d like to have one vector for which s3 is unityand one for which s4 is unity
20
And that’s what I did
€
S =
rW cosq3 0
rW sinq3 0
0 1
1 0
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
⎫
⎬ ⎪ ⎪
⎭ ⎪ ⎪
and that’s why the equations came out so nicely
(As it happens, this is the null space that Mathematica gives.)
21
Let’s look at the 3 x 6 matrix from the two wheel system
€
C =
1 0 0 0 −1
2rW cosq3 −
1
2rW cosq3
0 1 0 0 −1
2rW sinq3 −
1
2rW sinq3
0 0 1 0rW
lR
−rW
lR
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
We can multiply this one out
22
€
Cs =
1 0 0 0 −1
2rW cosq3 −
1
2rW cosq3
0 1 0 0 −1
2rW sinq3 −
1
2rW sinq3
0 0 1 0rW
lR
−rW
lR
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
s1
s2
s3
s4
s5
s6
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
€
s1 −1
2rW cosq3s5 −
1
2rW cosq3s6 = 0
s2 −1
2rW sinq3s5 −
1
2rW sinq3s6 = 0
s3 +rW
lR
s5 −rW
lR
s6 = 0
Do the multiplication and look at the three components of the product
We can pick any three and find the others
23
recall
€
q =
x1
y1
φ1
ψ1
ψ 2
ψ 3
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
⇒
s1
s2
s3
s4
s5
s6
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
⇔
x1
y1
φ1
ψ1
ψ 2
ψ 3
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
We can take the three spins as fundamental and select bases such thats4 = 1, s5 =0, s6 = 0; s4 = 0, s5 =1, s6 = 0; s4 = 0, s5 =0, s6 = 1
24
€
s1 −1
2rW cosq3s5 −
1
2rW cosq3s6 = 0
s2 −1
2rW sinq3s5 −
1
2rW sinq3s6 = 0
s3 +rW
lR
s5 −rW
lR
s6 = 0
s4 = 1, s5 =0, s6 = 0
€
s1 = 0
s2 = 0
s3 = 0
€
s1
s2
s3
s4
s5
s6
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
=
0
0
0
1
0
0
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
and the base vector is
25
€
s1 −1
2rW cosq3s5 −
1
2rW cosq3s6 = 0
s2 −1
2rW sinq3s5 −
1
2rW sinq3s6 = 0
s3 +rW
lR
s5 −rW
lR
s6 = 0
s4 = 0, s5 =1, s6 = 0
€
s1 =1
2rW cosq3s5
s2 =1
2rW sinq3s5
s3 = −rW
lR
s5
€
s1
s2
s3
s4
s5
s6
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
=
1
2rW cosq3
1
2rW sinq3
−rW
lR
0
1
0
⎧
⎨
⎪ ⎪ ⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪ ⎪ ⎪
and the base vector is
26
€
s1 −1
2rW cosq3s5 −
1
2rW cosq3s6 = 0
s2 −1
2rW sinq3s5 −
1
2rW sinq3s6 = 0
s3 +rW
lR
s5 −rW
lR
s6 = 0
s4 = 0, s5 =0, s6 = 1
€
s1
s2
s3
s4
s5
s6
⎧
⎨
⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪
=
1
2rW cosq3
1
2rW sinq3
rW
lR
0
0
1
⎧
⎨
⎪ ⎪ ⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪ ⎪ ⎪
and the base vector is€
s1 =1
2rW cosq3s6
s2 =1
2rW sinq3s6
s3 =rW
lR
s6
27
put it all together
€
S =
01
2rW cosq3 1
2rW cosq3
01
2rW sinq3 1
2rW sinq3
0 −rW
lR
rW
lR
1 0 0
0 1 0
0 0 1
⎧
⎨
⎪ ⎪ ⎪ ⎪ ⎪
⎩
⎪ ⎪ ⎪ ⎪ ⎪
⎫
⎬
⎪ ⎪ ⎪ ⎪ ⎪
⎭
⎪ ⎪ ⎪ ⎪ ⎪
And the rank of this matrix is obviously three
28
The advantage of this is that there are fewer equations to deal with
The disadvantage is that you do not get the constraint forces(through the Lagrange multipliers)
The main consideration is then whether you need the constraint forces
If you believe that, whatever they are, the ground will be able to provide themthen you may as well adopt the constraint null space method.
Let’s look at the two wheel cart using this method