Sie sind auf Seite 1von 6

CEE 501

General Supports and Constraints

Notes

So far we have considered only simple constraints, i.e. constraints preventing the motion of
particular degrees of freedom. It is often necessary to use more general constraint modeling, such
as in the case of arbitrarily oriented supports, or for prescribed displacement problems (settlement,
misfit, etc.). This handout presents a general approach that can be used to handle any of these
cases. The starting point is to provide a general expression for arbitrary constraints. We first
partition the degrees of freedom (DOFs) into independent and dependent parts:
{u}

{ua }
{ub }

in which the ub s can be expressed in terms of the ua s. The ua s are thus the independent DOFs,
and the ub s are dependenti.e., given the ua s we can always calculate the ub s. In particular, the
generalized constraint equations can be written as follows:
{ub } = [R] {ua } + {
u}
in which [R] represents a linear relation between the dependent and independent DOFs, and the
u
s represents specified displacements. Here are some specific examples:
Pin support at Joint i:
ui = 0 [R] = 0; {
u} = 0
Roller support at Joint i:
ui n = 0 uix =

ny
ny
uiy : [R] = [ ]; {
u} = 0
nx
nx

Joints i and j are connected by a rigid link:


(uj ui ) nij = 0 uix =

ny
ny
n
uiy + ujx +
ujy : [R] = [ nxy
nx
nx

ny
nx

] ; {
u} = 0

Roller support at Joint i settles by an amount :


ui n = uix =

ny
ny
uiy : [R] = [ ]; {
u} =
nx
nx

Consistent with our partitioning of the degrees of freedom, we can partition the system stiffness
and load matrices, as well:


[Kaa ] [Kab ]
[K]
[Kba ] [Kbb ]
{P}

{Pa }
{Pb }

To proceed further, we need to do a little fiddling around with our governing system of equations.
In particular, note that if the following is true:
[K] {u} = {P }
then we also have:
[K] {u} {P } = {0}
1

CEE 501

We can multiply zero by anything we like and still have zero, so for an arbitrary vector {q} we can
write
{q}T ([K] {u} {P }) = {q}T {0} = 0
We thus have for any vector {q}
{q}T [K] {u} = {q}T {P }
This little trick we have played here gives us an alternative form for our governing equations that
turns out to be useful for a wide variety of purposes. At present, we will simply mention in
passing that if we think of {q} as a set of arbitrary displacements applied to the structure, then the
right hand side of the above equation represents the work done by the system loads due to such
displacements, while the left hand side of the equation represents the work done within each element
due to the arbitrary displacement. This work associated with arbitrary displacements is called
virtual work (because the arbitrary displacements associated with {q} are not real displacements
actually applied to the structurerather they are mental constructs: virtual.).
Getting back to our main story, we can make our arbitrary displacements subject to similar
relations as the system displacements. In particular, we can partition the {q}s in the same fashion
as the {u}s:


