Why using only 2D beam elements result in singular stiffness matrix?

141 Views Asked by At

I'm building a program in MATLAB and I'm trying to solve the following problem: enter image description here

I want to use only 2D beam elements and not to superimpose the axial terms EA/L coming from bar elements. So each has the following stiffness matrix:

enter image description here

The boundary conditions that I'm applying are the following:

  • $u_{1}$ = 0

  • $v_{1}$ = 0

  • $\theta_{1}$ = 0

  • $u_{4}$ = 0

  • $v_{4}$ = 0

  • $\theta_{4}$ = 0

I rotate properly each element's stiffness matrix using R'KR, where R is the rotation matrix and K the stiffness matrix of each element, and then doing the assembly.

When I try to solve the system, partial stiffness matrix (with the boundary conditions applied) is singular because two rows are linearly dependent. I repeat that I want to use only beam elements.

However, if I set the additional boundary condition $v_{3}$ = 0 the matrix isn't singular. But that's not the same problem.

I can't understand why this singularity is happening. Should I change something in boundary conditions?

1

There are 1 best solutions below

0
On

The mistake is that I was using the command inv() in matlab, which tries to calculate the inverse of the partial stiffness matrix but it can't because the matrix is near singluar. So by using the command pinv() and computing the pseudoinverse, the problem was resolved.