{qa }
{q}
{qb }
and we can require/impose a similar dependency between the a and b partitions:
{qb } = [R] {qa }
Note that we do not include any offset similar to the u
term we had for the displacements. In
effect, we are allowing {q} to be arbitrary except where the displacements are specifiedhere the
= 0).
arbitrary displacements are required to be zero ({q}
Combining this partitioned form for {q} with our earlier partitioned forms for stiffness and load,
we can write the following:
{ {qa }T

{qb }T }

[Kaa ] [Kab ]
[Kba ] [Kbb ]



{ua }
{ub }

= { {qa }T

{qb }T }

{Pa }
{Pb }

Now we will replace the dependent DOFs qb s and ub s using the relations expressing them in terms
of the independent DOFs, the qa s and ua s
{ {qa }

[Kaa ]
{qa } [R] }
[Kba ]
T

[Kab ]
[Kbb ]



{ua }
[R] {ua } + {
u}

= { {qa }

{qa } [R] }

{Pa }
{Pb }

Now we need to expand this all out. We will do this in two steps: first we do the pre-multiplication
by {q}T :
n

{qa }T [Kaa ] + [R]T [Kba ]

o

{qa }T [Kab ] + [R]T [Kbb ]




= {qa }T {Pa } + [R]T {Pb }

{ua }
[R] {ua } + {
u}

Now we expand the left hand side one more time:




{qa }T [Kaa ] + [R]T [Kba ] {ua } + {qa }T [Kab ] + [R]T [Kbb ] ([R] {ua } + {
u})


= {qa }T {Pa } + [R]T {Pb }

CEE 501

This rather busy equation can be put in the following cleaner form:
n o

{ua } = {qa }T P
{qa }T [K]
in which

= [Kaa ] + [R]T [Kba ] + [Kab ][R] + [R]T [Kbb ][R]


[K]
n o

P = {Pa } + [R]T {Pb } [Kab ] + [R]T [Kbb ] {


u}

These equations allow us to accommodate arbitrary constraint relations, while still maintaining a
symmetric, positive-definite system of equations. In particular, since {q} is still arbitrary, we end
up with the following system of equations to solve:
n o

{ua } = P
[K]

Once we have solved this system of equations we can determine the reactions associated with the
constraints, {Pb }, by multiplying out the original partitioned expression above to obtain:
{Pb } = [Kba ]ua + [Kbb ]ub
Using the fact that ub = [R]ua + {
u} this becomes
{Pb } = ([Kba ] + [Kbb ][R]) ua + [Kbb ] {
u}
Note that this reaction calculation involves simple multiplication of matrices rather than inversion.
It is common in basic structural analysis classes to consider implicitly the case in which [R] = 0.
In this case the degrees of freedom can be considered as partitioned into independent constrained
(supported) and unconstrained (free) sets. A typical notation for this case is to use subscripts s for
supported and f for free in place of the a and b used in this handout. All the results of this simpler
case follow from the results presented here simply by using [R] = 0 in the various expressions above.
n o

and P
Example For the simple 2D triangular truss shown below, set up [K]
10.0 k

Support @ 45

Solution First we partition the displacements:


{ua } =

u1x

u2y

u1y ; {ub } = u3x

u2x
u3y

CEE 501

Then we write down the constraint relation between {ua } and {ub }:
0 0
u3x = 0 0

u3y
0 0

u2y

from which we can make the identification

0 0
[R] = 0 0
0 0

nx
ny

u1x
0 u1y

u2x

nx
ny

0
0

At this point, it is just a matter of carrying out a bunch of matrix multiplications to arrive at
the final 3x3 system of equations we need to solve. This is best done via a tool like MatLab.
The code would look something like the following:
%---sysK, sysP already defined as usual
%
%---Define n_s
n_s = [-sqrt(2)/2;sqrt(2)/2];
%--Define settlement
u_hat = [0;0;0];
%---Set up [R]
R = [0 0 -n_s(1)/n_s(2); 0 0 0 ; 0 0 0];
%---Get the load and stiffness partition pieces
Kaa = sysK(1:3,1:3);
Kab = sysK(1:3, 4:6);
Kba = Kab;
Kbb = sysK(4:6,4:6);
Pa = sysP(1:3);
Pb = sysP(4:6);
%---Compute the reduced system
K_tilde = Kaa + R * Kba + Kab * R + R * Kbb * R;
P_tilde = Pa + R * Pb - (Kab + R * Kbb) * u_hat;
%---Solve system
sysU = K_tilde\P_tilde;
%---Back out support reactions
Pb = (Kba + Kbb * R)*sysU + Kbb*u_hat;

In more general cases, there needs to be additional fiddling around to account for the fact that
the contrained degrees of freedom are not likely to be numbered such that they are located
at the end of the system. The mathematics are the same, though.

Lagrange Multipliers
As a final spin on constraints, consider again the equation we generated earlier involving an arbitrary
set of displacements, {q}, and the system stiffness and loads:
{q}T [K] {u} {q}T {P } = 0

CEE 501

If we interpret the arbitrary displacements, {q}, as corresponding to variations in the actual displacements, {u}, then we can write the following:
{u}T [K] {u} {u}T {P } = 0

1
T
T
{u} [K] {u} {u} {P } = 0

2


This implies the quantity in the square brackets is being extremized, because setting the variation
to zero is analogous to setting the derivative of a function to zero. It turns out that the quantity
in square brackets is being minimized, and the quantity itself can be interpreted as the potential
energy in the system. The enforcing of equilibrium for an elastic system can thus be thought of
as minimizing the potential energy. Using U to represent the potential energy in the structure, we
thus have
1
U = {u}T [K] {u} {u}T {P }
2
Adding constraints to the picture can now be thought of as adding constraints to an optimization
(minimization in this case) problem. It turns out that a general way to incorporate constraints
in an optimization framework is via Lagrange multipliers. This involves taking the constraint
conditions and adding them into the energy expression along with some unknown multipliers, and
then optimizing the expanded expression. In the present case, our constraint relations can be
expressed in the following form:
{ub } [R] {ua } {
u} = 0
Multiplying the constraint relation by a set of multipliers, {}, and then adding this to the potential
energy, we get the following modified form for the system energy:
U =

1
{u}T [K] {u} {u}T {P } + {}T [{ub } [R] {ua } {
u}]
2

If we take the variation of this modified energy expression and set it equal to zero (in order to find
the minimum), we get the following:
U

= { {ua }

[Kaa ] [Kab ]
{ub } }
[Kba ] [Kbb ]
T



{ua }
{ub }

{ {ua }

{ub } }

{Pa }
{Pb }

+ {}T [{ub } [R] {ua }] + {}T [{ub } [R] {ua } {


u}]
= 0
Rearranging terms allows us to write this as
U

[Kaa ] [Kab ] [R]T {ua }


T
T
T
[1] {ub }
= { {ua }
{ub }
{} } [Kba ] [Kbb ]

[R]
[1]
[0]
{}

{Pa }
{ {ua }T {ub }T {}T } {Pb }

{
u}
= 0

Since the variation quantities are arbitrary, this implies the following must hold:
[Kaa ] [Kab ] [R]T {ua } {Pa }
[Kba ] [Kbb ]
[1] {ub } = {Pb }

[R]
[1]
[0]
{}
{
u}

CEE 501

Solving this modified set of equations will give us the desired result, and in fact, this form is a
general case of the result we generated in the Basic Constraints handout. Comparing with that
handout, we can see that the s can be thought of physically as corresponding to the reactions
associated with the constraint conditions. The remarks from the earlier handout apply, too, in
regards to the symmetry of the modified system of equations (good news), and in regards to the
zeroes on the diagonal (bad news for many equation solving algorithms).

Das könnte Ihnen auch gefallen